This is gtkada_rm.info, produced by makeinfo version 4.5 from gtkada_rm.texi. INFO-DIR-SECTION User Interface Toolkit START-INFO-DIR-ENTRY * GtkAda_Rm: (gtkada_rm). Ada95 graphical tookit based on GTK+ (Reference Manual) END-INFO-DIR-ENTRY  File: gtkada_rm.info, Node: Gtk.Clist Subprograms, Next: Gtk.Clist Example, Prev: Gtk.Clist Types, Up: Package_Gtk.Clist Subprograms =========== Creating a list and setting the attributes ------------------------------------------ procedure Gtk_New (Widget : out Gtk_Clist; Columns : in Gint); Create a list with Columns columns. Each line will have this exact number of column The number of columns can not be changed once the widget has been created. procedure Gtk_New (Widget : out Gtk_Clist; Columns : in Gint; Titles : in Gtkada.Types.Chars_Ptr_Array); Create a new list with Columns columns. The title of the columns is specified in Titles. The results are undefined (and can raise an exception) if Titles does not have at least Columns items. function Get_Type return Gtk.Gtk_Type; Return the internal value associated with a Gtk_Clist. procedure Set_Hadjustment (Clist : access Gtk_Clist_Record; Adjustment : Gtk.Adjustment.Gtk_Adjustment); Set the horizontal adjustment used for the clist. Note that such an adjustment is automatically created when the clist is added to a Gtk_Scrolled_Window. You should rather use Gtk.Scrolled_Window.Set_Hadjustment if you want to modify the adjustment. If there was already such an adjustment, it is unref-ed, and might be deleted. procedure Set_Vadjustment (Clist : access Gtk_Clist_Record; Adjustment : Gtk.Adjustment.Gtk_Adjustment); Set the vertical adjustment used for the clist. Note that such an adjustment is automatically created when the clist is added to a Gtk_Scrolled_Window. You should rather use Gtk.Scrolled_Window.Set_Hadjustment if you want to modify the adjustment. If there was already such an adjustment, it is unref-ed, and might be deleted. function Get_Hadjustment (Clist : access Gtk_Clist_Record) return Gtk.Adjustment.Gtk_Adjustment; Return the horizontal adjustment used for the clist. This indicates what position the clist is presently displaying, and by changing its value, the clist is automatically scrolled horizontally. This is done automatically when the clist's parent is a Gtk_Scrolled_Window. function Get_Vadjustment (Clist : access Gtk_Clist_Record) return Gtk.Adjustment.Gtk_Adjustment; Return the vertical adjustment used for the clist. This indicates what position the clist is presently displaying, and by changing its value, the clist is automatically scrolled vertically. This is done automatically when the clist's parent is a Gtk_Scrolled_Window. procedure Set_Selection_Mode (Clist : access Gtk_Clist_Record; Mode : in Gtk.Enums.Gtk_Selection_Mode); Modify the selection mode for the clist. This indicates whether one or more lines can be selected at the same time in the clist, and how this selection can done by the user (does he have to click explicitly on an item, or can he browse through the clist and select the last item he was on, etc.) Note that changing the selection mode to Selection_Single or Selection_Browse will deselect all the items in the clist. function Get_Selection_Mode (Clist : access Gtk_Clist_Record) return Gtk.Enums.Gtk_Selection_Mode; Return the selection mode for the clist. Visual aspects -------------- procedure Freeze (Clist : access Gtk_Clist_Record); Freeze all visual updates on the list, while you make big changes. This is more efficient than working on an unfrozen list. procedure Thaw (Clist : access Gtk_Clist_Record); Thaw the list, ie reactivate all the visual updates. This also forces an immediate refresh of the list. Note that each Freeze must be followed by a Thaw. The visual updates are not reactivated until the last Thaw has been emitted, but there is an immediate refresh every time anyway. procedure Set_Shadow_Type (Clist : access Gtk_Clist_Record; The_Type : in Gtk.Enums.Gtk_Shadow_Type); Set the border style of the clist. Modifying the contents ---------------------- function Append (Clist : access Gtk_Clist_Record; Text : in Gtkada.Types.Chars_Ptr_Array) return Gint; Append a new row to the clist, and return the index of the row created. The row is added at the end of the Clist. The behavior is undefined if Text does not have at least as many items as there are columns in the Clist. function Prepend (Clist : access Gtk_Clist_Record; Text : in Gtkada.Types.Chars_Ptr_Array) return Gint; Add a new row at the beginning of the clist, and return its index. The behavior is undefined if Text does not have at least as many items as there are columns in the Clist. procedure Insert (Clist : access Gtk_Clist_Record; Row : in Gint; Text : in Gtkada.Types.Chars_Ptr_Array); Add a new row in the clist. The row 0 is the first in the clist. If Row is not in the range for clist, the new row is added at the end. The behavior is undefined if Text does not have enough items. procedure Remove (Clist : access Gtk_Clist_Record; Row : in Gint); Remove a row from the clist (0 is the first one). procedure Clear (Clist : access Gtk_Clist_Record); Clears the entire list. This is much faster than doing a Remove on each line. procedure Swap_Rows (Clist : access Gtk_Clist_Record; Row1 : in Gint; Row2 : in Gint); Exchange the position of two rows in the clist. procedure Row_Move (Clist : access Gtk_Clist_Record; Source_Row : in Gint; Dest_Row : in Gint); Move the row at Source_Row to Dest_Row (0 indicates the first row in the clist) procedure Set_Sort_Column (Clist : access Gtk_Clist_Record; Column : Gint); Indicate the column on which to sort the clist. This column is relevant when you use Sort or Set_Auto_Sort below. The first column is number 0. function Get_Sort_Column (Clist : access Gtk_Clist_Record) return Gint; Return the column on which the clist is sorted. procedure Set_Sort_Type (Clist : access Gtk_Clist_Record; Sort_Type : Gtk_Sort_Type); Indicate in which order the sort should be done on the clist (ascending or descending). function Get_Sort_Type (Clist : access Gtk_Clist_Record) return Gtk_Sort_Type; Return the sort type currently used for the list procedure Sort (Clist : access Gtk_Clist_Record); Sort the lines of the clist, based on the column set by Set_Sort_Column, and in the order set by Set_Sort_Type. procedure Set_Auto_Sort (Clist : access Gtk_Clist_Record; Auto_Sort : Boolean); If Auto_Sort is true, then the clist will be automatically sorted every time a new line is inserted into the clist. procedure Set_Compare_Func (Clist : access Gtk_Clist_Record; Func : Gtk_Clist_Compare_Func); Set the function used when sorting the list. This function takes two rows as its arguments, and should return a Gint indicating in which order the rows are found (-1 if Row1 comes first, 0 if they are equal, 1 if Row2 comes last). Func should be null to restore the default sorting functions. Columns ------- function Get_Columns (Clist : access Gtk_Clist_Record) return Gint; Return the number of columns in the clist. procedure Column_Titles_Hide (Clist : access Gtk_Clist_Record); Hide the column titles for the list. This is the default behavior if no column titles were given when the list was created. procedure Column_Titles_Show (Clist : access Gtk_Clist_Record); Show the column titles for the list. This is the default behavior if some column titles were given when the list was created. procedure Column_Title_Active (Clist : access Gtk_Clist_Record; Column : in Gint); Set the column title to be an activate title. In other words, answer all button presses, highlights when the mouse is over it, ... procedure Column_Title_Passive (Clist : access Gtk_Clist_Record; Column : in Gint); Set the column title to be passive. Act just as a title, and do not react to mouse events. procedure Column_Titles_Active (Clist : access Gtk_Clist_Record); Set all column titles to be active. procedure Column_Titles_Passive (Clist : access Gtk_Clist_Record); Set all column titles to be passive. procedure Set_Column_Title (Clist : access Gtk_Clist_Record; Column : in Gint; Title : in UTF8_String); Set the text for the button of the column's title. See Set_Column_Widget if you want to put a pixmap inside the button. function Get_Column_Title (Clist : access Gtk_Clist_Record; Column : in Gint) return UTF8_String; Return the text used for the title's column. This is a copy of the title, so you can't modify it to automatically change the column's title. procedure Set_Column_Widget (Clist : access Gtk_Clist_Record; Column : in Gint; Widget : access Gtk.Widget.Gtk_Widget_Record'Class); Modify the widget used in the Gtk_Button that is the column's title. By default, this button contains a simple Gtk_Label, which is replaced by Widget. This is the function to use if you want to put a pixmap (or a Gtk_Box that contains both a pixmap and some text) in a column's title. function Get_Column_Widget (Clist : access Gtk_Clist_Record; Column : in Gint) return Gtk.Widget.Gtk_Widget; Return the child of the button that makes the column's title. Unless you changed it with Set_Column_Widget, this will return a Gtk_Label. Note also that if this widget was not created in Ada, but transparently by gtk+, you have to 'with' Gtk.Type_Conversion so that the correct type of the widget is created (See the user's guide for more information on type conversion). procedure Set_Column_Justification (Clist : access Gtk_Clist_Record; Column : in Gint; Justification : in Gtk.Enums.Gtk_Justification); Change the way the text in the whole column is justified. This function has no effect on the title if you used Set_Column_Widget before. procedure Set_Column_Visibility (Clist : access Gtk_Clist_Record; Column : in Gint; Visible : in Boolean); Modify the visibility of a column. Note that GtkAda prevents the last remaining visible column to be hidden. Nothing will be done if you try to hide that last column. See the example below for an example how to hide all the columns but one. procedure Set_Column_Resizeable (Clist : access Gtk_Clist_Record; Column : in Gint; Resizeable : in Boolean); Set whether the column can be dynamically resized with the mouse. If Resizeable is true, then the column can be resized by clicking and dragging the lines that separates the column from the next one. procedure Set_Column_Auto_Resize (Clist : access Gtk_Clist_Record; Column : in Gint; Auto_Resize : in Boolean); Set whether the column should automatically be resized to the optimal size (based on its contents). Note that this operation could slow things down a lot if you have a lot of items in your list. function Columns_Autosize (Clist : access Gtk_Clist_Record) return Gint; Set all the columns' width to their optimal size. Return the total width of the clist after this operation. function Optimal_Column_Width (Clist : access Gtk_Clist_Record; Column : Gint) return Gint; Return the optimal width for Column, based on its contents. This is the maximal cell width in the column. procedure Set_Column_Width (Clist : access Gtk_Clist_Record; Column : in Gint; Width : in Gint); Set the column width in pixels. By default, the column's width is chosen from the column's title. procedure Set_Column_Min_Width (Clist : access Gtk_Clist_Record; Column : Gint; Min_Width : Gint); Set the minimal width for the column, in pixels. if Min_Width is negative, there is no limit on the minimal width for the column. procedure Set_Column_Max_Width (Clist : access Gtk_Clist_Record; Column : Gint; Max_Width : Gint); Set the maximal width for the column, in pixels. If Max_Width is negative, there is no limit on the maximal width for the column. Rows ---- function Get_Rows (Clist : access Gtk_Clist_Record) return Gint; Return the number of rows in the clist. procedure Set_Row_Height (Clist : access Gtk_Clist_Record; Height : Gint); Set the height of the rows, in pixels. if Height is 0, the chosen height will be the current's font height. function Row_Is_Visible (Clist : access Gtk_Clist_Record; Row : in Gint) return Gtk.Enums.Gtk_Visibility; Return the visibility status of the row. procedure Set_Foreground (Clist : access Gtk_Clist_Record; Row : in Gint; Color : in Gdk.Color.Gdk_Color); Set the foreground color for the row. The color must already be allocated. If no such row exists in the list, nothing is done. procedure Set_Background (Clist : access Gtk_Clist_Record; Row : in Gint; Color : in Gdk.Color.Gdk_Color); Set the background color for the row. The color must already be allocated. If no such row exists in the list, nothing is done. procedure Set_Row_Style (Clist : access Gtk_Clist_Record; Row : Gint; Style : in Gtk.Style.Gtk_Style); Set the default style for the cells in the row. This can be overridden for each cell with Set_Cell_Style. function Get_Row_Style (Clist : access Gtk_Clist_Record; Row : in Gint) return Gtk.Style.Gtk_Style; Return the default style used for the row. procedure Set_Selectable (Clist : access Gtk_Clist_Record; Row : Gint; Selectable : Boolean); Indicate whether the row can be selected or not. The default value is True. function Get_Selectable (Clist : access Gtk_Clist_Record; Row : Gint) return Boolean; Return the selectable status of the row. procedure Select_Row (Clist : access Gtk_Clist_Record; Row : in Gint; Column : in Gint); Emit the signal "select_row". This simulates the user pressing the mouse on Row, Column on the clist. procedure Unselect_Row (Clist : access Gtk_Clist_Record; Row : in Gint; Column : in Gint); Emit the signal "unselect_row", as if the user had clicked on Row, Column on the clist. procedure Undo_Selection (Clist : access Gtk_Clist_Record); Undo the last select/unselect operation. procedure Get_Selection_Info (Clist : access Gtk_Clist_Record; X : in Gint; Y : in Gint; Row : out Gint; Column : out Gint; Is_Valid : out Boolean); Return the Row/Column corresponding to the coordinates X,Y in the Row column. The coordinates X,Y are relative to the clist window (ie 0,0 is the top left corner of the clist). The result is valid only if Is_Valid is true procedure Select_All (Clist : access Gtk_Clist_Record); Select all the rows in the clist. This only works if the selection mode allows for multiple rows selected at the same time (extended or multiple). procedure Unselect_All (Clist : access Gtk_Clist_Record); Deselect all the rows in the clist. If the selection mode is Browse, then only the current line is deselected. function Get_Focus_Row (Clist : access Gtk_Clist_Record) return Gint; Return the number of the line that currently has the focus. function Get_Row_List (Clist : access Gtk_Clist_Record) return Row_List.Glist; Return the list of all the rows in the clist. This might speed up the access to the rows a little. You can then use the function Set_Cell_Contents to modify the cells in the row, and Get_Text or Get_Pixmap to get its contents. function Get_Selection (Widget : access Gtk_Clist_Record) return Gtk.Enums.Gint_List.Glist; Return the list of selected rows, by number. Cells ----- function Get_Cell_Type (Clist : access Gtk_Clist_Record; Row : in Gint; Column : in Gint) return Gtk_Cell_Type; Return the type of the cell at Row/Column. This indicates which of the functions Get_Text. Get_Pixmap, etc. below you can use. procedure Set_Text (Clist : access Gtk_Clist_Record; Row : in Gint; Column : in Gint; Text : in UTF8_String); Set the cell's text, replacing its current contents. This changes the type of the cell to Cell_Text. The pixmap (if any) will no longer be displayed. function Get_Text (Clist : access Gtk_Clist_Record; Row : in Gint; Column : in Gint) return UTF8_String; Return the text contained in cell. The type of the cell should be either Cell_Text or Cell_Pixtext. If there was a problem, a null-length string is returned. The problem might appear in case the row or the column are invalid, or if the cell does not contain any text. function Get_Text (Clist : access Gtk_Clist_Record; Row : Gtk_Clist_Row; Column : in Gint) return UTF8_String; Return the text contained in cell. The Row can be obtained from Get_Row_List, this function speeds up the access a little compared to the other Get_Text above. procedure Set_Pixmap (Clist : access Gtk_Clist_Record; Row : in Gint; Column : in Gint; Pixmap : in Gdk.Pixmap.Gdk_Pixmap; Mask : in Gdk.Bitmap.Gdk_Bitmap); Set the cell's pixmap, replacing its current contents. The type of the cell becomes Cell_Pixmap, and the text is no longer displayed. procedure Get_Pixmap (Clist : access Gtk_Clist_Record; Row : in Gint; Column : in Gint; Pixmap : out Gdk.Pixmap.Gdk_Pixmap; Mask : out Gdk.Bitmap.Gdk_Bitmap; Is_Valid : out Boolean); Return the pixmap contained in a cell. The type of the cell should be Cell_Pixmap. The result is meaningful only if Is_Valid is True. If the Cell did not contain a pixmap, Is_Valid is set to False procedure Get_Pixmap (Clist : access Gtk_Clist_Record; Row : in Gtk_Clist_Row; Column : in Gint; Pixmap : out Gdk.Pixmap.Gdk_Pixmap; Mask : out Gdk.Bitmap.Gdk_Bitmap; Is_Valid : out Boolean); Return the pixmap contained in a cell. Row can be obtained directly with Get_Row_List, and speeds up the access a little compared to the previous Get_Pixmap function. procedure Set_Pixtext (Clist : access Gtk_Clist_Record; Row : in Gint; Column : in Gint; Text : in UTF8_String; Spacing : in Guint8; Pixmap : in Gdk.Pixmap.Gdk_Pixmap; Mask : in Gdk.Bitmap.Gdk_Bitmap); Set both the text and the pixmap for the cell. Replace its current contents. The type of the cell becomes Cell_Pixtext, and both the text and the pixmap are displayed. procedure Get_Pixtext (Clist : access Gtk_Clist_Record; Row : in Gint; Column : in Gint; Spacing : out Guint8; Pixmap : out Gdk.Pixmap.Gdk_Pixmap; Mask : out Gdk.Bitmap.Gdk_Bitmap; Is_Valid : out Boolean); The result is not meaningful if Is_Valid is False. The only way to get the string is to use Get_Text, since a String is an unconstrained type in Ada and is not really convenient to use as an out parameter. procedure Set_Cell_Style (Clist : access Gtk_Clist_Record; Row : in Gint; Column : in Gint; Style : in Gtk.Style.Gtk_Style); Set the style (font, color, ...) used for the cell. This overrides the row's style. function Get_Cell_Style (Clist : access Gtk_Clist_Record; Row : in Gint; Column : in Gint) return Gtk.Style.Gtk_Style; Return the style of the cell. procedure Set_Shift (Clist : access Gtk_Clist_Record; Row : in Gint; Column : in Gint; Vertical : in Gint; Horizontal : in Gint); Set a horizontal and vertical shift for drawing the content of the cell. Both shifts can be either positive or negative. This is particularly useful for indenting items in a columns. procedure Set_Cell_Contents (Clist : access Gtk_Clist_Record; Row : Gtk_Clist_Row; Column : Gint; Cell_Type : Gtk_Cell_Type; Text : UTF8_String; Spacing : Guint8; Pixmap : Gdk.Pixmap.Gdk_Pixmap; Mask : Gdk.Bitmap.Gdk_Bitmap); Modify the contents and type of a cell. Cell_Type indicates what should be displayed in the cell. Note that if you do not want any string, you should pass an empty string "". You get Row from Get_Row_List. Reordering the list ------------------- procedure Set_Reorderable (Clist : access Gtk_Clist_Record; Reorderable : Boolean); Set whether the list can be dynamically reordered by the user. (using a simple drag-n-drop protocol). procedure Set_Use_Drag_Icons (Clist : access Gtk_Clist_Record; Use_Icons : Boolean); Set whether drag icons are shown while the user is reordering the list. The default value is True. procedure Set_Button_Actions (Clist : access Gtk_Clist_Record; Button : Guint; Button_Action : Gtk_Button_Action); Set the action for a specific button on the list. The default if for the left mouse button to select or drag and item, the other buttons are ignored. The Button_Expands action has no effect on a clist. procedure Moveto (Clist : access Gtk_Clist_Record; Row : in Gint; Column : in Gint; Row_Align : in Gfloat; Col_Align : in Gfloat); Scroll the list so that Row/Column is visible. If Row is -1, the clist is not scrolled vertically. If Column is -1, the clist is not scrolled horizontally. The new location of Row/Column depends on the value of Row_Align and Col_Align (from 0.0x0.0 (top-left) to 1.0x1.0 (bottom-right), all intermediate values are possible). Row_Data -------- You can associate one private data with each row in the clist. If you want to store multiple values, you should create a record type that contains all the values, and associate with value with the relevant line in the clist. This package is the equivalent of Gtk.Widget.User_Data for the Clists. This is your responsibility to use the Get and Set functions from the same generic package. However, you can use different packages for different lines (although this will definitely make things harder to use!) Note also that an internal copy of the Data is done, therefore the "find" functions found in gtk+ have no equivalent in GtkAda, although it would be enough to write one by iterating over the Row numbers. function Get (Object : access Gtk_Clist_Record'Class; Row : in Gint) return Data_Type; Get the data associated to a specific row. function Get (Object : access Gtk_Clist_Record'Class; Row : in Gtk_Clist_Row) return Data_Type; Same as above, but acts directly on a row obtained through Get_Row_List. This is faster for big lists. procedure Set (Object : access Gtk_Clist_Record'Class; Row : in Gint; Data : in Data_Type); Modify the data associated with a row procedure Set (Object : access Gtk_Clist_Record'Class; Row : in Gtk_Clist_Row; Data : in Data_Type); Same as above but acts directly on a row obtained through Get_Row_List. This is faster for big lists.  File: gtkada_rm.info, Node: Gtk.Clist Example, Prev: Gtk.Clist Subprograms, Up: Package_Gtk.Clist Example ======= -- The procedure below shows how you can hide all the columns but one -- in the clist. -- Since Gtk_Clist prevents you to hide the last visible column, the following -- code does not work: -- -- - Hide all the columns -- for J in 0 .. Get_Columns (Clist) loop -- Set_Column_Visibility (Clist, J, False); -- end loop; -- -- - Show the one you want -- Set_Column_Visibility (Clist, New_Column, True); -- -- The following code should be used instead: package body Clist is procedure Hide_All_But_One (Clist : access Gtk_Clist_Record'Class; New_Column : Gint) is begin -- Make sure that at least one column is visible Set_Column_Visibility (Clist, New_Column, True); -- Hide all the other columns. for J in 0 .. Get_Columns (Clist) loop if J /= New_Column then Set_Column_Visibility (Clist, J, False); end if; end loop; end Hide_All_But_One; end Clist;  File: gtkada_rm.info, Node: Package_Gtk.Color_Selection, Next: Package_Gtk.Color_Selection_Dialog, Prev: Package_Gtk.Clist, Up: Top Package Gtk.Color`_'Selection ***************************** A Gtk_Color_Selection widget is a complex dialog that allows the user to select a color based either on its (Red, Green, Blue) or its (Hue, Saturation, Value). An additional field is provided to select the opacity of the color (this is usually called the alpha channel). *note Package_Gtk.Color_Selection_Dialog:: for a version of this widget that comes with its own dialog. *note Package_Gtk.Extra.Color_Combo:: for a different way to select colors. * Menu: * Gtk.Color_Selection Widget Hierarchy:: * Gtk.Color_Selection Signals:: * Gtk.Color_Selection Types:: * Gtk.Color_Selection Subprograms::  File: gtkada_rm.info, Node: Gtk.Color_Selection Widget Hierarchy, Next: Gtk.Color_Selection Signals, Up: Package_Gtk.Color_Selection Widget Hierarchy ================ GObject (*note Package_Glib.Object::) Gtk_Object (*note Package_Gtk.Object::) \___ Gtk_Widget (*note Package_Gtk.Widget::) \___ Gtk_Container (*note Package_Gtk.Container::) \___ Gtk_Box (*note Package_Gtk.Box::) \___ Gtk_Color_Selection (*note Package_Gtk.Color_Selection::)  File: gtkada_rm.info, Node: Gtk.Color_Selection Signals, Next: Gtk.Color_Selection Types, Prev: Gtk.Color_Selection Widget Hierarchy, Up: Package_Gtk.Color_Selection Signals ======= * "color_changed" procedure Handler (Selection : access Gtk_Color_Selection_Record'Class); Called every time a new color is selected in the dialog  File: gtkada_rm.info, Node: Gtk.Color_Selection Types, Next: Gtk.Color_Selection Subprograms, Prev: Gtk.Color_Selection Signals, Up: Package_Gtk.Color_Selection Types ===== type Color_Array is array (Color_Index) of Gdouble; Array that indicates the currently selected color. All the values are between 0.0 and 1.0 (a percentage value). They should be converted to absolute values before using them to create a new color, with the following piece of code: Absolute := To_Absolute (Color_Array (Index)) type Color_Index is (Red, Green, Blue, Opacity); Used as an index to the table used to set and get the currently selected color.  File: gtkada_rm.info, Node: Gtk.Color_Selection Subprograms, Prev: Gtk.Color_Selection Types, Up: Package_Gtk.Color_Selection Subprograms =========== procedure Gtk_New (Widget : out Gtk_Color_Selection); Create a new color selection widget. function Get_Type return Glib.GType; Return the internal value associated with a Gtk_Color_Selection. function Get_Has_Opacity_Control (Colorsel : access Gtk_Color_Selection_Record) return Boolean; Return True if the Colorsel has an opacity control. procedure Set_Has_Opacity_Control (Colorsel : access Gtk_Color_Selection_Record; Has_Opacity : Boolean); Set the Colorsel to use or not use opacity. function Get_Has_Palette (Colorsel : access Gtk_Color_Selection_Record) return Boolean; Return True if the Colorsel has a palette. procedure Set_Has_Palette (Colorsel : access Gtk_Color_Selection_Record; Has_Palette : Boolean); If Has_Palette is True, then set the Colorsel to show the palette. Hide the palette otherwise. procedure Set_Current_Color (Colorsel : access Gtk_Color_Selection_Record; Color : Gdk.Color.Gdk_Color); Set the current color of the Colorsel. When called for the first time, the original color will the set to Color as well. procedure Set_Current_Alpha (Colorsel : access Gtk_Color_Selection_Record; Alpha : Guint16); Set the current opacity to be Alpha. When called for the first time, the original opacity will be set too. procedure Get_Current_Color (Colorsel : access Gtk_Color_Selection_Record; Color : out Gdk.Color.Gdk_Color); Set Color to the value of the current color in the Colorsel. function Get_Current_Alpha (Colorsel : access Gtk_Color_Selection_Record) return Guint16; Return the current opacity. procedure Set_Previous_Color (Colorsel : access Gtk_Color_Selection_Record; Color : Gdk.Color.Gdk_Color); Set the previous color. This procedure should not be called without analysis, as it might seem confusing to see that color change. Calling Set_Current_Color for the first time will also set this color. procedure Set_Previous_Alpha (Colorsel : access Gtk_Color_Selection_Record; Alpha : Guint16); Set the previous opacity to Alpha. This procedure should not be called without analysis, as it might seem confusing to see that value change. procedure Get_Previous_Color (Colorsel : access Gtk_Color_Selection_Record; Color : out Gdk.Color.Gdk_Color); Set Color to the original color value. function Get_Previous_Alpha (Colorsel : access Gtk_Color_Selection_Record) return Guint16; Return the previous alpha value. function Is_Adjusting (Colorsel : access Gtk_Color_Selection_Record) return Boolean; Get the current state of the Colorsel. Return TRue if the user is currently dragging a color around, False if the selection has stopped. function To_Absolute (Color : Gdouble) return Gushort; Convert from a percentage value as returned by Get_Color to an absolute value as can be used with Gdk_Color. function To_Percent (Color : Gushort) return Gdouble; Convert from an absolute value as used in Gdk_Color to a percentage value as used in Set_Color.  File: gtkada_rm.info, Node: Package_Gtk.Color_Selection_Dialog, Next: Package_Gtk.Combo, Prev: Package_Gtk.Color_Selection, Up: Top Package Gtk.Color`_'Selection`_'Dialog ************************************** The Gtk_Color_Selection_Dialog provides a standard dialog which allows the user to select a color much like the Gtk_File_Selection provides a standard dialog for file selection. * Menu: * Gtk.Color_Selection_Dialog Widget Hierarchy:: * Gtk.Color_Selection_Dialog Subprograms::  File: gtkada_rm.info, Node: Gtk.Color_Selection_Dialog Widget Hierarchy, Next: Gtk.Color_Selection_Dialog Subprograms, Up: Package_Gtk.Color_Selection_Dialog Widget Hierarchy ================ GObject (*note Package_Glib.Object::) Gtk_Object (*note Package_Gtk.Object::) \___ Gtk_Widget (*note Package_Gtk.Widget::) \___ Gtk_Container (*note Package_Gtk.Container::) \___ Gtk_Bin (*note Package_Gtk.Bin::) \___ Gtk_Window (*note Package_Gtk.Window::) \___ Gtk_Dialog (*note Package_Gtk.Dialog::) \___ Gtk_Color_Selection_Dialog (*note Package_Gtk.Color_Selection_Dialog::)  File: gtkada_rm.info, Node: Gtk.Color_Selection_Dialog Subprograms, Prev: Gtk.Color_Selection_Dialog Widget Hierarchy, Up: Package_Gtk.Color_Selection_Dialog Subprograms =========== procedure Gtk_New (Color_Selection_Dialog : out Gtk_Color_Selection_Dialog; Title : UTF8_String); Create a new Color_Selection_Dialog with a specified title. function Get_Type return Gtk.Gtk_Type; Return the internal value associated with a Gtk_Menu. Functions to get the fields of the dialog ----------------------------------------- function Get_Colorsel (Color_Selection_Dialog : access Gtk_Color_Selection_Dialog_Record) return Gtk.Color_Selection.Gtk_Color_Selection; Get the Gtk_Color_Selection widget contained within the dialog. Use this widget and its Gtk.Color_Selection.Get_Color function to gain access to the selected color. Connect a handler for this widget's color_changed signal to be notified when the color changes. function Get_OK_Button (Color_Selection_Dialog : access Gtk_Color_Selection_Dialog_Record) return Gtk.Button.Gtk_Button; Get the OK button widget contained within the dialog. function Get_Cancel_Button (Color_Selection_Dialog : access Gtk_Color_Selection_Dialog_Record) return Gtk.Button.Gtk_Button; Get the cancel button widget contained within the dialog. function Get_Help_Button (Color_Selection_Dialog : access Gtk_Color_Selection_Dialog_Record) return Gtk.Button.Gtk_Button; Get the help button widget contained within the dialog.  File: gtkada_rm.info, Node: Package_Gtk.Combo, Next: Package_Gtk.Container, Prev: Package_Gtk.Color_Selection_Dialog, Up: Top Package Gtk.Combo ***************** The Gtk_Combo widget consists of a single-line text entry field and a drop-down list. The drop-down list is displayed when the user clicks on a small arrow button to the right of the entry field. The drop-down list is a Gtk_List widget and can be accessed using the list member of the Gtk_Combo. List elements can contain arbitrary widgets, but if an element is not a plain label, then you must use the Gtk_List.Set_Item_String function. This sets the string which will be placed in the text entry field when the item is selected. By default, the user can step through the items in the list using the arrow (cursor) keys, though this behaviour can be turned off with Set_Use_Arrows. Normally the arrow keys are only active when the contents of the text entry field matches one of the items in the list. If the contents of the entry field do not match any of the list items, then pressing the arrow keys does nothing. However, by calling Set_Use_Arrows_Always you can specify that the arrow keys are always active. If the contents of the entry field does not match any of the items in the list, then pressing the up or down arrow key will set the entry field to the last or first item in the list, respectively. * Menu: * Gtk.Combo Widget Hierarchy:: * Gtk.Combo Subprograms:: * Gtk.Combo Example::  File: gtkada_rm.info, Node: Gtk.Combo Widget Hierarchy, Next: Gtk.Combo Subprograms, Up: Package_Gtk.Combo Widget Hierarchy ================ GObject (*note Package_Glib.Object::) Gtk_Object (*note Package_Gtk.Object::) \___ Gtk_Widget (*note Package_Gtk.Widget::) \___ Gtk_Container (*note Package_Gtk.Container::) \___ Gtk_Box (*note Package_Gtk.Box::) \___ Gtk_Combo (*note Package_Gtk.Combo::)  File: gtkada_rm.info, Node: Gtk.Combo Subprograms, Next: Gtk.Combo Example, Prev: Gtk.Combo Widget Hierarchy, Up: Package_Gtk.Combo Subprograms =========== procedure Gtk_New (Combo_Box : out Gtk_Combo); Create a new Gtk_Combo. function Get_Type return Gtk.Gtk_Type; Return the internal value associated with a Gtk_Combo. procedure Set_Value_In_List (Combo_Box : access Gtk_Combo_Record; Val : Boolean := True; Ok_If_Empty : Boolean := False); Specify whether the value entered in the text entry field must match one of the values in the list. If this is set then the user will not be able to perform any other action until a valid value has been entered. If an empty field is acceptable, the Ok_If_Empty parameter should be True. If the value entered must match one of the values in the list, val should be True. procedure Set_Use_Arrows (Combo_Box : access Gtk_Combo_Record; Val : Boolean := True); Specify if the arrow (cursor) keys can be used to step through the items in the list. This is on by default. procedure Set_Use_Arrows_Always (Combo_Box : access Gtk_Combo_Record; Val : Boolean := True); Specify if the arrow keys will still work even if the current contents of the Gtk_Entry field do not match any of the list items. procedure Set_Case_Sensitive (Combo_Box : access Gtk_Combo_Record; Val : Boolean := True); Specify whether the text entered into the Gtk_Entry field and the text in the list items are case sensitive. This may be useful, for example, when you have called Set_Value_In_List to limit the values entered, but you are not worried about differences in case. procedure Set_Item_String (Combo_Box : access Gtk_Combo_Record; Item : Gtk.Item.Gtk_Item; Item_Value : UTF8_String); Set the string to place in the Gtk_Entry field when a particular list item is selected. This is needed if the list item is not a simple label. procedure Set_Popdown_Strings (Combo_Box : access Gtk_Combo_Record; Strings : String_List.Glist); Set all the items in the popup list. procedure Disable_Activate (Combo_Box : access Gtk_Combo_Record); Disable the standard handler for the key in the entry field. The default behavior is to popdown the combo box list, so that the user can choose from it. However, if you want to add your own callback for the return key, you need to call this subprogram, and connect a handler to the "activate" signal for the entry. function Get_Entry (Combo_Box : access Gtk_Combo_Record) return Gtk.GEntry.Gtk_Entry; Return the Gtk_Entry associated with a Combo_Box. procedure Set_Entry (Combo_Box : access Gtk_Combo_Record; GEntry : Gtk.GEntry.Gtk_Entry); Set the entry field for the combo box. function Get_List (Combo_Box : access Gtk_Combo_Record) return Gtk.List.Gtk_List; Return the list of items associated with a Combo_Box. Add (Gtk.Container.Add) Gtk_List_Items to this list to insert new entries in the popdown menu. function Get_Popup_Window (Combo_Box : access Gtk_Combo_Record) return Gtk.Window.Gtk_Window; Return the popup window associated with a Combo_Box.  File: gtkada_rm.info, Node: Gtk.Combo Example, Prev: Gtk.Combo Subprograms, Up: Package_Gtk.Combo Example ======= Creating a Gtk_Combo widget with simple text items. Combo : Gtk_Combo; Items : String_List.Glist; String_List.Append (Items, "First Item"); String_List.Append (Items, "Second Item"); String_List.Append (Items, "Third Item"); String_List.Append (Items, "Fourth Item"); String_List.Append (Items, "Fifth Item"); Gtk_New (Combo); Set_Popdown_Strings (Combo, Items); Free (Items);  File: gtkada_rm.info, Node: Package_Gtk.Container, Next: Package_Gtk.Ctree, Prev: Package_Gtk.Combo, Up: Top Package Gtk.Container ********************* Base class for widgets that have children. When writing your own container widgets, you need to fully handle the size_allocate event, by also resizing all the children (based on their size requisition). The size_allocate event will always be sent to the parent when a child calls Gtk.Widget.Queue_Resize. * Menu: * Gtk.Container Widget Hierarchy:: * Gtk.Container Signals:: * Gtk.Container Types:: * Gtk.Container Subprograms::  File: gtkada_rm.info, Node: Gtk.Container Widget Hierarchy, Next: Gtk.Container Signals, Up: Package_Gtk.Container Widget Hierarchy ================ GObject (*note Package_Glib.Object::) Gtk_Object (*note Package_Gtk.Object::) \___ Gtk_Widget (*note Package_Gtk.Widget::) \___ Gtk_Container (*note Package_Gtk.Container::)  File: gtkada_rm.info, Node: Gtk.Container Signals, Next: Gtk.Container Types, Prev: Gtk.Container Widget Hierarchy, Up: Package_Gtk.Container Signals ======= * "add" procedure Handler (Container : access Gtk_Container_Record'Class; Widget : access Gtk_Widget_Record'Class); A new widget is added to the container * "check_resize" procedure Handler (Container : access Gtk_Container_Record'Class); Called every time the Container needs resizing. Upon receiving this signal, Container should check whether it needs to be resized, and if it does should queue a resize request. * "focus" procedure Handler (Container : access Gtk_Container_Record'Class; Direction : Gtk_Direction_Type); Moves the current selection to a new widget. * "remove" procedure Handler (Container : access Gtk_Container_Record'Class; Widget : access Gtk_Widget_Record'Class); A widget is removed from the container * "set-focus-child" procedure Handler (Container : access Gtk_Container_Record'Class; Widget : access Gtk_Widget_Record'Class); Emitted when a new widget gains the focus.  File: gtkada_rm.info, Node: Gtk.Container Types, Next: Gtk.Container Subprograms, Prev: Gtk.Container Signals, Up: Package_Gtk.Container Types ===== type Forall_Function is access procedure (Item : access Gtk.Widget.Gtk_Widget_Record'Class); Function that can be call for each child of a container. This is called automatically by the Forall subprogram below.