1. Compilation Units

    1. Cairo
    2. Cairo.Font_Face
    3. Cairo.Font_Options
    4. Cairo.Image_Surface
    5. Cairo.PDF
    6. Cairo.Matrix
    7. Cairo.Pattern
    8. Cairo.Png
    9. Cairo.SVG
    10. Cairo.Region
    11. Cairo.Scaled_Font
    12. Cairo.Surface
    13. Fontconfig
    14. Gdk
    15. Gdk.Cairo
    16. Gdk.Color
    17. Gdk.Cursor
    18. Gdk.Device
    19. Gdk.Device_Manager
    20. Gdk.Device_Tool
    21. Gdk.Display
    22. Gdk.Display_Manager
    23. Gdk.Dnd
    24. Gdk.Drag_Contexts
    25. Gdk.Drawing_Context
    26. Gdk.Event
      1. Gdk.Event.Handler_Set_User_Data
    27. Gdk.Frame_Clock
    28. Gdk.Frame_Timings
    29. Gdk.GLContext
    30. Gdk.Input
      1. Gdk.Input.Input_Add
    31. Gdk.Keyval
    32. Gdk.Main
    33. Gdk.Monitor
    34. Gdk.Pixbuf
    35. Gdk.RGBA
    36. Gdk.Property
    37. Gdk.Rectangle
    38. Gdk.Screen
    39. Gdk.Seat
    40. Gdk.Threads
    41. Gdk.Types
    42. Gdk.Types.Keysyms
    43. Gdk.Visual
    44. Gdk.Window
      1. Gdk.Window.Invalidate_Maybe_Recurse_User_Data
    45. Gdk.Window_Attr
    46. Glib
    47. Glib.Action
    48. Glib.Action_Group
    49. Glib.Action_Map
    50. Glib.Application
    51. Glib.Cancellable
      1. Glib.Cancellable.Connect_User_Data
    52. Glib.Convert
    53. Glib.Enums
    54. Glib.GSlist
      1. Glib.GSlist.Generic_SList
    55. Glib.Error
    56. Glib.G_Icon
    57. Glib.Generic_Properties
      1. Glib.Generic_Properties.Generic_Enumeration_Property
      2. Glib.Generic_Properties.Generic_Internal_Boxed_Property
      3. Glib.Generic_Properties.Generic_Internal_Discrete_Property
    58. Glib.Glist
      1. Glib.Glist.Generic_List
    59. Glib.Gnodes
      1. Glib.Gnodes.Gnode_Data
    60. Glib.Graphs
    61. Glib.Graphs.Layouts
      1. Glib.Graphs.Layouts.Layered_Layouts
    62. Glib.IOChannel
    63. Glib.Key_File
    64. Glib.List_Model
    65. Glib.Main
      1. Glib.Main.Generic_Sources
    66. Glib.Menu
    67. Glib.Menu_Model
    68. Glib.Messages
    69. Glib.Module
    70. Glib.Notification
    71. Glib.Object
      1. Glib.Object.User_Data
      2. Glib.Object.User_Data_Closure
    72. Glib.Option
      1. Glib.Option.Set_Translate_Func_User_Data
    73. Glib.Poll
    74. Glib.Properties
    75. Glib.Properties.Creation
    76. Glib.Simple_Action
    77. Glib.Simple_Action_Group
    78. Glib.Spawn
    79. Glib.String
    80. Glib.Type_Conversion_Hooks
      1. Glib.Type_Conversion_Hooks.Hook_Registrator
    81. Glib.Types
      1. Glib.Types.Implements
    82. Glib.Unicode
    83. Glib.Utils
    84. Glib.Values
    85. Glib.Variant
    86. Glib.XML
    87. Gtk
    88. Gtk.About_Dialog
    89. Gtk.Accel_Group
    90. Gtk.Accel_Label
    91. Gtk.Accel_Map
      1. Gtk.Accel_Map.Foreach_Unfiltered_User_Data
      2. Gtk.Accel_Map.Foreach_User_Data
    92. Gtk.Action
    93. Gtk.Action_Bar
    94. Gtk.Action_Group
      1. Gtk.Action_Group.Set_Translate_Func_User_Data
    95. Gtk.Actionable
    96. Gtk.Activatable
    97. Gtk.Adjustment
    98. Gtk.Alignment
    99. Gtk.Application
    100. Gtk.Application_Window
    101. Gtk.Arguments
    102. Gtk.Arrow
    103. Gtk.Aspect_Frame
    104. Gtk.Assistant
      1. Gtk.Assistant.Set_Forward_Page_Func_User_Data
    105. Gtk.Bin
    106. Gtk.Binding_Set
    107. Gtk.Bindings
    108. Gtk.Box
    109. Gtk.Buildable
    110. Gtk.Builder
    111. Gtk.Button
    112. Gtk.Button_Box
    113. Gtk.Calendar
      1. Gtk.Calendar.Set_Detail_Func_User_Data
    114. Gtk.Cell_Area
      1. Gtk.Cell_Area.Foreach_Alloc_User_Data
      2. Gtk.Cell_Area.Foreach_User_Data
      3. Gtk.Cell_Area.Set_Cell_Data_Func_User_Data
    115. Gtk.Cell_Area_Box
      1. Gtk.Cell_Area_Box.Set_Cell_Data_Func_User_Data
    116. Gtk.Cell_Area_Context
    117. Gtk.Cell_Editable
    118. Gtk.Cell_Layout
      1. Gtk.Cell_Layout.Set_Cell_Data_Func_User_Data
    119. Gtk.Cell_Renderer
    120. Gtk.Cell_Renderer_Accel
    121. Gtk.Cell_Renderer_Combo
    122. Gtk.Cell_Renderer_Pixbuf
    123. Gtk.Cell_Renderer_Progress
    124. Gtk.Cell_Renderer_Spin
    125. Gtk.Cell_Renderer_Spinner
    126. Gtk.Cell_Renderer_Text
    127. Gtk.Cell_Renderer_Toggle
    128. Gtk.Cell_View
      1. Gtk.Cell_View.Set_Cell_Data_Func_User_Data
    129. Gtk.Check_Button
    130. Gtk.Check_Menu_Item
    131. Gtk.Clipboard
    132. Gtk.Color_Button
    133. Gtk.Color_Chooser
    134. Gtk.Color_Chooser_Dialog
    135. Gtk.Color_Chooser_Widget
    136. Gtk.Color_Selection
    137. Gtk.Color_Selection_Dialog
    138. Gtk.Combo_Box
      1. Gtk.Combo_Box.Set_Cell_Data_Func_User_Data
      2. Gtk.Combo_Box.Set_Row_Separator_Func_User_Data
    139. Gtk.Combo_Box_Text
      1. Gtk.Combo_Box_Text.Set_Cell_Data_Func_User_Data
    140. Gtk.Container
      1. Gtk.Container.Forall_User_Data
      2. Gtk.Container.Foreach_User_Data
    141. Gtk.Css_Provider
    142. Gtk.Css_Section
    143. Gtk.Dialog
    144. Gtk.Dnd
    145. Gtk.Drawing_Area
    146. Gtk.Editable
    147. Gtk.Entry_Buffer
    148. Gtk.Entry_Completion
      1. Gtk.Entry_Completion.Set_Cell_Data_Func_User_Data
      2. Gtk.Entry_Completion.Set_Match_Func_User_Data
    149. Gtk.Enums
    150. Gtk.Event_Box
    151. Gtk.Event_Controller
    152. Gtk.Expander
    153. Gtk.File_Chooser
    154. Gtk.File_Chooser_Button
    155. Gtk.File_Chooser_Dialog
    156. Gtk.File_Chooser_Widget
    157. Gtk.File_Filter
      1. Gtk.File_Filter.Add_Custom_User_Data
    158. Gtk.Fixed
    159. Gtk.Flow_Box
      1. Gtk.Flow_Box.Bind_Model_User_Data
      2. Gtk.Flow_Box.Selected_Foreach_User_Data
      3. Gtk.Flow_Box.Set_Filter_Func_User_Data
      4. Gtk.Flow_Box.Set_Sort_Func_User_Data
    160. Gtk.Flow_Box_Child
    161. Gtk.Font_Button
      1. Gtk.Font_Button.Set_Filter_Func_User_Data
    162. Gtk.Font_Chooser
      1. Gtk.Font_Chooser.Set_Filter_Func_User_Data
    163. Gtk.Font_Chooser_Dialog
      1. Gtk.Font_Chooser_Dialog.Set_Filter_Func_User_Data
    164. Gtk.Font_Chooser_Widget
      1. Gtk.Font_Chooser_Widget.Set_Filter_Func_User_Data
    165. Gtk.Font_Selection
    166. Gtk.Font_Selection_Dialog
    167. Gtk.Frame
    168. Gtk.GLArea
    169. Gtk.GRange
    170. Gtk.GEntry
    171. Gtk.Gesture
    172. Gtk.Gesture_Drag
    173. Gtk.Gesture_Long_Press
    174. Gtk.Gesture_Multi_Press
    175. Gtk.Gesture_Pan
    176. Gtk.Gesture_Rotate
    177. Gtk.Gesture_Single
    178. Gtk.Gesture_Swipe
    179. Gtk.Gesture_Zoom
    180. Gtk.Gradient
    181. Gtk.Grid
    182. Gtk.Handle_Box
    183. Gtk.Hbutton_Box
    184. Gtk.Header_Bar
    185. Gtk.IM_Context
    186. Gtk.IM_Context_Simple
    187. Gtk.IM_Multi_Context
    188. Gtk.Hsv
    189. Gtk.Icon_Factory
    190. Gtk.Icon_Set
    191. Gtk.Icon_Source
    192. Gtk.Icon_Theme
    193. Gtk.Icon_View
      1. Gtk.Icon_View.Selected_Foreach_User_Data
      2. Gtk.Icon_View.Set_Cell_Data_Func_User_Data
    194. Gtk.Image
    195. Gtk.Image_Menu_Item
    196. Gtk.Info_Bar
    197. Gtk.Invisible
    198. Gtk.Label
    199. Gtk.Layout
    200. Gtk.Level_Bar
    201. Gtk.Link_Button
    202. Gtk.List_Box
      1. Gtk.List_Box.Bind_Model_User_Data
      2. Gtk.List_Box.Selected_Foreach_User_Data
      3. Gtk.List_Box.Set_Filter_Func_User_Data
      4. Gtk.List_Box.Set_Header_Func_User_Data
      5. Gtk.List_Box.Set_Sort_Func_User_Data
    203. Gtk.List_Box_Row
    204. Gtk.List_Store
      1. Gtk.List_Store.Foreach_User_Data
      2. Gtk.List_Store.Set_Default_Sort_Func_User_Data
      3. Gtk.List_Store.Set_Sort_Func_User_Data
    205. Gtk.Main
    206. Gtk.Menu
      1. Gtk.Menu.Popup_For_Device_User_Data
      2. Gtk.Menu.Popup_User_Data
    207. Gtk.Menu_Bar
    208. Gtk.Menu_Button
    209. Gtk.Menu_Item
    210. Gtk.Menu_Shell
    211. Gtk.Menu_Tool_Button
    212. Gtk.Message_Dialog
    213. Gtk.Misc
    214. Gtk.Notebook
    215. Gtk.Offscreen_Window
    216. Gtk.Orientable
    217. Gtk.Overlay
    218. Gtk.Page_Setup
    219. Gtk.Paned
    220. Gtk.Paper_Size
    221. Gtk.Popover
    222. Gtk.Print_Context
    223. Gtk.Print_Operation
    224. Gtk.Print_Operation_Preview
    225. Gtk.Print_Settings
      1. Gtk.Print_Settings.Foreach_User_Data
    226. Gtk.Progress_Bar
    227. Gtk.Radio_Action
    228. Gtk.Radio_Button
    229. Gtk.Radio_Menu_Item
    230. Gtk.Radio_Tool_Button
    231. Gtk.Rc
    232. Gtk.Recent_Action
      1. Gtk.Recent_Action.Set_Sort_Func_User_Data
    233. Gtk.Recent_Chooser
      1. Gtk.Recent_Chooser.Set_Sort_Func_User_Data
    234. Gtk.Recent_Chooser_Dialog
      1. Gtk.Recent_Chooser_Dialog.Set_Sort_Func_User_Data
    235. Gtk.Recent_Chooser_Menu
      1. Gtk.Recent_Chooser_Menu.Set_Sort_Func_User_Data
    236. Gtk.Recent_Chooser_Widget
      1. Gtk.Recent_Chooser_Widget.Set_Sort_Func_User_Data
    237. Gtk.Recent_Filter
      1. Gtk.Recent_Filter.Add_Custom_User_Data
    238. Gtk.Recent_Info
    239. Gtk.Recent_Manager
    240. Gtk.Revealer
    241. Gtk.Scale
    242. Gtk.Scale_Button
    243. Gtk.Scrollable
    244. Gtk.Scrollbar
    245. Gtk.Scrolled_Window
    246. Gtk.Search_Bar
    247. Gtk.Search_Entry
    248. Gtk.Selection_Data
    249. Gtk.Separator
    250. Gtk.Separator_Menu_Item
    251. Gtk.Separator_Tool_Item
    252. Gtk.Settings
    253. Gtk.Shortcuts_Window
    254. Gtk.Size_Group
    255. Gtk.Spin_Button
    256. Gtk.Spinner
    257. Gtk.Stack
    258. Gtk.Stack_Switcher
    259. Gtk.Status_Bar
    260. Gtk.Status_Icon
    261. Gtk.Stock
    262. Gtk.Style
    263. Gtk.Style_Context
    264. Gtk.Style_Properties
    265. Gtk.Style_Provider
    266. Gtk.Switch
    267. Gtk.Symbolic_Color
    268. Gtk.Table
    269. Gtk.Target_Entry
    270. Gtk.Target_List
    271. Gtk.Tearoff_Menu_Item
    272. Gtk.Text_Attributes
    273. Gtk.Text_Buffer
    274. Gtk.Text_Child
    275. Gtk.Text_Child_Anchor
    276. Gtk.Text_Iter
    277. Gtk.Text_Mark
    278. Gtk.Text_Tag
    279. Gtk.Text_Tag_Table
      1. Gtk.Text_Tag_Table.Foreach_User_Data
    280. Gtk.Text_View
    281. Gtk.Theming_Engine
    282. Gtk.Toggle_Action
    283. Gtk.Toggle_Button
    284. Gtk.Toggle_Tool_Button
    285. Gtk.Tool_Button
    286. Gtk.Tool_Item
    287. Gtk.Tool_Item_Group
    288. Gtk.Tool_Palette
    289. Gtk.Tool_Shell
    290. Gtk.Toolbar
    291. Gtk.Tooltip
    292. Gtk.Tree_Drag_Dest
    293. Gtk.Tree_Drag_Source
    294. Gtk.Tree_Model
      1. Gtk.Tree_Model.Foreach_User_Data
    295. Gtk.Tree_Model.Utils
    296. Gtk.Tree_Model_Filter
      1. Gtk.Tree_Model_Filter.Foreach_User_Data
      2. Gtk.Tree_Model_Filter.Set_Modify_Func_User_Data
      3. Gtk.Tree_Model_Filter.Set_Visible_Func_User_Data
    297. Gtk.Tree_Model_Sort
      1. Gtk.Tree_Model_Sort.Foreach_User_Data
      2. Gtk.Tree_Model_Sort.Set_Default_Sort_Func_User_Data
      3. Gtk.Tree_Model_Sort.Set_Sort_Func_User_Data
    298. Gtk.Tree_Row_Reference
    299. Gtk.Tree_Selection
      1. Gtk.Tree_Selection.Selected_Foreach_User_Data
      2. Gtk.Tree_Selection.Set_Select_Function_User_Data
    300. Gtk.Tree_Sortable
      1. Gtk.Tree_Sortable.Set_Default_Sort_Func_User_Data
      2. Gtk.Tree_Sortable.Set_Sort_Func_User_Data
    301. Gtk.Tree_Store
      1. Gtk.Tree_Store.Foreach_User_Data
      2. Gtk.Tree_Store.Generic_Set
      3. Gtk.Tree_Store.Set_Default_Sort_Func_User_Data
      4. Gtk.Tree_Store.Set_Sort_Func_User_Data
    302. Gtk.Tree_View
      1. Gtk.Tree_View.Insert_Column_With_Data_Func_User_Data
      2. Gtk.Tree_View.Map_Expanded_Rows_User_Data
      3. Gtk.Tree_View.Set_Column_Drag_Function_User_Data
      4. Gtk.Tree_View.Set_Destroy_Count_Func_User_Data
      5. Gtk.Tree_View.Set_Row_Separator_Func_User_Data
      6. Gtk.Tree_View.Set_Search_Equal_Func_User_Data
      7. Gtk.Tree_View.Set_Search_Position_Func_User_Data
    303. Gtk.Tree_View_Column
      1. Gtk.Tree_View_Column.Set_Cell_Data_Func_User_Data
    304. Gtk.Type_Conversion
    305. Gtk.UI_Manager
    306. Gtk.Vbutton_Box
    307. Gtk.Viewport
    308. Gtk.Volume_Button
    309. Gtk.Widget
      1. Gtk.Widget.Add_Tick_Callback_User_Data
      2. Gtk.Widget.Set_Connect_Func_User_Data
    310. Gtk.Window
    311. Gtkada
    312. Gtkada.Abstract_List_Model
    313. Gtkada.Abstract_Tree_Model
    314. Gtkada.Application
    315. Gtkada.Bindings
    316. Gtkada.Builder
    317. Gtkada.C
      1. Gtkada.C.Unbounded_Arrays
    318. Gtkada.Canvas
    319. Gtkada.Canvas_View
    320. Gtkada.Canvas_View.Astar
    321. Gtkada.Canvas_View.Links
    322. Gtkada.Canvas_View.Models
      1. Gtkada.Canvas_View.Models.Rtree_Models
    323. Gtkada.Canvas_View.Models.Layers
    324. Gtkada.Canvas_View.Objects
    325. Gtkada.Canvas_View.Rtrees
    326. Gtkada.Canvas_View.Views
    327. Gtkada.Dialogs
    328. Gtkada.File_Selection
    329. Gtkada.Handlers
    330. Gtkada.Intl
    331. Gtkada.MDI
      1. Gtkada.MDI.Desktop
    332. Gtkada.Multi_Paned
    333. Gtkada.Multiline_Entry
    334. Gtkada.Pixmaps
    335. Gtkada.Printing
    336. Gtkada.Stock_Icons
    337. Gtkada.Stock_Labels
    338. Gtkada.Style
    339. Gtkada.Types
    340. Pango
    341. Pango.Attributes
    342. Pango.Cairo
    343. Pango.Context
    344. Pango.Coverage
    345. Pango.Enums
    346. Pango.Font
    347. Pango.Font_Face
    348. Pango.Font_Family
    349. Pango.Font_Map
    350. Pango.Font_Metrics
    351. Pango.Fontset
      1. Pango.Fontset.Foreach_User_Data
    352. Pango.Language
    353. Pango.Layout
    354. Pango.Matrix
    355. Pango.Tabs
  2. Tagged Types

    1. Gdk.Device.Gdk_Device_Record
    2. Gdk.Device_Manager.Gdk_Device_Manager_Record
    3. Gdk.Device_Tool.Gdk_Device_Tool_Record
    4. Gdk.Display.Gdk_Display_Record
    5. Gdk.Drag_Contexts.Drag_Context_Record
    6. Gdk.Drawing_Context.Gdk_Drawing_Context_Record
    7. Gdk.Frame_Clock.Gdk_Frame_Clock_Record
    8. Gdk.Frame_Timings.Gdk_Frame_Timings
    9. Gdk.GLContext.Gdk_GLContext_Record
    10. Gdk.Monitor.Gdk_Monitor_Record
    11. Gdk.Pixbuf.Gdk_Pixbuf_Record
    12. Gdk.Screen.Gdk_Screen_Record
    13. Glib.Application.Gapplication_Command_Line_Record
    14. Glib.Application.Gapplication_Record
    15. Gdk.Seat.Gdk_Seat_Record
    16. Glib.C_Boxed
    17. Glib.Cancellable.Gcancellable_Record
    18. Glib.Graphs.Layouts.Base_Dummy_Vertex
    19. Glib.Graphs.Edge
    20. Glib.Graphs.Vertex
    21. Glib.Menu.Gmenu_Item_Record
    22. Glib.Menu.Gmenu_Record
    23. Glib.Menu_Model.Gmenu_Attribute_Iter_Record
    24. Glib.Menu_Model.Gmenu_Link_Iter_Record
    25. Glib.Menu_Model.Gmenu_Model_Record
    26. Glib.Object.GObject_Record
    27. Glib.Notification.Gnotification_Record
    28. Glib.Object.G_Binding_Record
    29. Glib.Option.Goption_Context
    30. Glib.Simple_Action.Gsimple_Action_Record
    31. Glib.Simple_Action_Group.Gsimple_Action_Group_Record
    32. Glib.Variant.Gvariant
    33. Gtk.About_Dialog.Gtk_About_Dialog_Record
    34. Gtk.Accel_Group.Gtk_Accel_Group_Record
    35. Gtk.Accel_Label.Gtk_Accel_Label_Record
    36. Gtk.Accel_Map.Gtk_Accel_Map_Record
    37. Gtk.Action.Gtk_Action_Record
    38. Gtk.Action_Bar.Gtk_Action_Bar_Record
    39. Gtk.Action_Group.Gtk_Action_Group_Record
    40. Gtk.Adjustment.Gtk_Adjustment_Record
    41. Gtk.Alignment.Gtk_Alignment_Record
    42. Gtk.Application.Gtk_Application_Record
    43. Gtk.Application_Window.Gtk_Application_Window_Record
    44. Gtk.Arrow.Gtk_Arrow_Record
    45. Gtk.Aspect_Frame.Gtk_Aspect_Frame_Record
    46. Gtk.Assistant.Gtk_Assistant_Record
    47. Gtk.Bin.Gtk_Bin_Record
    48. Gtk.Box.Gtk_Box_Record
    49. Gtk.Builder.Gtk_Builder_Record
    50. Gtk.Button.Gtk_Button_Record
    51. Gtk.Button_Box.Gtk_Button_Box_Record
    52. Gtk.Calendar.Gtk_Calendar_Record
    53. Gtk.Cell_Area.Gtk_Cell_Area_Record
    54. Gtk.Cell_Area_Box.Gtk_Cell_Area_Box_Record
    55. Gtk.Cell_Area_Context.Gtk_Cell_Area_Context_Record
    56. Gtk.Cell_Renderer.Gtk_Cell_Renderer_Record
    57. Gtk.Cell_Renderer_Accel.Gtk_Cell_Renderer_Accel_Record
    58. Gtk.Cell_Renderer_Combo.Gtk_Cell_Renderer_Combo_Record
    59. Gtk.Cell_Renderer_Pixbuf.Gtk_Cell_Renderer_Pixbuf_Record
    60. Gtk.Cell_Renderer_Progress.Gtk_Cell_Renderer_Progress_Record
    61. Gtk.Cell_Renderer_Spin.Gtk_Cell_Renderer_Spin_Record
    62. Gtk.Cell_Renderer_Spinner.Gtk_Cell_Renderer_Spinner_Record
    63. Gtk.Cell_Renderer_Text.Gtk_Cell_Renderer_Text_Record
    64. Gtk.Cell_Renderer_Toggle.Gtk_Cell_Renderer_Toggle_Record
    65. Gtk.Cell_View.Gtk_Cell_View_Record
    66. Gtk.Check_Button.Gtk_Check_Button_Record
    67. Gtk.Check_Menu_Item.Gtk_Check_Menu_Item_Record
    68. Gtk.Clipboard.Gtk_Clipboard_Record
    69. Gtk.Color_Button.Gtk_Color_Button_Record
    70. Gtk.Color_Chooser_Dialog.Gtk_Color_Chooser_Dialog_Record
    71. Gtk.Color_Chooser_Widget.Gtk_Color_Chooser_Widget_Record
    72. Gtk.Color_Selection.Gtk_Color_Selection_Record
    73. Gtk.Color_Selection_Dialog.Gtk_Color_Selection_Dialog_Record
    74. Gtk.Combo_Box.Gtk_Combo_Box_Record
    75. Gtk.Combo_Box_Text.Gtk_Combo_Box_Text_Record
    76. Gtk.Container.Gtk_Container_Record
    77. Gtk.Css_Provider.Gtk_Css_Provider_Record
    78. Gtk.Css_Section.Gtk_Css_Section
    79. Gtk.Dialog.Gtk_Dialog_Record
    80. Gtk.Drawing_Area.Gtk_Drawing_Area_Record
    81. Gtk.Entry_Buffer.Gtk_Entry_Buffer_Record
    82. Gtk.Entry_Completion.Gtk_Entry_Completion_Record
    83. Gtk.Event_Box.Gtk_Event_Box_Record
    84. Gtk.Event_Controller.Gtk_Event_Controller_Record
    85. Gtk.Expander.Gtk_Expander_Record
    86. Gtk.File_Chooser_Button.Gtk_File_Chooser_Button_Record
    87. Gtk.File_Chooser_Dialog.Gtk_File_Chooser_Dialog_Record
    88. Gtk.File_Chooser_Widget.Gtk_File_Chooser_Widget_Record
    89. Gtk.File_Filter.Gtk_File_Filter_Record
    90. Gtk.Fixed.Gtk_Fixed_Record
    91. Gtk.Flow_Box.Gtk_Flow_Box_Record
    92. Gtk.Flow_Box_Child.Gtk_Flow_Box_Child_Record
    93. Gtk.Font_Button.Gtk_Font_Button_Record
    94. Gtk.Font_Chooser_Dialog.Gtk_Font_Chooser_Dialog_Record
    95. Gtk.Font_Chooser_Widget.Gtk_Font_Chooser_Widget_Record
    96. Gtk.Font_Selection.Gtk_Font_Selection_Record
    97. Gtk.Font_Selection_Dialog.Gtk_Font_Selection_Dialog_Record
    98. Gtk.Frame.Gtk_Frame_Record
    99. Gtk.GLArea.Gtk_GLArea_Record
    100. Gtk.GRange.Gtk_Range_Record
    101. Gtk.GEntry.Gtk_Entry_Record
    102. Gtk.Gesture.Gtk_Gesture_Record
    103. Gtk.Gesture_Drag.Gtk_Gesture_Drag_Record
    104. Gtk.Gesture_Long_Press.Gtk_Gesture_Long_Press_Record
    105. Gtk.Gesture_Multi_Press.Gtk_Gesture_Multi_Press_Record
    106. Gtk.Gesture_Pan.Gtk_Gesture_Pan_Record
    107. Gtk.Gesture_Rotate.Gtk_Gesture_Rotate_Record
    108. Gtk.Gesture_Single.Gtk_Gesture_Single_Record
    109. Gtk.Gesture_Swipe.Gtk_Gesture_Swipe_Record
    110. Gtk.Gesture_Zoom.Gtk_Gesture_Zoom_Record
    111. Gtk.Gradient.Gtk_Gradient
    112. Gtk.Grid.Gtk_Grid_Record
    113. Gtk.Handle_Box.Gtk_Handle_Box_Record
    114. Gtk.Hbutton_Box.Gtk_Hbutton_Box_Record
    115. Gtk.Header_Bar.Gtk_Header_Bar_Record
    116. Gtk.IM_Context.Gtk_IM_Context_Record
    117. Gtk.IM_Context_Simple.Gtk_IM_Context_Simple_Record
    118. Gtk.IM_Multi_Context.Gtk_IM_Multi_Context_Record
    119. Gtk.Hsv.Gtk_Hsv_Record
    120. Gtk.Icon_Factory.Gtk_Icon_Factory_Record
    121. Gtk.Icon_Set.Gtk_Icon_Set
    122. Gtk.Icon_Source.Gtk_Icon_Source
    123. Gtk.Icon_Theme.Gtk_Icon_Info_Record
    124. Gtk.Icon_Theme.Gtk_Icon_Theme_Record
    125. Gtk.Icon_View.Gtk_Icon_View_Record
    126. Gtk.Image.Gtk_Image_Record
    127. Gtk.Image_Menu_Item.Gtk_Image_Menu_Item_Record
    128. Gtk.Info_Bar.Gtk_Info_Bar_Record
    129. Gtk.Invisible.Gtk_Invisible_Record
    130. Gtk.Label.Gtk_Label_Record
    131. Gtk.Layout.Gtk_Layout_Record
    132. Gtk.Level_Bar.Gtk_Level_Bar_Record
    133. Gtk.Link_Button.Gtk_Link_Button_Record
    134. Gtk.List_Box.Gtk_List_Box_Record
    135. Gtk.List_Box_Row.Gtk_List_Box_Row_Record
    136. Gtk.List_Store.Gtk_List_Store_Record
    137. Gtk.Menu.Gtk_Menu_Record
    138. Gtk.Menu_Bar.Gtk_Menu_Bar_Record
    139. Gtk.Menu_Button.Gtk_Menu_Button_Record
    140. Gtk.Menu_Item.Gtk_Menu_Item_Record
    141. Gtk.Menu_Shell.Gtk_Menu_Shell_Record
    142. Gtk.Menu_Tool_Button.Gtk_Menu_Tool_Button_Record
    143. Gtk.Message_Dialog.Gtk_Message_Dialog_Record
    144. Gtk.Misc.Gtk_Misc_Record
    145. Gtk.Notebook.Gtk_Notebook_Record
    146. Gtk.Offscreen_Window.Gtk_Offscreen_Window_Record
    147. Gtk.Overlay.Gtk_Overlay_Record
    148. Gtk.Page_Setup.Gtk_Page_Setup_Record
    149. Gtk.Paned.Gtk_Paned_Record
    150. Gtk.Paper_Size.Gtk_Paper_Size
    151. Gtk.Popover.Gtk_Popover_Record
    152. Gtk.Print_Context.Gtk_Print_Context_Record
    153. Gtk.Print_Operation.Gtk_Print_Operation_Record
    154. Gtk.Print_Settings.Gtk_Print_Settings_Record
    155. Gtk.Progress_Bar.Gtk_Progress_Bar_Record
    156. Gtk.Radio_Action.Gtk_Radio_Action_Record
    157. Gtk.Radio_Button.Gtk_Radio_Button_Record
    158. Gtk.Radio_Menu_Item.Gtk_Radio_Menu_Item_Record
    159. Gtk.Radio_Tool_Button.Gtk_Radio_Tool_Button_Record
    160. Gtk.Recent_Action.Gtk_Recent_Action_Record
    161. Gtk.Recent_Chooser_Dialog.Gtk_Recent_Chooser_Dialog_Record
    162. Gtk.Recent_Chooser_Menu.Gtk_Recent_Chooser_Menu_Record
    163. Gtk.Recent_Chooser_Widget.Gtk_Recent_Chooser_Widget_Record
    164. Gtk.Recent_Filter.Gtk_Recent_Filter_Record
    165. Gtk.Recent_Info.Gtk_Recent_Info
    166. Gtk.Recent_Manager.Gtk_Recent_Manager_Record
    167. Gtk.Revealer.Gtk_Revealer_Record
    168. Gtk.Scale.Gtk_Scale_Record
    169. Gtk.Scale_Button.Gtk_Scale_Button_Record
    170. Gtk.Scrollbar.Gtk_Scrollbar_Record
    171. Gtk.Scrolled_Window.Gtk_Scrolled_Window_Record
    172. Gtk.Search_Bar.Gtk_Search_Bar_Record
    173. Gtk.Search_Entry.Gtk_Search_Entry_Record
    174. Gtk.Selection_Data.Gtk_Selection_Data
    175. Gtk.Separator.Gtk_Separator_Record
    176. Gtk.Separator_Menu_Item.Gtk_Separator_Menu_Item_Record
    177. Gtk.Separator_Tool_Item.Gtk_Separator_Tool_Item_Record
    178. Gtk.Settings.Gtk_Settings_Record
    179. Gtk.Shortcuts_Window.Gtk_Shortcuts_Window_Record
    180. Gtk.Size_Group.Gtk_Size_Group_Record
    181. Gtk.Spin_Button.Gtk_Spin_Button_Record
    182. Gtk.Spinner.Gtk_Spinner_Record
    183. Gtk.Stack.Gtk_Stack_Record
    184. Gtk.Stack_Switcher.Gtk_Stack_Switcher_Record
    185. Gtk.Status_Bar.Gtk_Status_Bar_Record
    186. Gtk.Status_Icon.Gtk_Status_Icon_Record
    187. Gtk.Style.Gtk_Style_Record
    188. Gtk.Style_Context.Gtk_Style_Context_Record
    189. Gtk.Style_Properties.Gtk_Style_Properties_Record
    190. Gtk.Switch.Gtk_Switch_Record
    191. Gtk.Symbolic_Color.Gtk_Symbolic_Color
    192. Gtk.Table.Gtk_Table_Record
    193. Gtk.Target_List.Gtk_Target_List
    194. Gtk.Tearoff_Menu_Item.Gtk_Tearoff_Menu_Item_Record
    195. Gtk.Text_Buffer.Gtk_Text_Buffer_Record
    196. Gtk.Text_Child.Gtk_Text_Child_Anchor_Record
    197. Gtk.Text_Child_Anchor.Gtk_Text_Child_Anchor_Record
    198. Gtk.Text_Mark.Gtk_Text_Mark_Record
    199. Gtk.Text_Tag.Gtk_Text_Tag_Record
    200. Gtk.Text_Tag_Table.Gtk_Text_Tag_Table_Record
    201. Gtk.Text_View.Gtk_Text_View_Record
    202. Gtk.Theming_Engine.Gtk_Theming_Engine_Record
    203. Gtk.Toggle_Action.Gtk_Toggle_Action_Record
    204. Gtk.Toggle_Button.Gtk_Toggle_Button_Record
    205. Gtk.Toggle_Tool_Button.Gtk_Toggle_Tool_Button_Record
    206. Gtk.Tool_Button.Gtk_Tool_Button_Record
    207. Gtk.Tool_Item.Gtk_Tool_Item_Record
    208. Gtk.Tool_Item_Group.Gtk_Tool_Item_Group_Record
    209. Gtk.Tool_Palette.Gtk_Tool_Palette_Record
    210. Gtk.Toolbar.Gtk_Toolbar_Record
    211. Gtk.Tooltip.Gtk_Tooltip_Record
    212. Gtk.Tree_Model.Gtk_Root_Tree_Model_Record
    213. Gtk.Tree_Model.Gtk_Tree_Path
    214. Gtk.Tree_Model_Filter.Gtk_Tree_Model_Filter_Record
    215. Gtk.Tree_Model_Sort.Gtk_Tree_Model_Sort_Record
    216. Gtk.Tree_Row_Reference.Gtk_Tree_Row_Reference
    217. Gtk.Tree_Selection.Gtk_Tree_Selection_Record
    218. Gtk.Tree_Store.Gtk_Tree_Store_Record
    219. Gtk.Tree_View.Gtk_Tree_View_Record
    220. Gtk.Tree_View_Column.Gtk_Tree_View_Column_Record
    221. Gtk.UI_Manager.Gtk_UI_Manager_Record
    222. Gtk.Vbutton_Box.Gtk_Vbutton_Box_Record
    223. Gtk.Viewport.Gtk_Viewport_Record
    224. Gtk.Volume_Button.Gtk_Volume_Button_Record
    225. Gtk.Widget.Gtk_Widget_Record
    226. Gtk.Window.Gtk_Window_Group_Record
    227. Gtk.Window.Gtk_Window_Record
    228. Gtkada.Abstract_List_Model.Gtk_Abstract_List_Model_Record
    229. Gtkada.Abstract_Tree_Model.Gtk_Abstract_Tree_Model_Record
    230. Gtkada.Application.Gtkada_Application_Record
    231. Gtkada.Builder.Gtkada_Builder_Record
    232. Gtkada.Canvas.Buffered_Item_Record
    233. Gtkada.Canvas.Canvas_Item_Record
    234. Gtkada.Canvas.Canvas_Link_Record
    235. Gtkada.Canvas_View.Abstract_Item_Record
    236. Gtkada.Canvas.Interactive_Canvas_Record
    237. Gtkada.Canvas_View.Canvas_Item_Record
    238. Gtkada.Canvas_View.Canvas_Link_Record
    239. Gtkada.Canvas_View.Canvas_Model_Record
    240. Gtkada.Canvas_View.Canvas_View_Record
    241. Gtkada.Canvas_View.Container_Item_Record
    242. Gtkada.Canvas_View.Editable_Text_Item_Record
    243. Gtkada.Canvas_View.Ellipse_Item_Record
    244. Gtkada.Canvas_View.Hr_Item_Record
    245. Gtkada.Canvas_View.Image_Item_Record
    246. Gtkada.Canvas_View.Models.Rtree_Models.Rtree_Model_Record
    247. Gtkada.Canvas_View.List_Canvas_Model_Record
    248. Gtkada.Canvas_View.Polyline_Item_Record
    249. Gtkada.Canvas_View.Rtrees.Rtree
    250. Gtkada.Canvas_View.Rect_Item_Record
    251. Gtkada.Canvas_View.Text_Item_Record
    252. Gtkada.Canvas_View.Views.Animator
    253. Gtkada.Canvas_View.Views.Minimap_View_Record
    254. Gtkada.MDI.MDI_Child_Record
    255. Gtkada.MDI.MDI_Window_Record
    256. Gtkada.Multi_Paned.Gtkada_Multi_Paned_Record
    257. Gtkada.Multiline_Entry.Gtkada_Multiline_Entry_Record
    258. Gtkada.Printing.Gtkada_Print_Operation_Record
    259. Gtkada.Style.Drawing_Style
    260. Pango.Attributes.Pango_Attr_List
    261. Pango.Context.Pango_Context_Record
    262. Pango.Coverage.Pango_Coverage_Record
    263. Pango.Font.Pango_Font_Record
    264. Pango.Font_Face.Pango_Font_Face_Record
    265. Pango.Font_Family.Pango_Font_Family_Record
    266. Pango.Font_Map.Pango_Font_Map_Record
    267. Pango.Font_Metrics.Pango_Font_Metrics
    268. Pango.Fontset.Pango_Fontset_Record
    269. Pango.Language.Pango_Language
    270. Pango.Layout.Pango_Layout_Iter
    271. Pango.Layout.Pango_Layout_Record
    272. Pango.Tabs.Pango_Tab_Array

Gtkada.MDI

Description

This widget organizes its children into resizable panes. Within each pane, multiple children can be put, and they will be accessible through a notebook.

<group>Layout containers</group>

All_Buttons

All_Buttons          : constant Child_Flags := Destroy_Button;

Special flags to set up the widgets: The first is the buttons that should be displayed in the title bar of the MDI children. If Float_As_Transient is set, then the child will be set up as a transient window when floating: on most window managers, it will stay on top of the MDI, but the window will have less decorations in its title bar, in particular no destroy button. In such a case, <Esc> will close the window, or unfloat it depending on the MDI's setup, as is the case for all dialogs in GtkAda. The MDI's setup will be ignored (and the child always destroyed when Esc is pressed) if Always_Destroy_Float is true. Float_To_Main yields the same behavior as Float_As_Transient, except that the floated child will always be attached to the main window. What this means is that the child will stay on top of the MDI, and will persist if you close the current MDI child.

Allowed_Areas

type Allowed_Areas is (Central_Only, Sides_Only, Both);

Where is a child allowed to be moved ?

Enumeration Literal
Central_Only
Sides_Only
Both

Always_Destroy_Float

Always_Destroy_Float : constant Child_Flags := 2 ** 4;

Special flags to set up the widgets: The first is the buttons that should be displayed in the title bar of the MDI children. If Float_As_Transient is set, then the child will be set up as a transient window when floating: on most window managers, it will stay on top of the MDI, but the window will have less decorations in its title bar, in particular no destroy button. In such a case, <Esc> will close the window, or unfloat it depending on the MDI's setup, as is the case for all dialogs in GtkAda. The MDI's setup will be ignored (and the child always destroyed when Esc is pressed) if Always_Destroy_Float is true. Float_To_Main yields the same behavior as Float_As_Transient, except that the floated child will always be attached to the main window. What this means is that the child will stay on top of the MDI, and will persist if you close the current MDI child.

Cancel_Child_Drag

procedure Cancel_Child_Drag
  (Child : not null access MDI_Child_Record'Class)

Cancel a drag operation started by Child_Drag_Begin. It doesn't call Child_Drag_Finished.

Parameters
Child

Cb_GObject_MDI_Child_Void

type Cb_GObject_MDI_Child_Void is not null access procedure
  (Self  : access Glib.Object.GObject_Record'Class;
   Child : not null access MDI_Child_Record'Class);
Parameters
Self
Child

Cb_Gtkada_MDI_Window_MDI_Child_Void

type Cb_Gtkada_MDI_Window_MDI_Child_Void is not null access procedure
  (Self  : access MDI_Window_Record'Class;
   Child : not null access MDI_Child_Record'Class);
Parameters
Self
Child

Change_Group

procedure Change_Group
  (Child : not null access MDI_Child_Record'Class;
   Group : Child_Group)

Change the child's MDI group.

Parameters
Child
Group

Check_Interactive_Selection_Dialog

procedure Check_Interactive_Selection_Dialog
  (MDI          : access MDI_Window_Record;
   Event        : Gdk.Event.Gdk_Event;
   Move_To_Next : Boolean;
   Only_Group   : Child_Group := Group_Any)

Open the interactive dialog for selecting windows. This dialog should be open as a result of a key press event. Move_To_Next indicates whether we want to select the next child (True) or the previous child (False). This dialog will be closed only when the key that opened it is fully released. For instance, if the dialog was opened as a result of pressing Ctrl-Tab, the dialog will only be closed when Ctrl itself is released. You can call this procedure even if a dialog is currently open. This simply forces a move to the next or previous child. In fact, it is your responsability to call this procedure when the user presses the keys to move between children.

If Event is null, then no dialog is displayed. Instead, the next or previous visible child is immediately selected. In such a mode, windows that are not on top of their respective notebook are ignored. This can be used to emulate Emacs's behavior for goto-other-window.

If Only_Group is specified, then only the windows from that group will be shown in the dialog.

Parameters
MDI
Event
Move_To_Next
Only_Group

Child_Drag_Begin

procedure Child_Drag_Begin
  (Child  : not null access MDI_Child_Record'Class;
   Event  : Gdk.Event.Gdk_Event_Button;
   Areas  : Allowed_Areas)

Starts a drag-and-drop operation for the child, so that it can be put in some other place on the desktop. This should only be called when a handler for the "button_press_event" signal, passing the event itself in parameter. The Child is immediately raised and gains the focus. Areas indicates where the child can be dropped. This is in particular useful if Dnd_Data was overridden and some other child will be dropped instead.

Parameters
Child
Event
Areas

Child_Drag_Finished

procedure Child_Drag_Finished (Child : not null access MDI_Child_Record)

Called when a drag operation is either aborted or completed. It should be overridden if special cleanup should be done.

Parameters
Child

Child_Flags

type Child_Flags is mod 2 ** 7;

Special flags to set up the widgets: The first is the buttons that should be displayed in the title bar of the MDI children. If Float_As_Transient is set, then the child will be set up as a transient window when floating: on most window managers, it will stay on top of the MDI, but the window will have less decorations in its title bar, in particular no destroy button. In such a case, <Esc> will close the window, or unfloat it depending on the MDI's setup, as is the case for all dialogs in GtkAda. The MDI's setup will be ignored (and the child always destroyed when Esc is pressed) if Always_Destroy_Float is true. Float_To_Main yields the same behavior as Float_As_Transient, except that the floated child will always be attached to the main window. What this means is that the child will stay on top of the MDI, and will persist if you close the current MDI child.

Child_Get_Type

function Child_Get_Type return Glib.GType

Return the type describing the MDI or a MDI_Child

Return Value

Child_Group

type Child_Group is new Positive;

This type can be used to help group windows by type within the MDI. Group_Default as a special status when computing the initial position for a window. But you can create your own groups as needed, so that for instance editors tend to be grouped with other editors, graphs with other graphs,... depending on your application. The group has an impact when the last window from a notebook is closed: If the window belongs to Group_Default, and it is the last of its group, then the space currently occupied by that window is not reclaimed, and therefore an empty area will exist in the MDI. The idea is that for instance editors typically play a special role in an integrated development environment, and the users like to have them in the center of the window. When closing the last editor, they do not want the side windows (browsers, consoles,...) to take up that space that should really only be used for editors. To get such a behavior, editors should belong to Group_Default, and all other windows to custom groups.

Do not use Group_Any, it is used internally with special meanings.

Child_Iterator

type Child_Iterator is private;

Child_Position

type Child_Position is
  (Position_Automatic,
   Position_Bottom,
   Position_Top,
   Position_Left,
   Position_Right,
   Position_Float);

The initial position of windows within the MDI. In all cases, the initial location for a window is computed with the following algorithm. This algorithm is designed with the notion of groups of windows in mind, so that some windows (typically editors) have a special status. - If Position_Float, make the window floating - If another window with the same Group is already in the MDI, the new window is put on top of it. - Otherwise, if Position_Automatic, if an empty area exists within the MDI, the new window is put in that area. - Else if the Position is Bottom .. Right, the new window is put below all others (resp. to the top, left or right) - Else the window is put on top of the currently selected window

Enumeration Literal
Position_Automatic
Position_Bottom
Position_Top
Position_Left
Position_Right
Position_Float

Child_Selected

procedure Child_Selected
   (Self  : not null access MDI_Window_Record'Class;
    Child : access MDI_Child_Record'Class := null)

Emit the "child_selected" signal

Parameters
Self
Child

Close

procedure Close
  (MDI   : access MDI_Window_Record;
   Child : access Gtk.Widget.Gtk_Widget_Record'Class;
   Force : Boolean := False)

Close the child that contains Child, and remove its window from the MDI. See also Close_Child if you need to close a MDI_Child itself. This first checks through a delete_event callback whether the child accepts to be closed. "delete_event" is not sent, and the child is automatically closed, if Force is set to True.

Parameters
MDI
Child
Force

Close_Child

procedure Close_Child
  (Child           : not null access MDI_Child_Record'Class;
   Force           : Boolean := False;
   Focus_Same_Area : Boolean := True)

Same as Close, but applies directly to a MDI_Child. If Focus_Same_Area is True, the focus will return to the previously focused child in the same area / notebook as Child, and which is not Child itself. Otherwise, the focus will return to the previously focused child, no matter its area/notebook.

Parameters
Child
Force
Focus_Same_Area

Configure

procedure Configure
  (MDI                       : access MDI_Window_Record;
   Opaque_Resize             : Boolean := False;
   Close_Floating_Is_Unfloat : Boolean := True;
   Title_Font         : Pango.Font.Pango_Font_Description := null;
   Title_Bar_Color    : Gdk.RGBA.Gdk_RGBA := Gdk.RGBA.Null_RGBA;
   Focus_Title_Color  : Gdk.RGBA.Gdk_RGBA := Gdk.RGBA.Null_RGBA;
   Draw_Title_Bars    : Title_Bars_Policy   := Always;
   Tabs_Position      : Gtk.Enums.Gtk_Position_Type := Gtk.Enums.Pos_Top;
   Show_Tabs_Policy   : Show_Tabs_Policy_Enum := Automatic;
   Homogeneous_Tabs   : Boolean := True;
   Tabs_Orientation   : Tab_Orientation_Type := Automatic)

Change the setup of the MDI. Close_Floating_Is_Unfloat, if True, means that closing a floating child will put it back in the MDI instead of destroying it (unless its flag Always_Destroy_Float is set). Title_Font is the font used in the title bars (if null, "sans 8" is used). The colors, when Null_Color, will not change the current setup. If Draw_Title_Bars is False, then no extra title bar will be displayed for the MDI children when they are maximized. This saves space on the screen. However, the notebook tabs will be highlighted with Title_Bar_Color in exchange. Tabs_Position indicates where the notebook tabs should be put. Tabs_Orientation indicates how the notebook tabs should be rotated. Show_Tabs_Policy indicates when the notebook tabs should be displayed.

If Homogeneous_Tabs is true, then the notebook tabs will only use their natural size when they all fit in the notebook's width. Otherwise, they are resized (and ellipsized as needed) so that more of them show. Changing this setup requires a restart of the MDI.

Calling configure will define a default CSS to properly theme the MDI. This CSS relies on mainly two widget classes to behave:

This default CSS renders the active tab of the active notebook with the color defined in Focus_Title_Color. Same for the color of the title bar (uses Title_Bar_Color for non-active title bar). This behavior can at any point be overridden by users by defining their own and load it at run-time.

Since the move to gtk3, the highlighting of the current tab is left to the gtk+ theme, rather than overwritten in this package. This permits a better integration with the user's theme. It is possible for applications to provide their own CSS, though, using Gtkada.Style.Load_Css_File. Here is an example of such a CSS, which highlights the current tab in the notebook that currently has the focus:

@define-color mdi-tab-color  grey;
@define-color mdi-active-tab-color blue;
.mdititle {
    border-width: 2px;
    background-image: -gtk-gradient(
        linear, left top, left bottom,
        from(@mdi-tab-color), to(shade(@mdi-tab-color, 1.1)));
}
.mdifocused .mdititle {
    background-image: -gtk-gradient(
        linear, left top, left bottom,
        from(@mdi-active-tab-color),
        to(shade(@mdi-active-tab-color, 1.1)));
.mdi tab GtkLabel, .mdi tab GtkImage { opacity: 0.8 }
.mdifocused tab GtkLabel, .mdifocused tab GtkImage { opacity: 1.0}
Parameters
MDI
Opaque_Resize
Close_Floating_Is_Unfloat
Title_Font
Title_Bar_Color
Focus_Title_Color
Draw_Title_Bars
Tabs_Position
Show_Tabs_Policy
Homogeneous_Tabs
Tabs_Orientation

Create_Float_Window_For_Child

procedure Create_Float_Window_For_Child
   (Child     : not null access MDI_Child_Record;
    Win       : out Gtk.Window.Gtk_Window;
    Container : out Gtk.Container.Gtk_Container)

Creates the window to use when a child is made floating. This procedure provides reasonable default, but can be overridden in your application if you have special needs (like creating a window with specific menubar or decorations for instance). Win must be set to the window that has been created, and Container to the area of the window that will contain Child. The window's title will be set automatically. The window's size will be set by the MDI by calling Child.Set_Default_Size_For_Floating_Window.

Parameters
Child
Win
Container

Current_Perspective

function Current_Perspective
  (MDI : access MDI_Window_Record'Class) return String

Return the name of the currently displayed perspective

Parameters
MDI
Return Value

Desktop_Was_Loaded

function Desktop_Was_Loaded (MDI : access MDI_Window_Record) return Boolean

Return True if a desktop was loaded, False if the MDI is only the result of calls to Gtk_New and Put.

Parameters
MDI
Return Value

Destroy_Button

Destroy_Button       : constant Child_Flags := 2 ** 2;

Special flags to set up the widgets: The first is the buttons that should be displayed in the title bar of the MDI children. If Float_As_Transient is set, then the child will be set up as a transient window when floating: on most window managers, it will stay on top of the MDI, but the window will have less decorations in its title bar, in particular no destroy button. In such a case, <Esc> will close the window, or unfloat it depending on the MDI's setup, as is the case for all dialogs in GtkAda. The MDI's setup will be ignored (and the child always destroyed when Esc is pressed) if Always_Destroy_Float is true. Float_To_Main yields the same behavior as Float_As_Transient, except that the floated child will always be attached to the main window. What this means is that the child will stay on top of the MDI, and will persist if you close the current MDI child.

Dnd_Data

function Dnd_Data
  (Child : not null access MDI_Child_Record; Copy : Boolean)
   return MDI_Child

When a drag-and-drop operation took place to move a child from one position to the next, this function is called to know what child should be moved. As a result, the implementor can choose whether a copy of the child should be returned (creating a new view for an editor for instance), or if the child itself should be moved (the default). The returned MDI_Child must have been added to the MDI before it is returned. Copy is set to true if a copy operation was requested, to False if a simple move operation was requested. It can be ignored if Child doesn't know how to create a copy of itself for instance.

Parameters
Child
Copy
Return Value

Find_MDI_Child

function Find_MDI_Child
  (MDI    : access MDI_Window_Record;
   Widget : access Gtk.Widget.Gtk_Widget_Record'Class) return MDI_Child

Return the MDI_Child that encapsulates Widget. Widget must be the exact same one you gave in argument to Put. If the child is currently not visible in the perspective (for instance it was created for another perspective, but is not present in the current one), it is inserted automatically back in the MDI.

Parameters
MDI
Widget
Return Value

Find_MDI_Child_By_Name

function Find_MDI_Child_By_Name
  (MDI  : access MDI_Window_Record;
   Name : String) return MDI_Child

Return the first child matching Name. If the child is currently not visible in the perspective (for instance it was created for another perspective, but is not present in the current one), it is inserted automatically back in the MDI.

Parameters
MDI
Name
Return Value

Find_MDI_Child_By_Tag

function Find_MDI_Child_By_Tag
  (MDI : access MDI_Window_Record;
   Tag : Ada.Tags.Tag;
   Visible_Only : Boolean := False) return MDI_Child

Return the first child matching Tag If the child is currently not visible in the perspective (for instance it was created for another perspective, but is not present in the current one), it is inserted automatically back in the MDI. If Visible_Only is True, an invisible child is not returned. This is useful to check whether a child is currently visible.

Parameters
MDI
Tag
Visible_Only
Return Value

Find_MDI_Child_From_Widget

function Find_MDI_Child_From_Widget
  (Widget : access Gtk.Widget.Gtk_Widget_Record'Class) return MDI_Child

Return the MDI child that encapsulate the parent of Widget. As opposed to Find_MDI_Child, Widget can be anywhere within the widget tree. This function properly handles floating children If the child is currently not visible in the perspective (for instance it was created for another perspective, but is not present in the current one), it is inserted automatically back in the MDI.

Parameters
Widget
Return Value

First_Child

function First_Child
  (MDI               : access MDI_Window_Record;
   Group_By_Notebook : Boolean := False;
   Visible_Only      : Boolean := True) return Child_Iterator

Return an access to the first child of the MDI.

If Group_By_Notebook is True, then the children are reported one after the other, but all the widget from the same notebook are reported in the same order as the notebook pages. Floating children do not belong to a notebook, and are also reported together. To find out to which notebook a child belongs, use Get_Notebook below.

If Group_By_Notebook is False, it is garanteed that the first child is the one that currently has the focus in the MDI. The children are returned in the order in which they last had the focus.

If Visible_Only is true, then only those children currently visible in the perspective are returned. The children that were part of a former perspective are not returned.

Parameters
MDI
Group_By_Notebook
Visible_Only
Return Value

Float_As_Transient

Float_As_Transient   : constant Child_Flags := 2 ** 3;

Special flags to set up the widgets: The first is the buttons that should be displayed in the title bar of the MDI children. If Float_As_Transient is set, then the child will be set up as a transient window when floating: on most window managers, it will stay on top of the MDI, but the window will have less decorations in its title bar, in particular no destroy button. In such a case, <Esc> will close the window, or unfloat it depending on the MDI's setup, as is the case for all dialogs in GtkAda. The MDI's setup will be ignored (and the child always destroyed when Esc is pressed) if Always_Destroy_Float is true. Float_To_Main yields the same behavior as Float_As_Transient, except that the floated child will always be attached to the main window. What this means is that the child will stay on top of the MDI, and will persist if you close the current MDI child.

Float_Child

procedure Float_Child
  (Child             : not null access MDI_Child_Record'Class;
   Float             : Boolean;
   Position_At_Mouse : Boolean := True;
   X, Y              : Gint := 0)

Change the floating state of a child. If Float is True: - if Position_At_Mouse is True, position the window under the mouse pointer. - if Position_At_Mouse is False, use position the window at X, Y.

Parameters
Child
Float
Position_At_Mouse
X
Y

Float_To_Main

Float_To_Main        : constant Child_Flags := 2 ** 5;

Special flags to set up the widgets: The first is the buttons that should be displayed in the title bar of the MDI children. If Float_As_Transient is set, then the child will be set up as a transient window when floating: on most window managers, it will stay on top of the MDI, but the window will have less decorations in its title bar, in particular no destroy button. In such a case, <Esc> will close the window, or unfloat it depending on the MDI's setup, as is the case for all dialogs in GtkAda. The MDI's setup will be ignored (and the child always destroyed when Esc is pressed) if Always_Destroy_Float is true. Float_To_Main yields the same behavior as Float_As_Transient, except that the floated child will always be attached to the main window. What this means is that the child will stay on top of the MDI, and will persist if you close the current MDI child.

Get

function Get (Iterator : Child_Iterator) return MDI_Child

Return the child pointed to by Iterator. If Iterator is no longer valid, null is returned.

Parameters
Iterator
Return Value

Get_Allowed_Areas

function Get_Allowed_Areas
  (Child : not null access MDI_Child_Record'Class) return Allowed_Areas

What areas the child can be put int

Parameters
Child
Return Value

Get_Child_Notebook

function Get_Child_Notebook
  (Child : access MDI_Child_Record'Class) return Gtk.Notebook.Gtk_Notebook

Return the notebook that directly contains Child

Parameters
Child
Return Value

Get_Focus_Child

function Get_Focus_Child
  (MDI : access MDI_Window_Record) return MDI_Child

Return the child that currently has the MDI focus. null is returned if no child has the focus.

Parameters
MDI
Return Value

Get_Icon

function Get_Icon
  (Child : not null access MDI_Child_Record) return Gdk.Pixbuf.Gdk_Pixbuf

Returns the icon associated with Child. The returned pixbuf is owned by the MDI and must not be freed by the caller.

Parameters
Child
Return Value

Get_Icon_Name

function Get_Icon_Name
  (Child : not null access MDI_Child_Record) return String

Returns the icon associated with Child. The returned pixbuf is owned by the MDI and must not be freed by the caller.

Parameters
Child
Return Value

Get_MDI

function Get_MDI
  (Child : not null access MDI_Child_Record) return MDI_Window

Return the MDI to which Child is associated. In Child is a floating child, it might not be in the MDI window itself.

Parameters
Child
Return Value

Get_Notebook

function Get_Notebook
  (Iterator : Child_Iterator) return Gtk.Notebook.Gtk_Notebook

Return the notebook to which the current child belongs. null is returned for floating children

Parameters
Iterator
Return Value

Get_Short_Title

function Get_Short_Title
  (Child : not null access MDI_Child_Record) return UTF8_String

Return the name of the notebook tab used when children are maximized.

Parameters
Child
Return Value

Get_State

function Get_State
  (Child : not null access MDI_Child_Record) return State_Type

Return the current state of the child

Parameters
Child
Return Value

Get_Tab_Label

function Get_Tab_Label
  (Child : not null access MDI_Child_Record'Class)
   return Gtk.Label.Gtk_Label

Return the child's tab label

Parameters
Child
Return Value

Get_Tab_Orientation

function Get_Tab_Orientation
  (Child : not null access MDI_Child_Record'Class)
   return Tab_Orientation_Type

Return the child's tab orientation

Parameters
Child
Return Value

Get_Title

function Get_Title
  (Child : not null access MDI_Child_Record) return UTF8_String

Return the title for a specific child

Parameters
Child
Return Value

Get_Tooltip

function Get_Tooltip
  (Child : not null access MDI_Child_Record)
  return String

Return the text to use in tooltips for the notebook tabs. The default (or if this function returns the empty string) the title of the child (Get_Title above).

Parameters
Child
Return Value

Get_Tooltip_Is_Markup

function Get_Tooltip_Is_Markup
  (Child : not null access MDI_Child_Record)
  return Boolean

Should return True if Get_Tooltip returns a string with special markup like "<b>" for bold text. When this is True, special characters like "<" and ">" must be quoted with backslashes.

Parameters
Child
Return Value

Get_Type

function Get_Type return Glib.GType

Return the type describing the MDI or a MDI_Child

Return Value

Get_Widget

function Get_Widget
  (Child : access MDI_Child_Record) return Gtk.Widget.Gtk_Widget

Return the widget that Child encapsulates. This is the widget you initially Put() in MDI.

Parameters
Child
Return Value

Give_Focus_To_Previous_Child

procedure Give_Focus_To_Previous_Child
  (Child          : access MDI_Child_Record'Class;
   From_Same_Area : Boolean := True)

Give focus to the last child. If From_Same_Area is True, it will return the previously focused child in the same area / notebook as Child, and which is not Child itself. Otherwise, it will return the previously focused child, no matter its area/notebook.

Parameters
Child
From_Same_Area

Group_Any

Group_Any     : constant Child_Group := Child_Group'Last;

This type can be used to help group windows by type within the MDI. Group_Default as a special status when computing the initial position for a window. But you can create your own groups as needed, so that for instance editors tend to be grouped with other editors, graphs with other graphs,... depending on your application. The group has an impact when the last window from a notebook is closed: If the window belongs to Group_Default, and it is the last of its group, then the space currently occupied by that window is not reclaimed, and therefore an empty area will exist in the MDI. The idea is that for instance editors typically play a special role in an integrated development environment, and the users like to have them in the center of the window. When closing the last editor, they do not want the side windows (browsers, consoles,...) to take up that space that should really only be used for editors. To get such a behavior, editors should belong to Group_Default, and all other windows to custom groups.

Do not use Group_Any, it is used internally with special meanings.

Group_Default

Group_Default : constant Child_Group := 1;

This type can be used to help group windows by type within the MDI. Group_Default as a special status when computing the initial position for a window. But you can create your own groups as needed, so that for instance editors tend to be grouped with other editors, graphs with other graphs,... depending on your application. The group has an impact when the last window from a notebook is closed: If the window belongs to Group_Default, and it is the last of its group, then the space currently occupied by that window is not reclaimed, and therefore an empty area will exist in the MDI. The idea is that for instance editors typically play a special role in an integrated development environment, and the users like to have them in the center of the window. When closing the last editor, they do not want the side windows (browsers, consoles,...) to take up that space that should really only be used for editors. To get such a behavior, editors should belong to Group_Default, and all other windows to custom groups.

Do not use Group_Any, it is used internally with special meanings.

Gtk_New

procedure Gtk_New
  (Child        : out MDI_Child;
   Widget       : access Gtk.Widget.Gtk_Widget_Record'Class;
   Flags        : Child_Flags := All_Buttons;
   Group        : Child_Group := Group_Default;
   Focus_Widget : Gtk.Widget.Gtk_Widget := null;
   Areas        : Allowed_Areas := Both)

Create a new MDI child that contains widget. Widget mustn't be of type Gtk_Window.

You shouldn't access Widget directly afterwards, but should manipulate Child only. However, as a special exception, you can still pass Widget as a parameter to the subprograms in this package to manipulate it (e.g. in Raise_Child, ...)

If Focus_Widget is not null, this is the widget that gets the keyboard focus when the child is selected.

Parameters
Child
Widget
Flags
Group
Focus_Widget
Areas

Gtk_New

procedure Gtk_New
  (MDI   : out MDI_Window;
   Group : access Gtk.Accel_Group.Gtk_Accel_Group_Record'Class;
   Independent_Perspectives : Boolean := False)

Create a new MDI window. Note that it is recommended that you modify the style (Set_Background in State_Normal) to have a different color. You should call Setup_Toplevel_Window once you have added the MDI to a toplevel widget, so that focus is correctly handled when the toplevel window gains the focus When Independent_Perspectives is True, switching perspectives will not preserve any window. Otherwise, the windows that are in the central area will be preserved in the new perspective.

Parameters
MDI
Group
Independent_Perspectives

Has_Title_Bar

function Has_Title_Bar
  (Child : not null access MDI_Child_Record) return Boolean

Whether a title bar is currently displayed for Child

Parameters
Child
Return Value

Highlight_Child

procedure Highlight_Child
  (Child : not null access MDI_Child_Record; Highlight : Boolean := True)

Highlight the child until it is selected by the user. The color of its menu label and of the text in the notebook tabs is changed. Nothing is done if the child is already fully visible (either in the active page in one of the notebooks, or the child that has the selection in the layout). This is meant to be used as a graphical note to the user that the child has been updated and the user should look at it.

Parameters
Child
Highlight

Independent_Perspectives

function Independent_Perspectives
  (MDI : access MDI_Window_Record) return Boolean

Whether the MDI is using independent perspectives

Parameters
MDI
Return Value

Initialize

procedure Initialize
  (Child        : access MDI_Child_Record'Class;
   Widget       : access Gtk.Widget.Gtk_Widget_Record'Class;
   Flags        : Child_Flags := All_Buttons;
   Group        : Child_Group := Group_Default;
   Focus_Widget : Gtk.Widget.Gtk_Widget := null;
   Areas        : Allowed_Areas := Both)

Internal initialization function. See the section "Creating your own widgets" in the documentation.

Parameters
Child
Widget
Flags
Group
Focus_Widget
Areas

Initialize

procedure Initialize
  (MDI   : access MDI_Window_Record'Class;
   Group : access Gtk.Accel_Group.Gtk_Accel_Group_Record'Class;
   Independent_Perspectives : Boolean := False)

Internal initialization function. See the section "Creating your own widgets" in the documentation.

Parameters
MDI
Group
Independent_Perspectives

Is_Floating

function Is_Floating
  (Child : not null access MDI_Child_Record'Class) return Boolean

Return True if Child is currently in a separate window

Parameters
Child
Return Value

Is_Raised

function Is_Raised
  (Child : not null access MDI_Child_Record'Class) return Boolean

Whether the child is currently raised, ie fully visible to the user

Parameters
Child
Return Value

List_Of_Perspectives

function List_Of_Perspectives
  (MDI : access MDI_Window_Record)
   return GNAT.Strings.String_List_Access

Return the list of perspectives known to the MDI. The caller must not free the list

Parameters
MDI
Return Value

Lower_Child

procedure Lower_Child (Child : not null access MDI_Child_Record'Class)

Put Child in the background. If the children are maximized, this selected the next page from the notebook.

Parameters
Child

MDI_Child

type MDI_Child is access all MDI_Child_Record'Class;

A child of the MDI, that encapsulates the widgets you have put in the MDI window. You can easily convert from this to the initial widget using the functions Find_MDI_Child and Get_Widget.

MDI_Child_Array

type MDI_Child_Array is array (Natural range <>) of MDI_Child;

MDI_Child_Record

type MDI_Child_Record is new Gtk.Event_Box.Gtk_Event_Box_Record
  with private;

A child of the MDI, that encapsulates the widgets you have put in the MDI window. You can easily convert from this to the initial widget using the functions Find_MDI_Child and Get_Widget.

MDI_Window

type MDI_Window is access all MDI_Window_Record'Class;

Although this widget is implemented as a gtk_layout, you shouldn't use the standard Gtk_Layout functions like Put and Move yourself.

MDI_Window_Record

type MDI_Window_Record is new Gtk.Widget.Gtk_Widget_Record with private;

Although this widget is implemented as a gtk_layout, you shouldn't use the standard Gtk_Layout functions like Put and Move yourself.

Next

procedure Next (Iterator : in out Child_Iterator)

Move to the next child in the MDI

Parameters
Iterator

No_Children

No_Children : constant MDI_Child_Array := (1 .. 0 => null);

On_Before_Destroy_Child

procedure On_Before_Destroy_Child
  (Self  : not null access MDI_Window_Record'Class;
   Call  : Cb_GObject_MDI_Child_Void;
   Slot  : not null access Glib.Object.GObject_Record'Class;
   After : Boolean := False)
Parameters
Self
Call
Slot
After

On_Before_Destroy_Child

procedure On_Before_Destroy_Child
  (Self  : not null access MDI_Window_Record'Class;
   Call  : Cb_Gtkada_MDI_Window_MDI_Child_Void;
   After : Boolean := False)
Parameters
Self
Call
After

On_Before_Remove_Child

procedure On_Before_Remove_Child
  (Self  : not null access MDI_Window_Record'Class;
   Call  : Cb_GObject_MDI_Child_Void;
   Slot  : not null access Glib.Object.GObject_Record'Class;
   After : Boolean := False)
Parameters
Self
Call
Slot
After

On_Before_Remove_Child

procedure On_Before_Remove_Child
  (Self  : not null access MDI_Window_Record'Class;
   Call  : Cb_Gtkada_MDI_Window_MDI_Child_Void;
   After : Boolean := False)
Parameters
Self
Call
After

On_Before_Unfloat_Child

procedure On_Before_Unfloat_Child
  (Self  : not null access MDI_Window_Record'Class;
   Call  : Cb_GObject_MDI_Child_Void;
   Slot  : not null access Glib.Object.GObject_Record'Class;
   After : Boolean := False)
Parameters
Self
Call
Slot
After

On_Before_Unfloat_Child

procedure On_Before_Unfloat_Child
  (Self  : not null access MDI_Window_Record'Class;
   Call  : Cb_Gtkada_MDI_Window_MDI_Child_Void;
   After : Boolean := False)
Parameters
Self
Call
After

On_Child_Added

procedure On_Child_Added
  (Self  : not null access MDI_Window_Record'Class;
   Call  : Cb_GObject_MDI_Child_Void;
   Slot  : not null access Glib.Object.GObject_Record'Class;
   After : Boolean := False)
Parameters
Self
Call
Slot
After

On_Child_Added

procedure On_Child_Added
  (Self  : not null access MDI_Window_Record'Class;
   Call  : Cb_Gtkada_MDI_Window_MDI_Child_Void;
   After : Boolean := False)
Parameters
Self
Call
After

On_Child_Icon_Changed

procedure On_Child_Icon_Changed
  (Self  : not null access MDI_Window_Record'Class;
   Call  : Cb_GObject_MDI_Child_Void;
   Slot  : not null access Glib.Object.GObject_Record'Class;
   After : Boolean := False)
Parameters
Self
Call
Slot
After

On_Child_Icon_Changed

procedure On_Child_Icon_Changed
  (Self  : not null access MDI_Window_Record'Class;
   Call  : Cb_Gtkada_MDI_Window_MDI_Child_Void;
   After : Boolean := False)
Parameters
Self
Call
After

On_Child_Removed

procedure On_Child_Removed
  (Self  : not null access MDI_Window_Record'Class;
   Call  : Cb_GObject_MDI_Child_Void;
   Slot  : not null access Glib.Object.GObject_Record'Class;
   After : Boolean := False)
Parameters
Self
Call
Slot
After

On_Child_Removed

procedure On_Child_Removed
  (Self  : not null access MDI_Window_Record'Class;
   Call  : Cb_Gtkada_MDI_Window_MDI_Child_Void;
   After : Boolean := False)
Parameters
Self
Call
After

On_Child_Selected

procedure On_Child_Selected
  (Self  : not null access MDI_Window_Record'Class;
   Call  : Cb_GObject_MDI_Child_Void;
   Slot  : not null access Glib.Object.GObject_Record'Class;
   After : Boolean := False)
Parameters
Self
Call
Slot
After

On_Child_Selected

procedure On_Child_Selected
  (Self  : not null access MDI_Window_Record'Class;
   Call  : Cb_Gtkada_MDI_Window_MDI_Child_Void;
   After : Boolean := False)
Parameters
Self
Call
After

On_Child_Title_Changed

procedure On_Child_Title_Changed
  (Self  : not null access MDI_Window_Record'Class;
   Call  : Cb_GObject_MDI_Child_Void;
   Slot  : not null access Glib.Object.GObject_Record'Class;
   After : Boolean := False)
Parameters
Self
Call
Slot
After

On_Child_Title_Changed

procedure On_Child_Title_Changed
  (Self  : not null access MDI_Window_Record'Class;
   Call  : Cb_Gtkada_MDI_Window_MDI_Child_Void;
   After : Boolean := False)
Parameters
Self
Call
After

On_Delete_Event

procedure On_Delete_Event
  (Self  : not null access MDI_Window_Record'Class;
   Call  : Cb_GObject_MDI_Child_Void;
   Slot  : not null access Glib.Object.GObject_Record'Class;
   After : Boolean := False)
Parameters
Self
Call
Slot
After

On_Delete_Event

procedure On_Delete_Event
  (Self  : not null access MDI_Window_Record'Class;
   Call  : Cb_Gtkada_MDI_Window_MDI_Child_Void;
   After : Boolean := False)
Parameters
Self
Call
After

On_Float_Child

procedure On_Float_Child
  (Self  : not null access MDI_Window_Record'Class;
   Call  : Cb_GObject_MDI_Child_Void;
   Slot  : not null access Glib.Object.GObject_Record'Class;
   After : Boolean := False)
Parameters
Self
Call
Slot
After

On_Float_Child

procedure On_Float_Child
  (Self  : not null access MDI_Window_Record'Class;
   Call  : Cb_Gtkada_MDI_Window_MDI_Child_Void;
   After : Boolean := False)
Parameters
Self
Call
After

On_Unfloat_Child

procedure On_Unfloat_Child
  (Self  : not null access MDI_Window_Record'Class;
   Call  : Cb_GObject_MDI_Child_Void;
   Slot  : not null access Glib.Object.GObject_Record'Class;
   After : Boolean := False)
Parameters
Self
Call
Slot
After

On_Unfloat_Child

procedure On_Unfloat_Child
  (Self  : not null access MDI_Window_Record'Class;
   Call  : Cb_Gtkada_MDI_Window_MDI_Child_Void;
   After : Boolean := False)
Parameters
Self
Call
After

Put

procedure Put
  (MDI               : access MDI_Window_Record;
   Child             : access MDI_Child_Record'Class;
   Initial_Position  : Child_Position := Position_Automatic;
   Position_At_Mouse : Boolean := True;
   X, Y              : Gint := 0)

Add a new child to the MDI window, and return its embedding widget. Calling Put does not give the focus to the newly inserted widget. To do that, you should call Set_Focus_Child. If Initial_Position is Position_Float, then position the floating window under the mouse cursor, unless Position_At_Mouse is False, in which case position the window at X, Y.

Parameters
MDI
Child
Initial_Position
Position_At_Mouse
X
Y

Raise_Child

procedure Raise_Child
  (Child      : not null access MDI_Child_Record'Class;
   Give_Focus : Boolean := True)

Put Child in the foreground. Note that this does not give the focus to this child, unless Give_Focus is set to True. If Child and the current focus child are in the same notebook, Child will always gain the focus, so that the focus is not left on an invisible window.

Parameters
Child
Give_Focus

Save_Desktop

function Save_Desktop
  (Self : not null access MDI_Child_Record) return Glib.Xml_Int.Node_Ptr

A function used to save a child into the desktop. This is similar to Save_Desktop_Function, but is specific to a child, and thus more efficient.

If this function returns some data, that data is saved into the XML for the desktop. If it returns null, however, the MDI will call each of the registered Save_Desktop_Function, until one returns some data.

The resulting node must have a tag that is unique for this type of widget, and this recognized by one of the Load_Desktop_Function so that the child can be recreated when the desktop is loaded from XML.

Parameters
Self
Return Value

Set_All_Floating_Mode

procedure Set_All_Floating_Mode
  (MDI : access MDI_Window_Record; All_Floating : Boolean)

If All_Floating is set to true, the MDI will have a size of 0x0, and all children are set to floating. This can be used if you wish to let the window manager handle the windows. If All_Floating is True, children can no longer be maximized.

Parameters
MDI
All_Floating

Set_Default_Size_For_Floating_Window

procedure Set_Default_Size_For_Floating_Window
  (Child : not null access MDI_Child_Record;
   Win   : not null access Gtk.Window.Gtk_Window_Record'Class;
   Width, Height : Glib.Gint)

Set the default size for a floating window. Width and Height are the values that have bee computed, from either the non-floating size of the child, or from the child's preferred size. This procedure can be overridden, though, to force other values, for instance if you would like to restore a specific size.

Parameters
Child
Win
Width
Height

Set_Dnd_Message

procedure Set_Dnd_Message
  (MDI     : access MDI_Window_Record;
   Message : String)

Override the message that is displayed in the popup window while performing a drag. By default, this message mentions: "Use control to move the whole notebook" "Use shift to create a new view for editors" so might not be suitable for all applications. You can use markup like "<b>...</b>" to put keywords in bold.

Passing an empty string for Message will restore the default message.

Parameters
MDI
Message

Set_Focus_Child

procedure Set_Focus_Child
  (MDI        : access MDI_Window_Record;
   Containing : access Gtk.Widget.Gtk_Widget_Record'Class)

Give the focus to the child containing Containing. This will not Grab_Focus for the child in all cases, since you might want to give the focus to some specific part of your widget (an entry field,...) in some cases. Call this with Containing = null to explicitly unset the current focus child.

Parameters
MDI
Containing

Set_Focus_Child

procedure Set_Focus_Child (Child : not null access MDI_Child_Record)

Make Child the active widget, and raise it at the top.

Parameters
Child

Set_Icon

procedure Set_Icon
  (Child : not null access MDI_Child_Record;
   Icon  : Gdk.Pixbuf.Gdk_Pixbuf)

Associate an icon with Child. This icon is visible in the title bar, the notebook tabs, the Window menu and the interactive selection dialog. The icon is updated dynamically on the screen. The Icon can safely be unrefed by the caller (and should, if the pixbuf was newly allocated).

Parameters
Child
Icon

Set_Icon_Name

procedure Set_Icon_Name
  (Child     : not null access MDI_Child_Record;
   Icon_Name : String)

Associate an icon with Child. This icon is visible in the title bar, the notebook tabs, the Window menu and the interactive selection dialog. The icon is updated dynamically on the screen. The Icon can safely be unrefed by the caller (and should, if the pixbuf was newly allocated).

Parameters
Child
Icon_Name

Set_Size

procedure Set_Size
  (MDI        : access MDI_Window_Record;
   Child      : access MDI_Child_Record'Class;
   Width      : Glib.Gint;
   Height     : Glib.Gint;
   Fixed_Size : Boolean := False)

Forces a new size for a child. If Width or Height is left to -1, the matching size will be computed from the child's requisition. If they are left to 0, the corresponding length is left to its current value. If Fixed_Size is True, then the widget will not be resized when the MDI itself is resized (unless the user has first moved one of the handles to manually resize it). Otherwise, it will grow proportionally with the rest of the MDI.

Parameters
MDI
Child
Width
Height
Fixed_Size

Set_Tab_Contextual_Menu_Factory

procedure Set_Tab_Contextual_Menu_Factory
  (MDI     : access MDI_Window_Record;
   Factory : Tab_Contextual_Menu_Factory)

Set (or unset if Factory is null) the callback to create the contextual menu entries when the user clicks on a notebook tab. Factory should add entries to Menu (which already contains the default entries, but you can remove them if needed).

Parameters
MDI
Factory

Set_Title

procedure Set_Title
  (Child       : not null access MDI_Child_Record;
   Title       : String;
   Short_Title : String := "")

Set the title for a child. Title is the title put in titlebar of the children, whereas Short_Title is the name of the notebook tab when children are maximized. By default, it is the same as Title.

The default title is the empty string. This title will be the one used for the window when the child is set to floating state.

Title and Short_Title should preferably be UTF8-encoded, although this procedure will attempt to guess the encoding if the string is not valid UTF8.

Child should already be in the MDI at this point (via a call to Put), so that the "use_short_titles" preference is taken into account.

Parameters
Child
Title
Short_Title

Setup_Toplevel_Window

procedure Setup_Toplevel_Window
  (MDI    : access MDI_Window_Record;
   Parent : access Gtk.Window.Gtk_Window_Record'Class)

Setup Parent to properly handle focus when the window manager changes the window that currently has the focus. Parent must be the toplevel window that contains the MDI.

Parameters
MDI
Parent

Show_Tabs_Policy_Enum

type Show_Tabs_Policy_Enum is (Always, Never, Automatic);
Enumeration Literal
Always
Never
Automatic

Side_Position

subtype Side_Position is Child_Position
   range Position_Bottom .. Position_Right;

The initial position of windows within the MDI. In all cases, the initial location for a window is computed with the following algorithm. This algorithm is designed with the notion of groups of windows in mind, so that some windows (typically editors) have a special status. - If Position_Float, make the window floating - If another window with the same Group is already in the MDI, the new window is put on top of it. - Otherwise, if Position_Automatic, if an empty area exists within the MDI, the new window is put in that area. - Else if the Position is Bottom .. Right, the new window is put below all others (resp. to the top, left or right) - Else the window is put on top of the currently selected window

Signal_Before_Destroy_Child

Signal_Before_Destroy_Child : constant Signal_Name :=
  "before_destroy_child";

Signal_Before_Remove_Child

Signal_Before_Remove_Child  : constant Signal_Name := "before_remove_child";

Signal_Before_Unfloat_Child

Signal_Before_Unfloat_Child : constant Signal_Name :=
  "before_unfloat_child";

Signal_Child_Added

Signal_Child_Added          : constant Signal_Name := "child_added";

Signal_Child_Icon_Changed

Signal_Child_Icon_Changed   : constant Signal_Name := "child_icon_changed";

Signal_Child_Removed

Signal_Child_Removed        : constant Signal_Name := "child_removed";

Signal_Child_Selected

Signal_Child_Selected       : constant Signal_Name := "child_selected";

Signal_Child_State_Changed

Signal_Child_State_Changed  : constant Signal_Name := "child_state_changed";

Signal_Child_Title_Changed

Signal_Child_Title_Changed  : constant Signal_Name := "child_title_changed";

Signal_Children_Reorganized

Signal_Children_Reorganized : constant Signal_Name :=
                                "children_reorganized";

Signal_Delete_Event

Signal_Delete_Event         : constant Signal_Name := "delete_event";

Signal_Float_Child

Signal_Float_Child          : constant Signal_Name := "float_child";

Signal_Maximize_Child

Signal_Maximize_Child       : constant Signal_Name := "maximize_child";

Signal_Perspective_Changed

Signal_Perspective_Changed  : constant Signal_Name := "perspective_changed";

Signal_Perspectives_Added

Signal_Perspectives_Added   : constant Signal_Name := "perspectives_added";

Signal_Selected

Signal_Selected             : constant Signal_Name := "selected";

Signal_Unfloat_Child

Signal_Unfloat_Child        : constant Signal_Name := "unfloat_child";

Signal_Unmaximize

Signal_Unmaximize           : constant Signal_Name := "unmaximize";

Split

procedure Split
  (MDI           : access MDI_Window_Record;
   Orientation   : Gtk.Enums.Gtk_Orientation;
   Child         : MDI_Child := null;
   Mode          : Split_Mode := Before;
   Width, Height : Glib.Gint := 0)

Split the notebook containing Child (by default, the current focus child). Mode indicates in which direction the splitting should occur. If you are splitting a child in the central area, splitting will never reuse a window outside of the central area. Width and Height indicate the desired geometry for the splitted area, 0 indicate a 50/50 split.

Parameters
MDI
Orientation
Child
Mode
Width
Height

Split_Mode

type Split_Mode is
  (Before, Before_Reuse,
   After,  After_Reuse,
   Any_Side_Reuse);

How a child should be split: If "Before", the child is put above or to the left of its current position. A new window is created to containing it. If the "_Reuse" version is used, and a window already exist at that position, the child will be put in it instead of creating a new one. Any_Side_Reuse indicates that the child will be put on either side, depending on where a window already exists. If there is no window on the side, a new one is created.

Enumeration Literal
Before
Before_Reuse
After
After_Reuse
Any_Side_Reuse

State_Type

type State_Type is (Normal, Floating, Invisible);

This type indicates the state of an item in the MDI:

Enumeration Literal
Normal
Floating
Invisible

Tab_Contextual_Menu_Factory

type Tab_Contextual_Menu_Factory is access procedure
  (Child : access MDI_Child_Record'Class;
   Menu  : access Gtk.Menu.Gtk_Menu_Record'Class);
Parameters
Child
Menu

Tab_Orientation_Type

type Tab_Orientation_Type is
  (Automatic, Horizontal, Bottom_To_Top, Top_To_Bottom);
Enumeration Literal
Automatic
Horizontal
Bottom_To_Top
Top_To_Bottom

Title_Bars_Policy

type Title_Bars_Policy     is (Always, Never, Central_Only);
Enumeration Literal
Always
Never
Central_Only

Use_Short_Titles_For_Floats

procedure Use_Short_Titles_For_Floats
  (MDI : access MDI_Window_Record; Short_Titles : Boolean)

If Short_Titles is set to true, only short titles will ever be used either in the title bars (in notebooks) or as the title for floating windows.

Parameters
MDI
Short_Titles

Simple Types

Array Types

Tagged Types

Access Types

Subtypes

Constants

Subprograms