1 .\" Copyright (c) 2014-2016 Bert Burgemeister <trebbu@googlemail.com>
3 .\" Permission is hereby granted, free of charge, to any person obtaining
4 .\" a copy of this software and associated documentation files (the
5 .\" "Software"), to deal in the Software without restriction, including
6 .\" without limitation the rights to use, copy, modify, merge, publish,
7 .\" distribute, sublicense, and/or sell copies of the Software, and to
8 .\" permit persons to whom the Software is furnished to do so, subject to
9 .\" the following conditions:
11 .\" The above copyright notice and this permission notice shall be
12 .\" included in all copies or substantial portions of the Software.
14 .\" THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 .\" EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
16 .\" MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
17 .\" NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
18 .\" LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
19 .\" OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
20 .\" WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
27 .Nd pipe-driven GTK+ interface
34 .Op Fl u Ar builder-file
35 .Op Fl e Ar parent-xid
37 .Op Fl -display Ar X-server
42 is a helper program that displays graphical user
43 interfaces for other programs.
44 It renders the GUI definition found in a GtkBuilder XML file
45 (typically created using the
47 interface designer), and communicates with the main program solely
48 through plain text messages via pipes or fifos.
49 It provides access to a subset of features of a subset of widgets of
51 Simple one-shot dialogs as well as more complex, long-running programs
61 if necessary, and uses it for command input.
63 A command is a line of text.
65 .Qq Ar name Ns Cm \&: Ns Ar action Bq Ar data
68 is the name of the receiving widget;
70 is separated from the rest of the command by a single whitespace
72 Commands whose first non-whitespace character is
74 are considered comments and ignored silently, as are empty input lines.
75 Any occurences of the two-character sequences
79 will be converted into newline or carriage return, respectively.
80 Every other character following a backslash will be left unchanged,
81 but the backslash will be removed.
82 Invalid commands are reported on
84 and are otherwise ignored.
87 for applicable commands.
91 exists but is not a named pipe.
94 is deleted upon successful program termination.
96 Default command input is
101 if necessary, and uses it for output of feedback messages from the
102 graphical user interface.
104 A feedback message is a line of text; its format is
105 .Qq Ar name Ns Cm \&: Ns Ar info Bq Ar data
108 is the name of the sending widget.
111 for possible feedback messages.
115 exists but is not a named pipe.
118 is deleted upon successful program termination.
120 Default feedback-message output is
125 in the background after printing its process ID to
128 It is an error if option
135 .It Fl u Ar builder-file
136 Displays the graphical user interface
138 which should be created using the
140 user interface designer and saved in GtkBuilder (.ui) format.
141 Widget names should be alphanumeric, including underscores, and the
142 main window must be named
147 .It Fl e Ar parent-xid
148 Embeds the main window into the XEmbed socket
152 For each command, append to
158 is the number of microseconds elapsed during
163 are separated by a tab character.
170 .It Fl -display Ar X-server
173 for user interaction.
175 Prints a help message and exits.
177 Prints the versions of the underlying GTK+ and cairo libraries and
185 The widget classes able to communicate through
192 .Sx GtkComboBoxText ,
198 .Sx GtkFileChooserButton ,
199 .Sx GtkFileChooserDialog ,
204 .Sx GtkMenuItem, GtkImageMenuItem ,
206 .Sx GtkPrintUnixDialog ,
210 .Sx GtkScrolledWindow
217 .Sx GtkToggleButton ,
219 .Sx GtkTreeViewColumn ,
224 references a widget by the
226 it is given in Glade.
231 is represented by the
233 attribute of the referenced object; therefore, a
240 .Dl <object class="GtkWindow" id="foo"> .
241 .Ss Any Widget (including widgets not mentioned above)
242 .Bl -tag -width "commands "
244 .Qq Ar name Ns Cm :set_sensitive Brq Cm 0 | 1
245 makes the widget grayed out
250 .Qq Ar name Ns Cm :set_visible Brq Cm 0 | 1
253 the widget, or makes it visible
256 .Qq Ar name Ns Cm :grab_focus
257 puts the keyboard focus onto the widget, if possible.
259 .Qq Ar name Ns Cm :set_size_request Bq Ar width height
260 sets the widget's minimum size to
264 Default is the widget's natural size.
267 .Ar name Ns Cm :style
268 .Bo Ar prop Ns Cm \&: Ns Ar val Ns Bo Cm \&; Ar prop Ns Cm \&: Ns Ar val ... Bc Bc
272 of the widget style to
274 Properties not explicitly specified are reset to their default values.
276 .Bl -dash -offset indent -compact
278 .Ql label1:style font:Bold 11; background-color:green
280 .Ql label1:style font-style:italic; font-weight:bold; color:blue
282 .Ql frame1:style border-color:red yellow; border-width:5px
284 .Ql frame1:style border-radius:10px; transition:10s
286 For a description of possible color notations see
289 .Qq Ar name Ns Cm :set_tooltip_text Bq Ar text
290 sets the widget's tooltip
292 Default is disabling the tooltip.
294 .Qq Ar name Ns Cm :force
295 simulates a click on the
297 d widget, triggering a response as described with the widgets below.
299 .Bl -dash -offset indent -compact
301 The command is ignored by
309 .Sx GtkTreeViewColumn ;
311 .Sx GtkCalendar , GtkEntry , GtkFileChooserButton , GtkScale ,
314 report the currently selected item;
319 just open their respective dialogs.
322 .Qq Ar name Ns Cm :load Ar file
329 is required but ignored.
331 commands may be nested but on attempts to read from the same file, the
342 .Qq Ar name Ns Cm :main_quit
343 kills the user interface.
346 is required but ignored.
349 .Bl -tag -width "commands "
351 .Qq Ar name Ns Cm :set_label Ar string
352 replaces the button text with
355 .Qq Ar name Ns Cm \&:clicked
358 s with names ending in
359 .Cm _ok , _apply , _cancel , _send_text ,
362 may work differently; see
363 .Sx GtkDialog , GtkFileChooserDialog ,
369 .Bl -tag -width "commands "
371 .Qq Ar name Ns Cm :select_date Ar yyyy Ns Cm - Ns Ar mm Ns Cm - Ns Ar dd
372 selects the date on the calendar.
374 .Qq Ar name Ns Cm :mark_day Ar day
379 .Qq Ar name Ns Cm :clear_marks
380 unmarks all days on the calendar.
382 .Qq Ar name Ns Cm \&:clicked Ar yyyy Ns Cm - Ns Ar mm Ns Cm - Ns Ar dd
384 .Qq Ar name Ns Cm \&:doubleclicked Ar yyyy Ns Cm - Ns Ar mm Ns Cm - Ns Ar dd
387 .Bl -tag -width "commands "
389 .Qq Ar name Ns Cm :set_active Brq Cm 0 | 1
390 switches the check mark off
395 .Qq Ar name Ns Cm :set_label Ar string
396 replaces the button text with
399 .Qq Ar name Ns Cm \&:1
401 .Qq Ar name Ns Cm \&:0
405 .Bl -tag -width "commands "
407 .Qq Ar name Ns Cm :set_color Ar color
408 preselects the color.
411 .Bl -dash -offset indent -compact
413 a standard X11 color name, like
416 a hexadecimal value in the form
417 .Cm # Ns Ar rgb , Cm # Ns Ar rrggbb , Cm # Ns Ar rrrgggbbb ,
419 .Cm # Ns Ar rrrrggggbbbb ,
421 an RGB color in the form
422 .Cm rgb( Ns Ar red Ns Cm \&, Ns Ar green Ns Cm \&, Ns Ar blue Ns Cm \&) ,
425 an RGBA color in the form
426 .Cm rgba( Ns Ar red Ns Cm \&, Ns Ar green Ns Cm \&, Ns
427 .Ar blue Ns Cm \&, Ns Ar alpha Ns Cm \&) .
430 .Qq Ar name Ns Cm \&:color Cm rgb( Ns Ar red Ns Cm \&, Ns Ar green Ns Cm \&, Ns Ar blue Ns Cm \&)
432 .Qq Ar name Ns Cm \&:color Cm rgba( Ns Ar red Ns Cm \&, Ns Ar green Ns Cm \&, Ns Ar blue Ns Cm \&, Ns Ar alpha Ns Cm \&) .
436 lie between 0 and 255, and
445 .Bl -tag -width "commands "
447 .Qq Ar name Ns Cm :prepend_text Ar string
449 .Qq Ar name Ns Cm :append_text Ar string
450 prepend/append a new selectable item marked
453 .Qq Ar name Ns Cm :insert_text Ar position string
459 .Qq Ar name Ns Cm :remove Ar position
463 .Qq Ar entry_name Ns Cm \&:text Ar text ,
465 being the name of the child
478 .Ar foo Ns Cm _invoke .
486 .Ar foo Ns Cm _cancel
488 if the dialog is the sole window of the GUI and therefore named
499 it will take care of hiding the dialog window.
500 .Bl -tag -width "commands "
502 .Qq Ar name Ns Cm :set_title Ar string
503 replaces the text in the title bar with
506 .Qq Ar name Ns Cm :resize Bq Ar width height
507 changes the size of the dialog window to
511 pixels if specified, or to the default size.
513 .Qq Ar name Ns Cm :move Ar x y
514 moves the dialog window to position
517 .Qq Ar name Ns Cm :fullscreen
519 .Qq Ar name Ns Cm :unfullscreen
520 switch fullscreen mode on and off.
522 .Qq Ar name Ns Cm \&:closed
525 window was closed by the window manager.
528 Most drawing commands expect an
530 parameter (an arbitrary non-negative integer) which can be used to
531 reference the command for later removal.
533 All coordinates refer to a left-handed coordinate system with its
534 origin in the upper-left corner.
535 .Bl -tag -width "commands "
537 .Qq Ar name Ns Cm :arc Ar id x y radius angle1 angle2
538 adds a circular arc to the current path.
539 The arc is centered at
541 and proceeds clockwise from
549 .Qq Ar name Ns Cm :arc_negative Ar id x y radius angle1 angle2
550 adds a circular arc to the current path.
551 The arc is centered at
553 and proceeds counterclockwise from
561 .Qq Ar name Ns Cm :close_path Ar id
562 adds a line segment from the current point to the point most recently
564 .Ar name Ns Cm :move_to
566 .Ar name Ns Cm :rel_move_to .
568 .Qq Ar name Ns Cm :curve_to Ar id x1 y1 x2 y2 x3 y3
569 adds a cubic Bezier spline from the current point to
576 If there is no current point, the curve will start at
579 .Qq Ar name Ns Cm :fill Ar id
580 fills the current path and clears it.
582 .Qq Ar name Ns Cm :fill_preserve Ar id
583 fills the current path without clearing it.
585 .Qq Ar name Ns Cm :line_to Ar id x y
586 adds a line from the current point to
588 or creates a new current point at
591 .Qq Ar name Ns Cm :move_to Ar id x y
592 sets the current point to
595 .Qq Ar name Ns Cm :rectangle Ar id x y width height
596 adds a rectangle to the current path.
597 The top left corner is at
600 .Qq Ar name Ns Cm :refresh
605 .Qq Ar name Ns Cm :rel_curve_to Ar id dx1 dy1 dx2 dy2 dx3 dy3
606 adds a cubic Bezier spline from the current point to
613 All coordinates are offsets relative to the current point.
615 .Qq Ar name Ns Cm :rel_line_to Ar id dx dy
616 adds a line from the current point to a point offset from there by
619 .Qo Ar name Ns Cm :rel_move_for Ar id Brq Cm c | e | n | ne | nw | s | se | sw | w
622 moves the current point such that
623 .Qq Ar name Ns Cm :show_text Ar id text
624 will place the specified reference point of
626 on the original current point.
628 .Qq Ar name Ns Cm :rel_move_to Ar id dx dy
629 moves the current point by
632 .Qq Ar name Ns Cm :remove Ar id
633 removes the elements with
636 .Cm GtkDrawingArea Ar name .
638 .Qq Ar name Ns Cm :set_dash Ar id l
639 sets the dash pattern to
645 .Qq Ar name Ns Cm :set_dash Ar id l1on l1off l2on l2off ...
646 resets the dash pattern to a line with arbitrary on/off portions.
648 .Qq Ar name Ns Cm :set_dash Ar id
649 resets the dash pattern to a solid line.
651 .Qo Ar name Ns Cm :set_font_family Ar id Brq Cm normal | italic | oblique
652 .Brq Cm normal | bold
655 sets the font face for subsequent calls of
656 .Ar name Ns Cm :show_text .
658 .Qq Ar name Ns Cm :set_font_size Ar id size
659 sets the font size for subsequent calls of
660 .Ar name Ns Cm :show_text .
662 .Qq Ar name Ns Cm :set_line_cap Ar id Brq Cm butt | round | square
663 sets the line cap style.
665 .Qq Ar name Ns Cm :set_line_join Ar id Brq Cm miter | round | bevel
666 sets the line junction style.
668 .Qq Ar name Ns Cm :set_line_width Ar id width
671 .Qq Ar name Ns Cm :set_source_rgba Ar id color
674 is in the format used with
677 .Qq Ar name Ns Cm :show_text Ar id text
680 beginning at the current point.
682 .Qq Ar name Ns Cm :stroke Ar id
683 strokes the current path and clears it.
685 .Qq Ar name Ns Cm :stroke_preserve Ar id
686 strokes the current path without clearing it.
691 .Bl -tag -width "commands "
693 .Qq Ar name Ns Cm :set_text Ar string
694 replaces the user-editable text with
697 .Qq Ar name Ns Cm :set_placeholder_text Ar string
700 that is displayed when the entry is empty and unfocused.
702 .Qq Ar name Ns Cm \&:text Ar text ,
703 once for each change of
708 are mouse pointer coordinates relative to the
710 .Bl -tag -width "commands "
714 .Qq Ar name Ns Cm \&:button_press Ar b x y ,
715 .Qq Ar name Ns Cm \&:button_release Ar b x y
718 is the mouse button (normally 1, 2, or 3 for the left, middle, and
719 right button; others may exist).
721 .Qq Ar name Ns Cm \&:motion Ar x y
722 is reported repeatedly while the mouse is being moved with a button
725 .Qq Ar name Ns Cm \&:key_press Ar key ,
735 .Bl -tag -width "commands "
737 .Qq Ar name Ns Cm :set_label Ar string
738 replaces the expander label text with
741 .Qq Ar name Ns Cm :set_expanded Brq Cm 0 | 1
744 the child widget, or makes it visible
749 .Ss GtkFileChooserButton
750 .Bl -tag -width "commands "
752 .Qq Ar name Ns Cm :set_filename Ar path
755 to the extent it exists.
757 .Qq Ar name Ns Cm \&:file Ar pathname
758 if the selection has changed.
760 .Ss GtkFileChooserDialog
762 .Cm GtkFileChooserDialog
770 .Ar foo Ns Cm _invoke .
773 .Cm GtkFileChooserDialog
780 if the dialog is the sole window of the GUI and therefore named
785 .Cm GtkFileChooserDialog
790 .Ar foo Ns Cm _cancel
792 if the dialog is the sole window of the GUI and therefore named
797 .Cm GtkFileChooserDialog
804 if the dialog is the sole window of the GUI and therefore named
807 .Bl -tag -width "commands "
809 .Qq Ar name Ns Cm :set_filename Ar path
812 to the extent it exists.
814 .Qq Ar name Ns Cm :set_current_name Ar string
817 the suggested filename, which may not yet exist.
819 should either resemble an absolute path, or the
821 must be set separately by
822 .Ar name Ns Cm :set_filename Ar directory .
824 .Qq Ar name Ns Cm :set_title Ar string
825 replaces the text in the title bar with
828 .Qq Ar name Ns Cm :resize Bq Ar width height
829 changes the size of the dialog window to
833 pixels if specified, or to the default size.
835 .Qq Ar name Ns Cm :move Ar x y
836 moves the dialog window to position
839 .Qq Ar name Ns Cm :fullscreen
841 .Qq Ar name Ns Cm :unfullscreen
842 switch fullscreen mode on and off.
844 .Qq Ar name Ns Cm :file Ar pathname
846 .Qq Ar name Ns Cm :folder Ar pathname
848 .Qq Ar name Ns Cm \&:closed
850 .Cm GtkFileChooserDialog
851 window was closed by the window manager.
854 .Bl -tag -width "commands "
856 .Qq Ar name Ns Cm :set_font_name Ar fontname
859 .Qq Ar name Ns Cm \&:font Ar fontname
862 .Bl -tag -width "commands "
864 .Qq Ar name Ns Cm :set_label Ar text
865 replaces the frame label text with
871 .Bl -tag -width "commands "
873 .Qq Ar name Ns Cm :set_from_icon_name Ar icon-name
874 replaces the image with one of the standard icons.
876 .Qq Ar name Ns Cm :set_from_file Ar path
877 replaces the image by the one found at
883 .Bl -tag -width "commands "
885 .Qq Ar name Ns Cm :set_text Ar string
886 replaces the label text with
891 .Ss GtkMenuItem, GtkImageMenuItem
892 .Bl -tag -width "commands "
901 .Ar foo Ns Cm _invoke
905 .Sx GtkFileChooserDialog
909 If there isn't any dialog attached to the
912 .Qq Ar name Ns Cm \&:active Ar label .
915 .Bl -tag -width "commands "
917 .Qq Ar name Ns Cm :set_current_page Ar n
918 switches to zero-based page number
923 .Ss GtkPrintUnixDialog
924 .Bl -tag -width "commands "
926 .Qq Ar name Ns Cm :print Ar file.ps
927 opens the print dialog.
932 to the printer the user selected in the dialog.
934 .Qq Ar name Ns Cm \&:closed
936 .Cm GtkPrintUnixDialog
937 window was closed by the window manager.
940 .Bl -tag -width "commands "
942 .Qq Ar name Ns Cm :set_fraction Ar x
943 moves the progress bar to
945 .Pq between 0 and 1 .
947 .Qq Ar name Ns Cm :set_text Bq Ar string
948 replaces the text of the progress bar with
950 Default is the progress percentage.
955 .Bl -tag -width "commands "
957 .Qq Ar name Ns Cm :set_active 1
958 switches the button on.
959 All other buttons of the same group will go off automatically.
961 .Qq Ar name Ns Cm :set_label Ar string
962 replaces the button text with
965 .Qq Ar name Ns Cm \&:1
967 .Qq Ar name Ns Cm \&:0
971 .Bl -tag -width "commands "
973 .Qq Ar name Ns Cm :set_value Ar x
974 moves the slider to value
977 .Qq Ar name Ns Cm \&:value Ar floating_point_text
979 .Ss GtkScrolledWindow
980 .Bl -tag -width "commands "
982 .Qq Ar name Ns Cm :hscroll Ar position
984 .Qq Ar name Ns Cm :vscroll Ar position
987 to the left or top edge of the
988 .Cm GtkScrolledWindow ,
991 .Qq Ar name Ns Cm :hscroll_to_range Ar pos_0 pos_1
993 .Qq Ar name Ns Cm :vscroll_to_range Ar pos_0 pos_1
994 scroll, if necessary, the range between
999 .Cm GtkScrolledWindow .
1000 If the range is greater than the window, the initial part of the range
1007 may be unsupported by Glade, but its definition can be inserted
1008 manually into the GtkBuilder
1011 .Bd -literal -offset indent
1013 <object class="GtkSocket" id="socket1">
1014 <property name="visible">True</property>
1015 <property name="can_focus">True</property>
1018 <property name="expand">True</property>
1019 <property name="fill">True</property>
1020 <property name="position">1</property>
1024 .Bl -tag -width "commands "
1026 .Qq Ar name Ns Cm :id
1027 requests a feedback message containing the socket
1030 .Qq Ar name Ns Cm :id Ar xid
1031 can be used by another process to XEmbed its widgets into the
1034 .Qq Ar name Ns Cm :plug-added ,
1039 Notification that the other process has inserted its widgets into or
1040 removed them from the
1044 .Bl -tag -width "commands "
1046 .Qq Ar name Ns Cm :set_text Ar string
1047 sets the selected value to
1050 .Qq Ar name Ns Cm \&:text Ar text
1053 .Bl -tag -width "commands "
1055 .Qq Ar name Ns Cm :start
1057 .Qq Ar name Ns Cm :stop
1058 start and stop the spinner.
1065 parameter is an arbitrary non-whitespace string.
1066 .Bl -tag -width "commands "
1068 .Qq Ar name Ns Cm :push_id Ar id string ,
1069 .Qq Ar name Ns Cm :push Ar string
1076 respectively, and display it in the statusbar.
1078 .Qq Ar name Ns Cm :pop_id Ar id ,
1079 .Qq Ar name Ns Cm :pop
1080 remove the latest entry associated with context id
1084 respectively, from the statusbar.
1086 .Qq Ar name Ns Cm :remove_all_id Ar id ,
1087 .Qq Ar name Ns Cm :remove_all
1088 remove the entries associated with context id
1092 respectively, from the statusbar.
1097 .Bl -tag -width "commands "
1099 .Qq Ar name Ns Cm :set_active Brq Cm 0 | 1
1100 turns the switch off
1105 .Qq Ar name Ns Cm \&:1
1107 .Qq Ar name Ns Cm \&:0
1111 There should be a dedicated
1113 for sending (parts of) the text.
1121 .Ar foo Ns Cm _send_text
1122 will send the content of the
1127 .Ar foo Ns Cm _send_selection
1128 will send the highlighted part the
1130 .Bl -tag -width "commands "
1132 .Qq Ar name Ns Cm :set_text Ar string
1133 replaces the user-editable text with (potentially empty)
1136 .Qq Ar name Ns Cm :delete
1139 .Qq Ar name Ns Cm :insert_at_cursor Ar string
1144 .Qq Ar name Ns Cm :place_cursor Brq Ar position | Cm end
1145 places the text cursor at
1147 or at the end of the text.
1149 .Qq Ar name Ns Cm :place_cursor_at_line Ar line
1150 places the text cursor at the beginning of
1153 .Qq Ar name Ns Cm :scroll_to_cursor
1154 scrolls to the cursor position if necessary.
1156 .Qq Ar name Ns Cm :save Ar file
1161 command containing the text.
1163 .Qq Ar button_name Ns Cm :text Ar text ,
1165 being the name of the
1171 and backslashes are replaced by
1175 .Bl -tag -width "commands "
1177 .Qq Ar name Ns Cm :set_active Brq Cm 0 | 1
1178 switches the button off
1183 .Qq Ar name Ns Cm :set_label Ar string
1184 replaces the button text with
1187 .Qq Ar name Ns Cm \&:1
1189 .Qq Ar name Ns Cm \&:0
1194 can deal with columns of type
1195 .Cm gboolean , gint , guint , glong , gulong , gint64 , guint64 , gfloat , gdouble ,
1202 refer to the underlying model
1205 .Cm GtkTreeStore ) .
1207 is a sequence of one or more colon-separated integers, e.g.
1211 .Bl -tag -width "commands "
1213 .Qq Ar name Ns Cm :set Ar row column data
1214 replaces the content at
1218 (which should be compatible with the type of
1220 If necessary, new tree nodes are created to obtain the minimal tree
1221 structure needed to support
1224 .Qq Ar name Ns Cm :insert_row Brq Ar row Bo Cm as_child Bc | Cm end
1225 inserts a new, empty row; either as a sibling of
1231 or at the end of the list, respectively.
1233 .Qq Ar name Ns Cm :move_row Ar origin Brq Ar destination | Cm end
1236 within its current level to
1240 .Qq Ar name Ns Cm :remove_row Ar row
1241 removes the row at position
1244 .Qq Ar name Ns Cm :clear
1247 .Qq Ar name Ns Cm :expand Ar row
1248 expands one level of the subtree below
1251 .Qq Ar name Ns Cm :expand_all Bq Ar row
1252 expands the subtree below
1256 .Qq Ar name Ns Cm :collapse Bq Ar row
1257 collapses the subtree below
1261 .Qq Ar name Ns Cm :set_cursor Bq Ar row
1266 .Qq Ar name Ns Cm :scroll Ar row column
1271 .Qq Ar name Ns Cm :save Ar file
1272 stores the content of the underlying model as a sequence of
1277 .Qq Ar name Ns Cm \&:clicked
1279 .Qq Ar name Ns Cm \&: Ns Ar column_type row column value ,
1280 one message per cell in the underlying model for each selected row; or
1282 .Qq Ar name Ns Cm \&: Ns Ar column_type row column new_value ,
1287 .Ss GtkTreeViewColumn
1288 .Bl -tag -width "commands "
1292 .Qq Ar name Ns Cm \&:clicked
1295 .Bl -tag -width "commands "
1297 .Qq Ar name Ns Cm :set_title Ar string
1298 replaces the text in the title bar with
1301 .Qq Ar name Ns Cm :resize Bq Ar width height
1302 changes the window size to
1306 pixels if specified, or to the default size.
1308 .Qq Ar name Ns Cm :move Ar x y
1309 moves the window to position
1312 .Qq Ar name Ns Cm :fullscreen
1314 .Qq Ar name Ns Cm :unfullscreen
1315 switch fullscreen mode on and off.
1317 .Qq Ar name Ns Cm \&:closed
1320 was closed by the window manager.
1325 .Ss Discovering Pipeglade Interactively
1326 Suppose the interface in
1329 .Sx GtkLabel Ql label1
1331 .Sx GtkButton Ql button1 .
1337 .Sx GtkButton , Ql button1:clicked
1338 will be reported on the terminal.
1341 .Dl label1:set_text Button Label
1343 will change the text shown on the label into
1345 .Ss One-Shot File Dialog
1346 Suppose the interface in
1347 .Pa ./simple_open.ui
1349 .Sx GtkFileChooserDialog
1357 .Dl pipeglade -u simple_open.ui
1359 will open the dialog; pressing
1361 will close it after sending the selected filename to
1363 .Ss One-Shot User Notification
1365 .Pa ./simple_dialog.ui
1367 .Sx GtkLabel Ql label1 ,
1369 .Bd -literal -offset indent
1370 pipeglade -u simple_dialog.ui <<< \e
1371 "label1:set_text NOW READ THIS!"
1373 will set the label text accordingly and wait for user input.
1374 .Ss Continuous Input
1375 The following shell command displays a running clock:
1376 .Bd -literal -offset indent
1378 echo "label1:set_text `date`";
1380 done | pipeglade -u simple_dialog.ui
1382 .Ss Continuous Input and Output
1383 The following shell script fragment sets up
1385 for continuous communication with another program,
1387 .Bd -literal -offset indent
1388 pipeglade -i in.fifo -o out.fifo &
1389 # wait for in.fifo and out.fifo to appear
1390 while test ! \e( -e in.fifo -a -e out.fifo \e); do :; done
1391 main_prog <out.fifo >in.fifo
1404 .An Bert Burgemeister
1405 .Aq Mt trebbu@googlemail.com .
1407 Due to what appears to be a bug in cairo v1.14.0,
1409 used with this library version occasionally crashes on