type Gtk_Drawing_Area_Record is new Gtk.Widget.Gtk_Widget_Record with private;
type Gtk_Drawing_Area is access all Gtk_Drawing_Area_Record'Class;
procedure Gtk_New
( | Drawing_Area | : out Gtk_Drawing_Area); |
procedure Initialize
( | Drawing_Area | : access Gtk_Drawing_Area_Record'Class); |
function Get_Type return Gtk.Gtk_Type;
procedure Size
( | Darea | : access Gtk_Drawing_Area_Record; |
Width | : Gint; | |
Height | : Gint); |
This widget provides an empty canvas on which the application can draw anything.
Note that this widget is simply an empty space, and that you need to connect it to events to make it useful. For instance, you might want to do one of the following :
* Connect it to "expose_event": The handlers are called every time the widget needs to be redrawn. You can then draw anything you want on the canvas, after getting its associated window with a call to Gtk.Widget.Get_Window. Note that the event mask is automatically set up to accept expose_events.
* Connect it to "button_press_event" and "button_release_event" events, when you want it to react to user input. Note that you need to set up the event mask with a call to Gtk.Widget.Set_Events.
See also the Double_Buffer widget provided in the GtkAda examples for an advanced example that demonstrates how to use double buffering, to avoid flickering in your drawings.
Binding from C File version 2.8.17
<testgtk>libart_demo.adb</testgtk>