summaryrefslogtreecommitdiff
path: root/src/tg-types/inline-keyboard-button.lisp
blob: 3b76adeed50616972b5d11d9b57e1f9e1d382520 (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
32
;; SPDX-License-Identifier: EUPL-1.2
;; SPDX-FileCopyrightText: 2025 Uko Kokņevičs <perkontevs@gmail.com>
(defpackage :ukkoclot/tg-types/inline-keyboard-button
  (:use :c2cl :ukkoclot/tg-types/macros)
  (: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-switch-inline-query
   inline-keyboard-button-switch-inline-query-current-chat
   inline-keyboard-button-pay

   hash->inline-keyboard-button
   parse-inline-keyboard-button-array))
(in-package :ukkoclot/tg-types/inline-keyboard-button)

(define-tg-type inline-keyboard-button
  (text string)
  (url (or string null) nil)
  (callback-data string)
  ;; TODO: (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))