gdk3 2.2.5-x64-mingw32 → 3.0.0-x64-mingw32

Sign up to get free protection for your applications and to get access to all the features.
Files changed (796) hide show
  1. checksums.yaml +4 -4
  2. data/Rakefile +18 -3
  3. data/lib/gdk3.rb +3 -0
  4. data/lib/gdk3/cursor.rb +31 -0
  5. data/lib/gdk3/deprecated.rb +41 -11
  6. data/lib/gdk3/loader.rb +39 -9
  7. data/lib/gdk3/rectangle.rb +17 -1
  8. data/lib/gdk3/rgba.rb +26 -5
  9. data/lib/gdk3/screen.rb +40 -0
  10. data/test/fixture/ruby-gnome2-logo.png +0 -0
  11. data/test/gdk-test-utils.rb +13 -0
  12. data/test/test-gdk-atom.rb +24 -0
  13. data/test/test-gdk-cursor.rb +44 -0
  14. data/test/test-gdk-event-mask.rb +21 -0
  15. data/test/test-gdk-keyval.rb +8 -4
  16. data/test/test-gdk-rectangle.rb +20 -1
  17. data/test/test-gdk-rgba.rb +65 -0
  18. data/test/test-gdk-selection.rb +29 -0
  19. data/vendor/local/bin/gtk-encode-symbolic-svg.exe +0 -0
  20. data/vendor/local/bin/gtk-launch.exe +0 -0
  21. data/vendor/local/bin/gtk-query-immodules-3.0.exe +0 -0
  22. data/vendor/local/bin/gtk-update-icon-cache.exe +0 -0
  23. data/vendor/local/bin/gtk3-demo-application.exe +0 -0
  24. data/vendor/local/bin/gtk3-demo.exe +0 -0
  25. data/vendor/local/bin/gtk3-icon-browser.exe +0 -0
  26. data/vendor/local/bin/gtk3-widget-factory.exe +0 -0
  27. data/vendor/local/bin/libepoxy-0.dll +0 -0
  28. data/vendor/local/bin/libgailutil-3-0.dll +0 -0
  29. data/vendor/local/bin/libgdk-3-0.dll +0 -0
  30. data/vendor/local/bin/libgtk-3-0.dll +0 -0
  31. data/vendor/local/bin/libgtkreftestprivate-0.dll +0 -0
  32. data/vendor/local/include/epoxy/gl.h +104 -0
  33. data/vendor/local/include/epoxy/gl_generated.h +18690 -0
  34. data/vendor/local/include/epoxy/wgl.h +64 -0
  35. data/vendor/local/include/epoxy/wgl_generated.h +896 -0
  36. data/vendor/local/include/gtk-3.0/gdk/deprecated/gdkcolor.h +7 -7
  37. data/vendor/local/include/gtk-3.0/gdk/gdk-autocleanup.h +42 -0
  38. data/vendor/local/include/gtk-3.0/gdk/gdk.h +3 -0
  39. data/vendor/local/include/gtk-3.0/gdk/gdkcairo.h +11 -0
  40. data/vendor/local/include/gtk-3.0/gdk/gdkcursor.h +1 -1
  41. data/vendor/local/include/gtk-3.0/gdk/gdkdevice.h +6 -1
  42. data/vendor/local/include/gtk-3.0/gdk/gdkdisplay.h +2 -2
  43. data/vendor/local/include/gtk-3.0/gdk/gdkenumtypes.h +2 -0
  44. data/vendor/local/include/gtk-3.0/gdk/gdkglcontext.h +87 -0
  45. data/vendor/local/include/gtk-3.0/gdk/gdkmain.h +2 -2
  46. data/vendor/local/include/gtk-3.0/gdk/gdktypes.h +27 -2
  47. data/vendor/local/include/gtk-3.0/gdk/gdkversionmacros.h +25 -1
  48. data/vendor/local/include/gtk-3.0/gdk/gdkwin32.h +1 -0
  49. data/vendor/local/include/gtk-3.0/gdk/gdkwindow.h +12 -5
  50. data/vendor/local/include/gtk-3.0/gdk/win32/gdkwin32glcontext.h +49 -0
  51. data/vendor/local/include/gtk-3.0/gtk/a11y/gtk-a11y-autocleanups.h +75 -0
  52. data/vendor/local/include/gtk-3.0/gtk/a11y/gtkcellaccessible.h +2 -1
  53. data/vendor/local/include/gtk-3.0/gtk/deprecated/gtkgradient.h +1 -1
  54. data/vendor/local/include/gtk-3.0/gtk/deprecated/gtkstock.h +4 -4
  55. data/vendor/local/include/gtk-3.0/gtk/{gtkstyleproperties.h → deprecated/gtkstyleproperties.h} +11 -11
  56. data/vendor/local/include/gtk-3.0/gtk/deprecated/gtksymboliccolor.h +1 -1
  57. data/vendor/local/include/gtk-3.0/gtk/deprecated/gtkthemingengine.h +1 -1
  58. data/vendor/local/include/gtk-3.0/gtk/gtk-a11y.h +2 -0
  59. data/vendor/local/include/gtk-3.0/gtk/gtk-autocleanups.h +222 -0
  60. data/vendor/local/include/gtk-3.0/gtk/gtk.h +8 -1
  61. data/vendor/local/include/gtk-3.0/gtk/gtkapplicationwindow.h +4 -0
  62. data/vendor/local/include/gtk-3.0/gtk/gtkclipboard.h +3 -0
  63. data/vendor/local/include/gtk-3.0/gtk/gtkcssprovider.h +4 -0
  64. data/vendor/local/include/gtk-3.0/gtk/gtkdnd.h +3 -0
  65. data/vendor/local/include/gtk-3.0/gtk/gtkentry.h +47 -0
  66. data/vendor/local/include/gtk-3.0/gtk/gtkenums.h +1 -1
  67. data/vendor/local/include/gtk-3.0/gtk/gtkgesturezoom.h +1 -1
  68. data/vendor/local/include/gtk-3.0/gtk/gtkglarea.h +136 -0
  69. data/vendor/local/include/gtk-3.0/gtk/gtklabel.h +13 -0
  70. data/vendor/local/include/gtk-3.0/gtk/gtklistbox.h +21 -0
  71. data/vendor/local/include/gtk-3.0/gtk/gtkmenu.h +2 -2
  72. data/vendor/local/include/gtk-3.0/gtk/gtkmodelbutton.h +61 -0
  73. data/vendor/local/include/gtk-3.0/gtk/gtknotebook.h +3 -0
  74. data/vendor/local/include/gtk-3.0/gtk/gtkpaned.h +6 -0
  75. data/vendor/local/include/gtk-3.0/gtk/gtkpapersize.h +6 -0
  76. data/vendor/local/include/gtk-3.0/gtk/gtkpopover.h +7 -1
  77. data/vendor/local/include/gtk-3.0/gtk/gtkpopovermenu.h +62 -0
  78. data/vendor/local/include/gtk-3.0/gtk/gtkrange.h +2 -2
  79. data/vendor/local/include/gtk-3.0/gtk/gtkrender.h +155 -0
  80. data/vendor/local/include/gtk-3.0/gtk/gtkscrollable.h +8 -0
  81. data/vendor/local/include/gtk-3.0/gtk/gtkscrolledwindow.h +16 -8
  82. data/vendor/local/include/gtk-3.0/gtk/gtksearchentry.h +7 -5
  83. data/vendor/local/include/gtk-3.0/gtk/gtksettings.h +6 -6
  84. data/vendor/local/include/gtk-3.0/gtk/gtkstack.h +14 -0
  85. data/vendor/local/include/gtk-3.0/gtk/gtkstacksidebar.h +73 -0
  86. data/vendor/local/include/gtk-3.0/gtk/gtkstackswitcher.h +4 -0
  87. data/vendor/local/include/gtk-3.0/gtk/gtkstylecontext.h +75 -121
  88. data/vendor/local/include/gtk-3.0/gtk/gtkstyleprovider.h +1 -1
  89. data/vendor/local/include/gtk-3.0/gtk/gtkswitch.h +1 -0
  90. data/vendor/local/include/gtk-3.0/gtk/gtktextattributes.h +12 -18
  91. data/vendor/local/include/gtk-3.0/gtk/gtktextbuffer.h +62 -38
  92. data/vendor/local/include/gtk-3.0/gtk/gtktextview.h +28 -1
  93. data/vendor/local/include/gtk-3.0/gtk/gtktogglebutton.h +0 -3
  94. data/vendor/local/include/gtk-3.0/gtk/gtktooltip.h +0 -12
  95. data/vendor/local/include/gtk-3.0/gtk/gtktypebuiltins.h +6 -0
  96. data/vendor/local/include/gtk-3.0/gtk/gtkversion.h +2 -2
  97. data/vendor/local/include/gtk-3.0/gtk/gtkwidget.h +12 -5
  98. data/vendor/local/include/gtk-3.0/gtk/gtkwindow.h +2 -0
  99. data/vendor/local/include/gtk-3.0/gtk/gtkx-autocleanups.h +31 -0
  100. data/vendor/local/include/gtk-3.0/gtk/gtkx.h +2 -0
  101. data/vendor/local/lib/gdk-win32-3.0.def +25 -0
  102. data/vendor/local/lib/girepository-1.0/Gdk-3.0.typelib +0 -0
  103. data/vendor/local/lib/girepository-1.0/Gtk-3.0.typelib +0 -0
  104. data/vendor/local/lib/gtk-3.0/3.0.0/immodules.cache +1 -1
  105. data/vendor/local/lib/gtk-win32-3.0.def +7 -7
  106. data/vendor/local/lib/libepoxy.dll.a +0 -0
  107. data/vendor/local/lib/libepoxy.la +41 -0
  108. data/vendor/local/lib/libgailutil-3.dll.a +0 -0
  109. data/vendor/local/lib/libgailutil-3.la +3 -3
  110. data/vendor/local/lib/libgdk-3.dll.a +0 -0
  111. data/vendor/local/lib/libgdk-3.la +5 -5
  112. data/vendor/local/lib/libgtk-3.dll.a +0 -0
  113. data/vendor/local/lib/libgtk-3.la +5 -5
  114. data/vendor/local/lib/libgtkreftestprivate.dll.a +0 -0
  115. data/vendor/local/lib/libgtkreftestprivate.la +6 -6
  116. data/vendor/local/lib/pkgconfig/epoxy.pc +11 -0
  117. data/vendor/local/lib/pkgconfig/gail-3.0.pc +1 -1
  118. data/vendor/local/lib/pkgconfig/gdk-3.0.pc +3 -3
  119. data/vendor/local/lib/pkgconfig/gdk-win32-3.0.pc +3 -3
  120. data/vendor/local/lib/pkgconfig/gtk+-3.0.pc +3 -3
  121. data/vendor/local/lib/pkgconfig/gtk+-win32-3.0.pc +3 -3
  122. data/vendor/local/share/gir-1.0/Gdk-3.0.gir +693 -43
  123. data/vendor/local/share/gir-1.0/Gtk-3.0.gir +2826 -338
  124. data/vendor/local/share/gtk-doc/html/gail-libgail-util3/gail-libgail-util3-GailMisc.html +17 -23
  125. data/vendor/local/share/gtk-doc/html/gail-libgail-util3/gail-libgail-util3-GailTextUtil.html +3 -7
  126. data/vendor/local/share/gtk-doc/html/gail-libgail-util3/gail-libgail-util3.devhelp2 +3 -1
  127. data/vendor/local/share/gtk-doc/html/gail-libgail-util3/index.html +4 -5
  128. data/vendor/local/share/gtk-doc/html/gail-libgail-util3/index.sgml +3 -0
  129. data/vendor/local/share/gtk-doc/html/gail-libgail-util3/libgail-util-main.html +4 -5
  130. data/vendor/local/share/gtk-doc/html/gail-libgail-util3/style.css +9 -6
  131. data/vendor/local/share/gtk-doc/html/gdk3/GdkDevice.html +243 -99
  132. data/vendor/local/share/gtk-doc/html/gdk3/GdkDeviceManager.html +13 -14
  133. data/vendor/local/share/gtk-doc/html/gdk3/GdkDisplay.html +54 -65
  134. data/vendor/local/share/gtk-doc/html/gdk3/GdkDisplayManager.html +11 -12
  135. data/vendor/local/share/gtk-doc/html/gdk3/GdkFrameClock.html +27 -31
  136. data/vendor/local/share/gtk-doc/html/gdk3/GdkGLContext.html +768 -0
  137. data/vendor/local/share/gtk-doc/html/gdk3/GdkScreen.html +45 -62
  138. data/vendor/local/share/gtk-doc/html/gdk3/annotation-glossary.html +14 -6
  139. data/vendor/local/share/gtk-doc/html/gdk3/api-index-3-0.html +3 -4
  140. data/vendor/local/share/gtk-doc/html/gdk3/api-index-3-10.html +3 -4
  141. data/vendor/local/share/gtk-doc/html/gdk3/api-index-3-12.html +3 -4
  142. data/vendor/local/share/gtk-doc/html/gdk3/api-index-3-14.html +5 -6
  143. data/vendor/local/share/gtk-doc/html/gdk3/api-index-3-16.html +146 -0
  144. data/vendor/local/share/gtk-doc/html/gdk3/api-index-3-2.html +3 -4
  145. data/vendor/local/share/gtk-doc/html/gdk3/api-index-3-4.html +3 -4
  146. data/vendor/local/share/gtk-doc/html/gdk3/api-index-3-6.html +3 -4
  147. data/vendor/local/share/gtk-doc/html/gdk3/api-index-3-8.html +3 -4
  148. data/vendor/local/share/gtk-doc/html/gdk3/api-index-deprecated.html +25 -6
  149. data/vendor/local/share/gtk-doc/html/gdk3/api-index-full.html +113 -6
  150. data/vendor/local/share/gtk-doc/html/gdk3/gdk3-Application-launching.html +18 -20
  151. data/vendor/local/share/gtk-doc/html/gdk3/gdk3-Cairo-Interaction.html +143 -44
  152. data/vendor/local/share/gtk-doc/html/gdk3/gdk3-Colors.html +4 -10
  153. data/vendor/local/share/gtk-doc/html/gdk3/gdk3-Cursors.html +23 -25
  154. data/vendor/local/share/gtk-doc/html/gdk3/gdk3-Drag-and-Drop.html +49 -60
  155. data/vendor/local/share/gtk-doc/html/gdk3/gdk3-Event-Structures.html +34 -34
  156. data/vendor/local/share/gtk-doc/html/gdk3/gdk3-Events.html +96 -116
  157. data/vendor/local/share/gtk-doc/html/gdk3/gdk3-GdkFrameTimings.html +12 -20
  158. data/vendor/local/share/gtk-doc/html/gdk3/gdk3-General.html +29 -32
  159. data/vendor/local/share/gtk-doc/html/gdk3/gdk3-Keyboard-Handling.html +72 -91
  160. data/vendor/local/share/gtk-doc/html/gdk3/gdk3-Pango-Interaction.html +43 -44
  161. data/vendor/local/share/gtk-doc/html/gdk3/gdk3-Pixbufs.html +10 -11
  162. data/vendor/local/share/gtk-doc/html/gdk3/gdk3-Points-Rectangles-and-Regions.html +3 -5
  163. data/vendor/local/share/gtk-doc/html/gdk3/gdk3-Properties-and-Atoms.html +23 -26
  164. data/vendor/local/share/gtk-doc/html/gdk3/gdk3-RGBA-Colors.html +9 -15
  165. data/vendor/local/share/gtk-doc/html/gdk3/gdk3-Selections.html +20 -23
  166. data/vendor/local/share/gtk-doc/html/gdk3/gdk3-Testing.html +11 -14
  167. data/vendor/local/share/gtk-doc/html/gdk3/gdk3-Threads.html +30 -30
  168. data/vendor/local/share/gtk-doc/html/gdk3/gdk3-Visuals.html +12 -20
  169. data/vendor/local/share/gtk-doc/html/gdk3/gdk3-Wayland-Interaction.html +33 -34
  170. data/vendor/local/share/gtk-doc/html/gdk3/gdk3-Windows.html +387 -291
  171. data/vendor/local/share/gtk-doc/html/gdk3/gdk3-X-Window-System-Interaction.html +208 -193
  172. data/vendor/local/share/gtk-doc/html/gdk3/gdk3.devhelp2 +402 -10
  173. data/vendor/local/share/gtk-doc/html/gdk3/index.html +7 -4
  174. data/vendor/local/share/gtk-doc/html/gdk3/index.sgml +408 -0
  175. data/vendor/local/share/gtk-doc/html/gdk3/reference.html +6 -4
  176. data/vendor/local/share/gtk-doc/html/gdk3/rn02.html +3 -4
  177. data/vendor/local/share/gtk-doc/html/gdk3/style.css +9 -6
  178. data/vendor/local/share/gtk-doc/html/gtk3/AbstractObjects.html +3 -4
  179. data/vendor/local/share/gtk-doc/html/gtk3/Application.html +3 -4
  180. data/vendor/local/share/gtk-doc/html/gtk3/ApplicationChoosing.html +3 -4
  181. data/vendor/local/share/gtk-doc/html/gtk3/Builder.html +3 -4
  182. data/vendor/local/share/gtk-doc/html/gtk3/ButtonWidgets.html +6 -4
  183. data/vendor/local/share/gtk-doc/html/gtk3/DeprecatedObjects.html +3 -4
  184. data/vendor/local/share/gtk-doc/html/gtk3/DisplayWidgets.html +3 -4
  185. data/vendor/local/share/gtk-doc/html/gtk3/Gestures.html +3 -4
  186. data/vendor/local/share/gtk-doc/html/gtk3/GtkAboutDialog.html +61 -75
  187. data/vendor/local/share/gtk-doc/html/gtk3/GtkAccelLabel.html +6 -10
  188. data/vendor/local/share/gtk-doc/html/gtk3/GtkAccessible.html +9 -10
  189. data/vendor/local/share/gtk-doc/html/gtk3/GtkAction.html +52 -69
  190. data/vendor/local/share/gtk-doc/html/gtk3/GtkActionBar.html +18 -20
  191. data/vendor/local/share/gtk-doc/html/gtk3/GtkActionGroup.html +41 -42
  192. data/vendor/local/share/gtk-doc/html/gtk3/GtkActionable.html +17 -19
  193. data/vendor/local/share/gtk-doc/html/gtk3/GtkActivatable.html +14 -16
  194. data/vendor/local/share/gtk-doc/html/gtk3/GtkAdjustment.html +25 -34
  195. data/vendor/local/share/gtk-doc/html/gtk3/GtkAlignment.html +49 -15
  196. data/vendor/local/share/gtk-doc/html/gtk3/GtkAppChooser.html +7 -9
  197. data/vendor/local/share/gtk-doc/html/gtk3/GtkAppChooserButton.html +14 -19
  198. data/vendor/local/share/gtk-doc/html/gtk3/GtkAppChooserDialog.html +6 -10
  199. data/vendor/local/share/gtk-doc/html/gtk3/GtkAppChooserWidget.html +21 -29
  200. data/vendor/local/share/gtk-doc/html/gtk3/GtkApplication.html +47 -47
  201. data/vendor/local/share/gtk-doc/html/gtk3/GtkApplicationWindow.html +13 -19
  202. data/vendor/local/share/gtk-doc/html/gtk3/GtkArrow.html +4 -7
  203. data/vendor/local/share/gtk-doc/html/gtk3/GtkAspectFrame.html +7 -9
  204. data/vendor/local/share/gtk-doc/html/gtk3/GtkAssistant.html +59 -70
  205. data/vendor/local/share/gtk-doc/html/gtk3/GtkBin.html +4 -4
  206. data/vendor/local/share/gtk-doc/html/gtk3/GtkBox.html +8 -13
  207. data/vendor/local/share/gtk-doc/html/gtk3/GtkBuildable.html +15 -18
  208. data/vendor/local/share/gtk-doc/html/gtk3/GtkBuilder.html +62 -78
  209. data/vendor/local/share/gtk-doc/html/gtk3/GtkButton.html +35 -47
  210. data/vendor/local/share/gtk-doc/html/gtk3/GtkButtonBox.html +21 -26
  211. data/vendor/local/share/gtk-doc/html/gtk3/GtkCalendar.html +33 -40
  212. data/vendor/local/share/gtk-doc/html/gtk3/GtkCellArea.html +156 -118
  213. data/vendor/local/share/gtk-doc/html/gtk3/GtkCellAreaBox.html +13 -16
  214. data/vendor/local/share/gtk-doc/html/gtk3/GtkCellAreaContext.html +16 -17
  215. data/vendor/local/share/gtk-doc/html/gtk3/GtkCellEditable.html +9 -10
  216. data/vendor/local/share/gtk-doc/html/gtk3/GtkCellLayout.html +14 -15
  217. data/vendor/local/share/gtk-doc/html/gtk3/GtkCellRenderer.html +28 -35
  218. data/vendor/local/share/gtk-doc/html/gtk3/GtkCellRendererAccel.html +14 -16
  219. data/vendor/local/share/gtk-doc/html/gtk3/GtkCellRendererCombo.html +10 -12
  220. data/vendor/local/share/gtk-doc/html/gtk3/GtkCellRendererPixbuf.html +19 -16
  221. data/vendor/local/share/gtk-doc/html/gtk3/GtkCellRendererProgress.html +9 -11
  222. data/vendor/local/share/gtk-doc/html/gtk3/GtkCellRendererSpin.html +7 -9
  223. data/vendor/local/share/gtk-doc/html/gtk3/GtkCellRendererSpinner.html +6 -8
  224. data/vendor/local/share/gtk-doc/html/gtk3/GtkCellRendererText.html +31 -33
  225. data/vendor/local/share/gtk-doc/html/gtk3/GtkCellRendererToggle.html +7 -12
  226. data/vendor/local/share/gtk-doc/html/gtk3/GtkCellView.html +22 -32
  227. data/vendor/local/share/gtk-doc/html/gtk3/GtkCheckButton.html +3 -7
  228. data/vendor/local/share/gtk-doc/html/gtk3/GtkCheckMenuItem.html +7 -14
  229. data/vendor/local/share/gtk-doc/html/gtk3/GtkColorButton.html +29 -34
  230. data/vendor/local/share/gtk-doc/html/gtk3/GtkColorChooser.html +14 -16
  231. data/vendor/local/share/gtk-doc/html/gtk3/GtkColorChooserDialog.html +4 -6
  232. data/vendor/local/share/gtk-doc/html/gtk3/GtkColorChooserWidget.html +6 -8
  233. data/vendor/local/share/gtk-doc/html/gtk3/GtkColorSelection.html +15 -24
  234. data/vendor/local/share/gtk-doc/html/gtk3/GtkColorSelectionDialog.html +4 -6
  235. data/vendor/local/share/gtk-doc/html/gtk3/GtkComboBox.html +78 -99
  236. data/vendor/local/share/gtk-doc/html/gtk3/GtkComboBoxText.html +14 -17
  237. data/vendor/local/share/gtk-doc/html/gtk3/GtkContainer.html +40 -28
  238. data/vendor/local/share/gtk-doc/html/gtk3/GtkCssProvider.html +87 -56
  239. data/vendor/local/share/gtk-doc/html/gtk3/GtkDialog.html +35 -37
  240. data/vendor/local/share/gtk-doc/html/gtk3/GtkDrawingArea.html +5 -7
  241. data/vendor/local/share/gtk-doc/html/gtk3/GtkEditable.html +16 -18
  242. data/vendor/local/share/gtk-doc/html/gtk3/GtkEntry.html +361 -200
  243. data/vendor/local/share/gtk-doc/html/gtk3/GtkEntryBuffer.html +23 -31
  244. data/vendor/local/share/gtk-doc/html/gtk3/GtkEntryCompletion.html +52 -67
  245. data/vendor/local/share/gtk-doc/html/gtk3/GtkEventBox.html +19 -23
  246. data/vendor/local/share/gtk-doc/html/gtk3/GtkEventController.html +11 -14
  247. data/vendor/local/share/gtk-doc/html/gtk3/GtkExpander.html +57 -67
  248. data/vendor/local/share/gtk-doc/html/gtk3/GtkFileChooser.html +81 -108
  249. data/vendor/local/share/gtk-doc/html/gtk3/GtkFileChooserButton.html +19 -25
  250. data/vendor/local/share/gtk-doc/html/gtk3/GtkFileChooserDialog.html +15 -17
  251. data/vendor/local/share/gtk-doc/html/gtk3/GtkFileChooserWidget.html +68 -44
  252. data/vendor/local/share/gtk-doc/html/gtk3/GtkFileFilter.html +12 -18
  253. data/vendor/local/share/gtk-doc/html/gtk3/GtkFixed.html +6 -8
  254. data/vendor/local/share/gtk-doc/html/gtk3/GtkFlowBox.html +55 -69
  255. data/vendor/local/share/gtk-doc/html/gtk3/GtkFontButton.html +28 -38
  256. data/vendor/local/share/gtk-doc/html/gtk3/GtkFontChooser.html +40 -44
  257. data/vendor/local/share/gtk-doc/html/gtk3/GtkFontChooserDialog.html +4 -6
  258. data/vendor/local/share/gtk-doc/html/gtk3/GtkFontChooserWidget.html +4 -6
  259. data/vendor/local/share/gtk-doc/html/gtk3/GtkFontSelection.html +20 -26
  260. data/vendor/local/share/gtk-doc/html/gtk3/GtkFontSelectionDialog.html +7 -12
  261. data/vendor/local/share/gtk-doc/html/gtk3/GtkFrame.html +3 -7
  262. data/vendor/local/share/gtk-doc/html/gtk3/GtkGLArea.html +1259 -0
  263. data/vendor/local/share/gtk-doc/html/gtk3/GtkGesture.html +42 -54
  264. data/vendor/local/share/gtk-doc/html/gtk3/GtkGestureDrag.html +15 -19
  265. data/vendor/local/share/gtk-doc/html/gtk3/GtkGestureLongPress.html +42 -17
  266. data/vendor/local/share/gtk-doc/html/gtk3/GtkGestureMultiPress.html +15 -18
  267. data/vendor/local/share/gtk-doc/html/gtk3/GtkGesturePan.html +11 -14
  268. data/vendor/local/share/gtk-doc/html/gtk3/GtkGestureRotate.html +8 -11
  269. data/vendor/local/share/gtk-doc/html/gtk3/GtkGestureSingle.html +15 -21
  270. data/vendor/local/share/gtk-doc/html/gtk3/GtkGestureSwipe.html +8 -11
  271. data/vendor/local/share/gtk-doc/html/gtk3/GtkGestureZoom.html +8 -11
  272. data/vendor/local/share/gtk-doc/html/gtk3/GtkGrid.html +13 -22
  273. data/vendor/local/share/gtk-doc/html/gtk3/GtkHBox.html +3 -5
  274. data/vendor/local/share/gtk-doc/html/gtk3/GtkHButtonBox.html +3 -5
  275. data/vendor/local/share/gtk-doc/html/gtk3/GtkHPaned.html +3 -5
  276. data/vendor/local/share/gtk-doc/html/gtk3/GtkHSV.html +15 -18
  277. data/vendor/local/share/gtk-doc/html/gtk3/GtkHScale.html +3 -6
  278. data/vendor/local/share/gtk-doc/html/gtk3/GtkHScrollbar.html +3 -5
  279. data/vendor/local/share/gtk-doc/html/gtk3/GtkHSeparator.html +3 -5
  280. data/vendor/local/share/gtk-doc/html/gtk3/GtkHandleBox.html +23 -29
  281. data/vendor/local/share/gtk-doc/html/gtk3/GtkHeaderBar.html +44 -51
  282. data/vendor/local/share/gtk-doc/html/gtk3/GtkIMContext.html +17 -23
  283. data/vendor/local/share/gtk-doc/html/gtk3/GtkIMContextSimple.html +6 -7
  284. data/vendor/local/share/gtk-doc/html/gtk3/GtkIMMulticontext.html +10 -13
  285. data/vendor/local/share/gtk-doc/html/gtk3/GtkIconTheme.html +89 -97
  286. data/vendor/local/share/gtk-doc/html/gtk3/GtkIconView.html +98 -127
  287. data/vendor/local/share/gtk-doc/html/gtk3/GtkImage.html +49 -62
  288. data/vendor/local/share/gtk-doc/html/gtk3/GtkImageMenuItem.html +131 -25
  289. data/vendor/local/share/gtk-doc/html/gtk3/GtkInfoBar.html +30 -35
  290. data/vendor/local/share/gtk-doc/html/gtk3/GtkInvisible.html +6 -9
  291. data/vendor/local/share/gtk-doc/html/gtk3/GtkLabel.html +334 -167
  292. data/vendor/local/share/gtk-doc/html/gtk3/GtkLayout.html +18 -20
  293. data/vendor/local/share/gtk-doc/html/gtk3/GtkLevelBar.html +31 -40
  294. data/vendor/local/share/gtk-doc/html/gtk3/GtkLinkButton.html +13 -17
  295. data/vendor/local/share/gtk-doc/html/gtk3/GtkListBox.html +209 -110
  296. data/vendor/local/share/gtk-doc/html/gtk3/GtkListStore.html +18 -20
  297. data/vendor/local/share/gtk-doc/html/gtk3/GtkLockButton.html +8 -10
  298. data/vendor/local/share/gtk-doc/html/gtk3/GtkMenu.html +27 -35
  299. data/vendor/local/share/gtk-doc/html/gtk3/GtkMenuBar.html +10 -15
  300. data/vendor/local/share/gtk-doc/html/gtk3/GtkMenuButton.html +22 -26
  301. data/vendor/local/share/gtk-doc/html/gtk3/GtkMenuItem.html +28 -37
  302. data/vendor/local/share/gtk-doc/html/gtk3/GtkMenuShell.html +29 -32
  303. data/vendor/local/share/gtk-doc/html/gtk3/GtkMenuToolButton.html +11 -14
  304. data/vendor/local/share/gtk-doc/html/gtk3/GtkMessageDialog.html +36 -40
  305. data/vendor/local/share/gtk-doc/html/gtk3/GtkMisc.html +33 -9
  306. data/vendor/local/share/gtk-doc/html/gtk3/GtkModelButton.html +393 -0
  307. data/vendor/local/share/gtk-doc/html/gtk3/GtkNotebook.html +174 -150
  308. data/vendor/local/share/gtk-doc/html/gtk3/GtkNumerableIcon.html +15 -19
  309. data/vendor/local/share/gtk-doc/html/gtk3/GtkOffscreenWindow.html +11 -13
  310. data/vendor/local/share/gtk-doc/html/gtk3/GtkOverlay.html +13 -16
  311. data/vendor/local/share/gtk-doc/html/gtk3/GtkPageSetup.html +28 -44
  312. data/vendor/local/share/gtk-doc/html/gtk3/GtkPageSetupUnixDialog.html +8 -10
  313. data/vendor/local/share/gtk-doc/html/gtk3/GtkPaned.html +144 -57
  314. data/vendor/local/share/gtk-doc/html/gtk3/GtkPaperSize.html +161 -76
  315. data/vendor/local/share/gtk-doc/html/gtk3/GtkPlacesSidebar.html +47 -56
  316. data/vendor/local/share/gtk-doc/html/gtk3/GtkPlug.html +11 -16
  317. data/vendor/local/share/gtk-doc/html/gtk3/GtkPopover.html +110 -26
  318. data/vendor/local/share/gtk-doc/html/gtk3/GtkPopoverMenu.html +359 -0
  319. data/vendor/local/share/gtk-doc/html/gtk3/GtkPrintContext.html +29 -35
  320. data/vendor/local/share/gtk-doc/html/gtk3/GtkPrintJob.html +36 -51
  321. data/vendor/local/share/gtk-doc/html/gtk3/GtkPrintSettings.html +79 -119
  322. data/vendor/local/share/gtk-doc/html/gtk3/GtkPrintUnixDialog.html +21 -30
  323. data/vendor/local/share/gtk-doc/html/gtk3/GtkPrinter.html +32 -53
  324. data/vendor/local/share/gtk-doc/html/gtk3/GtkProgressBar.html +23 -31
  325. data/vendor/local/share/gtk-doc/html/gtk3/GtkRadioAction.html +15 -18
  326. data/vendor/local/share/gtk-doc/html/gtk3/GtkRadioButton.html +18 -19
  327. data/vendor/local/share/gtk-doc/html/gtk3/GtkRadioMenuItem.html +29 -29
  328. data/vendor/local/share/gtk-doc/html/gtk3/GtkRadioToolButton.html +16 -17
  329. data/vendor/local/share/gtk-doc/html/gtk3/GtkRange.html +38 -51
  330. data/vendor/local/share/gtk-doc/html/gtk3/GtkRecentAction.html +7 -11
  331. data/vendor/local/share/gtk-doc/html/gtk3/GtkRecentChooser.html +53 -66
  332. data/vendor/local/share/gtk-doc/html/gtk3/GtkRecentChooserDialog.html +8 -11
  333. data/vendor/local/share/gtk-doc/html/gtk3/GtkRecentChooserMenu.html +8 -12
  334. data/vendor/local/share/gtk-doc/html/gtk3/GtkRecentChooserWidget.html +5 -8
  335. data/vendor/local/share/gtk-doc/html/gtk3/GtkRecentFilter.html +15 -21
  336. data/vendor/local/share/gtk-doc/html/gtk3/GtkRecentManager.html +113 -137
  337. data/vendor/local/share/gtk-doc/html/gtk3/GtkRevealer.html +11 -17
  338. data/vendor/local/share/gtk-doc/html/gtk3/GtkScale.html +21 -29
  339. data/vendor/local/share/gtk-doc/html/gtk3/GtkScaleButton.html +22 -25
  340. data/vendor/local/share/gtk-doc/html/gtk3/GtkScrollable.html +64 -19
  341. data/vendor/local/share/gtk-doc/html/gtk3/GtkScrollbar.html +4 -6
  342. data/vendor/local/share/gtk-doc/html/gtk3/GtkScrolledWindow.html +257 -48
  343. data/vendor/local/share/gtk-doc/html/gtk3/GtkSearchBar.html +10 -15
  344. data/vendor/local/share/gtk-doc/html/gtk3/GtkSearchEntry.html +206 -20
  345. data/vendor/local/share/gtk-doc/html/gtk3/GtkSeparator.html +4 -6
  346. data/vendor/local/share/gtk-doc/html/gtk3/GtkSeparatorMenuItem.html +3 -5
  347. data/vendor/local/share/gtk-doc/html/gtk3/GtkSeparatorToolItem.html +6 -9
  348. data/vendor/local/share/gtk-doc/html/gtk3/GtkSettings.html +70 -52
  349. data/vendor/local/share/gtk-doc/html/gtk3/GtkSizeGroup.html +22 -26
  350. data/vendor/local/share/gtk-doc/html/gtk3/GtkSocket.html +8 -12
  351. data/vendor/local/share/gtk-doc/html/gtk3/GtkSpinButton.html +16 -28
  352. data/vendor/local/share/gtk-doc/html/gtk3/GtkSpinner.html +6 -8
  353. data/vendor/local/share/gtk-doc/html/gtk3/GtkStack.html +224 -37
  354. data/vendor/local/share/gtk-doc/html/gtk3/GtkStackSidebar.html +248 -0
  355. data/vendor/local/share/gtk-doc/html/gtk3/GtkStackSwitcher.html +8 -10
  356. data/vendor/local/share/gtk-doc/html/gtk3/GtkStatusIcon.html +81 -103
  357. data/vendor/local/share/gtk-doc/html/gtk3/GtkStatusbar.html +9 -13
  358. data/vendor/local/share/gtk-doc/html/gtk3/GtkStyle.html +24 -29
  359. data/vendor/local/share/gtk-doc/html/gtk3/GtkStyleContext.html +250 -125
  360. data/vendor/local/share/gtk-doc/html/gtk3/GtkStyleProvider.html +7 -9
  361. data/vendor/local/share/gtk-doc/html/gtk3/GtkSwitch.html +16 -21
  362. data/vendor/local/share/gtk-doc/html/gtk3/GtkTable.html +4 -11
  363. data/vendor/local/share/gtk-doc/html/gtk3/GtkTearoffMenuItem.html +3 -5
  364. data/vendor/local/share/gtk-doc/html/gtk3/GtkTextBuffer.html +353 -168
  365. data/vendor/local/share/gtk-doc/html/gtk3/GtkTextIter.html +25 -96
  366. data/vendor/local/share/gtk-doc/html/gtk3/GtkTextMark.html +4 -10
  367. data/vendor/local/share/gtk-doc/html/gtk3/GtkTextTag.html +166 -54
  368. data/vendor/local/share/gtk-doc/html/gtk3/GtkTextTagTable.html +9 -13
  369. data/vendor/local/share/gtk-doc/html/gtk3/GtkTextView.html +409 -184
  370. data/vendor/local/share/gtk-doc/html/gtk3/GtkThemingEngine.html +34 -41
  371. data/vendor/local/share/gtk-doc/html/gtk3/GtkToggleAction.html +12 -16
  372. data/vendor/local/share/gtk-doc/html/gtk3/GtkToggleButton.html +5 -12
  373. data/vendor/local/share/gtk-doc/html/gtk3/GtkToggleToolButton.html +10 -14
  374. data/vendor/local/share/gtk-doc/html/gtk3/GtkToolButton.html +20 -27
  375. data/vendor/local/share/gtk-doc/html/gtk3/GtkToolItem.html +38 -53
  376. data/vendor/local/share/gtk-doc/html/gtk3/GtkToolItemGroup.html +27 -35
  377. data/vendor/local/share/gtk-doc/html/gtk3/GtkToolPalette.html +33 -39
  378. data/vendor/local/share/gtk-doc/html/gtk3/GtkToolShell.html +15 -22
  379. data/vendor/local/share/gtk-doc/html/gtk3/GtkToolbar.html +22 -33
  380. data/vendor/local/share/gtk-doc/html/gtk3/GtkTooltip.html +25 -26
  381. data/vendor/local/share/gtk-doc/html/gtk3/GtkTreeModel.html +110 -68
  382. data/vendor/local/share/gtk-doc/html/gtk3/GtkTreeModelFilter.html +14 -19
  383. data/vendor/local/share/gtk-doc/html/gtk3/GtkTreeModelSort.html +6 -11
  384. data/vendor/local/share/gtk-doc/html/gtk3/GtkTreeSelection.html +16 -23
  385. data/vendor/local/share/gtk-doc/html/gtk3/GtkTreeSortable.html +6 -10
  386. data/vendor/local/share/gtk-doc/html/gtk3/GtkTreeStore.html +21 -23
  387. data/vendor/local/share/gtk-doc/html/gtk3/GtkTreeView.html +95 -131
  388. data/vendor/local/share/gtk-doc/html/gtk3/GtkTreeViewColumn.html +15 -38
  389. data/vendor/local/share/gtk-doc/html/gtk3/GtkUIManager.html +40 -48
  390. data/vendor/local/share/gtk-doc/html/gtk3/GtkVBox.html +4 -6
  391. data/vendor/local/share/gtk-doc/html/gtk3/GtkVButtonBox.html +3 -5
  392. data/vendor/local/share/gtk-doc/html/gtk3/GtkVPaned.html +3 -5
  393. data/vendor/local/share/gtk-doc/html/gtk3/GtkVScale.html +3 -6
  394. data/vendor/local/share/gtk-doc/html/gtk3/GtkVScrollbar.html +3 -5
  395. data/vendor/local/share/gtk-doc/html/gtk3/GtkVSeparator.html +3 -5
  396. data/vendor/local/share/gtk-doc/html/gtk3/GtkViewport.html +21 -24
  397. data/vendor/local/share/gtk-doc/html/gtk3/GtkVolumeButton.html +5 -7
  398. data/vendor/local/share/gtk-doc/html/gtk3/GtkWidget.html +622 -611
  399. data/vendor/local/share/gtk-doc/html/gtk3/GtkWindow.html +145 -146
  400. data/vendor/local/share/gtk-doc/html/gtk3/GtkWindowGroup.html +6 -8
  401. data/vendor/local/share/gtk-doc/html/gtk3/LayoutContainers.html +6 -4
  402. data/vendor/local/share/gtk-doc/html/gtk3/MenusAndCombos.html +6 -4
  403. data/vendor/local/share/gtk-doc/html/gtk3/MiscObjects.html +6 -4
  404. data/vendor/local/share/gtk-doc/html/gtk3/NumericEntry.html +5 -6
  405. data/vendor/local/share/gtk-doc/html/gtk3/Ornaments.html +3 -4
  406. data/vendor/local/share/gtk-doc/html/gtk3/PlugSocket.html +3 -4
  407. data/vendor/local/share/gtk-doc/html/gtk3/Printing.html +3 -4
  408. data/vendor/local/share/gtk-doc/html/gtk3/RecentDocuments.html +3 -4
  409. data/vendor/local/share/gtk-doc/html/gtk3/ScrollingWidgets.html +3 -4
  410. data/vendor/local/share/gtk-doc/html/gtk3/SelectorWidgets.html +5 -6
  411. data/vendor/local/share/gtk-doc/html/gtk3/TextWidget.html +6 -7
  412. data/vendor/local/share/gtk-doc/html/gtk3/TextWidgetObjects.html +3 -4
  413. data/vendor/local/share/gtk-doc/html/gtk3/TreeWidget.html +4 -5
  414. data/vendor/local/share/gtk-doc/html/gtk3/TreeWidgetObjects.html +3 -4
  415. data/vendor/local/share/gtk-doc/html/gtk3/WindowWidgets.html +3 -4
  416. data/vendor/local/share/gtk-doc/html/gtk3/annotation-glossary.html +25 -7
  417. data/vendor/local/share/gtk-doc/html/gtk3/api-index-3-0.html +3 -4
  418. data/vendor/local/share/gtk-doc/html/gtk3/api-index-3-10.html +14 -4
  419. data/vendor/local/share/gtk-doc/html/gtk3/api-index-3-12.html +3 -4
  420. data/vendor/local/share/gtk-doc/html/gtk3/api-index-3-14.html +16 -6
  421. data/vendor/local/share/gtk-doc/html/gtk3/api-index-3-16.html +448 -0
  422. data/vendor/local/share/gtk-doc/html/gtk3/api-index-3-2.html +3 -4
  423. data/vendor/local/share/gtk-doc/html/gtk3/api-index-3-4.html +3 -4
  424. data/vendor/local/share/gtk-doc/html/gtk3/api-index-3-6.html +3 -4
  425. data/vendor/local/share/gtk-doc/html/gtk3/api-index-3-8.html +3 -4
  426. data/vendor/local/share/gtk-doc/html/gtk3/api-index-deprecated.html +143 -4
  427. data/vendor/local/share/gtk-doc/html/gtk3/api-index-full.html +515 -12
  428. data/vendor/local/share/gtk-doc/html/gtk3/broadwayd.html +5 -6
  429. data/vendor/local/share/gtk-doc/html/gtk3/ch01s02.html +27 -27
  430. data/vendor/local/share/gtk-doc/html/gtk3/ch01s03.html +98 -190
  431. data/vendor/local/share/gtk-doc/html/gtk3/ch01s04.html +1975 -118
  432. data/vendor/local/share/gtk-doc/html/gtk3/ch01s05.html +171 -1923
  433. data/vendor/local/share/gtk-doc/html/gtk3/ch02.html +9 -6
  434. data/vendor/local/share/gtk-doc/html/gtk3/ch03.html +9 -4
  435. data/vendor/local/share/gtk-doc/html/gtk3/ch25s02.html +9 -10
  436. data/vendor/local/share/gtk-doc/html/gtk3/ch27s02.html +3 -4
  437. data/vendor/local/share/gtk-doc/html/gtk3/ch29s02.html +3 -4
  438. data/vendor/local/share/gtk-doc/html/gtk3/ch29s03.html +3 -4
  439. data/vendor/local/share/gtk-doc/html/gtk3/chap-drawing-model.html +4 -5
  440. data/vendor/local/share/gtk-doc/html/gtk3/chap-input-handling.html +139 -63
  441. data/vendor/local/share/gtk-doc/html/gtk3/checklist-gdkeventexpose-region.html +3 -4
  442. data/vendor/local/share/gtk-doc/html/gtk3/checklist-modifiers.html +3 -4
  443. data/vendor/local/share/gtk-doc/html/gtk3/checklist-named-icons.html +3 -4
  444. data/vendor/local/share/gtk-doc/html/gtk3/glarea.png +0 -0
  445. data/vendor/local/share/gtk-doc/html/gtk3/glossary.html +5 -6
  446. data/vendor/local/share/gtk-doc/html/gtk3/gtk-broadway.html +3 -4
  447. data/vendor/local/share/gtk-doc/html/gtk3/gtk-building.html +18 -16
  448. data/vendor/local/share/gtk-doc/html/gtk3/gtk-compiling.html +3 -4
  449. data/vendor/local/share/gtk-doc/html/gtk3/gtk-encode-symbolic-svg.html +5 -6
  450. data/vendor/local/share/gtk-doc/html/gtk3/gtk-getting-started.html +162 -143
  451. data/vendor/local/share/gtk-doc/html/gtk3/gtk-launch.html +5 -6
  452. data/vendor/local/share/gtk-doc/html/gtk3/gtk-migrating-2-to-3.html +12 -13
  453. data/vendor/local/share/gtk-doc/html/gtk3/gtk-migrating-GtkGrid.html +3 -4
  454. data/vendor/local/share/gtk-doc/html/gtk3/gtk-migrating-GtkStyleContext-bonus-points.html +3 -4
  455. data/vendor/local/share/gtk-doc/html/gtk3/gtk-migrating-GtkStyleContext-checklist.html +4 -5
  456. data/vendor/local/share/gtk-doc/html/gtk3/gtk-migrating-GtkStyleContext-css.html +5 -6
  457. data/vendor/local/share/gtk-doc/html/gtk3/gtk-migrating-GtkStyleContext-parser-extensions.html +3 -4
  458. data/vendor/local/share/gtk-doc/html/gtk3/gtk-migrating-GtkStyleContext-parsing.html +3 -4
  459. data/vendor/local/share/gtk-doc/html/gtk3/gtk-migrating-GtkStyleContext.html +3 -4
  460. data/vendor/local/share/gtk-doc/html/gtk3/gtk-migrating-checklist.html +3 -4
  461. data/vendor/local/share/gtk-doc/html/gtk3/gtk-migrating-smclient-GtkApplication.html +3 -4
  462. data/vendor/local/share/gtk-doc/html/gtk3/gtk-migrating-theme-GtkStyleContext-engines.html +5 -6
  463. data/vendor/local/share/gtk-doc/html/gtk3/gtk-migrating-unique-GtkApplication.html +10 -11
  464. data/vendor/local/share/gtk-doc/html/gtk3/gtk-mir.html +49 -0
  465. data/vendor/local/share/gtk-doc/html/gtk3/gtk-osx.html +4 -5
  466. data/vendor/local/share/gtk-doc/html/gtk3/gtk-query-immodules-3.0.html +7 -8
  467. data/vendor/local/share/gtk-doc/html/gtk3/gtk-question-index.html +25 -26
  468. data/vendor/local/share/gtk-doc/html/gtk3/gtk-resources.html +4 -5
  469. data/vendor/local/share/gtk-doc/html/gtk3/gtk-running.html +18 -6
  470. data/vendor/local/share/gtk-doc/html/gtk3/gtk-update-icon-cache.html +5 -6
  471. data/vendor/local/share/gtk-doc/html/gtk3/gtk-wayland.html +5 -6
  472. data/vendor/local/share/gtk-doc/html/gtk3/gtk-windows.html +4 -5
  473. data/vendor/local/share/gtk-doc/html/gtk3/gtk-x11.html +3 -4
  474. data/vendor/local/share/gtk-doc/html/gtk3/gtk.html +18 -19
  475. data/vendor/local/share/gtk-doc/html/gtk3/gtk3-Accelerator-Maps.html +9 -12
  476. data/vendor/local/share/gtk-doc/html/gtk3/gtk3-Bindings.html +13 -16
  477. data/vendor/local/share/gtk-doc/html/gtk3/gtk3-Clipboards.html +115 -85
  478. data/vendor/local/share/gtk-doc/html/gtk3/gtk3-Drag-and-Drop.html +141 -136
  479. data/vendor/local/share/gtk-doc/html/gtk3/gtk3-Feature-Test-Macros.html +79 -27
  480. data/vendor/local/share/gtk-doc/html/gtk3/gtk3-Filesystem-utilities.html +10 -14
  481. data/vendor/local/share/gtk-doc/html/gtk3/gtk3-General.html +23 -35
  482. data/vendor/local/share/gtk-doc/html/gtk3/gtk3-GtkGradient.html +9 -15
  483. data/vendor/local/share/gtk-doc/html/gtk3/gtk3-GtkStyleProperties.html +74 -33
  484. data/vendor/local/share/gtk-doc/html/gtk3/gtk3-GtkSymbolicColor.html +24 -30
  485. data/vendor/local/share/gtk-doc/html/gtk3/gtk3-GtkTreeView-drag-and-drop.html +6 -14
  486. data/vendor/local/share/gtk-doc/html/gtk3/gtk3-GtkWidgetPath.html +37 -58
  487. data/vendor/local/share/gtk-doc/html/gtk3/gtk3-High-level-Printing-API.html +110 -123
  488. data/vendor/local/share/gtk-doc/html/gtk3/gtk3-Keyboard-Accelerators.html +20 -35
  489. data/vendor/local/share/gtk-doc/html/gtk3/gtk3-Orientable.html +10 -12
  490. data/vendor/local/share/gtk-doc/html/gtk3/gtk3-Resource-Files.html +13 -21
  491. data/vendor/local/share/gtk-doc/html/gtk3/gtk3-Selections.html +46 -69
  492. data/vendor/local/share/gtk-doc/html/gtk3/gtk3-Standard-Enumerations.html +5 -5
  493. data/vendor/local/share/gtk-doc/html/gtk3/gtk3-Stock-Items.html +46 -48
  494. data/vendor/local/share/gtk-doc/html/gtk3/gtk3-Testing.html +24 -28
  495. data/vendor/local/share/gtk-doc/html/gtk3/gtk3-Themeable-Stock-Images.html +21 -38
  496. data/vendor/local/share/gtk-doc/html/gtk3/gtk3-demo-application.html +47 -0
  497. data/vendor/local/share/gtk-doc/html/gtk3/gtk3-demo.html +5 -6
  498. data/vendor/local/share/gtk-doc/html/gtk3/gtk3-icon-browser.html +5 -6
  499. data/vendor/local/share/gtk-doc/html/gtk3/gtk3-widget-factory.html +7 -8
  500. data/vendor/local/share/gtk-doc/html/gtk3/gtk3.devhelp2 +789 -155
  501. data/vendor/local/share/gtk-doc/html/gtk3/gtkbase.html +3 -4
  502. data/vendor/local/share/gtk-doc/html/gtk3/gtkobjects.html +16 -5
  503. data/vendor/local/share/gtk-doc/html/gtk3/index.html +39 -19
  504. data/vendor/local/share/gtk-doc/html/gtk3/index.sgml +803 -1
  505. data/vendor/local/share/gtk-doc/html/gtk3/migrating.html +3 -4
  506. data/vendor/local/share/gtk-doc/html/gtk3/platform-support.html +8 -4
  507. data/vendor/local/share/gtk-doc/html/gtk3/pt06.html +6 -4
  508. data/vendor/local/share/gtk-doc/html/gtk3/sidebar.png +0 -0
  509. data/vendor/local/share/gtk-doc/html/gtk3/style.css +9 -6
  510. data/vendor/local/share/gtk-doc/html/gtk3/theming.html +3 -4
  511. data/vendor/local/share/icons/Adwaita/16x16/actions/document-open.png +0 -0
  512. data/vendor/local/share/icons/Adwaita/16x16/actions/folder-new.png +0 -0
  513. data/vendor/local/share/icons/Adwaita/16x16/actions/mark-location.png +0 -0
  514. data/vendor/local/share/icons/Adwaita/16x16/emotes/emote-love.png +0 -0
  515. data/vendor/local/share/icons/Adwaita/16x16/mimetypes/x-firmware.png +0 -0
  516. data/vendor/local/share/icons/Adwaita/16x16/places/folder-documents.png +0 -0
  517. data/vendor/local/share/icons/Adwaita/16x16/places/folder-download.png +0 -0
  518. data/vendor/local/share/icons/Adwaita/16x16/places/folder-music.png +0 -0
  519. data/vendor/local/share/icons/Adwaita/16x16/places/folder-pictures.png +0 -0
  520. data/vendor/local/share/icons/Adwaita/16x16/places/folder-publicshare.png +0 -0
  521. data/vendor/local/share/icons/Adwaita/16x16/places/folder-remote.png +0 -0
  522. data/vendor/local/share/icons/Adwaita/16x16/places/folder-saved-search.png +0 -0
  523. data/vendor/local/share/icons/Adwaita/16x16/places/folder-templates.png +0 -0
  524. data/vendor/local/share/icons/Adwaita/16x16/places/folder-videos.png +0 -0
  525. data/vendor/local/share/icons/Adwaita/16x16/places/folder.png +0 -0
  526. data/vendor/local/share/icons/Adwaita/16x16/places/user-bookmarks.png +0 -0
  527. data/vendor/local/share/icons/Adwaita/16x16/places/user-desktop.png +0 -0
  528. data/vendor/local/share/icons/Adwaita/16x16/places/user-home.png +0 -0
  529. data/vendor/local/share/icons/Adwaita/16x16/status/folder-drag-accept.png +0 -0
  530. data/vendor/local/share/icons/Adwaita/16x16/status/folder-open.png +0 -0
  531. data/vendor/local/share/icons/Adwaita/16x16/status/folder-visiting.png +0 -0
  532. data/vendor/local/share/icons/Adwaita/22x22/actions/document-open.png +0 -0
  533. data/vendor/local/share/icons/Adwaita/22x22/actions/folder-new.png +0 -0
  534. data/vendor/local/share/icons/Adwaita/22x22/actions/mark-location.png +0 -0
  535. data/vendor/local/share/icons/Adwaita/22x22/emotes/emote-love.png +0 -0
  536. data/vendor/local/share/icons/Adwaita/22x22/mimetypes/x-firmware.png +0 -0
  537. data/vendor/local/share/icons/Adwaita/22x22/places/folder-documents.png +0 -0
  538. data/vendor/local/share/icons/Adwaita/22x22/places/folder-download.png +0 -0
  539. data/vendor/local/share/icons/Adwaita/22x22/places/folder-music.png +0 -0
  540. data/vendor/local/share/icons/Adwaita/22x22/places/folder-pictures.png +0 -0
  541. data/vendor/local/share/icons/Adwaita/22x22/places/folder-publicshare.png +0 -0
  542. data/vendor/local/share/icons/Adwaita/22x22/places/folder-remote.png +0 -0
  543. data/vendor/local/share/icons/Adwaita/22x22/places/folder-saved-search.png +0 -0
  544. data/vendor/local/share/icons/Adwaita/22x22/places/folder-templates.png +0 -0
  545. data/vendor/local/share/icons/Adwaita/22x22/places/folder-videos.png +0 -0
  546. data/vendor/local/share/icons/Adwaita/22x22/places/folder.png +0 -0
  547. data/vendor/local/share/icons/Adwaita/22x22/places/user-bookmarks.png +0 -0
  548. data/vendor/local/share/icons/Adwaita/22x22/places/user-desktop.png +0 -0
  549. data/vendor/local/share/icons/Adwaita/22x22/places/user-home.png +0 -0
  550. data/vendor/local/share/icons/Adwaita/22x22/status/folder-drag-accept.png +0 -0
  551. data/vendor/local/share/icons/Adwaita/22x22/status/folder-open.png +0 -0
  552. data/vendor/local/share/icons/Adwaita/22x22/status/folder-visiting.png +0 -0
  553. data/vendor/local/share/icons/Adwaita/24x24/actions/document-open.png +0 -0
  554. data/vendor/local/share/icons/Adwaita/24x24/actions/folder-new.png +0 -0
  555. data/vendor/local/share/icons/Adwaita/24x24/mimetypes/x-firmware.png +0 -0
  556. data/vendor/local/share/icons/Adwaita/24x24/places/folder-documents.png +0 -0
  557. data/vendor/local/share/icons/Adwaita/24x24/places/folder-download.png +0 -0
  558. data/vendor/local/share/icons/Adwaita/24x24/places/folder-music.png +0 -0
  559. data/vendor/local/share/icons/Adwaita/24x24/places/folder-pictures.png +0 -0
  560. data/vendor/local/share/icons/Adwaita/24x24/places/folder-publicshare.png +0 -0
  561. data/vendor/local/share/icons/Adwaita/24x24/places/folder-remote.png +0 -0
  562. data/vendor/local/share/icons/Adwaita/24x24/places/folder-saved-search.png +0 -0
  563. data/vendor/local/share/icons/Adwaita/24x24/places/folder-templates.png +0 -0
  564. data/vendor/local/share/icons/Adwaita/24x24/places/folder-videos.png +0 -0
  565. data/vendor/local/share/icons/Adwaita/24x24/places/folder.png +0 -0
  566. data/vendor/local/share/icons/Adwaita/24x24/places/user-bookmarks.png +0 -0
  567. data/vendor/local/share/icons/Adwaita/24x24/places/user-desktop.png +0 -0
  568. data/vendor/local/share/icons/Adwaita/24x24/places/user-home.png +0 -0
  569. data/vendor/local/share/icons/Adwaita/24x24/status/folder-drag-accept.png +0 -0
  570. data/vendor/local/share/icons/Adwaita/24x24/status/folder-open.png +0 -0
  571. data/vendor/local/share/icons/Adwaita/24x24/status/folder-visiting.png +0 -0
  572. data/vendor/local/share/icons/Adwaita/256x256/actions/document-open.png +0 -0
  573. data/vendor/local/share/icons/Adwaita/256x256/actions/folder-new.png +0 -0
  574. data/vendor/local/share/icons/Adwaita/256x256/emotes/emote-love.png +0 -0
  575. data/vendor/local/share/icons/Adwaita/256x256/mimetypes/x-firmware.png +0 -0
  576. data/vendor/local/share/icons/Adwaita/256x256/places/folder-documents.png +0 -0
  577. data/vendor/local/share/icons/Adwaita/256x256/places/folder-download.png +0 -0
  578. data/vendor/local/share/icons/Adwaita/256x256/places/folder-music.png +0 -0
  579. data/vendor/local/share/icons/Adwaita/256x256/places/folder-pictures.png +0 -0
  580. data/vendor/local/share/icons/Adwaita/256x256/places/folder-publicshare.png +0 -0
  581. data/vendor/local/share/icons/Adwaita/256x256/places/folder-remote.png +0 -0
  582. data/vendor/local/share/icons/Adwaita/256x256/places/folder-saved-search.png +0 -0
  583. data/vendor/local/share/icons/Adwaita/256x256/places/folder-templates.png +0 -0
  584. data/vendor/local/share/icons/Adwaita/256x256/places/folder-videos.png +0 -0
  585. data/vendor/local/share/icons/Adwaita/256x256/places/folder.png +0 -0
  586. data/vendor/local/share/icons/Adwaita/256x256/places/user-bookmarks.png +0 -0
  587. data/vendor/local/share/icons/Adwaita/256x256/places/user-desktop.png +0 -0
  588. data/vendor/local/share/icons/Adwaita/256x256/places/user-home.png +0 -0
  589. data/vendor/local/share/icons/Adwaita/256x256/status/folder-drag-accept.png +0 -0
  590. data/vendor/local/share/icons/Adwaita/256x256/status/folder-open.png +0 -0
  591. data/vendor/local/share/icons/Adwaita/256x256/status/folder-visiting.png +0 -0
  592. data/vendor/local/share/icons/Adwaita/32x32/actions/document-open.png +0 -0
  593. data/vendor/local/share/icons/Adwaita/32x32/actions/folder-new.png +0 -0
  594. data/vendor/local/share/icons/Adwaita/32x32/actions/mark-location.png +0 -0
  595. data/vendor/local/share/icons/Adwaita/32x32/emotes/emote-love.png +0 -0
  596. data/vendor/local/share/icons/Adwaita/32x32/mimetypes/x-firmware.png +0 -0
  597. data/vendor/local/share/icons/Adwaita/32x32/places/folder-documents.png +0 -0
  598. data/vendor/local/share/icons/Adwaita/32x32/places/folder-download.png +0 -0
  599. data/vendor/local/share/icons/Adwaita/32x32/places/folder-music.png +0 -0
  600. data/vendor/local/share/icons/Adwaita/32x32/places/folder-pictures.png +0 -0
  601. data/vendor/local/share/icons/Adwaita/32x32/places/folder-publicshare.png +0 -0
  602. data/vendor/local/share/icons/Adwaita/32x32/places/folder-remote.png +0 -0
  603. data/vendor/local/share/icons/Adwaita/32x32/places/folder-saved-search.png +0 -0
  604. data/vendor/local/share/icons/Adwaita/32x32/places/folder-templates.png +0 -0
  605. data/vendor/local/share/icons/Adwaita/32x32/places/folder-videos.png +0 -0
  606. data/vendor/local/share/icons/Adwaita/32x32/places/folder.png +0 -0
  607. data/vendor/local/share/icons/Adwaita/32x32/places/user-bookmarks.png +0 -0
  608. data/vendor/local/share/icons/Adwaita/32x32/places/user-desktop.png +0 -0
  609. data/vendor/local/share/icons/Adwaita/32x32/places/user-home.png +0 -0
  610. data/vendor/local/share/icons/Adwaita/32x32/status/folder-drag-accept.png +0 -0
  611. data/vendor/local/share/icons/Adwaita/32x32/status/folder-open.png +0 -0
  612. data/vendor/local/share/icons/Adwaita/32x32/status/folder-visiting.png +0 -0
  613. data/vendor/local/share/icons/Adwaita/48x48/actions/document-open.png +0 -0
  614. data/vendor/local/share/icons/Adwaita/48x48/actions/folder-new.png +0 -0
  615. data/vendor/local/share/icons/Adwaita/48x48/actions/mark-location.png +0 -0
  616. data/vendor/local/share/icons/Adwaita/48x48/emotes/emote-love.png +0 -0
  617. data/vendor/local/share/icons/Adwaita/48x48/mimetypes/x-firmware.png +0 -0
  618. data/vendor/local/share/icons/Adwaita/48x48/places/folder-documents.png +0 -0
  619. data/vendor/local/share/icons/Adwaita/48x48/places/folder-download.png +0 -0
  620. data/vendor/local/share/icons/Adwaita/48x48/places/folder-music.png +0 -0
  621. data/vendor/local/share/icons/Adwaita/48x48/places/folder-pictures.png +0 -0
  622. data/vendor/local/share/icons/Adwaita/48x48/places/folder-publicshare.png +0 -0
  623. data/vendor/local/share/icons/Adwaita/48x48/places/folder-remote.png +0 -0
  624. data/vendor/local/share/icons/Adwaita/48x48/places/folder-saved-search.png +0 -0
  625. data/vendor/local/share/icons/Adwaita/48x48/places/folder-templates.png +0 -0
  626. data/vendor/local/share/icons/Adwaita/48x48/places/folder-videos.png +0 -0
  627. data/vendor/local/share/icons/Adwaita/48x48/places/folder.png +0 -0
  628. data/vendor/local/share/icons/Adwaita/48x48/places/user-bookmarks.png +0 -0
  629. data/vendor/local/share/icons/Adwaita/48x48/places/user-desktop.png +0 -0
  630. data/vendor/local/share/icons/Adwaita/48x48/places/user-home.png +0 -0
  631. data/vendor/local/share/icons/Adwaita/48x48/status/folder-drag-accept.png +0 -0
  632. data/vendor/local/share/icons/Adwaita/48x48/status/folder-open.png +0 -0
  633. data/vendor/local/share/icons/Adwaita/48x48/status/folder-visiting.png +0 -0
  634. data/vendor/local/share/icons/Adwaita/icon-theme.cache +0 -0
  635. data/vendor/local/share/icons/Adwaita/index.theme +13 -1
  636. data/vendor/local/share/icons/Adwaita/scalable/actions/address-book-new-symbolic.svg +16197 -0
  637. data/vendor/local/share/icons/Adwaita/scalable/actions/application-exit-symbolic.svg +32 -0
  638. data/vendor/local/share/icons/Adwaita/scalable/actions/appointment-new-symbolic.svg +33 -0
  639. data/vendor/local/share/icons/Adwaita/scalable/actions/color-select-symbolic.svg +34 -0
  640. data/vendor/local/share/icons/Adwaita/scalable/actions/contact-new-symbolic.svg +33 -0
  641. data/vendor/local/share/icons/Adwaita/scalable/actions/document-print-preview-symbolic.svg +32 -0
  642. data/vendor/local/share/icons/Adwaita/scalable/actions/document-revert-symbolic-rtl.svg +31 -0
  643. data/vendor/local/share/icons/Adwaita/scalable/actions/document-revert-symbolic.svg +31 -0
  644. data/vendor/local/share/icons/Adwaita/scalable/actions/edit-find-replace-symbolic.svg +33 -0
  645. data/vendor/local/share/icons/Adwaita/scalable/actions/find-location-symbolic.svg +13 -14
  646. data/vendor/local/share/icons/Adwaita/scalable/actions/focus-legacy-systray-symbolic.svg +33 -0
  647. data/vendor/local/share/icons/Adwaita/scalable/actions/focus-top-bar-symbolic.svg +31 -0
  648. data/vendor/local/share/icons/Adwaita/scalable/actions/focus-windows-symbolic.svg +32 -0
  649. data/vendor/local/share/icons/Adwaita/scalable/actions/folder-new-symbolic.svg +33 -0
  650. data/vendor/local/share/icons/Adwaita/scalable/actions/font-select-symbolic.svg +33 -0
  651. data/vendor/local/share/icons/Adwaita/scalable/actions/go-bottom-symbolic.svg +6 -9
  652. data/vendor/local/share/icons/Adwaita/scalable/actions/go-first-symbolic-rtl.svg +6 -9
  653. data/vendor/local/share/icons/Adwaita/scalable/actions/go-first-symbolic.svg +6 -9
  654. data/vendor/local/share/icons/Adwaita/scalable/actions/go-last-symbolic-rtl.svg +6 -9
  655. data/vendor/local/share/icons/Adwaita/scalable/actions/go-last-symbolic.svg +6 -9
  656. data/vendor/local/share/icons/Adwaita/scalable/actions/go-next-symbolic-rtl.svg +6 -9
  657. data/vendor/local/share/icons/Adwaita/scalable/actions/go-next-symbolic.svg +6 -9
  658. data/vendor/local/share/icons/Adwaita/scalable/actions/go-previous-symbolic-rtl.svg +6 -9
  659. data/vendor/local/share/icons/Adwaita/scalable/actions/go-previous-symbolic.svg +6 -9
  660. data/vendor/local/share/icons/Adwaita/scalable/actions/go-top-symbolic.svg +6 -9
  661. data/vendor/local/share/icons/Adwaita/scalable/actions/go-up-symbolic.svg +6 -9
  662. data/vendor/local/share/icons/Adwaita/scalable/actions/help-about-symbolic.svg +31 -0
  663. data/vendor/local/share/icons/Adwaita/scalable/actions/image-crop-symbolic.svg +32 -0
  664. data/vendor/local/share/icons/Adwaita/scalable/actions/image-denoise-symbolic.svg +49 -0
  665. data/vendor/local/share/icons/Adwaita/scalable/actions/image-filter-symbolic.svg +34 -0
  666. data/vendor/local/share/icons/Adwaita/scalable/actions/image-sharpen-symbolic.svg +31 -0
  667. data/vendor/local/share/icons/Adwaita/scalable/actions/pan-down-symbolic.svg +3 -3
  668. data/vendor/local/share/icons/Adwaita/scalable/actions/pan-end-symbolic-rtl.svg +3 -3
  669. data/vendor/local/share/icons/Adwaita/scalable/actions/pan-end-symbolic.svg +3 -3
  670. data/vendor/local/share/icons/Adwaita/scalable/actions/pan-start-symbolic-rtl.svg +3 -3
  671. data/vendor/local/share/icons/Adwaita/scalable/actions/pan-start-symbolic.svg +3 -3
  672. data/vendor/local/share/icons/Adwaita/scalable/actions/pan-up-symbolic.svg +3 -3
  673. data/vendor/local/share/icons/Adwaita/scalable/actions/system-search-symbolic.svg +32 -0
  674. data/vendor/local/share/icons/Adwaita/scalable/actions/tools-check-spelling-symbolic.svg +33 -0
  675. data/vendor/local/share/icons/Adwaita/scalable/actions/view-refresh-symbolic.svg +14 -14
  676. data/vendor/local/share/icons/Adwaita/scalable/actions/view-sort-ascending-symbolic.svg +34 -0
  677. data/vendor/local/share/icons/Adwaita/scalable/actions/view-sort-descending-symbolic.svg +34 -0
  678. data/vendor/local/share/icons/Adwaita/scalable/apps/help-contents-symbolic.svg +34 -0
  679. data/vendor/local/share/icons/Adwaita/scalable/apps/help-faq-symbolic.svg +32 -0
  680. data/vendor/local/share/icons/Adwaita/scalable/apps/preferences-desktop-font-symbolic.svg +32 -0
  681. data/vendor/local/share/icons/Adwaita/scalable/categories/applications-system-symbolic.svg +31 -0
  682. data/vendor/local/share/icons/Adwaita/scalable/devices/battery-symbolic.svg +34 -0
  683. data/vendor/local/share/icons/Adwaita/scalable/devices/drive-harddisk-solidstate-symbolic.svg +38 -0
  684. data/vendor/local/share/icons/Adwaita/scalable/devices/media-tape-symbolic.svg +31 -0
  685. data/vendor/local/share/icons/Adwaita/scalable/devices/modem-symbolic.svg +32 -0
  686. data/vendor/local/share/icons/Adwaita/scalable/devices/pda-symbolic.svg +32 -0
  687. data/vendor/local/share/icons/Adwaita/scalable/devices/tv-symbolic.svg +34 -0
  688. data/vendor/local/share/icons/Adwaita/scalable/devices/uninterruptible-power-supply-symbolic.svg +32 -0
  689. data/vendor/local/share/icons/Adwaita/scalable/emotes/emote-love-symbolic.svg +31 -0
  690. data/vendor/local/share/icons/Adwaita/scalable/mimetypes/application-x-executable-symbolic.svg +31 -0
  691. data/vendor/local/share/icons/Adwaita/scalable/status/folder-drag-accept-symbolic.svg +31 -0
  692. data/vendor/local/share/icons/Adwaita/scalable/status/folder-open-symbolic.svg +31 -0
  693. data/vendor/local/share/icons/Adwaita/scalable/status/folder-visiting-symbolic.svg +31 -0
  694. data/vendor/local/share/icons/Adwaita/scalable/status/image-loading-symbolic.svg +33 -0
  695. data/vendor/local/share/icons/Adwaita/scalable/status/rotation-allowed-symbolic.svg +15 -13
  696. data/vendor/local/share/icons/Adwaita/scalable/status/rotation-locked-symbolic.svg +14 -15
  697. data/vendor/local/share/icons/Adwaita/scalable/status/system-lock-screen-symbolic.svg +31 -0
  698. data/vendor/local/share/icons/hicolor/16x16/apps/gtk3-demo-symbolic.symbolic.png +0 -0
  699. data/vendor/local/share/icons/hicolor/16x16/apps/gtk3-widget-factory-symbolic.symbolic.png +0 -0
  700. data/vendor/local/share/icons/hicolor/22x22/apps/gtk3-demo-symbolic.symbolic.png +0 -0
  701. data/vendor/local/share/icons/hicolor/22x22/apps/gtk3-widget-factory-symbolic.symbolic.png +0 -0
  702. data/vendor/local/share/icons/hicolor/24x24/apps/gtk3-demo-symbolic.symbolic.png +0 -0
  703. data/vendor/local/share/icons/hicolor/24x24/apps/gtk3-widget-factory-symbolic.symbolic.png +0 -0
  704. data/vendor/local/share/icons/hicolor/256x256/apps/gtk3-demo-symbolic.symbolic.png +0 -0
  705. data/vendor/local/share/icons/hicolor/256x256/apps/gtk3-widget-factory-symbolic.symbolic.png +0 -0
  706. data/vendor/local/share/icons/hicolor/32x32/apps/gtk3-demo-symbolic.symbolic.png +0 -0
  707. data/vendor/local/share/icons/hicolor/32x32/apps/gtk3-widget-factory-symbolic.symbolic.png +0 -0
  708. data/vendor/local/share/icons/hicolor/48x48/apps/gtk3-demo-symbolic.symbolic.png +0 -0
  709. data/vendor/local/share/icons/hicolor/48x48/apps/gtk3-widget-factory-symbolic.symbolic.png +0 -0
  710. data/vendor/local/share/icons/hicolor/icon-theme.cache +0 -0
  711. data/vendor/local/share/license/libepoxy/COPYING +50 -0
  712. data/vendor/local/share/locale/af/LC_MESSAGES/gtk30.mo +0 -0
  713. data/vendor/local/share/locale/ar/LC_MESSAGES/gtk30.mo +0 -0
  714. data/vendor/local/share/locale/as/LC_MESSAGES/gtk30-properties.mo +0 -0
  715. data/vendor/local/share/locale/as/LC_MESSAGES/gtk30.mo +0 -0
  716. data/vendor/local/share/locale/bg/LC_MESSAGES/gtk30.mo +0 -0
  717. data/vendor/local/share/locale/bs/LC_MESSAGES/gtk30-properties.mo +0 -0
  718. data/vendor/local/share/locale/bs/LC_MESSAGES/gtk30.mo +0 -0
  719. data/vendor/local/share/locale/ca/LC_MESSAGES/gtk30-properties.mo +0 -0
  720. data/vendor/local/share/locale/ca/LC_MESSAGES/gtk30.mo +0 -0
  721. data/vendor/local/share/locale/cs/LC_MESSAGES/gtk30-properties.mo +0 -0
  722. data/vendor/local/share/locale/cs/LC_MESSAGES/gtk30.mo +0 -0
  723. data/vendor/local/share/locale/da/LC_MESSAGES/gtk30-properties.mo +0 -0
  724. data/vendor/local/share/locale/da/LC_MESSAGES/gtk30.mo +0 -0
  725. data/vendor/local/share/locale/de/LC_MESSAGES/gtk30-properties.mo +0 -0
  726. data/vendor/local/share/locale/de/LC_MESSAGES/gtk30.mo +0 -0
  727. data/vendor/local/share/locale/el/LC_MESSAGES/gtk30-properties.mo +0 -0
  728. data/vendor/local/share/locale/el/LC_MESSAGES/gtk30.mo +0 -0
  729. data/vendor/local/share/locale/en_GB/LC_MESSAGES/gtk30-properties.mo +0 -0
  730. data/vendor/local/share/locale/en_GB/LC_MESSAGES/gtk30.mo +0 -0
  731. data/vendor/local/share/locale/es/LC_MESSAGES/gtk30-properties.mo +0 -0
  732. data/vendor/local/share/locale/es/LC_MESSAGES/gtk30.mo +0 -0
  733. data/vendor/local/share/locale/eu/LC_MESSAGES/gtk30-properties.mo +0 -0
  734. data/vendor/local/share/locale/eu/LC_MESSAGES/gtk30.mo +0 -0
  735. data/vendor/local/share/locale/fr/LC_MESSAGES/gtk30-properties.mo +0 -0
  736. data/vendor/local/share/locale/fr/LC_MESSAGES/gtk30.mo +0 -0
  737. data/vendor/local/share/locale/gd/LC_MESSAGES/gtk30.mo +0 -0
  738. data/vendor/local/share/locale/gl/LC_MESSAGES/gtk30-properties.mo +0 -0
  739. data/vendor/local/share/locale/gl/LC_MESSAGES/gtk30.mo +0 -0
  740. data/vendor/local/share/locale/he/LC_MESSAGES/gtk30-properties.mo +0 -0
  741. data/vendor/local/share/locale/he/LC_MESSAGES/gtk30.mo +0 -0
  742. data/vendor/local/share/locale/hu/LC_MESSAGES/gtk30-properties.mo +0 -0
  743. data/vendor/local/share/locale/hu/LC_MESSAGES/gtk30.mo +0 -0
  744. data/vendor/local/share/locale/id/LC_MESSAGES/gtk30-properties.mo +0 -0
  745. data/vendor/local/share/locale/id/LC_MESSAGES/gtk30.mo +0 -0
  746. data/vendor/local/share/locale/is/LC_MESSAGES/gtk30-properties.mo +0 -0
  747. data/vendor/local/share/locale/is/LC_MESSAGES/gtk30.mo +0 -0
  748. data/vendor/local/share/locale/it/LC_MESSAGES/gtk30-properties.mo +0 -0
  749. data/vendor/local/share/locale/it/LC_MESSAGES/gtk30.mo +0 -0
  750. data/vendor/local/share/locale/ja/LC_MESSAGES/gtk30.mo +0 -0
  751. data/vendor/local/share/locale/kk/LC_MESSAGES/gtk30-properties.mo +0 -0
  752. data/vendor/local/share/locale/kk/LC_MESSAGES/gtk30.mo +0 -0
  753. data/vendor/local/share/locale/ko/LC_MESSAGES/gtk30-properties.mo +0 -0
  754. data/vendor/local/share/locale/ko/LC_MESSAGES/gtk30.mo +0 -0
  755. data/vendor/local/share/locale/lt/LC_MESSAGES/gtk30-properties.mo +0 -0
  756. data/vendor/local/share/locale/lt/LC_MESSAGES/gtk30.mo +0 -0
  757. data/vendor/local/share/locale/nb/LC_MESSAGES/gtk30-properties.mo +0 -0
  758. data/vendor/local/share/locale/nb/LC_MESSAGES/gtk30.mo +0 -0
  759. data/vendor/local/share/locale/oc/LC_MESSAGES/gtk30-properties.mo +0 -0
  760. data/vendor/local/share/locale/oc/LC_MESSAGES/gtk30.mo +0 -0
  761. data/vendor/local/share/locale/pa/LC_MESSAGES/gtk30-properties.mo +0 -0
  762. data/vendor/local/share/locale/pa/LC_MESSAGES/gtk30.mo +0 -0
  763. data/vendor/local/share/locale/pl/LC_MESSAGES/gtk30-properties.mo +0 -0
  764. data/vendor/local/share/locale/pl/LC_MESSAGES/gtk30.mo +0 -0
  765. data/vendor/local/share/locale/pt_BR/LC_MESSAGES/gtk30-properties.mo +0 -0
  766. data/vendor/local/share/locale/pt_BR/LC_MESSAGES/gtk30.mo +0 -0
  767. data/vendor/local/share/locale/ru/LC_MESSAGES/gtk30-properties.mo +0 -0
  768. data/vendor/local/share/locale/ru/LC_MESSAGES/gtk30.mo +0 -0
  769. data/vendor/local/share/locale/sk/LC_MESSAGES/gtk30-properties.mo +0 -0
  770. data/vendor/local/share/locale/sk/LC_MESSAGES/gtk30.mo +0 -0
  771. data/vendor/local/share/locale/sl/LC_MESSAGES/gtk30-properties.mo +0 -0
  772. data/vendor/local/share/locale/sl/LC_MESSAGES/gtk30.mo +0 -0
  773. data/vendor/local/share/locale/sr/LC_MESSAGES/gtk30.mo +0 -0
  774. data/vendor/local/share/locale/sr@latin/LC_MESSAGES/gtk30.mo +0 -0
  775. data/vendor/local/share/locale/sv/LC_MESSAGES/gtk30-properties.mo +0 -0
  776. data/vendor/local/share/locale/sv/LC_MESSAGES/gtk30.mo +0 -0
  777. data/vendor/local/share/locale/tg/LC_MESSAGES/gtk30-properties.mo +0 -0
  778. data/vendor/local/share/locale/tr/LC_MESSAGES/gtk30-properties.mo +0 -0
  779. data/vendor/local/share/locale/tr/LC_MESSAGES/gtk30.mo +0 -0
  780. data/vendor/local/share/locale/uk/LC_MESSAGES/gtk30.mo +0 -0
  781. data/vendor/local/share/locale/vi/LC_MESSAGES/gtk30-properties.mo +0 -0
  782. data/vendor/local/share/locale/vi/LC_MESSAGES/gtk30.mo +0 -0
  783. data/vendor/local/share/locale/zh_TW/LC_MESSAGES/gtk30-properties.mo +0 -0
  784. data/vendor/local/share/locale/zh_TW/LC_MESSAGES/gtk30.mo +0 -0
  785. data/vendor/local/share/man/man1/broadwayd.1 +1 -1
  786. data/vendor/local/share/man/man1/gtk-encode-symbolic-svg.1 +1 -1
  787. data/vendor/local/share/man/man1/gtk-launch.1 +1 -1
  788. data/vendor/local/share/man/man1/gtk-query-immodules-3.0.1 +1 -1
  789. data/vendor/local/share/man/man1/gtk-update-icon-cache.1 +1 -1
  790. data/vendor/local/share/man/man1/gtk3-demo-application.1 +39 -0
  791. data/vendor/local/share/man/man1/gtk3-demo.1 +1 -1
  792. data/vendor/local/share/man/man1/gtk3-icon-browser.1 +1 -1
  793. data/vendor/local/share/man/man1/gtk3-widget-factory.1 +1 -1
  794. data/vendor/local/share/pkgconfig/adwaita-icon-theme.pc +1 -1
  795. metadata +120 -12
  796. data/vendor/local/lib/libgtkreftestprivate.a +0 -0
@@ -2,13 +2,13 @@
2
2
  <html>
3
3
  <head>
4
4
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
5
- <title>GTK+ 3 Reference Manual: Building user interfaces</title>
5
+ <title>Building applications: GTK+ 3 Reference Manual</title>
6
6
  <meta name="generator" content="DocBook XSL Stylesheets V1.78.1">
7
7
  <link rel="home" href="index.html" title="GTK+ 3 Reference Manual">
8
8
  <link rel="up" href="gtk-getting-started.html" title="Getting Started with GTK+">
9
- <link rel="prev" href="ch01s03.html" title="Drawing">
10
- <link rel="next" href="ch01s05.html" title="Building applications">
11
- <meta name="generator" content="GTK-Doc V1.21.1 (XML mode)">
9
+ <link rel="prev" href="ch01s03.html" title="Building user interfaces">
10
+ <link rel="next" href="ch01s05.html" title="Custom Drawing">
11
+ <meta name="generator" content="GTK-Doc V1.24.1 (XML mode)">
12
12
  <link rel="stylesheet" href="style.css" type="text/css">
13
13
  </head>
14
14
  <body bgcolor="white" text="black" link="#0000FF" vlink="#840084" alink="#0000FF">
@@ -21,137 +21,1994 @@
21
21
  </tr></table>
22
22
  <div class="section">
23
23
  <div class="titlepage"><div><div><h2 class="title" style="clear: both">
24
- <a name="id-1.2.3.6"></a>Building user interfaces</h2></div></div></div>
25
- <p>When construcing a more complicated user interface, with dozens
26
- or hundreds of widgets, doing all the setup work in C code is
27
- cumbersome, and making changes becomes next to impossible.</p>
28
- <p>Thankfully, GTK+ supports the separation of user interface
29
- layout from your business logic, by using UI descriptions in an
30
- XML format that can be parsed by the <a class="link" href="GtkBuilder.html" title="GtkBuilder"><span class="type">GtkBuilder</span></a> class.</p>
31
- <div class="example">
32
- <a name="id-1.2.3.6.4"></a><p class="title"><b>Example 4. Packing buttons with GtkBuilder</b></p>
33
- <div class="example-contents">
34
- <p>Create a new file with the following content named example-4.c.</p>
35
- <pre class="programlisting">#include &lt;gtk/gtk.h&gt;
24
+ <a name="id-1.2.3.12"></a>Building applications</h2></div></div></div>
25
+ <p>An application consists of a number of files:
26
+ </p>
27
+ <div class="variablelist"><table border="0" class="variablelist">
28
+ <colgroup>
29
+ <col align="left" valign="top">
30
+ <col>
31
+ </colgroup>
32
+ <tbody>
33
+ <tr>
34
+ <td><p><span class="term">The binary</span></p></td>
35
+ <td>This gets installed in <code class="filename">/usr/bin</code>.</td>
36
+ </tr>
37
+ <tr>
38
+ <td><p><span class="term">A desktop file</span></p></td>
39
+ <td>The desktop file provides important information about the application to the desktop shell, such as its name, icon, D-Bus name, commandline to launch it, etc. It is installed in <code class="filename">/usr/share/applications</code>.</td>
40
+ </tr>
41
+ <tr>
42
+ <td><p><span class="term">An icon</span></p></td>
43
+ <td>The icon gets installed in <code class="filename">/usr/share/icons/hicolor/48x48/apps</code>, where it will be found regardless of the current theme.</td>
44
+ </tr>
45
+ <tr>
46
+ <td><p><span class="term">A settings schema</span></p></td>
47
+ <td>If the application uses GSettings, it will install its schema
48
+ in <code class="filename">/usr/share/glib-2.0/schemas</code>, so that tools
49
+ like dconf-editor can find it.</td>
50
+ </tr>
51
+ <tr>
52
+ <td><p><span class="term">Other resources</span></p></td>
53
+ <td>Other files, such as GtkBuilder ui files, are best loaded from
54
+ resources stored in the application binary itself. This eliminates the
55
+ need for most of the files that would traditionally be installed in
56
+ an application-specific location in <code class="filename">/usr/share</code>.</td>
57
+ </tr>
58
+ </tbody>
59
+ </table></div>
60
+ <p>
61
+ </p>
62
+ <p>GTK+ includes application support that is built on top of
63
+ <a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gio/GApplication.html"><span class="type">GApplication</span></a>. In this tutorial we'll build a simple application by
64
+ starting from scratch, adding more and more pieces over time. Along
65
+ the way, we'll learn about <a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a>, templates, resources,
66
+ application menus, settings, <a class="link" href="GtkHeaderBar.html" title="GtkHeaderBar"><span class="type">GtkHeaderBar</span></a>, <a class="link" href="GtkStack.html" title="GtkStack"><span class="type">GtkStack</span></a>, <a class="link" href="GtkSearchBar.html" title="GtkSearchBar"><span class="type">GtkSearchBar</span></a>,
67
+ <a class="link" href="GtkListBox.html" title="GtkListBox"><span class="type">GtkListBox</span></a>, and more.</p>
68
+ <p>The full, buildable sources for these examples can be found
69
+ in the examples/ directory of the GTK+ source distribution, or
70
+ <a class="ulink" href="https://git.gnome.org/browse/gtk+/tree/examples" target="_top">online</a> in the GTK+ git repository.
71
+ You can build each example separately by using make with the <code class="filename">Makefile.example</code>
72
+ file. For more information, see the <code class="filename">README</code> included in the
73
+ examples directory.</p>
74
+ <div class="section">
75
+ <div class="titlepage"><div><div><h3 class="title">
76
+ <a name="id-1.2.3.12.5"></a>A trivial application</h3></div></div></div>
77
+ <p>When using <a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a>, the <code class="function">main()</code> function can be very
78
+ simple. We just call <a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gio/GApplication.html#g-application-run"><code class="function">g_application_run()</code></a> and give it an instance
79
+ of our application class.</p>
80
+ <div class="informalexample">
81
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
82
+ <tbody>
83
+ <tr>
84
+ <td class="listing_lines" align="right"><pre>1
85
+ 2
86
+ 3
87
+ 4
88
+ 5
89
+ 6
90
+ 7
91
+ 8
92
+ 9</pre></td>
93
+ <td class="listing_code"><pre class="programlisting"><span class="preproc">#include</span><span class="normal"> </span><span class="string">&lt;gtk/gtk.h&gt;</span>
94
+
95
+ <span class="preproc">#include</span><span class="normal"> </span><span class="string">"exampleapp.h"</span>
96
+
97
+ <span class="type">int</span>
98
+ <span class="function">main</span><span class="normal"> </span><span class="symbol">(</span><span class="type">int</span><span class="normal"> argc</span><span class="symbol">,</span><span class="normal"> </span><span class="type">char</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">argv</span><span class="symbol">[])</span>
99
+ <span class="cbracket">{</span>
100
+ <span class="normal"> </span><span class="keyword">return</span><span class="normal"> </span><span class="function"><a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gio/GApplication.html#g-application-run">g_application_run</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">G_APPLICATION</span><span class="normal"> </span><span class="symbol">(</span><span class="function">example_app_new</span><span class="normal"> </span><span class="symbol">()),</span><span class="normal"> argc</span><span class="symbol">,</span><span class="normal"> argv</span><span class="symbol">);</span>
101
+ <span class="cbracket">}</span></pre></td>
102
+ </tr>
103
+ </tbody>
104
+ </table>
105
+ </div>
106
+
107
+ <p>All the application logic is in the application class, which
108
+ is a subclass of <a class="link" href="GtkApplication.html" title="GtkApplication"><span class="type">GtkApplication</span></a>. Our example does not yet have any
109
+ interesting functionality. All it does is open a window when it is
110
+ activated without arguments, and open the files it is given, if it
111
+ is started with arguments.</p>
112
+ <p>To handle these two cases, we override the <code class="function">activate()</code> vfunc,
113
+ which gets called when the application is launched without commandline
114
+ arguments, and the <code class="function">open()</code> vfunc, which gets called when the application
115
+ is launched with commandline arguments.</p>
116
+ <p>To learn more about GApplication entry points, consult the
117
+ GIO <a class="ulink" href="https://developer.gnome.org/gio/2.36/GApplication.html#GApplication.description" target="_top">documentation</a>.</p>
118
+ <div class="informalexample">
119
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
120
+ <tbody>
121
+ <tr>
122
+ <td class="listing_lines" align="right"><pre>1
123
+ 2
124
+ 3
125
+ 4
126
+ 5
127
+ 6
128
+ 7
129
+ 8
130
+ 9
131
+ 10
132
+ 11
133
+ 12
134
+ 13
135
+ 14
136
+ 15
137
+ 16
138
+ 17
139
+ 18
140
+ 19
141
+ 20
142
+ 21
143
+ 22
144
+ 23
145
+ 24
146
+ 25
147
+ 26
148
+ 27
149
+ 28
150
+ 29
151
+ 30
152
+ 31
153
+ 32
154
+ 33
155
+ 34
156
+ 35
157
+ 36
158
+ 37
159
+ 38
160
+ 39
161
+ 40
162
+ 41
163
+ 42
164
+ 43
165
+ 44
166
+ 45
167
+ 46
168
+ 47
169
+ 48
170
+ 49
171
+ 50
172
+ 51
173
+ 52
174
+ 53
175
+ 54
176
+ 55
177
+ 56
178
+ 57
179
+ 58
180
+ 59
181
+ 60
182
+ 61
183
+ 62
184
+ 63
185
+ 64
186
+ 65
187
+ 66
188
+ 67
189
+ 68</pre></td>
190
+ <td class="listing_code"><pre class="programlisting"><span class="preproc">#include</span><span class="normal"> </span><span class="string">&lt;gtk/gtk.h&gt;</span>
191
+
192
+ <span class="preproc">#include</span><span class="normal"> </span><span class="string">"exampleapp.h"</span>
193
+ <span class="preproc">#include</span><span class="normal"> </span><span class="string">"exampleappwin.h"</span>
194
+
195
+ <span class="keyword">struct</span><span class="normal"> </span><span class="classname">_ExampleApp</span>
196
+ <span class="cbracket">{</span>
197
+ <span class="normal"> </span><span class="usertype">GtkApplication</span><span class="normal"> parent</span><span class="symbol">;</span>
198
+ <span class="cbracket">}</span><span class="symbol">;</span>
199
+
200
+ <span class="keyword">struct</span><span class="normal"> </span><span class="classname">_ExampleAppClass</span>
201
+ <span class="cbracket">{</span>
202
+ <span class="normal"> </span><span class="usertype">GtkApplicationClass</span><span class="normal"> parent_class</span><span class="symbol">;</span>
203
+ <span class="cbracket">}</span><span class="symbol">;</span>
204
+
205
+ <span class="function"><a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gobject/gobject-Type-Information.html#G-DEFINE-TYPE:CAPS">G_DEFINE_TYPE</a></span><span class="symbol">(</span><span class="normal">ExampleApp</span><span class="symbol">,</span><span class="normal"> example_app</span><span class="symbol">,</span><span class="normal"> GTK_TYPE_APPLICATION</span><span class="symbol">);</span>
206
+
207
+ <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
208
+ <span class="function">example_app_init</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">ExampleApp</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">app</span><span class="symbol">)</span>
209
+ <span class="cbracket">{</span>
210
+ <span class="cbracket">}</span>
211
+
212
+ <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
213
+ <span class="function">example_app_activate</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GApplication</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">app</span><span class="symbol">)</span>
214
+ <span class="cbracket">{</span>
215
+ <span class="normal"> </span><span class="usertype">ExampleAppWindow</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">win</span><span class="symbol">;</span>
216
+
217
+ <span class="normal"> win </span><span class="symbol">=</span><span class="normal"> </span><span class="function">example_app_window_new</span><span class="normal"> </span><span class="symbol">(</span><span class="function">EXAMPLE_APP</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">app</span><span class="symbol">));</span>
218
+ <span class="normal"> </span><span class="function"><a href="GtkWindow.html#gtk-window-present">gtk_window_present</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_WINDOW</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">win</span><span class="symbol">));</span>
219
+ <span class="cbracket">}</span>
220
+
221
+ <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
222
+ <span class="function">example_app_open</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GApplication</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">app</span><span class="symbol">,</span>
223
+ <span class="normal"> </span><span class="usertype">GFile</span><span class="normal"> </span><span class="symbol">**</span><span class="normal">files</span><span class="symbol">,</span>
224
+ <span class="normal"> </span><span class="usertype">gint</span><span class="normal"> n_files</span><span class="symbol">,</span>
225
+ <span class="normal"> </span><span class="keyword">const</span><span class="normal"> </span><span class="usertype">gchar</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">hint</span><span class="symbol">)</span>
226
+ <span class="cbracket">{</span>
227
+ <span class="normal"> </span><span class="usertype">GList</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">windows</span><span class="symbol">;</span>
228
+ <span class="normal"> </span><span class="usertype">ExampleAppWindow</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">win</span><span class="symbol">;</span>
229
+ <span class="normal"> </span><span class="type">int</span><span class="normal"> i</span><span class="symbol">;</span>
230
+
231
+ <span class="normal"> windows </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="GtkApplication.html#gtk-application-get-windows">gtk_application_get_windows</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_APPLICATION</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">app</span><span class="symbol">));</span>
232
+ <span class="normal"> </span><span class="keyword">if</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">windows</span><span class="symbol">)</span>
233
+ <span class="normal"> win </span><span class="symbol">=</span><span class="normal"> </span><span class="function">EXAMPLE_APP_WINDOW</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">windows</span><span class="symbol">-&gt;</span><span class="normal">data</span><span class="symbol">);</span>
234
+ <span class="normal"> </span><span class="keyword">else</span>
235
+ <span class="normal"> win </span><span class="symbol">=</span><span class="normal"> </span><span class="function">example_app_window_new</span><span class="normal"> </span><span class="symbol">(</span><span class="function">EXAMPLE_APP</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">app</span><span class="symbol">));</span>
236
+
237
+ <span class="normal"> </span><span class="keyword">for</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">i </span><span class="symbol">=</span><span class="normal"> </span><span class="number">0</span><span class="symbol">;</span><span class="normal"> i </span><span class="symbol">&lt;</span><span class="normal"> n_files</span><span class="symbol">;</span><span class="normal"> i</span><span class="symbol">++)</span>
238
+ <span class="normal"> </span><span class="function">example_app_window_open</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">win</span><span class="symbol">,</span><span class="normal"> files</span><span class="symbol">[</span><span class="normal">i</span><span class="symbol">]);</span>
239
+
240
+ <span class="normal"> </span><span class="function"><a href="GtkWindow.html#gtk-window-present">gtk_window_present</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_WINDOW</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">win</span><span class="symbol">));</span>
241
+ <span class="cbracket">}</span>
242
+
243
+ <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
244
+ <span class="function">example_app_class_init</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">ExampleAppClass</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">class</span><span class="symbol">)</span>
245
+ <span class="cbracket">{</span>
246
+ <span class="normal"> </span><span class="function">G_APPLICATION_CLASS</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">class</span><span class="symbol">)-&gt;</span><span class="normal">activate </span><span class="symbol">=</span><span class="normal"> example_app_activate</span><span class="symbol">;</span>
247
+ <span class="normal"> </span><span class="function">G_APPLICATION_CLASS</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">class</span><span class="symbol">)-&gt;</span><span class="normal">open </span><span class="symbol">=</span><span class="normal"> example_app_open</span><span class="symbol">;</span>
248
+ <span class="cbracket">}</span>
249
+
250
+ <span class="normal">ExampleApp </span><span class="symbol">*</span>
251
+ <span class="function">example_app_new</span><span class="normal"> </span><span class="symbol">(</span><span class="type">void</span><span class="symbol">)</span>
252
+ <span class="cbracket">{</span>
253
+ <span class="normal"> </span><span class="keyword">return</span><span class="normal"> </span><span class="function"><a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#g-object-new">g_object_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">EXAMPLE_APP_TYPE</span><span class="symbol">,</span>
254
+ <span class="normal"> </span><span class="string">"application-id"</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"org.gtk.exampleapp"</span><span class="symbol">,</span>
255
+ <span class="normal"> </span><span class="string">"flags"</span><span class="symbol">,</span><span class="normal"> <a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gio/GApplication.html#G-APPLICATION-HANDLES-OPEN:CAPS">G_APPLICATION_HANDLES_OPEN</a></span><span class="symbol">,</span>
256
+ <span class="normal"> <a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
257
+ <span class="cbracket">}</span></pre></td>
258
+ </tr>
259
+ </tbody>
260
+ </table>
261
+ </div>
262
+
263
+ <p>Another important class that is part of the application support
264
+ in GTK+ is <a class="link" href="GtkApplicationWindow.html" title="GtkApplicationWindow"><span class="type">GtkApplicationWindow</span></a>. It is typically subclassed as well.
265
+ Our subclass does not do anything yet, so we will just get an empty
266
+ window.</p>
267
+ <div class="informalexample">
268
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
269
+ <tbody>
270
+ <tr>
271
+ <td class="listing_lines" align="right"><pre>1
272
+ 2
273
+ 3
274
+ 4
275
+ 5
276
+ 6
277
+ 7
278
+ 8
279
+ 9
280
+ 10
281
+ 11
282
+ 12
283
+ 13
284
+ 14
285
+ 15
286
+ 16
287
+ 17
288
+ 18
289
+ 19
290
+ 20
291
+ 21
292
+ 22
293
+ 23
294
+ 24
295
+ 25
296
+ 26
297
+ 27
298
+ 28
299
+ 29
300
+ 30
301
+ 31
302
+ 32
303
+ 33
304
+ 34
305
+ 35
306
+ 36
307
+ 37
308
+ 38</pre></td>
309
+ <td class="listing_code"><pre class="programlisting"><span class="preproc">#include</span><span class="normal"> </span><span class="string">&lt;gtk/gtk.h&gt;</span>
310
+
311
+ <span class="preproc">#include</span><span class="normal"> </span><span class="string">"exampleapp.h"</span>
312
+ <span class="preproc">#include</span><span class="normal"> </span><span class="string">"exampleappwin.h"</span>
313
+
314
+ <span class="keyword">struct</span><span class="normal"> </span><span class="classname">_ExampleAppWindow</span>
315
+ <span class="cbracket">{</span>
316
+ <span class="normal"> </span><span class="usertype">GtkApplicationWindow</span><span class="normal"> parent</span><span class="symbol">;</span>
317
+ <span class="cbracket">}</span><span class="symbol">;</span>
318
+
319
+ <span class="keyword">struct</span><span class="normal"> </span><span class="classname">_ExampleAppWindowClass</span>
320
+ <span class="cbracket">{</span>
321
+ <span class="normal"> </span><span class="usertype">GtkApplicationWindowClass</span><span class="normal"> parent_class</span><span class="symbol">;</span>
322
+ <span class="cbracket">}</span><span class="symbol">;</span>
323
+
324
+ <span class="function"><a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gobject/gobject-Type-Information.html#G-DEFINE-TYPE:CAPS">G_DEFINE_TYPE</a></span><span class="symbol">(</span><span class="normal">ExampleAppWindow</span><span class="symbol">,</span><span class="normal"> example_app_window</span><span class="symbol">,</span><span class="normal"> GTK_TYPE_APPLICATION_WINDOW</span><span class="symbol">);</span>
325
+
326
+ <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
327
+ <span class="function">example_app_window_init</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">ExampleAppWindow</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">app</span><span class="symbol">)</span>
328
+ <span class="cbracket">{</span>
329
+ <span class="cbracket">}</span>
330
+
331
+ <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
332
+ <span class="function">example_app_window_class_init</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">ExampleAppWindowClass</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">class</span><span class="symbol">)</span>
333
+ <span class="cbracket">{</span>
334
+ <span class="cbracket">}</span>
335
+
336
+ <span class="normal">ExampleAppWindow </span><span class="symbol">*</span>
337
+ <span class="function">example_app_window_new</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">ExampleApp</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">app</span><span class="symbol">)</span>
338
+ <span class="cbracket">{</span>
339
+ <span class="normal"> </span><span class="keyword">return</span><span class="normal"> </span><span class="function"><a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#g-object-new">g_object_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">EXAMPLE_APP_WINDOW_TYPE</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"application"</span><span class="symbol">,</span><span class="normal"> app</span><span class="symbol">,</span><span class="normal"> <a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
340
+ <span class="cbracket">}</span>
341
+
342
+ <span class="type">void</span>
343
+ <span class="function">example_app_window_open</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">ExampleAppWindow</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">win</span><span class="symbol">,</span>
344
+ <span class="normal"> </span><span class="usertype">GFile</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">file</span><span class="symbol">)</span>
345
+ <span class="cbracket">{</span>
346
+ <span class="cbracket">}</span></pre></td>
347
+ </tr>
348
+ </tbody>
349
+ </table>
350
+ </div>
351
+
352
+ <p>As part of the initial setup of our application, we also
353
+ create an icon and a desktop file.</p>
354
+ <div class="informalfigure"><div class="mediaobject"><img src="exampleapp.png"></div></div>
355
+ <div class="informalexample">
356
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
357
+ <tbody>
358
+ <tr>
359
+ <td class="listing_lines" align="right"><pre>1
360
+ 2
361
+ 3
362
+ 4
363
+ 5
364
+ 6</pre></td>
365
+ <td class="listing_code"><pre class="programlisting"><span class="symbol">[</span><span class="usertype">Desktop</span><span class="normal"> Entry</span><span class="symbol">]</span>
366
+ <span class="normal">Type</span><span class="symbol">=</span><span class="normal">Application</span>
367
+ <span class="normal">Name</span><span class="symbol">=</span><span class="normal">Example</span>
368
+ <span class="normal">Icon</span><span class="symbol">=</span><span class="normal">exampleapp</span>
369
+ <span class="normal">StartupNotify</span><span class="symbol">=</span><span class="normal">true</span>
370
+ <span class="normal">Exec</span><span class="symbol">=</span><span class="normal">@bindir@</span><span class="symbol">/</span><span class="normal">exampleapp</span></pre></td>
371
+ </tr>
372
+ </tbody>
373
+ </table>
374
+ </div>
375
+
376
+ <p>Note that <em class="replaceable"><code>@bindir@</code></em> needs to be replaced
377
+ with the actual path to the binary before this desktop file can be used.</p>
378
+ <p>Here is what we've achieved so far:</p>
379
+ <div class="informalfigure"><div class="mediaobject"><img src="getting-started-app1.png"></div></div>
380
+ <p>This does not look very impressive yet, but our application
381
+ is already presenting itself on the session bus, it has single-instance
382
+ semantics, and it accepts files as commandline arguments.</p>
383
+ </div>
384
+ <div class="section">
385
+ <div class="titlepage"><div><div><h3 class="title">
386
+ <a name="id-1.2.3.12.6"></a>Populating the window</h3></div></div></div>
387
+ <p>In this step, we use a <a class="link" href="GtkBuilder.html" title="GtkBuilder"><span class="type">GtkBuilder</span></a> template to associate a
388
+ <a class="link" href="GtkBuilder.html" title="GtkBuilder"><span class="type">GtkBuilder</span></a> ui file with our application window class.</p>
389
+ <p>Our simple ui file puts a <a class="link" href="GtkHeaderBar.html" title="GtkHeaderBar"><span class="type">GtkHeaderBar</span></a> on top of a <a class="link" href="GtkStack.html" title="GtkStack"><span class="type">GtkStack</span></a>
390
+ widget. The header bar contains a <a class="link" href="GtkStackSwitcher.html" title="GtkStackSwitcher"><span class="type">GtkStackSwitcher</span></a>, which is a
391
+ standalone widget to show a row of 'tabs' for the pages of a <a class="link" href="GtkStack.html" title="GtkStack"><span class="type">GtkStack</span></a>.
392
+ </p>
393
+ <div class="informalexample">
394
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
395
+ <tbody>
396
+ <tr>
397
+ <td class="listing_lines" align="right"><pre>1
398
+ 2
399
+ 3
400
+ 4
401
+ 5
402
+ 6
403
+ 7
404
+ 8
405
+ 9
406
+ 10
407
+ 11
408
+ 12
409
+ 13
410
+ 14
411
+ 15
412
+ 16
413
+ 17
414
+ 18
415
+ 19
416
+ 20
417
+ 21
418
+ 22
419
+ 23
420
+ 24
421
+ 25
422
+ 26
423
+ 27
424
+ 28
425
+ 29
426
+ 30
427
+ 31
428
+ 32</pre></td>
429
+ <td class="listing_code"><pre class="programlisting"><span class="symbol">&lt;?</span><span class="usertype">xml</span><span class="normal"> version</span><span class="symbol">=</span><span class="string">"1.0"</span><span class="normal"> encoding</span><span class="symbol">=</span><span class="string">"UTF-8"</span><span class="symbol">?&gt;</span>
430
+ <span class="symbol">&lt;</span><span class="normal">interface</span><span class="symbol">&gt;</span>
431
+ <span class="normal"> </span><span class="symbol">&lt;!--</span><span class="normal"> interface</span><span class="symbol">-</span><span class="usertype">requires</span><span class="normal"> gtk</span><span class="symbol">+</span><span class="normal"> </span><span class="number">3.8</span><span class="normal"> </span><span class="symbol">--&gt;</span>
432
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">template</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"ExampleAppWindow"</span><span class="normal"> parent</span><span class="symbol">=</span><span class="string">"GtkApplicationWindow"</span><span class="symbol">&gt;</span>
433
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"title"</span><span class="normal"> translatable</span><span class="symbol">=</span><span class="string">"yes"</span><span class="symbol">&gt;</span><span class="usertype">Example</span><span class="normal"> Application</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
434
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"default-width"</span><span class="symbol">&gt;</span><span class="number">600</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
435
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"default-height"</span><span class="symbol">&gt;</span><span class="number">400</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
436
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
437
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkBox"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"content_box"</span><span class="symbol">&gt;</span>
438
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
439
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"orientation"</span><span class="symbol">&gt;</span><span class="normal">vertical</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
440
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
441
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkHeaderBar"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"header"</span><span class="symbol">&gt;</span>
442
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
443
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">child</span><span class="normal"> type</span><span class="symbol">=</span><span class="string">"title"</span><span class="symbol">&gt;</span>
444
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkStackSwitcher"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"tabs"</span><span class="symbol">&gt;</span>
445
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
446
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"margin"</span><span class="symbol">&gt;</span><span class="number">6</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
447
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"stack"</span><span class="symbol">&gt;</span><span class="normal">stack</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
448
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
449
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
450
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
451
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
452
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
453
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkStack"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"stack"</span><span class="symbol">&gt;</span>
454
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
455
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
456
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
457
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
458
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
459
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">template</span><span class="symbol">&gt;</span>
460
+ <span class="symbol">&lt;/</span><span class="normal">interface</span><span class="symbol">&gt;</span></pre></td>
461
+ </tr>
462
+ </tbody>
463
+ </table>
464
+ </div>
465
+
466
+ <p>To make use of this file in our application, we revisit
467
+ our <a class="link" href="GtkApplicationWindow.html" title="GtkApplicationWindow"><span class="type">GtkApplicationWindow</span></a> subclass, and call
468
+ <a class="link" href="GtkWidget.html#gtk-widget-class-set-template-from-resource" title="gtk_widget_class_set_template_from_resource ()"><code class="function">gtk_widget_class_set_template_from_resource()</code></a> from the class init
469
+ function to set the ui file as template for this class. We also
470
+ add a call to <a class="link" href="GtkWidget.html#gtk-widget-init-template" title="gtk_widget_init_template ()"><code class="function">gtk_widget_init_template()</code></a> in the instance init
471
+ function to instantiate the template for each instance of our
472
+ class.</p>
473
+ <div class="informalexample">
474
+ <pre class="programlisting">
475
+ ...
36
476
 
37
477
  static void
38
- print_hello (GtkWidget *widget,
39
- gpointer data)
478
+ example_app_window_init (ExampleAppWindow *win)
40
479
  {
41
- g_print ("Hello World\n");
480
+ gtk_widget_init_template (GTK_WIDGET (win));
42
481
  }
43
482
 
44
- int
45
- main (int argc,
46
- char *argv[])
483
+ static void
484
+ example_app_window_class_init (ExampleAppWindowClass *class)
47
485
  {
48
- GtkBuilder *builder;
49
- GObject *window;
50
- GObject *button;
486
+ gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (class),
487
+ "/org/gtk/exampleapp/window.ui");
488
+ }
51
489
 
52
- gtk_init (&amp;argc, &amp;argv);
490
+ ...
491
+ </pre>
492
+ <p>(<a class="ulink" href="https://git.gnome.org/browse/gtk+/tree/examples/application2/exampleappwin.c" target="_top">full source</a>)</p>
493
+ </div>
494
+ <p>You may have noticed that we used the <code class="literal">_from_resource()</code> variant
495
+ of the function that sets a template. Now we need to use GLib's resource
496
+ functionality to include the ui file in the binary. This is commonly
497
+ done by listing all resources in a .gresource.xml file, such as this:
498
+ </p>
499
+ <div class="informalexample">
500
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
501
+ <tbody>
502
+ <tr>
503
+ <td class="listing_lines" align="right"><pre>1
504
+ 2
505
+ 3
506
+ 4
507
+ 5
508
+ 6</pre></td>
509
+ <td class="listing_code"><pre class="programlisting"><span class="symbol">&lt;?</span><span class="usertype">xml</span><span class="normal"> version</span><span class="symbol">=</span><span class="string">"1.0"</span><span class="normal"> encoding</span><span class="symbol">=</span><span class="string">"UTF-8"</span><span class="symbol">?&gt;</span>
510
+ <span class="symbol">&lt;</span><span class="normal">gresources</span><span class="symbol">&gt;</span>
511
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">gresource</span><span class="normal"> prefix</span><span class="symbol">=</span><span class="string">"/org/gtk/exampleapp"</span><span class="symbol">&gt;</span>
512
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">file</span><span class="normal"> preprocess</span><span class="symbol">=</span><span class="string">"xml-stripblanks"</span><span class="symbol">&gt;</span><span class="normal">window</span><span class="symbol">.</span><span class="normal">ui</span><span class="symbol">&lt;/</span><span class="normal">file</span><span class="symbol">&gt;</span>
513
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">gresource</span><span class="symbol">&gt;</span>
514
+ <span class="symbol">&lt;/</span><span class="normal">gresources</span><span class="symbol">&gt;</span></pre></td>
515
+ </tr>
516
+ </tbody>
517
+ </table>
518
+ </div>
53
519
 
54
- /* Construct a GtkBuilder instance and load our UI description */
55
- builder = gtk_builder_new ();
56
- gtk_builder_add_from_file (builder, "builder.ui", NULL);
520
+ <p>This file has to be converted into a C source file that will be
521
+ compiled and linked into the application together with the other source
522
+ files. To do so, we use the glib-compile-resources utility:</p>
523
+ <pre class="screen">
524
+ glib-compile-resources exampleapp.gresource.xml --target=resources.c --generate-source
525
+ </pre>
526
+ <p>Our application now looks like this:</p>
527
+ <div class="informalfigure"><div class="mediaobject"><img src="getting-started-app2.png"></div></div>
528
+ </div>
529
+ <div class="section">
530
+ <div class="titlepage"><div><div><h3 class="title">
531
+ <a name="id-1.2.3.12.7"></a>Opening files</h3></div></div></div>
532
+ <p>In this step, we make our application show the content of
533
+ all the files that it is given on the commandline.</p>
534
+ <p>To this end, we add a private struct to our application
535
+ window subclass and keep a reference to the <a class="link" href="GtkStack.html" title="GtkStack"><span class="type">GtkStack</span></a> there.
536
+ The <a class="link" href="GtkWidget.html#gtk-widget-class-bind-template-child-private" title="gtk_widget_class_bind_template_child_private()"><code class="function">gtk_widget_class_bind_template_child_private()</code></a> function
537
+ arranges things so that after instantiating the template, the
538
+ <em class="parameter"><code>stack</code></em> member of the private struct will point to the widget of
539
+ the same name from the template.</p>
540
+ <div class="informalexample">
541
+ <pre class="programlisting">
542
+ ...
543
+
544
+ struct _ExampleAppWindowPrivate
545
+ {
546
+ GtkWidget *stack;
547
+ };
548
+
549
+ G_DEFINE_TYPE_WITH_PRIVATE(ExampleAppWindow, example_app_window, GTK_TYPE_APPLICATION_WINDOW);
550
+
551
+ ...
552
+
553
+ static void
554
+ example_app_window_class_init (ExampleAppWindowClass *class)
555
+ {
556
+ gtk_widget_class_set_template_from_resource (GTK_WIDGET_CLASS (class),
557
+ "/org/gtk/exampleapp/window.ui");
558
+ gtk_widget_class_bind_template_child_private (GTK_WIDGET_CLASS (class), ExampleAppWindow, stack);
559
+ }
560
+
561
+ ...
562
+ </pre>
563
+ <p>(<a class="ulink" href="https://git.gnome.org/browse/gtk+/tree/examples/application3/exampleappwin.c" target="_top">full source</a>)</p>
564
+ </div>
565
+ <p>Now we revisit the <code class="function">example_app_window_open()</code> function that
566
+ is called for each commandline argument, and construct a GtkTextView
567
+ that we then add as a page to the stack:</p>
568
+ <div class="informalexample">
569
+ <pre class="programlisting">
570
+ ...
571
+
572
+ void
573
+ example_app_window_open (ExampleAppWindow *win,
574
+ GFile *file)
575
+ {
576
+ ExampleAppWindowPrivate *priv;
577
+ gchar *basename;
578
+ GtkWidget *scrolled, *view;
579
+ gchar *contents;
580
+ gsize length;
581
+
582
+ priv = example_app_window_get_instance_private (win);
583
+ basename = g_file_get_basename (file);
584
+
585
+ scrolled = gtk_scrolled_window_new (NULL, NULL);
586
+ gtk_widget_show (scrolled);
587
+ gtk_widget_set_hexpand (scrolled, TRUE);
588
+ gtk_widget_set_vexpand (scrolled, TRUE);
589
+ view = gtk_text_view_new ();
590
+ gtk_text_view_set_editable (GTK_TEXT_VIEW (view), FALSE);
591
+ gtk_text_view_set_cursor_visible (GTK_TEXT_VIEW (view), FALSE);
592
+ gtk_widget_show (view);
593
+ gtk_container_add (GTK_CONTAINER (scrolled), view);
594
+ gtk_stack_add_titled (GTK_STACK (priv-&gt;stack), scrolled, basename, basename);
595
+
596
+ if (g_file_load_contents (file, NULL, &amp;contents, &amp;length, NULL, NULL))
597
+ {
598
+ GtkTextBuffer *buffer;
599
+
600
+ buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
601
+ gtk_text_buffer_set_text (buffer, contents, length);
602
+ g_free (contents);
603
+ }
604
+
605
+ g_free (basename);
606
+ }
607
+
608
+ ...
609
+ </pre>
610
+ <p>(<a class="ulink" href="https://git.gnome.org/browse/gtk+/tree/examples/application3/exampleappwin.c" target="_top">full source</a>)</p>
611
+ </div>
612
+ <p>Note that we did not have to touch the stack switcher
613
+ at all. It gets all its information from the stack that it
614
+ belongs to. Here, we are passing the label to show for each
615
+ file as the last argument to the <a class="link" href="GtkStack.html#gtk-stack-add-titled" title="gtk_stack_add_titled ()"><code class="function">gtk_stack_add_titled()</code></a>
616
+ function.</p>
617
+ <p>Our application is beginning to take shape:</p>
618
+ <div class="informalfigure"><div class="mediaobject"><img src="getting-started-app3.png"></div></div>
619
+ </div>
620
+ <div class="section">
621
+ <div class="titlepage"><div><div><h3 class="title">
622
+ <a name="id-1.2.3.12.8"></a>An application menu</h3></div></div></div>
623
+ <p>An application menu is shown by GNOME shell at the top of the
624
+ screen. It is meant to collect infrequently used actions that affect
625
+ the whole application.</p>
626
+ <p>Just like the window template, we specify our application menu
627
+ in a ui file, and add it as a resource to our binary.</p>
628
+ <div class="informalexample">
629
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
630
+ <tbody>
631
+ <tr>
632
+ <td class="listing_lines" align="right"><pre>1
633
+ 2
634
+ 3
635
+ 4
636
+ 5
637
+ 6
638
+ 7
639
+ 8
640
+ 9
641
+ 10
642
+ 11
643
+ 12
644
+ 13
645
+ 14
646
+ 15
647
+ 16
648
+ 17
649
+ 18</pre></td>
650
+ <td class="listing_code"><pre class="programlisting"><span class="symbol">&lt;?</span><span class="usertype">xml</span><span class="normal"> version</span><span class="symbol">=</span><span class="string">"1.0"</span><span class="symbol">?&gt;</span>
651
+ <span class="symbol">&lt;</span><span class="normal">interface</span><span class="symbol">&gt;</span>
652
+ <span class="normal"> </span><span class="symbol">&lt;!--</span><span class="normal"> interface</span><span class="symbol">-</span><span class="usertype">requires</span><span class="normal"> gtk</span><span class="symbol">+</span><span class="normal"> </span><span class="number">3.0</span><span class="normal"> </span><span class="symbol">--&gt;</span>
653
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">menu</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"appmenu"</span><span class="symbol">&gt;</span>
654
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">section</span><span class="symbol">&gt;</span>
655
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">item</span><span class="symbol">&gt;</span>
656
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">attribute</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"label"</span><span class="normal"> translatable</span><span class="symbol">=</span><span class="string">"yes"</span><span class="symbol">&gt;</span><span class="normal">_Preferences</span><span class="symbol">&lt;/</span><span class="normal">attribute</span><span class="symbol">&gt;</span>
657
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">attribute</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"action"</span><span class="symbol">&gt;</span><span class="normal">app</span><span class="symbol">.</span><span class="normal">preferences</span><span class="symbol">&lt;/</span><span class="normal">attribute</span><span class="symbol">&gt;</span>
658
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">item</span><span class="symbol">&gt;</span>
659
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">section</span><span class="symbol">&gt;</span>
660
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">section</span><span class="symbol">&gt;</span>
661
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">item</span><span class="symbol">&gt;</span>
662
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">attribute</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"label"</span><span class="normal"> translatable</span><span class="symbol">=</span><span class="string">"yes"</span><span class="symbol">&gt;</span><span class="normal">_Quit</span><span class="symbol">&lt;/</span><span class="normal">attribute</span><span class="symbol">&gt;</span>
663
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">attribute</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"action"</span><span class="symbol">&gt;</span><span class="normal">app</span><span class="symbol">.</span><span class="normal">quit</span><span class="symbol">&lt;/</span><span class="normal">attribute</span><span class="symbol">&gt;</span>
664
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">item</span><span class="symbol">&gt;</span>
665
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">section</span><span class="symbol">&gt;</span>
666
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">menu</span><span class="symbol">&gt;</span>
667
+ <span class="symbol">&lt;/</span><span class="normal">interface</span><span class="symbol">&gt;</span></pre></td>
668
+ </tr>
669
+ </tbody>
670
+ </table>
671
+ </div>
672
+
673
+ <p>To associate the app menu with the application, we have to call
674
+ <a class="link" href="GtkApplication.html#gtk-application-set-app-menu" title="gtk_application_set_app_menu ()"><code class="function">gtk_application_set_app_menu()</code></a>. Since app menus work by activating
675
+ <a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gio/GAction.html"><span class="type">GActions</span></a>, we also have to add a suitable set of actions to our
676
+ application.</p>
677
+ <p>Both of these tasks are best done in the <code class="function">startup()</code> vfunc,
678
+ which is guaranteed to be called once for each primary application
679
+ instance:</p>
680
+ <div class="informalexample">
681
+ <pre class="programlisting">
682
+ ...
57
683
 
58
- /* Connect signal handlers to the constructed widgets. */
59
- window = gtk_builder_get_object (builder, "window");
60
- g_signal_connect (window, "destroy", G_CALLBACK (gtk_main_quit), NULL);
684
+ static void
685
+ preferences_activated (GSimpleAction *action,
686
+ GVariant *parameter,
687
+ gpointer app)
688
+ {
689
+ }
61
690
 
62
- button = gtk_builder_get_object (builder, "button1");
63
- g_signal_connect (button, "clicked", G_CALLBACK (print_hello), NULL);
691
+ static void
692
+ quit_activated (GSimpleAction *action,
693
+ GVariant *parameter,
694
+ gpointer app)
695
+ {
696
+ g_application_quit (G_APPLICATION (app));
697
+ }
64
698
 
65
- button = gtk_builder_get_object (builder, "button2");
66
- g_signal_connect (button, "clicked", G_CALLBACK (print_hello), NULL);
699
+ static GActionEntry app_entries[] =
700
+ {
701
+ { "preferences", preferences_activated, NULL, NULL, NULL },
702
+ { "quit", quit_activated, NULL, NULL, NULL }
703
+ };
67
704
 
68
- button = gtk_builder_get_object (builder, "quit");
69
- g_signal_connect (button, "clicked", G_CALLBACK (gtk_main_quit), NULL);
705
+ static void
706
+ example_app_startup (GApplication *app)
707
+ {
708
+ GtkBuilder *builder;
709
+ GMenuModel *app_menu;
710
+ const gchar *quit_accels[2] = { "&lt;Ctrl&gt;Q", NULL };
70
711
 
71
- gtk_main ();
712
+ G_APPLICATION_CLASS (example_app_parent_class)-&gt;startup (app);
72
713
 
73
- return 0;
714
+ g_action_map_add_action_entries (G_ACTION_MAP (app),
715
+ app_entries, G_N_ELEMENTS (app_entries),
716
+ app);
717
+ gtk_application_set_accels_for_action (GTK_APPLICATION (app),
718
+ "app.quit",
719
+ quit_accels);
720
+
721
+ builder = gtk_builder_new_from_resource ("/org/gtk/exampleapp/app-menu.ui");
722
+ app_menu = G_MENU_MODEL (gtk_builder_get_object (builder, "appmenu"));
723
+ gtk_application_set_app_menu (GTK_APPLICATION (app), app_menu);
724
+ g_object_unref (builder);
725
+ }
726
+
727
+ static void
728
+ example_app_class_init (ExampleAppClass *class)
729
+ {
730
+ G_APPLICATION_CLASS (class)-&gt;startup = example_app_startup;
731
+ ...
74
732
  }
75
- </pre>
76
- <p>Create a new file with the following content named builder.ui.</p>
77
- <pre class="programlisting">&lt;interface&gt;
78
- &lt;object id="window" class="GtkWindow"&gt;
79
- &lt;property name="visible"&gt;True&lt;/property&gt;
80
- &lt;property name="title"&gt;Grid&lt;/property&gt;
81
- &lt;property name="border-width"&gt;10&lt;/property&gt;
82
- &lt;child&gt;
83
- &lt;object id="grid" class="GtkGrid"&gt;
84
- &lt;property name="visible"&gt;True&lt;/property&gt;
85
- &lt;child&gt;
86
- &lt;object id="button1" class="GtkButton"&gt;
87
- &lt;property name="visible"&gt;True&lt;/property&gt;
88
- &lt;property name="label"&gt;Button 1&lt;/property&gt;
89
- &lt;/object&gt;
90
- &lt;packing&gt;
91
- &lt;property name="left-attach"&gt;0&lt;/property&gt;
92
- &lt;property name="top-attach"&gt;0&lt;/property&gt;
93
- &lt;/packing&gt;
94
- &lt;/child&gt;
95
- &lt;child&gt;
96
- &lt;object id="button2" class="GtkButton"&gt;
97
- &lt;property name="visible"&gt;True&lt;/property&gt;
98
- &lt;property name="label"&gt;Button 2&lt;/property&gt;
99
- &lt;/object&gt;
100
- &lt;packing&gt;
101
- &lt;property name="left-attach"&gt;1&lt;/property&gt;
102
- &lt;property name="top-attach"&gt;0&lt;/property&gt;
103
- &lt;/packing&gt;
104
- &lt;/child&gt;
105
- &lt;child&gt;
106
- &lt;object id="quit" class="GtkButton"&gt;
107
- &lt;property name="visible"&gt;True&lt;/property&gt;
108
- &lt;property name="label"&gt;Quit&lt;/property&gt;
109
- &lt;/object&gt;
110
- &lt;packing&gt;
111
- &lt;property name="left-attach"&gt;0&lt;/property&gt;
112
- &lt;property name="top-attach"&gt;1&lt;/property&gt;
113
- &lt;property name="width"&gt;2&lt;/property&gt;
114
- &lt;/packing&gt;
115
- &lt;/child&gt;
116
- &lt;/object&gt;
117
- &lt;packing&gt;
118
- &lt;/packing&gt;
119
- &lt;/child&gt;
120
- &lt;/object&gt;
121
- &lt;/interface&gt;
122
- </pre>
123
- </div>
124
- </div>
125
- <br class="example-break"><p>
126
- You can compile the program above with GCC using:
733
+
734
+ ...
735
+ </pre>
736
+ <p>(<a class="ulink" href="https://git.gnome.org/browse/gtk+/tree/examples/application4/exampleapp.c" target="_top">full source</a>)</p>
737
+ </div>
738
+ <p>Our preferences menu item does not do anything yet,
739
+ but the Quit menu item is fully functional. Note that it
740
+ can also be activated by the usual Ctrl-Q shortcut. The
741
+ shortcut was added with <a class="link" href="GtkApplication.html#gtk-application-set-accels-for-action" title="gtk_application_set_accels_for_action ()"><code class="function">gtk_application_set_accels_for_action()</code></a>.
127
742
  </p>
128
- <div class="literallayout"><p><br>
129
-         <code class="literal">gcc `pkg-config --cflags gtk+-3.0` -o example-4 example-4.c `pkg-config --libs gtk+-3.0`</code><br>
130
-       </p></div>
131
- <p>
132
- </p>
133
- <p>Note that GtkBuilder can also be used to construct objects
134
- that are not widgets, such as tree models, adjustments, etc.
135
- That is the reason the method we use here is called
136
- <a class="link" href="GtkBuilder.html#gtk-builder-get-object" title="gtk_builder_get_object ()"><code class="function">gtk_builder_get_object()</code></a> and returns a GObject* instead of a
137
- GtkWidget*.</p>
138
- <p>Normally, you would pass a full path to
139
- <a class="link" href="GtkBuilder.html#gtk-builder-add-from-file" title="gtk_builder_add_from_file ()"><code class="function">gtk_builder_add_from_file()</code></a> to make the execution of your program
140
- independent of the current directory. A common location to install
141
- UI descriptions and similar data is
142
- <code class="filename">/usr/share/<em class="replaceable"><code>appname</code></em></code>.
143
- </p>
144
- <p>It is also possible to embed the UI description in the source
145
- code as a string and use <a class="link" href="GtkBuilder.html#gtk-builder-add-from-string" title="gtk_builder_add_from_string ()"><code class="function">gtk_builder_add_from_string()</code></a> to load it.
146
- But keeping the UI description in a separate file has several
147
- advantages: It is then possible to make minor adjustments to the UI
148
- without recompiling your program, and, more importantly, graphical
149
- UI editors such as <a class="ulink" href="http://glade.gnome.org" target="_top">glade</a>
150
- can load the file and allow you to create and modify your UI by
151
- point-and-click.</p>
743
+ <p>The application menu looks like this:</p>
744
+ <div class="informalfigure"><div class="mediaobject"><img src="getting-started-app4.png"></div></div>
745
+ </div>
746
+ <div class="section">
747
+ <div class="titlepage"><div><div><h3 class="title">
748
+ <a name="id-1.2.3.12.9"></a>A preference dialog</h3></div></div></div>
749
+ <p>A typical application will have a some preferences that
750
+ should be remembered from one run to the next. Even for our
751
+ simple example application, we may want to change the font
752
+ that is used for the content.</p>
753
+ <p>We are going to use GSettings to store our preferences.
754
+ GSettings requires a schema that describes our settings:</p>
755
+ <div class="informalexample">
756
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
757
+ <tbody>
758
+ <tr>
759
+ <td class="listing_lines" align="right"><pre>1
760
+ 2
761
+ 3
762
+ 4
763
+ 5
764
+ 6
765
+ 7
766
+ 8
767
+ 9
768
+ 10
769
+ 11
770
+ 12
771
+ 13
772
+ 14
773
+ 15
774
+ 16
775
+ 17
776
+ 18
777
+ 19
778
+ 20</pre></td>
779
+ <td class="listing_code"><pre class="programlisting"><span class="symbol">&lt;?</span><span class="usertype">xml</span><span class="normal"> version</span><span class="symbol">=</span><span class="string">"1.0"</span><span class="normal"> encoding</span><span class="symbol">=</span><span class="string">"UTF-8"</span><span class="symbol">?&gt;</span>
780
+ <span class="symbol">&lt;</span><span class="normal">schemalist</span><span class="symbol">&gt;</span>
781
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">schema</span><span class="normal"> path</span><span class="symbol">=</span><span class="string">"/org/gtk/exampleapp/"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"org.gtk.exampleapp"</span><span class="symbol">&gt;</span>
782
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">key</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"font"</span><span class="normal"> type</span><span class="symbol">=</span><span class="string">"s"</span><span class="symbol">&gt;</span>
783
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="keyword">default</span><span class="symbol">&gt;</span><span class="string">'Monospace 12'</span><span class="symbol">&lt;/</span><span class="keyword">default</span><span class="symbol">&gt;</span>
784
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">summary</span><span class="symbol">&gt;</span><span class="normal">Font</span><span class="symbol">&lt;/</span><span class="normal">summary</span><span class="symbol">&gt;</span>
785
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">description</span><span class="symbol">&gt;</span><span class="normal">The font to be used </span><span class="usertype">for</span><span class="normal"> content</span><span class="symbol">.&lt;/</span><span class="normal">description</span><span class="symbol">&gt;</span>
786
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">key</span><span class="symbol">&gt;</span>
787
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">key</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"transition"</span><span class="normal"> type</span><span class="symbol">=</span><span class="string">"s"</span><span class="symbol">&gt;</span>
788
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">choices</span><span class="symbol">&gt;</span>
789
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">choice</span><span class="normal"> value</span><span class="symbol">=</span><span class="string">'none'</span><span class="symbol">/&gt;</span>
790
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">choice</span><span class="normal"> value</span><span class="symbol">=</span><span class="string">'crossfade'</span><span class="symbol">/&gt;</span>
791
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">choice</span><span class="normal"> value</span><span class="symbol">=</span><span class="string">'slide-left-right'</span><span class="symbol">/&gt;</span>
792
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">choices</span><span class="symbol">&gt;</span>
793
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="keyword">default</span><span class="symbol">&gt;</span><span class="string">'none'</span><span class="symbol">&lt;/</span><span class="keyword">default</span><span class="symbol">&gt;</span>
794
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">summary</span><span class="symbol">&gt;</span><span class="normal">Transition</span><span class="symbol">&lt;/</span><span class="normal">summary</span><span class="symbol">&gt;</span>
795
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">description</span><span class="symbol">&gt;</span><span class="normal">The transition to use when </span><span class="usertype">switching</span><span class="normal"> tabs</span><span class="symbol">.&lt;/</span><span class="normal">description</span><span class="symbol">&gt;</span>
796
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">key</span><span class="symbol">&gt;</span>
797
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">schema</span><span class="symbol">&gt;</span>
798
+ <span class="symbol">&lt;/</span><span class="normal">schemalist</span><span class="symbol">&gt;</span></pre></td>
799
+ </tr>
800
+ </tbody>
801
+ </table>
802
+ </div>
803
+
804
+ <p>Before we can make use of this schema in our application,
805
+ we need to compile it into the binary form that GSettings
806
+ expects. GIO provides <a class="ulink" href="https://developer.gnome.org/gio/2.36/ch31s06.html" target="_top">macros</a>
807
+ to do this in autotools-based projects.</p>
808
+ <p>Next, we need to connect our settings to the widgets
809
+ that they are supposed to control. One convenient way to do
810
+ this is to use GSettings bind functionality to bind settings
811
+ keys to object properties, as we do here for the transition
812
+ setting.</p>
813
+ <div class="informalexample">
814
+ <pre class="programlisting">
815
+ ...
816
+
817
+ static void
818
+ example_app_window_init (ExampleAppWindow *win)
819
+ {
820
+ ExampleAppWindowPrivate *priv;
821
+
822
+ priv = example_app_window_get_instance_private (win);
823
+ gtk_widget_init_template (GTK_WIDGET (win));
824
+ priv-&gt;settings = g_settings_new ("org.gtk.exampleapp");
825
+
826
+ g_settings_bind (priv-&gt;settings, "transition",
827
+ priv-&gt;stack, "transition-type",
828
+ G_SETTINGS_BIND_DEFAULT);
829
+ }
830
+
831
+ ...
832
+ </pre>
833
+ <p>(<a class="ulink" href="https://git.gnome.org/browse/gtk+/tree/examples/application5/exampleappwin.c" target="_top">full source</a>)</p>
834
+ </div>
835
+ <p>The code to connect the font setting is a little more involved,
836
+ since there is no simple object property that it corresponds to, so
837
+ we are not going to go into that here.</p>
838
+ <p>At this point, the application will already react if you
839
+ change one of the settings, e.g. using the gsettings commandline
840
+ tool. Of course, we expect the application to provide a preference
841
+ dialog for these. So lets do that now. Our preference dialog will
842
+ be a subclass of GtkDialog, and we'll use the same techniques that
843
+ we've already seen: templates, private structs, settings
844
+ bindings.</p>
845
+ <p>Lets start with the template.</p>
846
+ <div class="informalexample">
847
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
848
+ <tbody>
849
+ <tr>
850
+ <td class="listing_lines" align="right"><pre>1
851
+ 2
852
+ 3
853
+ 4
854
+ 5
855
+ 6
856
+ 7
857
+ 8
858
+ 9
859
+ 10
860
+ 11
861
+ 12
862
+ 13
863
+ 14
864
+ 15
865
+ 16
866
+ 17
867
+ 18
868
+ 19
869
+ 20
870
+ 21
871
+ 22
872
+ 23
873
+ 24
874
+ 25
875
+ 26
876
+ 27
877
+ 28
878
+ 29
879
+ 30
880
+ 31
881
+ 32
882
+ 33
883
+ 34
884
+ 35
885
+ 36
886
+ 37
887
+ 38
888
+ 39
889
+ 40
890
+ 41
891
+ 42
892
+ 43
893
+ 44
894
+ 45
895
+ 46
896
+ 47
897
+ 48
898
+ 49
899
+ 50
900
+ 51
901
+ 52
902
+ 53
903
+ 54
904
+ 55
905
+ 56
906
+ 57
907
+ 58
908
+ 59
909
+ 60
910
+ 61
911
+ 62
912
+ 63
913
+ 64
914
+ 65
915
+ 66
916
+ 67
917
+ 68
918
+ 69
919
+ 70</pre></td>
920
+ <td class="listing_code"><pre class="programlisting"><span class="symbol">&lt;?</span><span class="usertype">xml</span><span class="normal"> version</span><span class="symbol">=</span><span class="string">"1.0"</span><span class="normal"> encoding</span><span class="symbol">=</span><span class="string">"UTF-8"</span><span class="symbol">?&gt;</span>
921
+ <span class="symbol">&lt;</span><span class="normal">interface</span><span class="symbol">&gt;</span>
922
+ <span class="normal"> </span><span class="symbol">&lt;!--</span><span class="normal"> interface</span><span class="symbol">-</span><span class="usertype">requires</span><span class="normal"> gtk</span><span class="symbol">+</span><span class="normal"> </span><span class="number">3.8</span><span class="normal"> </span><span class="symbol">--&gt;</span>
923
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">template</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"ExampleAppPrefs"</span><span class="normal"> parent</span><span class="symbol">=</span><span class="string">"GtkDialog"</span><span class="symbol">&gt;</span>
924
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"title"</span><span class="normal"> translatable</span><span class="symbol">=</span><span class="string">"yes"</span><span class="symbol">&gt;</span><span class="normal">Preferences</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
925
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"resizable"</span><span class="symbol">&gt;</span><span class="normal">False</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
926
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"modal"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
927
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">child</span><span class="normal"> internal</span><span class="symbol">-</span><span class="normal">child</span><span class="symbol">=</span><span class="string">"vbox"</span><span class="symbol">&gt;</span>
928
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkBox"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"vbox"</span><span class="symbol">&gt;</span>
929
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
930
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkGrid"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"grid"</span><span class="symbol">&gt;</span>
931
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
932
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"margin"</span><span class="symbol">&gt;</span><span class="number">6</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
933
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"row-spacing"</span><span class="symbol">&gt;</span><span class="number">12</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
934
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"column-spacing"</span><span class="symbol">&gt;</span><span class="number">6</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
935
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
936
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkLabel"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"fontlabel"</span><span class="symbol">&gt;</span>
937
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
938
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"label"</span><span class="symbol">&gt;</span><span class="normal">_Font</span><span class="symbol">:&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
939
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"use-underline"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
940
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"mnemonic-widget"</span><span class="symbol">&gt;</span><span class="normal">font</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
941
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"xalign"</span><span class="symbol">&gt;</span><span class="number">1</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
942
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
943
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">packing</span><span class="symbol">&gt;</span>
944
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"left-attach"</span><span class="symbol">&gt;</span><span class="number">0</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
945
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"top-attach"</span><span class="symbol">&gt;</span><span class="number">0</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
946
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">packing</span><span class="symbol">&gt;</span>
947
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
948
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
949
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkFontButton"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"font"</span><span class="symbol">&gt;</span>
950
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
951
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
952
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">packing</span><span class="symbol">&gt;</span>
953
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"left-attach"</span><span class="symbol">&gt;</span><span class="number">1</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
954
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"top-attach"</span><span class="symbol">&gt;</span><span class="number">0</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
955
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">packing</span><span class="symbol">&gt;</span>
956
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
957
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
958
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkLabel"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"transitionlabel"</span><span class="symbol">&gt;</span>
959
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
960
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"label"</span><span class="symbol">&gt;</span><span class="normal">_Transition</span><span class="symbol">:&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
961
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"use-underline"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
962
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"mnemonic-widget"</span><span class="symbol">&gt;</span><span class="normal">transition</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
963
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"xalign"</span><span class="symbol">&gt;</span><span class="number">1</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
964
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
965
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">packing</span><span class="symbol">&gt;</span>
966
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"left-attach"</span><span class="symbol">&gt;</span><span class="number">0</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
967
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"top-attach"</span><span class="symbol">&gt;</span><span class="number">1</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
968
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">packing</span><span class="symbol">&gt;</span>
969
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
970
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
971
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkComboBoxText"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"transition"</span><span class="symbol">&gt;</span>
972
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
973
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">items</span><span class="symbol">&gt;</span>
974
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">item</span><span class="normal"> translatable</span><span class="symbol">=</span><span class="string">"yes"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"none"</span><span class="symbol">&gt;</span><span class="normal">None</span><span class="symbol">&lt;/</span><span class="normal">item</span><span class="symbol">&gt;</span>
975
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">item</span><span class="normal"> translatable</span><span class="symbol">=</span><span class="string">"yes"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"crossfade"</span><span class="symbol">&gt;</span><span class="normal">Fade</span><span class="symbol">&lt;/</span><span class="normal">item</span><span class="symbol">&gt;</span>
976
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">item</span><span class="normal"> translatable</span><span class="symbol">=</span><span class="string">"yes"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"slide-left-right"</span><span class="symbol">&gt;</span><span class="normal">Slide</span><span class="symbol">&lt;/</span><span class="normal">item</span><span class="symbol">&gt;</span>
977
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">items</span><span class="symbol">&gt;</span>
978
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
979
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">packing</span><span class="symbol">&gt;</span>
980
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"left-attach"</span><span class="symbol">&gt;</span><span class="number">1</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
981
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"top-attach"</span><span class="symbol">&gt;</span><span class="number">1</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
982
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">packing</span><span class="symbol">&gt;</span>
983
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
984
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
985
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
986
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
987
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
988
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">template</span><span class="symbol">&gt;</span>
989
+ <span class="symbol">&lt;/</span><span class="normal">interface</span><span class="symbol">&gt;</span></pre></td>
990
+ </tr>
991
+ </tbody>
992
+ </table>
993
+ </div>
994
+
995
+ <p>Next comes the dialog subclass.</p>
996
+ <div class="informalexample">
997
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
998
+ <tbody>
999
+ <tr>
1000
+ <td class="listing_lines" align="right"><pre>1
1001
+ 2
1002
+ 3
1003
+ 4
1004
+ 5
1005
+ 6
1006
+ 7
1007
+ 8
1008
+ 9
1009
+ 10
1010
+ 11
1011
+ 12
1012
+ 13
1013
+ 14
1014
+ 15
1015
+ 16
1016
+ 17
1017
+ 18
1018
+ 19
1019
+ 20
1020
+ 21
1021
+ 22
1022
+ 23
1023
+ 24
1024
+ 25
1025
+ 26
1026
+ 27
1027
+ 28
1028
+ 29
1029
+ 30
1030
+ 31
1031
+ 32
1032
+ 33
1033
+ 34
1034
+ 35
1035
+ 36
1036
+ 37
1037
+ 38
1038
+ 39
1039
+ 40
1040
+ 41
1041
+ 42
1042
+ 43
1043
+ 44
1044
+ 45
1045
+ 46
1046
+ 47
1047
+ 48
1048
+ 49
1049
+ 50
1050
+ 51
1051
+ 52
1052
+ 53
1053
+ 54
1054
+ 55
1055
+ 56
1056
+ 57
1057
+ 58
1058
+ 59
1059
+ 60
1060
+ 61
1061
+ 62
1062
+ 63
1063
+ 64
1064
+ 65
1065
+ 66
1066
+ 67
1067
+ 68
1068
+ 69
1069
+ 70
1070
+ 71</pre></td>
1071
+ <td class="listing_code"><pre class="programlisting"><span class="preproc">#include</span><span class="normal"> </span><span class="string">&lt;gtk/gtk.h&gt;</span>
1072
+
1073
+ <span class="preproc">#include</span><span class="normal"> </span><span class="string">"exampleapp.h"</span>
1074
+ <span class="preproc">#include</span><span class="normal"> </span><span class="string">"exampleappwin.h"</span>
1075
+ <span class="preproc">#include</span><span class="normal"> </span><span class="string">"exampleappprefs.h"</span>
1076
+
1077
+ <span class="keyword">struct</span><span class="normal"> </span><span class="classname">_ExampleAppPrefs</span>
1078
+ <span class="cbracket">{</span>
1079
+ <span class="normal"> </span><span class="usertype">GtkDialog</span><span class="normal"> parent</span><span class="symbol">;</span>
1080
+ <span class="cbracket">}</span><span class="symbol">;</span>
1081
+
1082
+ <span class="keyword">struct</span><span class="normal"> </span><span class="classname">_ExampleAppPrefsClass</span>
1083
+ <span class="cbracket">{</span>
1084
+ <span class="normal"> </span><span class="usertype">GtkDialogClass</span><span class="normal"> parent_class</span><span class="symbol">;</span>
1085
+ <span class="cbracket">}</span><span class="symbol">;</span>
1086
+
1087
+ <span class="keyword">typedef</span><span class="normal"> </span><span class="keyword">struct</span><span class="normal"> </span><span class="classname">_ExampleAppPrefsPrivate</span><span class="normal"> ExampleAppPrefsPrivate</span><span class="symbol">;</span>
1088
+
1089
+ <span class="keyword">struct</span><span class="normal"> </span><span class="classname">_ExampleAppPrefsPrivate</span>
1090
+ <span class="cbracket">{</span>
1091
+ <span class="normal"> </span><span class="usertype">GSettings</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">settings</span><span class="symbol">;</span>
1092
+ <span class="normal"> </span><span class="usertype">GtkWidget</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">font</span><span class="symbol">;</span>
1093
+ <span class="normal"> </span><span class="usertype">GtkWidget</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">transition</span><span class="symbol">;</span>
1094
+ <span class="cbracket">}</span><span class="symbol">;</span>
1095
+
1096
+ <span class="function"><a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gobject/gobject-Type-Information.html#G-DEFINE-TYPE-WITH-PRIVATE:CAPS">G_DEFINE_TYPE_WITH_PRIVATE</a></span><span class="symbol">(</span><span class="normal">ExampleAppPrefs</span><span class="symbol">,</span><span class="normal"> example_app_prefs</span><span class="symbol">,</span><span class="normal"> GTK_TYPE_DIALOG</span><span class="symbol">)</span>
1097
+
1098
+ <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
1099
+ <span class="function">example_app_prefs_init</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">ExampleAppPrefs</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">prefs</span><span class="symbol">)</span>
1100
+ <span class="cbracket">{</span>
1101
+ <span class="normal"> </span><span class="usertype">ExampleAppPrefsPrivate</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">priv</span><span class="symbol">;</span>
1102
+
1103
+ <span class="normal"> priv </span><span class="symbol">=</span><span class="normal"> </span><span class="function">example_app_prefs_get_instance_private</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">prefs</span><span class="symbol">);</span>
1104
+ <span class="normal"> </span><span class="function"><a href="GtkWidget.html#gtk-widget-init-template">gtk_widget_init_template</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_WIDGET</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">prefs</span><span class="symbol">));</span>
1105
+ <span class="normal"> priv</span><span class="symbol">-&gt;</span><span class="normal">settings </span><span class="symbol">=</span><span class="normal"> </span><span class="function"><a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gio/GSettings.html#g-settings-new">g_settings_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="string">"org.gtk.exampleapp"</span><span class="symbol">);</span>
1106
+
1107
+ <span class="normal"> </span><span class="function"><a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gio/GSettings.html#g-settings-bind">g_settings_bind</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">priv</span><span class="symbol">-&gt;</span><span class="normal">settings</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"font"</span><span class="symbol">,</span>
1108
+ <span class="normal"> priv</span><span class="symbol">-&gt;</span><span class="normal">font</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"font"</span><span class="symbol">,</span>
1109
+ <span class="normal"> <a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gio/GSettings.html#G-SETTINGS-BIND-DEFAULT:CAPS">G_SETTINGS_BIND_DEFAULT</a></span><span class="symbol">);</span>
1110
+ <span class="normal"> </span><span class="function"><a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gio/GSettings.html#g-settings-bind">g_settings_bind</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">priv</span><span class="symbol">-&gt;</span><span class="normal">settings</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"transition"</span><span class="symbol">,</span>
1111
+ <span class="normal"> priv</span><span class="symbol">-&gt;</span><span class="normal">transition</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"active-id"</span><span class="symbol">,</span>
1112
+ <span class="normal"> <a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gio/GSettings.html#G-SETTINGS-BIND-DEFAULT:CAPS">G_SETTINGS_BIND_DEFAULT</a></span><span class="symbol">);</span>
1113
+ <span class="cbracket">}</span>
1114
+
1115
+ <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
1116
+ <span class="function">example_app_prefs_dispose</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">GObject</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">object</span><span class="symbol">)</span>
1117
+ <span class="cbracket">{</span>
1118
+ <span class="normal"> </span><span class="usertype">ExampleAppPrefsPrivate</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">priv</span><span class="symbol">;</span>
1119
+
1120
+ <span class="normal"> priv </span><span class="symbol">=</span><span class="normal"> </span><span class="function">example_app_prefs_get_instance_private</span><span class="normal"> </span><span class="symbol">(</span><span class="function">EXAMPLE_APP_PREFS</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">object</span><span class="symbol">));</span>
1121
+ <span class="normal"> </span><span class="function"><a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#g-clear-object">g_clear_object</a></span><span class="normal"> </span><span class="symbol">(&amp;</span><span class="normal">priv</span><span class="symbol">-&gt;</span><span class="normal">settings</span><span class="symbol">);</span>
1122
+
1123
+ <span class="normal"> </span><span class="function"><a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#G-OBJECT-CLASS:CAPS">G_OBJECT_CLASS</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">example_app_prefs_parent_class</span><span class="symbol">)-&gt;</span><span class="function">dispose</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">object</span><span class="symbol">);</span>
1124
+ <span class="cbracket">}</span>
1125
+
1126
+ <span class="keyword">static</span><span class="normal"> </span><span class="type">void</span>
1127
+ <span class="function">example_app_prefs_class_init</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">ExampleAppPrefsClass</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">class</span><span class="symbol">)</span>
1128
+ <span class="cbracket">{</span>
1129
+ <span class="normal"> </span><span class="function"><a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#G-OBJECT-CLASS:CAPS">G_OBJECT_CLASS</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">class</span><span class="symbol">)-&gt;</span><span class="normal">dispose </span><span class="symbol">=</span><span class="normal"> example_app_prefs_dispose</span><span class="symbol">;</span>
1130
+
1131
+ <span class="normal"> </span><span class="function"><a href="GtkWidget.html#gtk-widget-class-set-template-from-resource">gtk_widget_class_set_template_from_resource</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_WIDGET_CLASS</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">class</span><span class="symbol">),</span>
1132
+ <span class="normal"> </span><span class="string">"/org/gtk/exampleapp/prefs.ui"</span><span class="symbol">);</span>
1133
+ <span class="normal"> </span><span class="function"><a href="GtkWidget.html#gtk-widget-class-bind-template-child-private">gtk_widget_class_bind_template_child_private</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_WIDGET_CLASS</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">class</span><span class="symbol">),</span><span class="normal"> ExampleAppPrefs</span><span class="symbol">,</span><span class="normal"> font</span><span class="symbol">);</span>
1134
+ <span class="normal"> </span><span class="function"><a href="GtkWidget.html#gtk-widget-class-bind-template-child-private">gtk_widget_class_bind_template_child_private</a></span><span class="normal"> </span><span class="symbol">(</span><span class="function">GTK_WIDGET_CLASS</span><span class="normal"> </span><span class="symbol">(</span><span class="normal">class</span><span class="symbol">),</span><span class="normal"> ExampleAppPrefs</span><span class="symbol">,</span><span class="normal"> transition</span><span class="symbol">);</span>
1135
+ <span class="cbracket">}</span>
1136
+
1137
+ <span class="normal">ExampleAppPrefs </span><span class="symbol">*</span>
1138
+ <span class="function">example_app_prefs_new</span><span class="normal"> </span><span class="symbol">(</span><span class="usertype">ExampleAppWindow</span><span class="normal"> </span><span class="symbol">*</span><span class="normal">win</span><span class="symbol">)</span>
1139
+ <span class="cbracket">{</span>
1140
+ <span class="normal"> </span><span class="keyword">return</span><span class="normal"> </span><span class="function"><a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gobject/gobject-The-Base-Object-Type.html#g-object-new">g_object_new</a></span><span class="normal"> </span><span class="symbol">(</span><span class="normal">EXAMPLE_APP_PREFS_TYPE</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"transient-for"</span><span class="symbol">,</span><span class="normal"> win</span><span class="symbol">,</span><span class="normal"> </span><span class="string">"use-header-bar"</span><span class="symbol">,</span><span class="normal"> <a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/glib/glib-Standard-Macros.html#TRUE:CAPS">TRUE</a></span><span class="symbol">,</span><span class="normal"> <a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/glib/glib-Standard-Macros.html#NULL:CAPS">NULL</a></span><span class="symbol">);</span>
1141
+ <span class="cbracket">}</span></pre></td>
1142
+ </tr>
1143
+ </tbody>
1144
+ </table>
1145
+ </div>
1146
+
1147
+ <p>Now we revisit the <code class="literal">preferences_activated()</code> function in our
1148
+ application class, and make it open a new preference dialog.</p>
1149
+ <div class="informalexample">
1150
+ <pre class="programlisting">
1151
+ ...
1152
+
1153
+ static void
1154
+ preferences_activated (GSimpleAction *action,
1155
+ GVariant *parameter,
1156
+ gpointer app)
1157
+ {
1158
+ ExampleAppPrefs *prefs;
1159
+ GtkWindow *win;
1160
+
1161
+ win = gtk_application_get_active_window (GTK_APPLICATION (app));
1162
+ prefs = example_app_prefs_new (EXAMPLE_APP_WINDOW (win));
1163
+ gtk_window_present (GTK_WINDOW (prefs));
1164
+ }
1165
+
1166
+ ...
1167
+ </pre>
1168
+ <p>(<a class="ulink" href="https://git.gnome.org/browse/gtk+/tree/examples/application6/exampleapp.c" target="_top">full source</a>)</p>
1169
+ </div>
1170
+ <p>After all this work, our application can now show
1171
+ a preference dialog like this:</p>
1172
+ <div class="informalfigure"><div class="mediaobject"><img src="getting-started-app6.png"></div></div>
1173
+ </div>
1174
+ <div class="section">
1175
+ <div class="titlepage"><div><div><h3 class="title">
1176
+ <a name="id-1.2.3.12.10"></a>Adding a search bar</h3></div></div></div>
1177
+ <p>We continue to flesh out the functionality of our application.
1178
+ For now, we add search. GTK+ supports this with <a class="link" href="GtkSearchEntry.html" title="GtkSearchEntry"><span class="type">GtkSearchEntry</span></a> and
1179
+ <a class="link" href="GtkSearchBar.html" title="GtkSearchBar"><span class="type">GtkSearchBar</span></a>. The search bar is a widget that can slide in from the
1180
+ top to present a search entry.</p>
1181
+ <p>We add a toggle button to the header bar, which can be used
1182
+ to slide out the search bar below the header bar.</p>
1183
+ <div class="informalexample">
1184
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
1185
+ <tbody>
1186
+ <tr>
1187
+ <td class="listing_lines" align="right"><pre>1
1188
+ 2
1189
+ 3
1190
+ 4
1191
+ 5
1192
+ 6
1193
+ 7
1194
+ 8
1195
+ 9
1196
+ 10
1197
+ 11
1198
+ 12
1199
+ 13
1200
+ 14
1201
+ 15
1202
+ 16
1203
+ 17
1204
+ 18
1205
+ 19
1206
+ 20
1207
+ 21
1208
+ 22
1209
+ 23
1210
+ 24
1211
+ 25
1212
+ 26
1213
+ 27
1214
+ 28
1215
+ 29
1216
+ 30
1217
+ 31
1218
+ 32
1219
+ 33
1220
+ 34
1221
+ 35
1222
+ 36
1223
+ 37
1224
+ 38
1225
+ 39
1226
+ 40
1227
+ 41
1228
+ 42
1229
+ 43
1230
+ 44
1231
+ 45
1232
+ 46
1233
+ 47
1234
+ 48
1235
+ 49
1236
+ 50
1237
+ 51
1238
+ 52
1239
+ 53
1240
+ 54
1241
+ 55
1242
+ 56
1243
+ 57
1244
+ 58
1245
+ 59
1246
+ 60
1247
+ 61
1248
+ 62
1249
+ 63</pre></td>
1250
+ <td class="listing_code"><pre class="programlisting"><span class="symbol">&lt;?</span><span class="usertype">xml</span><span class="normal"> version</span><span class="symbol">=</span><span class="string">"1.0"</span><span class="normal"> encoding</span><span class="symbol">=</span><span class="string">"UTF-8"</span><span class="symbol">?&gt;</span>
1251
+ <span class="symbol">&lt;</span><span class="normal">interface</span><span class="symbol">&gt;</span>
1252
+ <span class="normal"> </span><span class="symbol">&lt;!--</span><span class="normal"> interface</span><span class="symbol">-</span><span class="usertype">requires</span><span class="normal"> gtk</span><span class="symbol">+</span><span class="normal"> </span><span class="number">3.8</span><span class="normal"> </span><span class="symbol">--&gt;</span>
1253
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">template</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"ExampleAppWindow"</span><span class="normal"> parent</span><span class="symbol">=</span><span class="string">"GtkApplicationWindow"</span><span class="symbol">&gt;</span>
1254
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"title"</span><span class="normal"> translatable</span><span class="symbol">=</span><span class="string">"yes"</span><span class="symbol">&gt;</span><span class="usertype">Example</span><span class="normal"> Application</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1255
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"default-width"</span><span class="symbol">&gt;</span><span class="number">600</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1256
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"default-height"</span><span class="symbol">&gt;</span><span class="number">400</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1257
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
1258
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkBox"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"content_box"</span><span class="symbol">&gt;</span>
1259
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1260
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"orientation"</span><span class="symbol">&gt;</span><span class="normal">vertical</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1261
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
1262
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkHeaderBar"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"header"</span><span class="symbol">&gt;</span>
1263
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1264
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">child</span><span class="normal"> type</span><span class="symbol">=</span><span class="string">"title"</span><span class="symbol">&gt;</span>
1265
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkStackSwitcher"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"tabs"</span><span class="symbol">&gt;</span>
1266
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1267
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"margin"</span><span class="symbol">&gt;</span><span class="number">6</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1268
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"stack"</span><span class="symbol">&gt;</span><span class="normal">stack</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1269
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1270
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1271
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
1272
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkToggleButton"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"search"</span><span class="symbol">&gt;</span>
1273
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1274
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"sensitive"</span><span class="symbol">&gt;</span><span class="normal">False</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1275
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">style</span><span class="symbol">&gt;</span>
1276
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">class</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"image-button"</span><span class="symbol">/&gt;</span>
1277
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">style</span><span class="symbol">&gt;</span>
1278
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
1279
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkImage"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"search-icon"</span><span class="symbol">&gt;</span>
1280
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1281
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"icon-name"</span><span class="symbol">&gt;</span><span class="normal">edit</span><span class="symbol">-</span><span class="normal">find</span><span class="symbol">-</span><span class="normal">symbolic</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1282
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"icon-size"</span><span class="symbol">&gt;</span><span class="number">1</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1283
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1284
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1285
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1286
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">packing</span><span class="symbol">&gt;</span>
1287
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"pack-type"</span><span class="symbol">&gt;</span><span class="normal">end</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1288
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">packing</span><span class="symbol">&gt;</span>
1289
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1290
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1291
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1292
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
1293
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkSearchBar"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"searchbar"</span><span class="symbol">&gt;</span>
1294
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1295
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
1296
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkSearchEntry"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"searchentry"</span><span class="symbol">&gt;</span>
1297
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">signal</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"search-changed"</span><span class="normal"> handler</span><span class="symbol">=</span><span class="string">"search_text_changed"</span><span class="symbol">/&gt;</span>
1298
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1299
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1300
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1301
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1302
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1303
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
1304
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkStack"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"stack"</span><span class="symbol">&gt;</span>
1305
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">signal</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"notify::visible-child"</span><span class="normal"> handler</span><span class="symbol">=</span><span class="string">"visible_child_changed"</span><span class="symbol">/&gt;</span>
1306
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1307
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1308
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1309
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1310
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1311
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">template</span><span class="symbol">&gt;</span>
1312
+ <span class="symbol">&lt;/</span><span class="normal">interface</span><span class="symbol">&gt;</span></pre></td>
1313
+ </tr>
1314
+ </tbody>
1315
+ </table>
1316
+ </div>
1317
+
1318
+ <p>Implementing the search needs quite a few code changes that
1319
+ we are not going to completely go over here. The central piece of
1320
+ the search implementation is a signal handler that listens for
1321
+ text changes in the search entry.</p>
1322
+ <div class="informalexample">
1323
+ <pre class="programlisting">
1324
+ ...
1325
+
1326
+ static void
1327
+ search_text_changed (GtkEntry *entry,
1328
+ ExampleAppWindow *win)
1329
+ {
1330
+ ExampleAppWindowPrivate *priv;
1331
+ const gchar *text;
1332
+ GtkWidget *tab;
1333
+ GtkWidget *view;
1334
+ GtkTextBuffer *buffer;
1335
+ GtkTextIter start, match_start, match_end;
1336
+
1337
+ text = gtk_entry_get_text (entry);
1338
+
1339
+ if (text[0] == '\0')
1340
+ return;
1341
+
1342
+ priv = example_app_window_get_instance_private (win);
1343
+
1344
+ tab = gtk_stack_get_visible_child (GTK_STACK (priv-&gt;stack));
1345
+ view = gtk_bin_get_child (GTK_BIN (tab));
1346
+ buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
1347
+
1348
+ /* Very simple-minded search implementation */
1349
+ gtk_text_buffer_get_start_iter (buffer, &amp;start);
1350
+ if (gtk_text_iter_forward_search (&amp;start, text, GTK_TEXT_SEARCH_CASE_INSENSITIVE,
1351
+ &amp;match_start, &amp;match_end, NULL))
1352
+ {
1353
+ gtk_text_buffer_select_range (buffer, &amp;match_start, &amp;match_end);
1354
+ gtk_text_view_scroll_to_iter (GTK_TEXT_VIEW (view), &amp;match_start,
1355
+ 0.0, FALSE, 0.0, 0.0);
1356
+ }
1357
+ }
1358
+
1359
+ static void
1360
+ example_app_window_init (ExampleAppWindow *win)
1361
+ {
1362
+
1363
+ ...
1364
+
1365
+ gtk_widget_class_bind_template_callback (GTK_WIDGET_CLASS (class), search_text_changed);
1366
+
1367
+ ...
1368
+
1369
+ }
1370
+
1371
+ ...
1372
+ </pre>
1373
+ <p>(<a class="ulink" href="https://git.gnome.org/browse/gtk+/tree/examples/application7/exampleappwin.c" target="_top">full source</a>)</p>
1374
+ </div>
1375
+ <p>With the search bar, our application now looks like this:</p>
1376
+ <div class="informalfigure"><div class="mediaobject"><img src="getting-started-app7.png"></div></div>
1377
+ </div>
1378
+ <div class="section">
1379
+ <div class="titlepage"><div><div><h3 class="title">
1380
+ <a name="id-1.2.3.12.11"></a>Adding a side bar</h3></div></div></div>
1381
+ <p>As another piece of functionality, we are adding a sidebar,
1382
+ which demonstrates <a class="link" href="GtkMenuButton.html" title="GtkMenuButton"><span class="type">GtkMenuButton</span></a>, <a class="link" href="GtkRevealer.html" title="GtkRevealer"><span class="type">GtkRevealer</span></a> and <a class="link" href="GtkListBox.html" title="GtkListBox"><span class="type">GtkListBox</span></a>.</p>
1383
+ <div class="informalexample">
1384
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
1385
+ <tbody>
1386
+ <tr>
1387
+ <td class="listing_lines" align="right"><pre>1
1388
+ 2
1389
+ 3
1390
+ 4
1391
+ 5
1392
+ 6
1393
+ 7
1394
+ 8
1395
+ 9
1396
+ 10
1397
+ 11
1398
+ 12
1399
+ 13
1400
+ 14
1401
+ 15
1402
+ 16
1403
+ 17
1404
+ 18
1405
+ 19
1406
+ 20
1407
+ 21
1408
+ 22
1409
+ 23
1410
+ 24
1411
+ 25
1412
+ 26
1413
+ 27
1414
+ 28
1415
+ 29
1416
+ 30
1417
+ 31
1418
+ 32
1419
+ 33
1420
+ 34
1421
+ 35
1422
+ 36
1423
+ 37
1424
+ 38
1425
+ 39
1426
+ 40
1427
+ 41
1428
+ 42
1429
+ 43
1430
+ 44
1431
+ 45
1432
+ 46
1433
+ 47
1434
+ 48
1435
+ 49
1436
+ 50
1437
+ 51
1438
+ 52
1439
+ 53
1440
+ 54
1441
+ 55
1442
+ 56
1443
+ 57
1444
+ 58
1445
+ 59
1446
+ 60
1447
+ 61
1448
+ 62
1449
+ 63
1450
+ 64
1451
+ 65
1452
+ 66
1453
+ 67
1454
+ 68
1455
+ 69
1456
+ 70
1457
+ 71
1458
+ 72
1459
+ 73
1460
+ 74
1461
+ 75
1462
+ 76
1463
+ 77
1464
+ 78
1465
+ 79
1466
+ 80
1467
+ 81
1468
+ 82
1469
+ 83
1470
+ 84
1471
+ 85
1472
+ 86
1473
+ 87
1474
+ 88
1475
+ 89
1476
+ 90
1477
+ 91
1478
+ 92
1479
+ 93
1480
+ 94
1481
+ 95
1482
+ 96
1483
+ 97
1484
+ 98
1485
+ 99
1486
+ 100</pre></td>
1487
+ <td class="listing_code"><pre class="programlisting"><span class="symbol">&lt;?</span><span class="usertype">xml</span><span class="normal"> version</span><span class="symbol">=</span><span class="string">"1.0"</span><span class="normal"> encoding</span><span class="symbol">=</span><span class="string">"UTF-8"</span><span class="symbol">?&gt;</span>
1488
+ <span class="symbol">&lt;</span><span class="normal">interface</span><span class="symbol">&gt;</span>
1489
+ <span class="normal"> </span><span class="symbol">&lt;!--</span><span class="normal"> interface</span><span class="symbol">-</span><span class="usertype">requires</span><span class="normal"> gtk</span><span class="symbol">+</span><span class="normal"> </span><span class="number">3.8</span><span class="normal"> </span><span class="symbol">--&gt;</span>
1490
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">template</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"ExampleAppWindow"</span><span class="normal"> parent</span><span class="symbol">=</span><span class="string">"GtkApplicationWindow"</span><span class="symbol">&gt;</span>
1491
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"title"</span><span class="normal"> translatable</span><span class="symbol">=</span><span class="string">"yes"</span><span class="symbol">&gt;</span><span class="usertype">Example</span><span class="normal"> Application</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1492
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"default-width"</span><span class="symbol">&gt;</span><span class="number">600</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1493
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"default-height"</span><span class="symbol">&gt;</span><span class="number">400</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1494
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
1495
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkBox"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"content_box"</span><span class="symbol">&gt;</span>
1496
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1497
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"orientation"</span><span class="symbol">&gt;</span><span class="normal">vertical</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1498
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
1499
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkHeaderBar"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"header"</span><span class="symbol">&gt;</span>
1500
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1501
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">child</span><span class="normal"> type</span><span class="symbol">=</span><span class="string">"title"</span><span class="symbol">&gt;</span>
1502
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkStackSwitcher"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"tabs"</span><span class="symbol">&gt;</span>
1503
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1504
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"margin"</span><span class="symbol">&gt;</span><span class="number">6</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1505
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"stack"</span><span class="symbol">&gt;</span><span class="normal">stack</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1506
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1507
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1508
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
1509
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkToggleButton"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"search"</span><span class="symbol">&gt;</span>
1510
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1511
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"sensitive"</span><span class="symbol">&gt;</span><span class="normal">False</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1512
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">style</span><span class="symbol">&gt;</span>
1513
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">class</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"image-button"</span><span class="symbol">/&gt;</span>
1514
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">style</span><span class="symbol">&gt;</span>
1515
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
1516
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkImage"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"search-icon"</span><span class="symbol">&gt;</span>
1517
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1518
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"icon-name"</span><span class="symbol">&gt;</span><span class="normal">edit</span><span class="symbol">-</span><span class="normal">find</span><span class="symbol">-</span><span class="normal">symbolic</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1519
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"icon-size"</span><span class="symbol">&gt;</span><span class="number">1</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1520
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1521
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1522
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1523
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">packing</span><span class="symbol">&gt;</span>
1524
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"pack-type"</span><span class="symbol">&gt;</span><span class="normal">end</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1525
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">packing</span><span class="symbol">&gt;</span>
1526
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1527
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
1528
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkMenuButton"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"gears"</span><span class="symbol">&gt;</span>
1529
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1530
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"direction"</span><span class="symbol">&gt;</span><span class="normal">none</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1531
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"use-popover"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1532
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">style</span><span class="symbol">&gt;</span>
1533
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">class</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"image-button"</span><span class="symbol">/&gt;</span>
1534
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">style</span><span class="symbol">&gt;</span>
1535
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1536
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">packing</span><span class="symbol">&gt;</span>
1537
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"pack-type"</span><span class="symbol">&gt;</span><span class="normal">end</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1538
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">packing</span><span class="symbol">&gt;</span>
1539
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1540
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1541
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1542
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
1543
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkSearchBar"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"searchbar"</span><span class="symbol">&gt;</span>
1544
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1545
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
1546
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkSearchEntry"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"searchentry"</span><span class="symbol">&gt;</span>
1547
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">signal</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"search-changed"</span><span class="normal"> handler</span><span class="symbol">=</span><span class="string">"search_text_changed"</span><span class="symbol">/&gt;</span>
1548
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1549
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1550
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1551
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1552
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1553
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
1554
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkBox"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"hbox"</span><span class="symbol">&gt;</span>
1555
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1556
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
1557
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkRevealer"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"sidebar"</span><span class="symbol">&gt;</span>
1558
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1559
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"transition-type"</span><span class="symbol">&gt;</span><span class="normal">slide</span><span class="symbol">-</span><span class="normal">right</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1560
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
1561
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkScrolledWindow"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"sidebar-sw"</span><span class="symbol">&gt;</span>
1562
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1563
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"hscrollbar-policy"</span><span class="symbol">&gt;</span><span class="normal">never</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1564
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"vscrollbar-policy"</span><span class="symbol">&gt;</span><span class="normal">automatic</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1565
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
1566
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkListBox"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"words"</span><span class="symbol">&gt;</span>
1567
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1568
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"selection-mode"</span><span class="symbol">&gt;</span><span class="normal">none</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1569
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1570
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1571
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1572
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1573
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1574
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1575
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
1576
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkStack"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"stack"</span><span class="symbol">&gt;</span>
1577
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">signal</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"notify::visible-child"</span><span class="normal"> handler</span><span class="symbol">=</span><span class="string">"visible_child_changed"</span><span class="symbol">/&gt;</span>
1578
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1579
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1580
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1581
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1582
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1583
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1584
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1585
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">template</span><span class="symbol">&gt;</span>
1586
+ <span class="symbol">&lt;/</span><span class="normal">interface</span><span class="symbol">&gt;</span></pre></td>
1587
+ </tr>
1588
+ </tbody>
1589
+ </table>
1590
+ </div>
1591
+
1592
+ <p>The code to populate the sidebar with buttons for the words
1593
+ found in each file is a little too involved to go into here. But we'll
1594
+ look at the code to add the gears menu.</p>
1595
+ <p>As expected by now, the gears menu is specified in a GtkBuilder
1596
+ ui file.</p>
1597
+ <div class="informalexample">
1598
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
1599
+ <tbody>
1600
+ <tr>
1601
+ <td class="listing_lines" align="right"><pre>1
1602
+ 2
1603
+ 3
1604
+ 4
1605
+ 5
1606
+ 6
1607
+ 7
1608
+ 8
1609
+ 9
1610
+ 10
1611
+ 11
1612
+ 12</pre></td>
1613
+ <td class="listing_code"><pre class="programlisting"><span class="symbol">&lt;?</span><span class="usertype">xml</span><span class="normal"> version</span><span class="symbol">=</span><span class="string">"1.0"</span><span class="symbol">?&gt;</span>
1614
+ <span class="symbol">&lt;</span><span class="normal">interface</span><span class="symbol">&gt;</span>
1615
+ <span class="normal"> </span><span class="symbol">&lt;!--</span><span class="normal"> interface</span><span class="symbol">-</span><span class="usertype">requires</span><span class="normal"> gtk</span><span class="symbol">+</span><span class="normal"> </span><span class="number">3.0</span><span class="normal"> </span><span class="symbol">--&gt;</span>
1616
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">menu</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"menu"</span><span class="symbol">&gt;</span>
1617
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">section</span><span class="symbol">&gt;</span>
1618
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">item</span><span class="symbol">&gt;</span>
1619
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">attribute</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"label"</span><span class="normal"> translatable</span><span class="symbol">=</span><span class="string">"yes"</span><span class="symbol">&gt;</span><span class="normal">_Words</span><span class="symbol">&lt;/</span><span class="normal">attribute</span><span class="symbol">&gt;</span>
1620
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">attribute</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"action"</span><span class="symbol">&gt;</span><span class="normal">win</span><span class="symbol">.</span><span class="normal">show</span><span class="symbol">-</span><span class="normal">words</span><span class="symbol">&lt;/</span><span class="normal">attribute</span><span class="symbol">&gt;</span>
1621
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">item</span><span class="symbol">&gt;</span>
1622
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">section</span><span class="symbol">&gt;</span>
1623
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">menu</span><span class="symbol">&gt;</span>
1624
+ <span class="symbol">&lt;/</span><span class="normal">interface</span><span class="symbol">&gt;</span></pre></td>
1625
+ </tr>
1626
+ </tbody>
1627
+ </table>
1628
+ </div>
1629
+
1630
+ <p>To connect the menuitem to the show-words setting, we use
1631
+ a <a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gio/GAction.html"><span class="type">GAction</span></a> corresponding to the given <a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gio/GSettings.html"><span class="type">GSettings</span></a> key.</p>
1632
+ <div class="informalexample">
1633
+ <pre class="programlisting">
1634
+ ...
1635
+
1636
+ static void
1637
+ example_app_window_init (ExampleAppWindow *win)
1638
+ {
1639
+
1640
+ ...
1641
+
1642
+ builder = gtk_builder_new_from_resource ("/org/gtk/exampleapp/gears-menu.ui");
1643
+ menu = G_MENU_MODEL (gtk_builder_get_object (builder, "menu"));
1644
+ gtk_menu_button_set_menu_model (GTK_MENU_BUTTON (priv-&gt;gears), menu);
1645
+ g_object_unref (builder);
1646
+
1647
+ action = g_settings_create_action (priv-&gt;settings, "show-words");
1648
+ g_action_map_add_action (G_ACTION_MAP (win), action);
1649
+ g_object_unref (action);
1650
+ }
1651
+
1652
+ ...
1653
+ </pre>
1654
+ <p>(<a class="ulink" href="https://git.gnome.org/browse/gtk+/tree/examples/application8/exampleappwin.c" target="_top">full source</a>)</p>
1655
+ </div>
1656
+ <p>What our application looks like now:</p>
1657
+ <div class="informalfigure"><div class="mediaobject"><img src="getting-started-app8.png"></div></div>
1658
+ </div>
1659
+ <div class="section">
1660
+ <div class="titlepage"><div><div><h3 class="title">
1661
+ <a name="id-1.2.3.12.12"></a>Properties</h3></div></div></div>
1662
+ <p>Widgets and other objects have many useful properties.</p>
1663
+ <p>Here we show some ways to use them in new and flexible ways,
1664
+ by wrapping them in actions with <a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gio/GPropertyAction.html"><span class="type">GPropertyAction</span></a> or by binding them
1665
+ with <a href="/home/vagrant/ruby-gnome2.win64/glib2/vendor/local/share/gtk-doc/html/gobject/GBinding.html"><span class="type">GBinding</span></a>.</p>
1666
+ <p>To set this up, we add two labels to the header bar in our
1667
+ window template, named <em class="parameter"><code>lines_label</code></em> and <em class="parameter"><code>lines</code></em>, and bind them to
1668
+ struct members in the private struct, as we've seen a couple of times
1669
+ by now.</p>
1670
+ <p>We add a new "Lines" menu item to the gears menu, which
1671
+ triggers the show-lines action:</p>
1672
+ <div class="informalexample">
1673
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
1674
+ <tbody>
1675
+ <tr>
1676
+ <td class="listing_lines" align="right"><pre>1
1677
+ 2
1678
+ 3
1679
+ 4
1680
+ 5
1681
+ 6
1682
+ 7
1683
+ 8
1684
+ 9
1685
+ 10
1686
+ 11
1687
+ 12
1688
+ 13
1689
+ 14
1690
+ 15
1691
+ 16</pre></td>
1692
+ <td class="listing_code"><pre class="programlisting"><span class="symbol">&lt;?</span><span class="usertype">xml</span><span class="normal"> version</span><span class="symbol">=</span><span class="string">"1.0"</span><span class="symbol">?&gt;</span>
1693
+ <span class="symbol">&lt;</span><span class="normal">interface</span><span class="symbol">&gt;</span>
1694
+ <span class="normal"> </span><span class="symbol">&lt;!--</span><span class="normal"> interface</span><span class="symbol">-</span><span class="usertype">requires</span><span class="normal"> gtk</span><span class="symbol">+</span><span class="normal"> </span><span class="number">3.0</span><span class="normal"> </span><span class="symbol">--&gt;</span>
1695
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">menu</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"menu"</span><span class="symbol">&gt;</span>
1696
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">section</span><span class="symbol">&gt;</span>
1697
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">item</span><span class="symbol">&gt;</span>
1698
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">attribute</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"label"</span><span class="normal"> translatable</span><span class="symbol">=</span><span class="string">"yes"</span><span class="symbol">&gt;</span><span class="normal">_Words</span><span class="symbol">&lt;/</span><span class="normal">attribute</span><span class="symbol">&gt;</span>
1699
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">attribute</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"action"</span><span class="symbol">&gt;</span><span class="normal">win</span><span class="symbol">.</span><span class="normal">show</span><span class="symbol">-</span><span class="normal">words</span><span class="symbol">&lt;/</span><span class="normal">attribute</span><span class="symbol">&gt;</span>
1700
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">item</span><span class="symbol">&gt;</span>
1701
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">item</span><span class="symbol">&gt;</span>
1702
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">attribute</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"label"</span><span class="normal"> translatable</span><span class="symbol">=</span><span class="string">"yes"</span><span class="symbol">&gt;</span><span class="normal">_Lines</span><span class="symbol">&lt;/</span><span class="normal">attribute</span><span class="symbol">&gt;</span>
1703
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">attribute</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"action"</span><span class="symbol">&gt;</span><span class="normal">win</span><span class="symbol">.</span><span class="normal">show</span><span class="symbol">-</span><span class="normal">lines</span><span class="symbol">&lt;/</span><span class="normal">attribute</span><span class="symbol">&gt;</span>
1704
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">item</span><span class="symbol">&gt;</span>
1705
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">section</span><span class="symbol">&gt;</span>
1706
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">menu</span><span class="symbol">&gt;</span>
1707
+ <span class="symbol">&lt;/</span><span class="normal">interface</span><span class="symbol">&gt;</span></pre></td>
1708
+ </tr>
1709
+ </tbody>
1710
+ </table>
1711
+ </div>
1712
+
1713
+ <p>To make this menu item do something, we create a property
1714
+ action for the visible property of the <em class="parameter"><code>lines</code></em> label, and add it to the
1715
+ actions of the window. The effect of this is that the visibility
1716
+ of the label gets toggled every time the action is activated.</p>
1717
+ <p>Since we want both labels to appear and disappear together,
1718
+ we bind the visible property of the <em class="parameter"><code>lines_label</code></em> widget to the
1719
+ same property of the <em class="parameter"><code>lines</code></em> widget.</p>
1720
+ <div class="informalexample">
1721
+ <pre class="programlisting">
1722
+ ...
1723
+
1724
+ static void
1725
+ example_app_window_init (ExampleAppWindow *win)
1726
+ {
1727
+ ...
1728
+
1729
+ action = (GAction*) g_property_action_new ("show-lines", priv-&gt;lines, "visible");
1730
+ g_action_map_add_action (G_ACTION_MAP (win), action);
1731
+ g_object_unref (action);
1732
+
1733
+ g_object_bind_property (priv-&gt;lines, "visible",
1734
+ priv-&gt;lines_label, "visible",
1735
+ G_BINDING_DEFAULT);
1736
+ }
1737
+
1738
+ ...
1739
+ </pre>
1740
+ <p>(<a class="ulink" href="https://git.gnome.org/browse/gtk+/tree/examples/application9/exampleappwin.c" target="_top">full source</a>)</p>
1741
+ </div>
1742
+ <p>We also need a function that counts the lines of the currently
1743
+ active tab, and updates the <em class="parameter"><code>lines</code></em> label. See the
1744
+ <a class="ulink" href="https://git.gnome.org/browse/gtk+/tree/examples/application9/exampleappwin.c" target="_top">full source</a>
1745
+ if you are interested in the details.</p>
1746
+ <p>This brings our example application to this appearance:</p>
1747
+ <div class="informalfigure"><div class="mediaobject"><img src="getting-started-app9.png"></div></div>
1748
+ </div>
1749
+ <div class="section">
1750
+ <div class="titlepage"><div><div><h3 class="title">
1751
+ <a name="id-1.2.3.12.13"></a>Header bar</h3></div></div></div>
1752
+ <p>Our application already uses a GtkHeaderBar, but so far it
1753
+ still gets a 'normal' window titlebar on top of that. This is a
1754
+ bit redundant, and we will now tell GTK+ to use the header bar
1755
+ as replacement for the titlebar. To do so, we move it around to
1756
+ be a direct child of the window, and set its type to be titlebar.</p>
1757
+ <div class="informalexample">
1758
+ <table class="listing_frame" border="0" cellpadding="0" cellspacing="0">
1759
+ <tbody>
1760
+ <tr>
1761
+ <td class="listing_lines" align="right"><pre>1
1762
+ 2
1763
+ 3
1764
+ 4
1765
+ 5
1766
+ 6
1767
+ 7
1768
+ 8
1769
+ 9
1770
+ 10
1771
+ 11
1772
+ 12
1773
+ 13
1774
+ 14
1775
+ 15
1776
+ 16
1777
+ 17
1778
+ 18
1779
+ 19
1780
+ 20
1781
+ 21
1782
+ 22
1783
+ 23
1784
+ 24
1785
+ 25
1786
+ 26
1787
+ 27
1788
+ 28
1789
+ 29
1790
+ 30
1791
+ 31
1792
+ 32
1793
+ 33
1794
+ 34
1795
+ 35
1796
+ 36
1797
+ 37
1798
+ 38
1799
+ 39
1800
+ 40
1801
+ 41
1802
+ 42
1803
+ 43
1804
+ 44
1805
+ 45
1806
+ 46
1807
+ 47
1808
+ 48
1809
+ 49
1810
+ 50
1811
+ 51
1812
+ 52
1813
+ 53
1814
+ 54
1815
+ 55
1816
+ 56
1817
+ 57
1818
+ 58
1819
+ 59
1820
+ 60
1821
+ 61
1822
+ 62
1823
+ 63
1824
+ 64
1825
+ 65
1826
+ 66
1827
+ 67
1828
+ 68
1829
+ 69
1830
+ 70
1831
+ 71
1832
+ 72
1833
+ 73
1834
+ 74
1835
+ 75
1836
+ 76
1837
+ 77
1838
+ 78
1839
+ 79
1840
+ 80
1841
+ 81
1842
+ 82
1843
+ 83
1844
+ 84
1845
+ 85
1846
+ 86
1847
+ 87
1848
+ 88
1849
+ 89
1850
+ 90
1851
+ 91
1852
+ 92
1853
+ 93
1854
+ 94
1855
+ 95
1856
+ 96
1857
+ 97
1858
+ 98
1859
+ 99
1860
+ 100
1861
+ 101
1862
+ 102
1863
+ 103
1864
+ 104
1865
+ 105
1866
+ 106
1867
+ 107
1868
+ 108
1869
+ 109
1870
+ 110
1871
+ 111
1872
+ 112
1873
+ 113
1874
+ 114
1875
+ 115
1876
+ 116
1877
+ 117
1878
+ 118</pre></td>
1879
+ <td class="listing_code"><pre class="programlisting"><span class="symbol">&lt;?</span><span class="usertype">xml</span><span class="normal"> version</span><span class="symbol">=</span><span class="string">"1.0"</span><span class="normal"> encoding</span><span class="symbol">=</span><span class="string">"UTF-8"</span><span class="symbol">?&gt;</span>
1880
+ <span class="symbol">&lt;</span><span class="normal">interface</span><span class="symbol">&gt;</span>
1881
+ <span class="normal"> </span><span class="symbol">&lt;!--</span><span class="normal"> interface</span><span class="symbol">-</span><span class="usertype">requires</span><span class="normal"> gtk</span><span class="symbol">+</span><span class="normal"> </span><span class="number">3.8</span><span class="normal"> </span><span class="symbol">--&gt;</span>
1882
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">template</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"ExampleAppWindow"</span><span class="normal"> parent</span><span class="symbol">=</span><span class="string">"GtkApplicationWindow"</span><span class="symbol">&gt;</span>
1883
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"title"</span><span class="normal"> translatable</span><span class="symbol">=</span><span class="string">"yes"</span><span class="symbol">&gt;</span><span class="usertype">Example</span><span class="normal"> Application</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1884
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"default-width"</span><span class="symbol">&gt;</span><span class="number">600</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1885
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"default-height"</span><span class="symbol">&gt;</span><span class="number">400</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1886
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">child</span><span class="normal"> type</span><span class="symbol">=</span><span class="string">"titlebar"</span><span class="symbol">&gt;</span>
1887
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkHeaderBar"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"header"</span><span class="symbol">&gt;</span>
1888
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1889
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"show-close-button"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1890
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
1891
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkLabel"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"lines_label"</span><span class="symbol">&gt;</span>
1892
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">False</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1893
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"label"</span><span class="normal"> translatable</span><span class="symbol">=</span><span class="string">"yes"</span><span class="symbol">&gt;</span><span class="normal">Lines</span><span class="symbol">:&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1894
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1895
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">packing</span><span class="symbol">&gt;</span>
1896
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"pack-type"</span><span class="symbol">&gt;</span><span class="normal">start</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1897
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">packing</span><span class="symbol">&gt;</span>
1898
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1899
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
1900
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkLabel"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"lines"</span><span class="symbol">&gt;</span>
1901
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">False</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1902
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1903
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">packing</span><span class="symbol">&gt;</span>
1904
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"pack-type"</span><span class="symbol">&gt;</span><span class="normal">start</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1905
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">packing</span><span class="symbol">&gt;</span>
1906
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1907
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">child</span><span class="normal"> type</span><span class="symbol">=</span><span class="string">"title"</span><span class="symbol">&gt;</span>
1908
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkStackSwitcher"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"tabs"</span><span class="symbol">&gt;</span>
1909
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1910
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"margin"</span><span class="symbol">&gt;</span><span class="number">6</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1911
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"stack"</span><span class="symbol">&gt;</span><span class="normal">stack</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1912
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1913
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1914
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
1915
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkToggleButton"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"search"</span><span class="symbol">&gt;</span>
1916
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1917
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"sensitive"</span><span class="symbol">&gt;</span><span class="normal">False</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1918
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">style</span><span class="symbol">&gt;</span>
1919
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">class</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"image-button"</span><span class="symbol">/&gt;</span>
1920
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">style</span><span class="symbol">&gt;</span>
1921
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
1922
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkImage"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"search-icon"</span><span class="symbol">&gt;</span>
1923
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1924
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"icon-name"</span><span class="symbol">&gt;</span><span class="normal">edit</span><span class="symbol">-</span><span class="normal">find</span><span class="symbol">-</span><span class="normal">symbolic</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1925
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"icon-size"</span><span class="symbol">&gt;</span><span class="number">1</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1926
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1927
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1928
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1929
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">packing</span><span class="symbol">&gt;</span>
1930
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"pack-type"</span><span class="symbol">&gt;</span><span class="normal">end</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1931
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">packing</span><span class="symbol">&gt;</span>
1932
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1933
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
1934
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkMenuButton"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"gears"</span><span class="symbol">&gt;</span>
1935
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1936
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"direction"</span><span class="symbol">&gt;</span><span class="normal">none</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1937
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"use-popover"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1938
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">style</span><span class="symbol">&gt;</span>
1939
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">class</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"image-button"</span><span class="symbol">/&gt;</span>
1940
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">style</span><span class="symbol">&gt;</span>
1941
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1942
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">packing</span><span class="symbol">&gt;</span>
1943
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"pack-type"</span><span class="symbol">&gt;</span><span class="normal">end</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1944
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">packing</span><span class="symbol">&gt;</span>
1945
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1946
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1947
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1948
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
1949
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkBox"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"content_box"</span><span class="symbol">&gt;</span>
1950
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1951
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"orientation"</span><span class="symbol">&gt;</span><span class="normal">vertical</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1952
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
1953
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkSearchBar"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"searchbar"</span><span class="symbol">&gt;</span>
1954
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1955
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
1956
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkSearchEntry"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"searchentry"</span><span class="symbol">&gt;</span>
1957
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">signal</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"search-changed"</span><span class="normal"> handler</span><span class="symbol">=</span><span class="string">"search_text_changed"</span><span class="symbol">/&gt;</span>
1958
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1959
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1960
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1961
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1962
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1963
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
1964
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkBox"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"hbox"</span><span class="symbol">&gt;</span>
1965
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1966
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
1967
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkRevealer"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"sidebar"</span><span class="symbol">&gt;</span>
1968
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1969
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"transition-type"</span><span class="symbol">&gt;</span><span class="normal">slide</span><span class="symbol">-</span><span class="normal">right</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1970
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
1971
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkScrolledWindow"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"sidebar-sw"</span><span class="symbol">&gt;</span>
1972
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1973
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"hscrollbar-policy"</span><span class="symbol">&gt;</span><span class="normal">never</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1974
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"vscrollbar-policy"</span><span class="symbol">&gt;</span><span class="normal">automatic</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1975
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
1976
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkListBox"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"words"</span><span class="symbol">&gt;</span>
1977
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1978
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"selection-mode"</span><span class="symbol">&gt;</span><span class="normal">none</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1979
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1980
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1981
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1982
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1983
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1984
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1985
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="normal">child</span><span class="symbol">&gt;</span>
1986
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">object</span><span class="normal"> class</span><span class="symbol">=</span><span class="string">"GtkStack"</span><span class="normal"> id</span><span class="symbol">=</span><span class="string">"stack"</span><span class="symbol">&gt;</span>
1987
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">signal</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"notify::visible-child"</span><span class="normal"> handler</span><span class="symbol">=</span><span class="string">"visible_child_changed"</span><span class="symbol">/&gt;</span>
1988
+ <span class="normal"> </span><span class="symbol">&lt;</span><span class="usertype">property</span><span class="normal"> name</span><span class="symbol">=</span><span class="string">"visible"</span><span class="symbol">&gt;</span><span class="normal">True</span><span class="symbol">&lt;/</span><span class="normal">property</span><span class="symbol">&gt;</span>
1989
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1990
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1991
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1992
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1993
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">object</span><span class="symbol">&gt;</span>
1994
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">child</span><span class="symbol">&gt;</span>
1995
+ <span class="normal"> </span><span class="symbol">&lt;/</span><span class="normal">template</span><span class="symbol">&gt;</span>
1996
+ <span class="symbol">&lt;/</span><span class="normal">interface</span><span class="symbol">&gt;</span></pre></td>
1997
+ </tr>
1998
+ </tbody>
1999
+ </table>
2000
+ </div>
2001
+
2002
+ <p>A small extra bonus of using a header bar is that we get
2003
+ a fallback application menu for free. Here is how the
2004
+ application now looks, if this fallback is used.</p>
2005
+ <div class="informalfigure"><div class="mediaobject"><img src="getting-started-app10.png"></div></div>
2006
+ <p>If we set up the window icon for our window, the menu button
2007
+ will use that instead of the generic placeholder icon you see
2008
+ here.</p>
2009
+ </div>
152
2010
  </div>
153
2011
  <div class="footer">
154
- <hr>
155
- Generated by GTK-Doc V1.21.1</div>
2012
+ <hr>Generated by GTK-Doc V1.24.1</div>
156
2013
  </body>
157
2014
  </html>