-----------------------------------------------------------------------
-- GtkAda - Ada95 binding for Gtk+/Gnome --
-- --
-- Copyright (C) 1998-2000 E. Briot, J. Brobecker and A. Charlet --
-- Copyright (C) 2000-2011, AdaCore --
-- --
-- This library is free software; you can redistribute it and/or --
-- modify it under the terms of the GNU General Public --
-- License as published by the Free Software Foundation; either --
-- version 2 of the License, or (at your option) any later version. --
-- --
-- This library is distributed in the hope that it will be useful, --
-- but WITHOUT ANY WARRANTY; without even the implied warranty of --
-- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU --
-- General Public License for more details. --
-- --
-- You should have received a copy of the GNU General Public --
-- License along with this library; if not, write to the --
-- Free Software Foundation, Inc., 59 Temple Place - Suite 330, --
-- Boston, MA 02111-1307, USA. --
-- --
-- --
-- --
-- --
-- --
-- --
-- --
-----------------------------------------------------------------------
--
-- A Gtk_Notebook is a container that displays all of its children at the
-- same location on the screen. They are organized into pages, that can be
-- selected through tabs (either by clicking on them or by a contextual
-- menu).
-- This is the best way to organize complicated interfaces that have a lot
-- of widgets, by putting the children into groups of coherent widgets.
--
-- You can hide some of the pages of the notebook by simply calling Hide on
-- the widget that is contained in the page (or returned from Get_Nth_Page).
--
-- 2.16.6
-- Layout containers
-- create_notebook.adb
-- gtk-notebook
with Glib.Glist;
pragma Elaborate_All (Glib.Glist);
with Glib.Properties;
with Glib.Values;
with Gtk.Container;
with Gtk.Enums;
with Gtk.Widget;
with Unchecked_Conversion;
package Gtk.Notebook is
type Gtk_Notebook_Record is new Gtk.Container.Gtk_Container_Record
with private;
type Gtk_Notebook is access all Gtk_Notebook_Record'Class;
subtype Gtk_Notebook_Page is Gtk.Gtk_Notebook_Page;
type Gtk_Notebook_Tab is
(Notebook_Tab_First,
Notebook_Tab_Last);
pragma Convention (C, Gtk_Notebook_Tab);
subtype Gtk_Notebook_Group is Glib.C_Proxy;
---------------------------------------------
-- Creating a notebook and inserting pages --
---------------------------------------------
procedure Gtk_New (Widget : out Gtk_Notebook);
-- Create a new empty notebook.
procedure Initialize (Widget : access Gtk_Notebook_Record'Class);
-- Internal initialization function.
-- See the section "Creating your own widgets" in the documentation.
function Get_Type return Gtk.Gtk_Type;
-- Return the internal value associated with a Gtk_Notebook.
procedure Append_Page
(Notebook : access Gtk_Notebook_Record;
Child : access Gtk.Widget.Gtk_Widget_Record'Class;
Tab_Label : access Gtk.Widget.Gtk_Widget_Record'Class);
-- Insert a new page in Notebook.
-- The page is put at the end of the list of pages.
-- The user will select it through a button that contains the
-- Tab_Label widget, which is generally a Gtk_Label, but could be a box
-- with a pixmap in it for instance.
-- No entry is associated with the page in the contextual menu.
procedure Append_Page
(Notebook : access Gtk_Notebook_Record;
Child : access Gtk.Widget.Gtk_Widget_Record'Class);
-- Same as above, but no label is specified.
procedure Append_Page_Menu
(Notebook : access Gtk_Notebook_Record;
Child : access Gtk.Widget.Gtk_Widget_Record'Class;
Tab_Label : access Gtk.Widget.Gtk_Widget_Record'Class;
Menu_Label : access Gtk.Widget.Gtk_Widget_Record'Class);
-- Insert a new page in Notebook.
-- The page is put at the end of the list of pages.
-- The user will select it through a button that contains the
-- Tab_Label widget, which is generally a Gtk_Label, but could be a box
-- with a pixmap in it for instance.
-- A new entry is inserted into the contextual menu. This new entry is
-- made with Menu_Label.
procedure Prepend_Page
(Notebook : access Gtk_Notebook_Record;
Child : access Gtk.Widget.Gtk_Widget_Record'Class;
Tab_Label : access Gtk.Widget.Gtk_Widget_Record'Class);
-- Insert a new page in Notebook.
-- The page is put at the beginning of the list of pages.
-- The user will select it through a button that contains the
-- Tab_Label widget, which is generally a Gtk_Label, but could be a box
-- with a pixmap in it for instance.
-- No entry is associated with the page in the contextual menu.
procedure Prepend_Page_Menu
(Notebook : access Gtk_Notebook_Record;
Child : access Gtk.Widget.Gtk_Widget_Record'Class;
Tab_Label : access Gtk.Widget.Gtk_Widget_Record'Class;
Menu_Label : access Gtk.Widget.Gtk_Widget_Record'Class);
-- Insert a new page in Notebook.
-- The page is put at the beginning of the list of pages.
-- The user will select it through a button that contains the
-- Tab_Label widget, which is generally a Gtk_Label, but could be a box
-- with a pixmap in it for instance.
-- A new entry is inserted into the contextual menu. This new entry is
-- made with Menu_Label.
procedure Insert_Page
(Notebook : access Gtk_Notebook_Record;
Child : access Gtk.Widget.Gtk_Widget_Record'Class;
Tab_Label : access Gtk.Widget.Gtk_Widget_Record'Class;
Position : Gint);
-- Insert a new page at a specific position in Notebook.
-- The page is put at the beginning of the list of pages.
-- The user will select it through a button that contains the
-- Tab_Label widget, which is generally a Gtk_Label, but could be a box
-- with a pixmap in it for instance.
-- No entry is associated with the page in the contextual menu.
-- The first position in the list of pages is 0.
procedure Insert_Page_Menu
(Notebook : access Gtk_Notebook_Record;
Child : access Gtk.Widget.Gtk_Widget_Record'Class;
Tab_Label : access Gtk.Widget.Gtk_Widget_Record'Class;
Menu_Label : access Gtk.Widget.Gtk_Widget_Record'Class;
Position : Gint);
-- Insert a new page at a specific position in Notebook.
-- The page is put at the beginning of the list of pages.
-- The user will select it through a button that contains the
-- Tab_Label widget, which is generally a Gtk_Label, but could be a box
-- with a pixmap in it for instance.
-- A new entry is inserted into the contextual menu. This new entry is
-- made with Menu_Label.
-- The first position in the list of pages is 0.
procedure Remove_Page
(Notebook : access Gtk_Notebook_Record; Page_Num : Gint);
-- Remove a page from the notebook.
-- The first position in the list of pages is 0.
------------------------
-- Tabs drag and drop --
------------------------
type Gtk_Notebook_Window_Creation_Func is access
function (Source : System.Address; -- Gtk_Notebook
Page : System.Address; -- Gtk_Widget
X : System.Address; -- Gint
Y : System.Address; -- Gint
Data : System.Address) return Gtk_Notebook;
pragma Convention (C, Gtk_Notebook_Window_Creation_Func);
procedure Set_Window_Creation_Hook
(Func : Gtk_Notebook_Window_Creation_Func;
Data : System.Address;
Destroy : Glib.G_Destroy_Notify_Address);
pragma Obsolescent (Set_Window_Creation_Hook);
-- Install a global function used to create a window when a detached tab
-- is dropped in an empty area.
--------------------------------------------
-- Modifying and getting the current page --
--------------------------------------------
function Get_Current_Page
(Notebook : access Gtk_Notebook_Record) return Gint;
-- Get the number of the current page.
-- The first page has the number 0.
function Get_Nth_Page
(Widget : access Gtk_Notebook_Record'Class;
Page_Num : Gint) return Gtk.Widget.Gtk_Widget;
-- Convert from a page number to the real page.
function Get_N_Pages
(Notebook : access Gtk_Notebook_Record) return Gint;
-- Return the number of pages in the notebook
function Page_Num
(Widget : access Gtk_Notebook_Record'Class;
Child : access Gtk.Widget.Gtk_Widget_Record'Class) return Gint;
-- Convert from a child to a page number.
-- Note that Child is not the notebook page, but the widget you inserted
-- with Insert_Page, Append_Page,...
procedure Set_Current_Page
(Notebook : access Gtk_Notebook_Record;
Page_Num : Gint := -1);
-- Modify the current page.
-- The current page is the page that is currently visible on the screen.
-- Nothing happens if there is no such page.
-- Note also that the page has to be visible on the screen (ie you must
-- have called Gtk.Widget.Show on it first).
-- Use -1 to set the current page to the last one.
--
-- Note: This call won't succeeded unless you have called Show on the
-- widget displayed in the page.
procedure Set_Page
(Notebook : access Gtk_Notebook_Record;
Page_Num : Gint := -1)
renames Set_Current_Page;
-- This function is deprecated. Use Set_Current_Page instead.
procedure Next_Page (Notebook : access Gtk_Notebook_Record);
-- Display the next page on the screen.
procedure Prev_Page (Notebook : access Gtk_Notebook_Record);
-- Display the previous page on the screen.
-----------------------------
-- Style and visual aspect --
-----------------------------
procedure Set_Show_Border
(Notebook : access Gtk_Notebook_Record;
Show_Border : Boolean := True);
-- Indicate whether the notebook should display borders.
-- This border gives a 3D aspect to the notebook.
function Get_Show_Border
(Notebook : access Gtk_Notebook_Record) return Boolean;
-- Return whether the notebook displays borders.
procedure Set_Show_Tabs
(Notebook : access Gtk_Notebook_Record;
Show_Tabs : Boolean := True);
-- Indicate whether the tabs should be displayed.
-- If the tabs are not displayed, the only way for the user to select a
-- new page is through the contextual menu, and thus you should make sure
-- that the pages were created with the Insert_Page_Menu, ... subprograms.
function Get_Show_Tabs
(Notebook : access Gtk_Notebook_Record) return Boolean;
-- Return whether the tabs are displayed.
procedure Set_Tab_Pos
(Notebook : access Gtk_Notebook_Record;
Pos : Gtk.Enums.Gtk_Position_Type);
-- Change the position of the tabs.
-- The tabs can be displayed on any of the four sides of the notebook.
function Get_Tab_Pos
(Widget : access Gtk_Notebook_Record) return Gtk.Enums.Gtk_Position_Type;
-- Return the current position of the tabs.
procedure Set_Scrollable
(Notebook : access Gtk_Notebook_Record;
Scrollable : Boolean := True);
-- Indicate whether Notebook display scrolling arrows when there are
-- too many tabs.
-- The default is not to display such scrolling arrows. Note also that
-- a notebook with too many pages, even if the scrolling is activated,
-- is sometimes hard to use for the user.
function Get_Scrollable
(Notebook : access Gtk_Notebook_Record) return Boolean;
-- Return whether Notebook is scrollable.
-- See Set_Scrollable for more details.
----------------
-- Popup Menu --
----------------
-- The pages of a notebook can be selected both via tabs and a contextual
-- menu (right mouse button). Note however that the menu is available only
-- if the pages were inserted with Insert_Page_Menu, Append_Page_Menu or
-- Prepend_Page_Menu.
procedure Popup_Enable (Notebook : access Gtk_Notebook_Record);
-- Enable the popup menu.
-- When the user pressed the right mouse button, a menu is selected that
-- allows him to select a new page.
procedure Popup_Disable (Notebook : access Gtk_Notebook_Record);
-- Disable the popup menu.
-- This menu won't be display any more when the user pressed the right
-- mouse button.
---------------------
-- Page properties --
---------------------
function Get_Tab_Label
(Notebook : access Gtk_Notebook_Record;
Child : access Gtk.Widget.Gtk_Widget_Record'Class)
return Gtk.Widget.Gtk_Widget;
-- Return the widget displayed in the tab used to select Page.
-- This widget is in fact the one given in argument to Insert_Page,etc.
-- when the page was created.
procedure Set_Tab_Label
(Notebook : access Gtk_Notebook_Record;
Child : access Gtk.Widget.Gtk_Widget_Record'Class;
Tab_Label : access Gtk.Widget.Gtk_Widget_Record'Class);
-- Modify the widget displayed in the tab for the page that contains Child.
-- Tab_Label is generally a Gtk_Label, although it can also be a Gtk_Box
-- that contains a Gtk_Pixmap and a Gtk_Label if you want to show pixmaps.
--
-- Note that you will need to call Show_All on Tab_Label: since it is not
-- a Child of the notebook in the sense of Gtk_Container, the Show_All
-- passed to the notebook will not be transmitted to the Tab_Label.
procedure Set_Tab_Label_Text
(Notebook : access Gtk_Notebook_Record;
Child : access Gtk.Widget.Gtk_Widget_Record'Class;
Tab_Text : UTF8_String);
-- Modify the text displayed in the tab for the page that contains Child.
-- This is a less general form of Set_Tab_Label above.
function Get_Tab_Label_Text
(Notebook : access Gtk_Notebook_Record;
Child : access Gtk.Widget.Gtk_Widget_Record'Class) return UTF8_String;
-- Return the text displayed in the tab for the page that contains Child.
procedure Set_Tab
(Notebook : access Gtk_Notebook_Record;
Page_Num : Gint;
Tab_Label : access Gtk.Widget.Gtk_Widget_Record'Class);
-- Set Notebook tab widget for a given page number.
-- This function is mainly intended for use by Gate.
function Get_Menu_Label
(Notebook : access Gtk_Notebook_Record;
Child : access Gtk.Widget.Gtk_Widget_Record'Class)
return Gtk.Widget.Gtk_Widget;
-- Return the widget displayed in the contextual menu for the Child.
-- This is the widget given in argument to Insert_Page_Menu,
-- Append_Page_Menu and Prepend_Page_Menu.
procedure Set_Menu_Label
(Notebook : access Gtk_Notebook_Record;
Child : access Gtk.Widget.Gtk_Widget_Record'Class;
Menu_Label : access Gtk.Widget.Gtk_Widget_Record'Class);
-- Modify the widget displayed in the contextual menu for the page
-- that contains Child.
procedure Set_Menu_Label_Text
(Notebook : access Gtk_Notebook_Record;
Child : access Gtk.Widget.Gtk_Widget_Record'Class;
Menu_Text : UTF8_String);
-- Modify the text displayed in the contextual menu for the page that
-- contains Child.
-- This is a less general form of Set_Menu_Label above.
function Get_Menu_Label_Text
(Notebook : access Gtk_Notebook_Record;
Child : access Gtk.Widget.Gtk_Widget_Record'Class)
return UTF8_String;
-- Return the text displayed in the contextual menu for the page that
-- contains Child.
procedure Query_Tab_Label_Packing
(Notebook : access Gtk_Notebook_Record;
Child : access Gtk.Widget.Gtk_Widget_Record'Class;
Expand : out Boolean;
Fill : out Boolean;
Pack_Type : out Gtk.Enums.Gtk_Pack_Type);
pragma Obsolescent (Query_Tab_Label_Packing);
-- Return the packing used for the tab associated with the page
-- that contains Child.
-- See the Gtk.Box package for more information on the parameters.
procedure Set_Tab_Label_Packing
(Notebook : access Gtk_Notebook_Record;
Child : access Gtk.Widget.Gtk_Widget_Record'Class;
Expand : Boolean;
Fill : Boolean;
Pack_Type : Gtk.Enums.Gtk_Pack_Type);
pragma Obsolescent (Set_Tab_Label_Packing);
-- Modify the packing used for the tab associated with the page that
-- contains Child.
procedure Reorder_Child
(Notebook : access Gtk_Notebook_Record;
Child : access Gtk.Widget.Gtk_Widget_Record'Class;
Position : Gint);
-- Change the position of the page that contains Child.
function Get_Tab_Reorderable
(Notebook : access Gtk_Notebook_Record;
Child : access Gtk.Widget.Gtk_Widget_Record'Class;
Position : Gint)
return Boolean;
-- Get whether the tab can be reordered via drag and drop or not.
procedure Set_Tab_Reorderable
(Notebook : access Gtk_Notebook_Record;
Child : access Gtk.Widget.Gtk_Widget_Record'Class;
Reorderable : Boolean := True);
-- Set whether the notebook tab can be reordered.
function Get_Tab_Detachable
(Notebook : access Gtk_Notebook_Record;
Child : access Gtk.Widget.Gtk_Widget_Record'Class;
Position : Gint)
return Boolean;
-- Return whether the tab contents can be detached from Notebook.
procedure Set_Tab_Detachable
(Notebook : access Gtk_Notebook_Record;
Child : access Gtk.Widget.Gtk_Widget_Record'Class;
Detachable : Boolean := True);
-- Set whether the tab can be detached from Notebook to another
-- notebook or widget.
--
-- Note that 2 notebooks must share a common group identificator
-- (see Set_Group_Id) to allow automatic tabs interchange between them.
--
-- If you want a widget to interact with a notebook through DnD
-- (i.e.: accept dragged tabs from it) it must be set as a drop
-- destination and accept the target "GTK_NOTEBOOK_TAB". The notebook
-- will fill the selection with a Gtk_Widget pointing to the child
-- widget that corresponds to the dropped tab.
--
-- If you want a notebook to accept drags from other widgets,
-- you will have to set your own DnD code to do it.
function Get_Group (Notebook : access Gtk_Notebook_Record)
return Gtk_Notebook_Group;
pragma Obsolescent (Get_Group);
procedure Set_Group
(Notebook : access Gtk_Notebook_Record;
Group : Gtk_Notebook_Group);
pragma Obsolescent (Set_Group);
-- Gets/Sets a group identificator pointer for Notebook, notebooks sharing
-- the same group identificator pointer will be able to exchange tabs
-- via drag and drop. A notebook with a null group identificator will
-- not be able to exchange tabs with any other notebook.
--------------------
-- GValue support --
--------------------
function Get_Notebook_Page
(Value : Glib.Values.GValue) return Gtk_Notebook_Page;
-- Convert a Value into a notebook page.
-----------------
-- Obsolescent --
-----------------
-- All subprograms below are now obsolescent in gtk+. They might be removed
-- from future versions of gtk+ (and therefore GtkAda).
-- To find out whether your code uses any of these, we recommend compiling
-- with the -gnatwj switch
--
function Convert is new Unchecked_Conversion
(Gtk_Notebook_Page, System.Address);
function Convert is new Unchecked_Conversion
(System.Address, Gtk_Notebook_Page);
package Page_List is new Glib.Glist.Generic_List (Gtk_Notebook_Page);
function Get_Children
(Widget : access Gtk_Notebook_Record) return Page_List.Glist;
pragma Obsolescent (Get_Children);
-- Return the list of all pages in the notebook.
procedure Set_Homogeneous_Tabs
(Notebook : access Gtk_Notebook_Record;
Homogeneous : Boolean := True);
pragma Obsolescent (Set_Homogeneous_Tabs);
-- Indicate whether all the tabs should have the same size (width or
-- height, depending on which side they are displayed on).
procedure Set_Tab_Border
(Notebook : access Gtk_Notebook_Record;
Border_Width : Gint);
pragma Obsolescent (Set_Tab_Border);
-- Change the width of the tabs' borders.
-- This modifies both the horizontal border and the vertical border.
procedure Set_Tab_Hborder
(Notebook : access Gtk_Notebook_Record;
Border_Width : Gint);
pragma Obsolescent (Set_Tab_Hborder);
-- Modify the width of the horizontal borders of the tabs.
procedure Set_Tab_Vborder
(Notebook : access Gtk_Notebook_Record;
Border_Width : Gint);
pragma Obsolescent (Set_Tab_Vborder);
-- Modify the height of the vertical borders of the tabs.
procedure Set_Group_Id
(Notebook : access Gtk_Notebook_Record; Group_Id : Gint);
pragma Obsolescent (Set_Group_Id);
-- Set a group identificator for Notebook. Notebooks sharing
-- the same group identificator will be able to exchange tabs
-- via drag and drop. A notebook with group identificator -1 will
-- not be able to exchange tabs with any other notebook.
function Get_Group_Id (Notebook : access Gtk_Notebook_Record) return Gint;
pragma Obsolescent (Get_Group_Id);
-- Gets the current group identificator for Notebook or -1 if not set.
--
----------------
-- Properties --
----------------
-- The following properties are defined for this widget. See
-- Glib.Properties for more information on properties.
--
-- Name: Page_Property
-- Type: Gint
-- See: Set_Current_Page / Get_Current_Page
--
-- Name: Tab_Pos_Property
-- Type: Gtk_Position_Type
-- See: Set_Tab_Pos / Get_Tab_Pos
--
-- Name: Tab_Border_Property
-- Type: Guint
-- Descr: Width of the border around the tab labels
--
-- Name: Tab_HBorder_Property
-- Type: Guint
-- Descr: Width of the horizontal border around the tab labels
--
-- Name: Tab_VBorder_Property
-- Type: Guint
-- Descr: Width of the vertical border around the tab labels
--
-- Name: Show_Tabs_Property
-- Type: Boolean
-- See: Set_Show_Tabs / Get_Show_Tabs
--
-- Name: Show_Border_Property
-- Type: Boolean
-- See: Set_Show_Border / Get_Show_Border
--
-- Name: Scrollable_Property
-- Type: Boolean
-- See: Set_Scrollable / Get_Scrollable
--
-- Name: Enable_Popup_Property
-- Type: Boolean
-- See: Popup_Enable / Popup_Disable
--
-- Name: Homogeneous_Property
-- Type: Boolean
-- See: Set_Homogeneous_Tabs / -
--
-- Name: Group_Property
-- Type: Gtk_Notebook_Group
-- Descr: Group for tabs drag and drop
--
-- Name: Group_Id_Property
-- Type: Int
-- See: Set_Group_Id / Get_Group_Id
--
Page_Property : constant Glib.Properties.Property_Int;
Tab_Pos_Property : constant Gtk.Enums.Property_Gtk_Position_Type;
Tab_Border_Property : constant Glib.Properties.Property_Uint;
Tab_Hborder_Property : constant Glib.Properties.Property_Uint;
Tab_Vborder_Property : constant Glib.Properties.Property_Uint;
Show_Tabs_Property : constant Glib.Properties.Property_Boolean;
Show_Border_Property : constant Glib.Properties.Property_Boolean;
Scrollable_Property : constant Glib.Properties.Property_Boolean;
Enable_Popup_Property : constant Glib.Properties.Property_Boolean;
Homogeneous_Property : constant Glib.Properties.Property_Boolean;
Group_Property : constant Glib.Properties.Property_C_Proxy;
Group_Id_Property : constant Glib.Properties.Property_Int;
----------------------
-- Child Properties --
----------------------
-- The following properties can be set on children of this widget. See
-- in particular Gtk.Containers.Child_Set_Property.
--
-- Name: Menu_Label_Property
-- Type: String
-- Descr: The string displayed in the child's menu entry
--
-- Name: Position_Property
-- Type: Int
-- Descr: The index of the child in the parent
--
-- Name: Tab_Expand_Property
-- Type: Boolean
-- Descr: Whether to expand the child's tab or not
--
-- Name: Tab_Fill_Property
-- Type: Boolean
-- Descr: Whether the child's tab should fill the allocated area or not
--
-- Name: Tab_Label_Property
-- Type: String
-- Descr: The string displayed on the child's tab label
--
-- Name: Tab_Pack_Property
-- Type: Enum
-- Descr: A Gtk_Pack_Type indicating whether the child is packed with
-- reference to the start or end of the parent
--
-- Name: Detachable_Property
-- Type: Boolean
-- See: Set_Tab_Detachable / Get_Tab_Detachable
--
-- Name: Reorderable_Property
-- Type: Boolean
-- See: Set_Tab_Reorderable / Get_Tab_Reorderable
--
Menu_Label_Property : constant Glib.Properties.Property_String;
Position_Property : constant Glib.Properties.Property_Int;
Tab_Expand_Property : constant Glib.Properties.Property_Boolean;
Tab_Fill_Property : constant Glib.Properties.Property_Boolean;
Tab_Label_Property : constant Glib.Properties.Property_String;
Tab_Pack_Property : constant Gtk.Enums.Property_Pack_Type;
Detachable_Property : constant Glib.Properties.Property_Boolean;
Reorderable_Property : constant Glib.Properties.Property_Boolean;
----------------------
-- Style Properties --
----------------------
-- The following properties can be changed through the gtk theme and
-- configuration files, and retrieved through Gtk.Widget.Style_Get_Property
--
-- Name: Arrow_Spacing_Property
-- Type: Int
-- Descr: Scroll arrow spacing
--
-- Name: Has_Backward_Stepper_Property
-- Type: Boolean
-- Descr: Display the standard backward arrow button
--
-- Name: Has_Forward_Stepper_Property
-- Type: Boolean
-- Descr: Display the standard forward arrow button
--
-- Name: Has_Secondary_Backward_Stepper_Property
-- Type: Boolean
-- Descr: Display a second backward arrow button on the opposite end of the
-- tab area
--
-- Name: Has_Secondary_Forward_Stepper_Property
-- Type: Boolean
-- Descr: Display a second forward arrow button on the opposite end of the
-- tab area
--
-- Name: Tab_Curvature_Property
-- Type: Int
-- Descr: Size of tab curvature
--
-- Name: Tab_Overlap_Property
-- Type: Int
-- Descr: Size of tab overlap area
--
Arrow_Spacing_Property : constant Glib.Properties.Property_Int;
Has_Backward_Stepper_Property : constant Glib.Properties.Property_Boolean;
Has_Forward_Stepper_Property : constant Glib.Properties.Property_Boolean;
Has_Secondary_Backward_Stepper_Property : constant
Glib.Properties.Property_Boolean;
Has_Secondary_Forward_Stepper_Property : constant
Glib.Properties.Property_Boolean;
Tab_Curvature_Property : constant Glib.Properties.Property_Int;
Tab_Overlap_Property : constant Glib.Properties.Property_Int;
-------------
-- Signals --
-------------
--
-- The following new signals are defined for this widget:
--
-- - "switch_page"
-- procedure Handler
-- (Notebook : access Gtk_Notebook_Record'Class;
-- Page : Gtk_Notebook_Page;
-- Page_Num : Guint);
-- Notify when the current page is modified in the notebook.
-- This is called every time the user selected a new page, or the
-- program selected a new page with Next_Page, Prev_Page, ...
--
-- - "select_page"
-- function Handler
-- (Notebook : access Gtk_Notebook_Record'Class;
-- Move_Focus : Boolean) return Boolean;
-- You should emit this signal to request that the notebook selects the
-- page corresponding to the focus tab. If Move_Focus is true, the page
-- acquires the keyboard focus.
-- Seldom used.
--
-- - "focus_tab"
-- function Handler
-- (Notebook : access Gtk_Notebook_Record'Class;
-- Tab : Gtk_Notebook_Tab) return Boolean;
-- Gives the focus to one of the tabs in the notebook. This signal is
-- mostly used as a keybinding for Home, End,... so that the proper
-- behavior can be implemented
--
-- - "move_focus_out"
-- procedure Handler
-- (Notebook : access Gtk_Notebook_Record'Class;
-- Direction : Gtk_Direction_Type);
-- You should emit this signal to request that the focus be transfered
-- from the current page to the parent widget.
-- Seldom used.
--
-- - "change_current_page"
-- procedure Handler
-- (Notebook : access Gtk_Notebook_Record'Class;
-- Offset : Gint);
-- You should emit this signal to request that the notebook selects
-- another page as the current page. The offset is relative to the
-- currently selected page.
--
--
Signal_Switch_Page : constant Glib.Signal_Name := "switch_page";
Signal_Select_Page : constant Glib.Signal_Name := "select_page";
Signal_Focus_Tab : constant Glib.Signal_Name := "focus_tab";
Signal_Move_Focus_Out : constant Glib.Signal_Name := "move_focus_out";
Signal_Change_Current_Page : constant Glib.Signal_Name :=
"change_current_page";
private
type Gtk_Notebook_Record is new Gtk.Container.Gtk_Container_Record
with null record;
pragma Import (C, Get_Type, "gtk_notebook_get_type");
Page_Property : constant Glib.Properties.Property_Int :=
Glib.Properties.Build ("page");
Tab_Pos_Property : constant Gtk.Enums.Property_Gtk_Position_Type :=
Gtk.Enums.Build ("tab-pos");
Tab_Border_Property : constant Glib.Properties.Property_Uint :=
Glib.Properties.Build ("tab-border");
Tab_Hborder_Property : constant Glib.Properties.Property_Uint :=
Glib.Properties.Build ("tab-hborder");
Tab_Vborder_Property : constant Glib.Properties.Property_Uint :=
Glib.Properties.Build ("tab-vborder");
Show_Tabs_Property : constant Glib.Properties.Property_Boolean :=
Glib.Properties.Build ("show-tabs");
Show_Border_Property : constant Glib.Properties.Property_Boolean :=
Glib.Properties.Build ("show-border");
Scrollable_Property : constant Glib.Properties.Property_Boolean :=
Glib.Properties.Build ("scrollable");
Enable_Popup_Property : constant Glib.Properties.Property_Boolean :=
Glib.Properties.Build ("enable-popup");
Homogeneous_Property : constant Glib.Properties.Property_Boolean :=
Glib.Properties.Build ("homogeneous");
Group_Property : constant Glib.Properties.Property_C_Proxy :=
Glib.Properties.Build ("group");
Group_Id_Property : constant Glib.Properties.Property_Int :=
Glib.Properties.Build ("group-id");
Menu_Label_Property : constant Glib.Properties.Property_String :=
Glib.Properties.Build ("menu-label");
Position_Property : constant Glib.Properties.Property_Int :=
Glib.Properties.Build ("position");
Tab_Expand_Property : constant Glib.Properties.Property_Boolean :=
Glib.Properties.Build ("tab-expand");
Tab_Fill_Property : constant Glib.Properties.Property_Boolean :=
Glib.Properties.Build ("tab-fill");
Tab_Label_Property : constant Glib.Properties.Property_String :=
Glib.Properties.Build ("tab-label");
Tab_Pack_Property : constant Gtk.Enums.Property_Pack_Type :=
Gtk.Enums.Build ("tab-pack");
Detachable_Property : constant Glib.Properties.Property_Boolean :=
Glib.Properties.Build ("detachable");
Reorderable_Property : constant Glib.Properties.Property_Boolean :=
Glib.Properties.Build ("reorderable");
Arrow_Spacing_Property : constant Glib.Properties.Property_Int :=
Glib.Properties.Build ("arrow-spacing");
Has_Backward_Stepper_Property : constant Glib.Properties.Property_Boolean :=
Glib.Properties.Build ("has-backward-stepper");
Has_Forward_Stepper_Property : constant Glib.Properties.Property_Boolean :=
Glib.Properties.Build ("has-forward-stepper");
Has_Secondary_Backward_Stepper_Property : constant
Glib.Properties.Property_Boolean :=
Glib.Properties.Build ("has-secondary-backward-stepper");
Has_Secondary_Forward_Stepper_Property : constant
Glib.Properties.Property_Boolean :=
Glib.Properties.Build ("has-secondary-forward-stepper");
Tab_Curvature_Property : constant Glib.Properties.Property_Int :=
Glib.Properties.Build ("tab-curvature");
Tab_Overlap_Property : constant Glib.Properties.Property_Int :=
Glib.Properties.Build ("tab-overlap");
end Gtk.Notebook;