Toc Gallery Index Tree Gtk.Frame

Screenshot

No screeshot

Hierarchy

Description

A Gtk_Frame is a simple border than can be added to any widget or group of widget to enhance its visual aspect. Optionally, a frame can have a title.

This is a very convenient widget to visually group related widgets (like groups of buttons for instance), possibly with a title to explain the purpose of this group.

A Gtk_Frame has only one child, so you have to put a container like for instance a Gtk_Box inside if you want the frame to surround multiple widgets.

Types

  • type Gtk_Frame is access all Gtk_Frame_Record'Class;
  • type Gtk_Frame_Record is new Gtk.Bin.Gtk_Bin_Record with private;

Subprograms

  • procedure Gtk_New (Frame : out Gtk_Frame; Label : UTF8_String := "");
    Create a new frame. If Label is not the empty string, the frame will have a title.
  • procedure Initialize (Frame : access Gtk_Frame_Record'Class; Label : UTF8_String := "");
    Internal initialization function. See the section "Creating your own widgets" in the documentation.
  • function Get_Type return Glib.GType;
    Return the internal value associated with a Gtk_Frame.
  • procedure Set_Label (Frame : access Gtk_Frame_Record; Label : UTF8_String := "");
    function Get_Label (Frame : access Gtk_Frame_Record) return UTF8_String;
    Change the label of the frame dynamically. If Label is the empty string, the frame's label is deleted.
  • procedure Set_Label_Widget (Frame : access Gtk_Frame_Record; Label_Widget : access Gtk.Widget.Gtk_Widget_Record'Class);
    function Get_Label_Widget (Frame : access Gtk_Frame_Record) return Gtk.Widget.Gtk_Widget;
    Set the label widget for the frame. This is the widget that will appear embedded in the top edge of the frame as a title.
  • procedure Set_Label_Align (Frame : access Gtk_Frame_Record; Xalign : Gfloat := 0.0; Yalign : Gfloat := 0.0);
    Change the alignment of the title in the frame. Xalign and Yalign are both percents that indicate the exact position of the label relative to the top-left corner of the frame. Note that Yalign is currently ignored, and the label can only be displayed on the top of the frame (0.0 for Xalign means align the label on the left, 1.0 means align the label on the right).
  • procedure Get_Label_Align (Frame : access Gtk_Frame_Record; Xalign : out Gfloat; Yalign : out Gfloat);
    Return the X and Y alignments of the title in the frame.
  • procedure Set_Shadow_Type (Frame : access Gtk_Frame_Record; The_Type : Gtk_Shadow_Type);
    Change the visual aspect of the frame.
  • function Get_Shadow_Type (Frame : access Gtk_Frame_Record) return Gtk_Shadow_Type;
    Return the visual aspect of the frame.

Signals

Properties

  • Label_Property
    UTF8_String
    Text of the frame's label.
    See: Set_Label and Get_Label
  • Label_Widget_Property
    Gtk_Widget'Class
    A widget to display in place of the usual frame label.
    See: Set_Label_Widget
  • Label_Xalign_Property
    Float
    The horizontal alignment of the label
  • Label_Yalign_Property
    Float
    The vertical alignment of the label
  • Shadow_Property
    Gtk_Shadow_Type
    Appearance of the frameborder.
    See: Set_Shadow_Type
  • Shadow_Type_Property
    Enum
    Appearance of the frame border

Testgtk source code

This code is part of testgtk, a demo application packaged with GtkAda. Testgtk demonstrates the various widgets of GtkAda
----------------------------------------------------------------------- -- GtkAda - Ada95 binding for the Gimp Toolkit -- -- -- -- Copyright (C) 1998-2000 -- -- Emmanuel Briot, Joel Brobecker and Arnaud Charlet -- -- -- -- 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. -- -- -- -- -- -- -- -- -- -- ----------------------------------------------------------------------- with Glib; use Glib; with Gtk.Table; use Gtk.Table; with Gtk.Enums; use Gtk.Enums; with Gtk.Frame; use Gtk.Frame; with Gtk.Label; use Gtk.Label; package body Create_Frame is ---------- -- Help -- ---------- function Help return String is begin return "This demo shows the different kinds of shadows that are" & " available for frames, as well as the positions that the label" & " of the frame can have." & ASCII.LF & "Note that the label must be displayed at the top of the frame" & " and can not be displayed elsewhere." & ASCII.LF & "If you want to constrained the child to a specific aspect ratio" & " even when the frame is resized, you should look at the" & " @bGtk_Aspect_Frame@B widget instead."; end Help; --------- -- Run -- --------- procedure Run (Frame : access Gtk.Frame.Gtk_Frame_Record'Class) is Table : Gtk_Table; Label : Gtk_Label; Frame2 : Gtk_Frame; begin Gtk.Frame.Set_Label (Frame, "Frames"); Gtk_New (Table, Rows => 3, Columns => 2, Homogeneous => True); Set_Row_Spacings (Table, Spacing => 5); Set_Col_Spacings (Table, Spacing => 5); Set_Border_Width (Table, Border_Width => 10); Add (Frame, Table); -- First frame Gtk_New (Frame2, ""); Set_Shadow_Type (Frame2, Gtk.Enums.Shadow_In); Attach_Defaults (Table, Frame2, 0, 1, 0, 1); Gtk_New (Label, "Shadow_In"); Add (Frame2, Label); -- Second Frame Gtk_New (Frame2, ""); Set_Shadow_Type (Frame2, Gtk.Enums.Shadow_Out); Attach_Defaults (Table, Frame2, 1, 2, 0, 1); Gtk_New (Label, "Shadow_Out"); Add (Frame2, Label); -- Third Frame Gtk_New (Frame2, ""); Set_Shadow_Type (Frame2, Gtk.Enums.Shadow_Etched_In); Attach_Defaults (Table, Frame2, 0, 1, 1, 2); Gtk_New (Label, "Shadow_Etched_In"); Add (Frame2, Label); -- Fourth Frame Gtk_New (Frame2, ""); Set_Shadow_Type (Frame2, Gtk.Enums.Shadow_Etched_Out); Attach_Defaults (Table, Frame2, 1, 2, 1, 2); Gtk_New (Label, "Shadow_Etched_Out"); Add (Frame2, Label); -- Fifth Frame Gtk_New (Frame2, "Title"); Set_Label_Align (Frame2, Xalign => 0.2); Attach_Defaults (Table, Frame2, 0, 1, 2, 3); Gtk_New (Label, "Label_Align: Xalign = 0.2"); Add (Frame2, Label); -- Sixth Frame Gtk_New (Frame2, "Title"); Set_Label_Align (Frame2, Xalign => 0.8); Attach_Defaults (Table, Frame2, 1, 2, 2, 3); Gtk_New (Label, "Label_Align: Xalign = 0.8"); Add (Frame2, Label); Show_All (Frame); end Run; end Create_Frame;

Alphabetical Index