summaryrefslogtreecommitdiff
path: root/src/tg/inline-keyboard-button.lisp
blob: 40153fe6d7375b1f5d00402a87d6c0b6aad9d168 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
;; SPDX-License-Identifier: EUPL-1.2
;; SPDX-FileCopyrightText: 2025 Uko Kokņevičs <perkontevs@gmail.com>
(defpackage :ukkoclot/src/tg/inline-keyboard-button
  (:documentation "InlineKeyboardButton Telegram type")
  (:use :c2cl :ukkoclot/src/tg/type-macros :ukkoclot/src/tg/web-app-info)
  (:export
   #:inline-keyboard-button
   #:make-inline-keyboard-button
   #:inline-keyboard-button-p
   #:copy-inline-keyboard-button
   #:inline-keyboard-button-text
   #:inline-keyboard-button-url
   #:inline-keyboard-button-callback-data
   #:inline-keyboard-button-web-app
   #:inline-keyboard-button-switch-inline-query
   #:inline-keyboard-button-switch-inline-query-current-chat
   #:inline-keyboard-button-pay))
(in-package :ukkoclot/src/tg/inline-keyboard-button)

(define-tg-type inline-keyboard-button
  (text string)
  (url (or string null) nil)
  (callback-data string)
  (web-app (or web-app-info null) nil)
  ;; TODO: (login-url (or login-url null) nil)
  (switch-inline-query (or string null) nil)
  (switch-inline-query-current-chat (or string null) nil)
  ;; TODO: (switch-inline-query-chosen-chat (or switch-inline-query-chosen-chat null) nil)
  ;; TODO: (copy-text (or copy-text-button null) nil)
  ;; TODO: (callback-game (or callback-game null) nil)
  (pay boolean nil))