STk:make-dialog
Create modal dialog and wait for response
(STk:make-dialog arguments ...)
This procedure is part of the STk library. Its arguments describe a dialog box.
They can be set using the following keywords.
- :window
-
Name of top-level window to use for dialog. The default value for
this parameter is .dialog. If a window with this name
already exists, it is destroyed.
- :title
-
Text to appear in the window manager's title bar for the dialog. Default to
"Dialog".
- :text
-
Message to appear in the top portion of the dialog box. Default to the empty string.
- :bitmap
-
If non-empty, specifies a bitmap to display in the top portion of
the dialog, to the left of the text.
If this is an empty string (or if not specified) then no bitmap is displayed
in the dialog.
- :default
-
If this is an integer greater than or equal to zero, then it gives
the index of the button that is to be the default button for the dialog
(0 for the leftmost button, and so on).
If less than zero then there won't be any default button.
By default, there is no default button.
- :buttons
-
the given argument must be a list of couples indicating for each the button text and
its associated action (a closure). The sepcified buttons are displayed
in order from left to right.
- :grab
-
is a boolean value indicating if the STk:make-dialog must wait that a
button be pressed before returning. Use the symbol global to have
a global grab. If grabbing is set, STk:make-dialog returns the button
pressed index (or -1 if the window is detroyed before a button is pressed).
By default, the grab is unset.
Hereafter are simple uses of the STk:make-dialog procedure
;; A simple dialog; returns after displaying the window
(STk:make-dialog :text "Do you want to exit?"
:bitmap "question"
:buttons (list (list "Yes" (lambda ()
(display "Yes\n")))
(list "No" (lambda ()
(display "No\n")))))
;; Another one which wait that the user chooses a response
;; Default is "bar"
;; Return value will be 0 1 or 2
;; The @ in a bitmap allows to specify a file
(STk:make-dialog :text "Choose one"
:bitmap "@/usr/include/X11/bitmaps/terminal"
:default 1
:grab #t
:buttons (list (list "foo" (lambda ()
(display "foo\n")))
(list "bar" (lambda ()
(display "bar\n")))
(list "baz" (lambda ()
(display "baz\n")))))
message-box
Back to the STk main page