14. Transitioning from GtkAda 2 to GtkAda 3¶
14.1. General¶
GtkAda 3.x is a binding to the C library gtk+ 3.x. This is a major release, with several incompatible changes. Most of those incompatibilities are due to major changes in the C library. Mostly, the gtk+ developers have performed a general cleanup, removing old types and subprograms that were rarely used and belong to more specialized libraries.
They have also made significant changes in the internals of the library. A lot of these changes should not impact typical user code, although they will if you are writting your own container widgets.
The gtk+ developers have documented various things that will likely need to be changed in user applications. The page at http://developer.gnome.org/gtk3/3.3/gtk-migrating-2-to-3.html provides a migration guide. Its code samples are in C, but should be applicable to Ada quite easily.
GtkAda itself has also undergone its own changes. One of the most significants is that most of the binding is now automatically generated from XML files provided by the gtk+ developers. This ensures that the binding is much more complete than it was before, and will be much easier to evolve when new releases of gtk+ are made available.
It also means that users can, theoritically at least, automatically bind
a number of libraries from the gtk+/GNOME ecosystem. The automatic
generation relies on XML files, called GIR files from their .gir
extension. If you wish to parse other files, you should likely modify
the toplevel Makefile (the generate
target), as well as the file
contrib/data.py
to list which types should be bound. We do not
necessarily encourage you to generate your own bindings, and this
generation is likely to be more than just modifying one or two files…
14.1.1. Interfaces¶
One other advantage of the automatic generation is that it allows us to provide more advanced feature in the binding.
For instance, gtk+ has the notion of interfaces (which play a similar role to Ada05 interfaces).
In GtkAda interfaces no longer require an explicit “with” of the interface package, and a cast to the interface type (with “-” and “+”). Instead, each package now contains the list of subprograms inherited from the various interfaces.
So basically, all subprograms inherited from an interface become available as primitive operations in the types that implement the interface.
We also expect to simplify the handling of signals and signal handlers.
14.1.2. Ada 2012¶
GtkAda 3 makes use of Ada 2012 and requires GtkAda applications to be compiled in Ada 2012 mode (e.g. using the -gnat2012 switch).
This makes it possible to use the object-dotted notation when calling primitive operations. For instance, the following code:
Gtk.Window.Set_Default_Size (Window, 800, 600);
can be replaced with:
Window.Set_Default_Size (800, 600);
14.2. Pango¶
14.2.1. Pango.Font¶
The type Pango_Font_Metrics
is now declared in its own package Pango.Font_Metrics.
The type Pango_Font_Face
is now declared in its own package Pango.Font_Face.
The type Pango_Font_Family
is now declared in its own package Pango.Font_Family.
The type Pango_Language
is now declared in its own package Pango.Language.
14.3. Glib¶
14.3.1. Glib.Object¶
Initialize_Class_Record
’s profile was changed to follow more closely what
is done for C applications. The previous implementation prevented applications
from implementing interfaces because some internal gtk+ data had to be
initialized too early. See glib-object.ads
for an extensive documentation.
14.3.2. Glib.G_Icon¶
This type is now a GType_Interface.
Instead of using Null_G_Icon,
use Glib.Types.Null_Interface.
14.4. Gdk¶
14.4.1. Gdk.Bitmap¶
This package has been removed: Cairo
packages should be used for drawing, and
Gdk.Pixbuf
for representing image data in memory.
14.4.2. Gdk.Color¶
Alloc
no longer exists, and is not necessary since all drawing is now done
internally using Cairo
which directly manipulates red/green/blue.
14.4.3. Gdk.Cursor¶
The Gdk_New
function working on Gdk_Pixmap
has been removed. Use
Gdk.Pixbuf.Gdk_New_From_Pixbuf
to create a cursor from a pixbuf.
The Gdk_New
function working on a String
has also been removed.
A Gdk_Cursor
is now derived from a Glib.Object.
This has little
impact on programs, except that Null_Cursor
can be replaced simply
by “null”.
Destroy
was removed, and should be replaced with Unref.
14.4.4. Gdk.Dnd¶
The functions for handling Drag_Contexts
have been moved to new package
Gdk.Drag_Contexts.
The Gdk_Drag_Context
itself now inherits from GObject,
which means that it no
longer requires its own Ref/Unref
functions.
Drag_Find_Window
has been removed, use Drag_Find_Window_For_Screen
instead.
Drag_Get_Protocol
has been replaced with Drag_Context_Get_Protocol.
14.4.5. Gdk.Drawable¶
All Draw_*
subprograms have been removed: use Cairo
for low-level drawing.
The type Gdk_Drawable
no longer exists.
14.4.6. Gdk.Event¶
A lot of the getters (and all of the setters) were removed. Instead, the
Gdk_Event
type fields can now be edited directly. This is slightly more
efficient, and more importantly better documents which fields are valid for
which event types.
The APIs to Get_Message_Type,
Set_Message_Type,
Get_Data,
and Set_Data
have
been removed without replacement.
Get_Graphics_Expose
and Send_Client_Message
have been removed with no
replacement.
Deep_Copy
was removed. It is now possible to simply use “:-” on the record
type itself.
Get
and Peek
are now functions instead of procedures with a single out
parameter.
Is_Created
has been removed (you can compare with null)
Send_Client_Message_To_All
has been removed (deprecated in gtk+)
Allocate
has been removed. Instead,
users should directly use
Gdk.Event.Gdk_New
and set the appropriate fields.
Get_X
and Get_Y
were replaced by Get_Coords.
Get_X_Root
and Get_Y_Root
were replaced by Get_Root_Coords
Get_Button,
Get_State,
Get_Key_Val
and Get_Keycode
were kept (so you do not
have to directly access the field of Gdk_Event).
However,
they no longer raise
an exception if you pass them an invalid event type, but return an out-of-range
value.
14.4.7. Gdk.Font¶
This package has been removed: use Pango.Font
for fonts manipulation,
Cairo.Font_Face
and Cairo.Font_Options
for text rendering.
14.4.8. Gdk.GC¶
This package has been removed: Cairo
packages should be used for drawing.
14.4.9. Gdk.Image¶
This package has been removed: use a Gdk.Pixbuf
instead.
14.4.10. Gdk.Main¶
Set_Locale
functions are no longer needed and have been removed.
Functions Set_Use_Xshm
and Get_Use_Xshm
have been removed.
14.4.11. Gdk.Pixbuf¶
Render_Threshold_Alpha,
Render_To_Drawable,
Render_To_Drawable_Alpha,
Render_Pixmap_And_Mask,
Render_Pixmap_And_Mask_For_Colormap
have been removed.
Use APIs provided by Gdk.Cairo
to draw a pixbuf on a Gdk_Drawable.
Get_From_Drawable
has been removed, use Get_From_Surface
or Get_From_Window.
14.4.12. Gdk.Pixmap¶
This package has been removed: Cairo
packages should be used for drawing, and
Gdk.Pixbuf
for representing image data in memory.
14.4.13. Gdk.Region¶
This package has been removed and replaced with Cairo_Region.
14.4.14. Gdk.RGB¶
This package is deprecated in gtk3. Use Pixmaps/Cairo
for drawing, and
use Gdk.Pixbuf
for offscreen image manipulation and rendering to drawables.
Instead of Gdk.Rgb.Get_Cmap,
use Gtk.Widget.Get_Default_Colormap.
14.4.15. Gdk.Window¶
A Gdk_Window
now derives from GObject.
This is mostly transparent for
applications, unless you are passing a Gdk_Window
directly to C code,
in which case you must use Get_Object()
on it.
Copy_Area
and Set_Back_Pixmap
have been removed: use Gdk_Drawable
and
Gdk.Cairo
functions instead.
Clear_Area
and Clear_Area_E
were removed. Use Cairo
for all drawings.
Get_Desk_Relative_Origin:
this function has been removed without a replacement.
Get_Toplevels
has been removed, use Gtk.Window.List_Toplevels
instead.
Set_Hints
has been removed. Depending on what you are trying to do, use
Gtk.Window.Resize,
Gtk.Window.Set_Size_Request,
Gtk.Window.Move,
Gtk.Window.Parse_Geometry,
and Gtk.Window.Set_Geometry_Hints.
Window_At_Pointer
was renamed to At_Pointer.
Get_Origin
is now a procedure, because the return value had no meaning anyway.
Get_Geometry:
no longer returns the color depth of the window, which is no
longer relevant to gtk+.
The first parameter of the various methods was renamed “Self"
instead of
“window” to avoid a number of cases where we would end up with duplicate
parameter names.
14.4.16. Gdk.Window_Attr¶
- Parameter “
Colormap"
has been removed from procedureGdk_New.
This parameter is no longer needed.
Set_Colormap
and Get_Colormap
should no longer be needed and have been removed
as well.
14.5. Gtk¶
14.5.1. Gtk.Action¶
Block_Activate_From,
Unblock_Activate_From,
Connect_Proxy,
Disconnect_Proxy:
these obsolete subprograms have been removed without a replacement.
Get_Action
has been removed without a replacement.
Convert
has been removed, use Glib.Object.Get_User_Data
instead.
14.5.2. Gtk.Aspect_Frame¶
Direct
accessors Get_Xalign,
Get_Yalign
and Get_Ratio
have been removed:
use the corresponding properties instead.
14.5.3. Gtk.Assistant¶
The values in Gtk_Assistant_Page_Type
were renamed for consistency,
removing their Gtk_
prefix.
The package Generic_Assistant_Functions
has been renamed to
Set_Forward_Page_Func_User_Data.
14.5.4. Gtk.Builder¶
Add_From_File
now returns a Guint
and the error as a parameter.
Get_Widget
has been removed (use Get_Object
instead, and cast to the appropriate
type)
14.5.6. Gtk.Cell_Layout¶
Get_Cell_Renderers
has been renamed to Get_Cells.
14.5.7. Gtk.Cell_Renderer¶
The Render
subprogram is now called with a Cairo_Context
rather than a
Gdk_Window.
14.5.8. Gtk.Cell_View¶
Get_Cell_Renderers
is obsolete, use the Gtk.Cell_Layout
interface and
Gtk.Cell_Layout.Get_Cells.
14.5.9. Gtk.Clist¶
This widget has been removed: use a Gtk.Tree_View
instead.
14.5.10. Gtk.Container¶
Procedure Propagate_Expose
has been removed and will be replaced with
Propagate_Draw.
Class_Find_Child_Property,
Class_list_Child_Properties
and
Class_Install_Child_Property
are no longer bound.
Children
was removed (use Get_Children
instead).
14.5.12. Gtk.Color_Selection¶
Get_Color
and Set_Color
have been removed: use Get_Current_Color
and
Set_Current_Color
instead.
14.5.13. Gtk.Color_Selection_Dialog¶
Subprogram Get_Colorsel
has been renamed Get_Color_Selection,
to match
the Gtk+
naming.
Get_OK_Button,
Get_Cancel_Button,
Get_Help_Button
have been removed.
Instead, use:
Gtk_Button (Glib.Properties.Get_Property (Dialog, Ok_Button_Property)),
Gtk_Button (Glib.Properties.Get_Property (Dialog, Cancel_Button_Property)),
Gtk_Button (Glib.Properties.Get_Property (Dialog, Help_Button_Property))
14.5.14. Gtk.Combo¶
This widget has been removed: use a Gtk.Combo_Box
instead.
14.5.15. Gtk.Combo_Box¶
The “text only” variant has been moved to the new package Gtk.Combo_Box_Text.
14.5.16. Gtk.Combo_Box_Entry¶
This widget has been removed: use a Gtk.Combo_Box
instead.
14.5.17. Gtk.Clipboard¶
The base type is now a GObject_Record
instead of an opaque type: use the
GObject
facilities for lifecycle management.
There are now separate “User_Data"
generic version for callback-based methods.
14.5.18. Gtk.Ctree¶
This widget has been removed: use a Gtk.Tree_View
instead.
14.5.19. Gtk.Curve¶
This widget has been removed, with no direct replacement. Use drawing
functionality from Cairo
instead.
14.5.20. Gtk.Dialog¶
Subprogram Get_Vbox
was replaced with Get_Content_Area.
Subprogram Set_Has_Separator
has been removed: use the corresponding flag
in the call to Gtk_New/Initialize
instead.
14.5.21. Gtk.Dnd¶
Source_Set_Icon
has been removed: use Source_Set_Icon_Pixbuf
instead.
Set_Icon_Pixmap
has been removed: use Set_Icon_Pixbuf
instead.
Obsolete Set_Default_Icon
working on Gdk.Pixmap
has been removed without a replacement.
14.5.22. Gtk.Editable¶
The type representing a Gtk_Editable_Record
has been changed from a
Widget
(which is a GObject)
to an interface (a System.Address).
Therefore the Gtk_Editable_Record
type has been eliminated. User code
referencing only the Gtk_Editable
type should function unchanged.
Code using the tag as a test before converting a widget to a Gtk.Editable
can now work using the Implements_Editable
package.
For instance, if Widget
is a GObject_Record,
the following code:
if Widget.all in Gtk_Editable_Record'Class then
Cut_Clipboard (Gtk_Editable (Widget));
becomes:
if Is_A (Widget.Get_Type, Gtk.Editable.Get_Type) then
Cut_Clipboard`` (+Widget);
where the function “+” is defined by instantiating Implements_Editable
:
package Implements_Editable is new Glib.Types.Implements
(Gtk.Editable.Gtk_Editable, GObject_Record, GObject);
function "+"
(Widget : access GObject_Record'Class)
return Gtk.Editable.Gtk_Editable
renames Implements_Editable.To_Interface;
The Select_Region
subprogram parameter name The_End
has been normalized
to End_Pos
.
14.5.23. Gtk.Entry_Completion¶
The “match-selected” and “cursor-on-match” signals were erroneously given the internal filter model instead of the users model. This oversight has been fixed in GTK+ 3; if you have handlers for these signals, they will likely need slight adjustments.
14.5.24. Gtk.Enums¶
The following types were removed:
``GtkAnchorType``
``GtkCurveType``
``GtkMetricType``
``GtkGridLines``
``GtkUpdateType``
``GtkVisibility``
``GtkSideType``
``GtkMatchType``
``GtkPreviewType``
``GtkSubmenuDirection``
``GtkSubmenuPlacement``
``GtkTreeViewMode``
Gtk_Icon_Size
is no longer an enumeration type, but an integer, so that
new sizes can be defined through Gtk.Icon_Factory.Icon_Size_Register
.
14.5.26. Gtk.File_Chooser_Dialog¶
Subprograms Gtk_New_With_Backend
and Initialize_With_Backend
have been
removed: use Gtk_New
and Initialize
instead.
14.5.27. Gtk.File_Chooser_Widget¶
Subprograms Gtk_New_With_Backend
and Initialize_With_Backend
have been
removed: use Gtk_New
and Initialize
instead.
14.5.28. Gtk.File_Selection¶
This package has been replaced by Gtk.File_Chooser.
You may also use Gtkada.File_Selection
for a simple interface to the
Gtk.File_Chooser.
14.5.29. Gtk.Fixed¶
Subprograms Set_Has_Windows
and Get_Has_Windows
are now in Gtk.Widget.
14.5.30. Gtk.Gamma_Curve¶
This widget has been removed without any replacement.
14.5.31. Gtk.GC¶
This package has been removed: Cairo
packages should be used for drawing.
14.5.32. Gtk.GEntry¶
The names for Gtk_Entry_Record
parameters have been normalized across
the board to “The_Entry".
Append_Text
has been removed: use Set_Text
and Get_Text
instead.
14.5.33. Gtk.GRange¶
Set_Update_Policy
has been removed, with no replacement. If you require
delayed updates, you will need to code it yourself.
14.5.34. Gtk.Handle_Box¶
This package is now marked as deprecated in C, and is likely to be removed in future versions of gtk+, so we encourage you to stop using it as well.
14.5.35. Gtk.HRuler¶
This widget has been removed without any replacement.
14.5.36. Gtk.Icon_Factory¶
Gtk_Icon_Set
and Gtk_Icon_Source
have been moved to their own packages.
Functions
Gtk_New
are now procedures.
14.5.37. Gtk.Image¶
The subprograms working with Gdk_Pixmap
have been removed, use the
variants working on Gdk_Pixbuf
instead.
14.5.39. Gtk.Input_Dialog¶
This package is no longer part of gtk+, so this binding has been removed without replacement.
14.5.40. Gtk.Item¶
This obsolete package has been removed with no replacement.
14.5.41. Gtk.Item_Factory¶
This obsolete package has been removed in favor of Gtk.UI_Manager.
14.5.42. Gtk.Layout¶
Get_Width
and Get_Height
have been removed, use Get_Size
instead.
14.5.44. Gtk.List_Item¶
This widget has been removed: use a Gtk.Tree_View
instead.
14.5.45. Gtk.Main¶
Do_Event
was renamed Main_Do_Event.
Grab_Add
andGrab_Removed
are available inGtk.Widget
(as was alreadythe case with gtk2).
The Quit
package has been removed without replacement.
The Idle
and Timeout
handling been removed: use equivalent functions in
package Glib.Main
instead.
14.5.49. Gtk.Notebook¶
Get_Children
has been removed: call Gtk.Container.Get_Children
instead.
Set_Tab_Label_Packing
has been removed (this is left under control of the
theme).
Set_Page
has been removed, use Set_Current_Page
instead.
Insert_Page
now returns the number of the page that has been inserted.
14.5.50. Gtk.List¶
This package has been removed: use a Gtk_Tree_View
instead.
14.5.51. Gtk.Object¶
Gtk.Object
has been removed in gtk+-3.
The following subprograms and declarations are now in Gtk.Widget
:
``Flags``
``Unset_Flags``
``Floating``
``In_Destruction_Is_Set``
``Signal_Destroy``
- The subprogram
Gtk.Object.Sink
has been removed: useGlib.Object.Ref_Sink
instead.
14.5.52. Gtk.Old_Editable¶
This obsolescent API has been removed, use Gtk.Editable
where relevant.
14.5.54. Gtk.Pixmap¶
This widget has been removed and is generally replaced with a Gtk.Image.
14.5.55. Gtk.Preview¶
This widget has been removed without replacement.
14.5.56. Gtk.Print_Operation¶
Get_Status
was renames to Get_Status_String
when it returns a string, to
match the gtk+ API.
14.5.57. Gtk.Progress¶
This widget has been removed without any replacement.
14.5.58. Gtk.Progress_Bar¶
This widget is now derived from Gtk.Widget
directly, rather than from
Gtk.Progress
(which has been removed).
The enumeration type Gtk_Progress_Bar_Orientation
has been removed,
and this widget now implements the Gtk_Orientable
interface. To fully
achieve the same functionality as the GtkAda 2.x Get_Orientation/
Set_Orientation
subprograms, it is now necessary to call
Get_Orientation/Set_Orientation
along with Get_Inverted/Set_Inverted.
Procedure Set_Pulse_Step's
“Step"
parameter has been renamed to “Formal."
Set_Ellipsize
and Get_Ellipsize
parameter names have been normalized
from “Pbar"
to “Progress_Bar".
If you intend to show text over the progress bar, you need to call
Set_Text
as before, but also call Set_Show_Text(True)
.
14.5.59. Gtk.Rc¶
This package is now mostly obsolete. The gtk+ library no longer supports
the *.rc
files, since it uses CSS-like files instead.
14.5.60. Gtk.Recent_Manager¶
The type Gtk_Recent_Info
is now bound in its own package.
14.5.61. Gtk.Ruler¶
This widget has been removed without any replacement.
14.5.62. Gtk.Settings¶
Properties
are now named with the suffix “_Property”. For instance,
Gtk_Theme_Name
is now Gtk_Theme_Name_Property.
14.5.64. Gtk.Selection¶
This package has been renamed Gtk.Selection_Data,
for homogeneity with
the naming conventions.
Gtk.Selection.Selection_Data
is now called
Gtk.Selection_Data.Gtk_Selection_Data.
Handling of Target_Lists
has been moved to the new package Gtk.Target_List,
along with Target_Entry_Array.
The type Gtk_Target_Entry
has been moved to the new package Gtk.Target_Entry.
The way of obtaining the selection data from callbacks using the Args/GValues
approach has changed, from:
Data : constant Gtk.Selection.Selection_Data :-
Gtk.Selection.Selection_Data (Get_Proxy (Nth (Args, 2)));
to:
Data : constant Gtk.Selection_Data.Gtk_Selection_Data :-
From_Object (Get_Address (Nth (Args, 2)));
The type Target_Flags
has been moved to Gtk.Enums.Gtk_Target_Flags.
The flag corresponding to Target_No_Constraint
has been removed: use the
value 0 instead.
14.5.65. Gtk.Scrolled_Window¶
Set_Policy's
parameters were renamed to Hscrollbar_Policy
and
Vscrollbar_Policy
instead of H_Scrollbar_Policy
and V_Scrollbar_Policy.
14.5.66. Gtk.Socket / Gtk.Plug¶
The binding for these two packages was removed. They are not portable across platforms, and require access to the low-level X11 window ID, for which we do not provide a binding.
14.5.67. Gtk.Status_Icon¶
Status_Icon
widget parameter names have been normalized to “Status_Icon".
Get_Blinking
and Set_Blinking
have been removed, it is no longer possible to
make the status icon blink.
14.5.68. Gtk.Style¶
All functions based on Gdk.GC
or Gdk.Pixmap
have been removed.
This package is deprecated (but not removed yet) in gtk3
Use functions in Gtk.Style_Context
instead.
A number of drawing functions have been removed: use the Paint_*
functions
instead.
Replace
a call to Get_Font
with:
with Gtk.Style_Context; use Gtk.Style_Context;
Get_Style_Context (Widget).Get_Font (Gtk_State_Flags_Normal);
14.5.69. Gtk.Text¶
This obsolescent API has been removed: use a Gtk.Text_View/Gtk.Text_Buffer
instead.
14.5.70. Gtk.Text_Attributes¶
Set_Fg_Stipple,
Get_Fg_Stipple,
Set_Bg_Stipple,
Get_Bg_Stipple
have been
removed without a replacement.
14.5.71. Gtk.Text_View¶
The functions Get/Set_Disable_Scroll_On_Focus
have no effect in recent
versions of gtk+ and have been removed.
14.5.72. Gtk.Tree_Dnd¶
This package was removed, and its contents split into Gtk.Tree_Drag_Source
and Gtk.Tree_Drag_Source.
The `Drag_Dest_`
and `Drag_Source_`
prefixes were removed from the subprogram,
so for instance Drag_Dest_Drag_Data_Received
has become Drag_Data_Received.
14.5.73. Gtk.Tree_Model¶
A Gtk_Tree_Model
is now an interface (implemented by Gtk_List_Store
and Gtk_Tree_Store),
no longer a tagged type. It means that in callbacks
that receive a Gtk_Tree_Model
parameter, you can no longer cast this
parameter to a Gtk_Tree_Store
for instance. Instead,
you need to do
the following:
-- Model is the parameter, of type Gtk_Tree_Model
Tree : constant Gtk_Tree_Store :- Gtk_Tree_Store (-Model);
Gtk_New,
for a Gtk_Tree_Path,
are now procedures instead of functions,
to follow the usual GtkAda convention.
Gtk_Tree_Row_Reference
has been moved to its own package
Gtk.Tree_Row_Reference.
Gtk_New
and Gtk_New_First
(for a tree path) now take a “out” parameter,
for consistency with the rest of the API.
14.5.74. Gtk.Tree_View_Column¶
Get_Cell_Renderers
is obsolete, use the Gtk.Cell_Layout
interface and
Gtk.Cell_Layout.Get_Cells.
14.5.75. Gtk.Tips_Query¶
This obsolete package has been removed.
14.5.76. Gtk.Tool_Item¶
Set_Tooltip
has been removed: use Set_Tooltip_Text
and Set_Tooltip_Markup
instead.
14.5.77. Gtk.Toolbar¶
All Gtk_Toolbar
widget parameter names have been normalized to “Toolbar".
Subprograms
Append_*,
Prepend_*
and Insert_*
have been removed: use Insert
instead.
Subprograms
Get_Tooltips/Set_Tooltips
have been removed. Use the
Gtk_Enable_Tooltips
property instead.
14.5.78. Gtk.Tooltips¶
The package Gtk.Tooltips
has been removed, in favor of Gtk.Tooltip.
For creating simple tooltips on all GtkAda widgets, the easiest is to use
Gtk.Widget.Set_Tooltip_Text
or Gtk.Set_Tooltip_Markup.
See the example
in testgtk/create_tooltip.adb.
14.5.79. Gtk.Tree_View¶
Procedure
Create_Row_Drag_Icon
now returns a Cairo_Surface.
Get_Hadjustment,
Set_Hadjustment,
Get_Vadjustment,
Set_Vadjustment
have been
removed: use the equivalent properties.
Widget_To_Tree_Coords
and Tree_To_Widget_Coords
have been removed: use
Convert_Widget_To_Tree_Coords
and Convert_Tree_To_Widget_Coords.
14.5.80. Gtk.VRuler¶
This widget has been removed without any replacement.
14.5.81. Gtk.Widget¶
The old Draw
function no longer exists, and should be replaced with calls
to Queue_Draw_Area.
However,
a new Draw
function was added with a different
profile and different semantic.
Function```Get_Snapshot`` has been removed. Draw
should be used instead.
Hide_All
has been removed: use Hide
instead.
Set_Extension_Events
and End_Extension_Events
are no longer needed and have
been removed.
Set_Colormap
and Get_Colormap
are no longer needed and have been removed.
Set_Scroll_Adjustments
has been removed without a replacement.
Shape_Combine_Mask,
Input_Shape_Combine_Mask
and Reset_Shapes
have been removed
without replacements.
Set_Uposition
has been removed: use the properties of the containing widget
to fix the position of contained widgets. The functions in Gtk.Window,
for
instance Gtk.Window.Move,
should be used for top-level widgets.
Set_USize
has been removed: use Set_Size_Request
instead.
Size_Request
is now obsolescent. The recommend replacement is to use
Get_Preferred_Width
and Get_Preferred_Height.
Set_Default_Colormap,
Get_Default_Colormap,
Push_Colormap
and Pop_Colormap
were
removed. They are no longer needed, since all drawing is done through Cairo
which doesn’t use a colormap but directly the red/green/blue components.
Queue_Clear
and Queue_Clear_Area
have been removed, call Queue_Draw
and
Queue_Draw_Area
instead.
The signal “expose_event” no longer exists. It has been replaced with the
“draw” signal which provides a preconfigured Cairo_Context
suitable for
the drawing (including the clip area that is used to speed up the rendering).
Activate
is now a function.
Child_Focus:
removed default value for Direction
parameter
(was Dir_Tab_Forward)
Get_Allocation_Height
and Get_Allocation_Width
are now named
Get_Allocated_Height
and Get_Allocated_Width.
Get_Allocation_X
and Get_Allocation_Y
were removed, and can be accessed
through Get_Allocation.X
and Get_Allocation.Y
instead.
A lot of flags (Can_Focus,
Can_Default,...)
now have explicit setters and
getters. This removed a number of subprograms, like:
``Double_Buffered_Is_Set`` (see ``Get_Double_Buffered)``
``Can_Focus_Is_Set`` (see ``Get_Can_Focus)``
``Mapped_Is_Set`` (see ``Get_Mapped)``
``Realized_Is_Set`` (see ``Get_Realized)``
``Has_Default_Is_Set`` (see ``Has_Default)``
``Has_Focus_Is_Set`` (see ``Has_Focus)``
``Has_Grab_Is_Set`` (see ``Has_Grab)``
``Rc_Style_Is_Set`` (see ``Has_Rc_Style)``
``In_Destruction_Is_Set`` (see ``In_Destruction)``
``Drawable_Is_Set`` (see ``Is_Drawable)``
``No_Window_Is_Set`` (see ``Has_Window)``
Size_Allocate
now takes an “in out” parameter for the allocation
Set_Flags
was renamed Set_State_Flags
Unset_Flags
was renamed Unset_State_Flags
Flags
and Flag_Is_Set
must be replaced with a call to Get_State_Flags
Get_Child_Requisition
is now a procedure with an in out parameter. It is
obsolescent.
Default_Motion_Notify_Event
was removed.
Has_Default_Motion_Notify_Handler
was removed.
Get_Default_Visual
was removed.
Restore_Default_Style
was removed (use Set_Style
with a null parameter
instead).
Class_Find_Style_Property,
Class_List_Style_Properties
and
Class_Install_Style_Property
were removed. They
are mostly of interest
when writting theme engines.
Class_Path
and Path
were replaced with Get_Path.
Allow_Shrink_Property
andAllow_Grow_Property
have been removed: useGet_Hexpand
andGet_Vexpand
instead.
Render_Icon
has been replaced by Render_Icon_Pixbuf.
14.5.82. Gtk.Window¶
Set_Has_Frame,
Get_Has_Frame,
Set_Frame_Dimensions,
Get_Frame_Dimensions:
these special-purpose subprograms have been removed without replacement.
Get_Gravity,
Set_Gravity:
these have been removed, use the property
Gravity_Property
instead.
Resize
no longer accepts parameters set to -1 to indicate the preferred
size of the window. This was a GtkAda extension, which can be achieved
using Get_Preferred_Size
and passing the result to Size.
Group_Add_Window
was renamed to Add_Window.
Group_Remove_Window
was renamed to Remove_Window.
Group_List_Windows
was renames to List_Windows.
Initialize
now has the same default value for its The_Type
parameter
as Gtk_New.
14.6. GtkAda¶
14.6.1. Gtkada.MDI¶
Set_Dnd_Message
no longer has a special handling for “#”, which wasused to indicate whether the window would be preserved or hidden when changing perspectives. Instead, a different color is used to highlight the target area (and this highlighting is now done using transparency).
14.6.2. Gtkada.Properties¶
This package has been removed. It used to provide a dialog allowing you to view and edit the properties of widgets in your application, live. This is now provided directly by third parties through the GtkParasite tool. See http://code.google.com/p/gtkparasite/
14.7. Gnome¶
14.7.1. Gnome.App_Bar¶
Subprogram Appbar_Get_Progress
has been removed without replacement.
14.7.2. Gnome.Gentry¶
This package has been removed without replacement.