class
   Gtk::DrawingArea
 
  
  Overview
Gtk::DrawingArea is a widget that allows drawing with cairo.

It’s essentially a blank widget; you can draw on it. After creating a drawing area, the application may want to connect to:
- 
The Gtk::Widget::#realizesignal to take any necessary actions when the widget is instantiated on a particular display. (Create GDK resources in response to this signal.)
- 
The Gtk::DrawingArea::#resizesignal to take any necessary actions when the widget changes size.
- 
Call Gtk::DrawingArea#draw_func=to handle redrawing the contents of the widget.
The following code portion demonstrates using a drawing area to display a circle in the normal widget foreground color.
Simple Gtk::DrawingArea usage
WARNING ⚠️ The following code is in c ⚠️
static void
draw_function (Gtk::DrawingArea *area,
               cairo_::t        *cr,
               int             width,
               int             height,
               gpointer        data)
{
  Gdk::RGBA color;
  Gtk::StyleContext *context;
  context = gtk_widget_get_style_context (GTK_WIDGET (area));
  cairo_::arc (cr,
             width / 2.0, height / 2.0,
             MIN (width, height) / 2.0,
             0, 2 * G_PI);
  gtk_style_context_get_color (context,
                               &color);
  gdk_cairo_::set_source_rgba (cr, &color);
  cairo_::fill (cr);
}
int
main (int argc, char **argv)
{
  gtk_init ();
  Gtk::Widget *area = gtk_drawing_area_new ();
  gtk_drawing_area_set_content_width (GTK_DRAWING_AREA (area), 100);
  gtk_drawing_area_set_content_height (GTK_DRAWING_AREA (area), 100);
  gtk_drawing_area_set_draw_func (GTK_DRAWING_AREA (area),
                                  draw_function,
                                  NULL, NULL);
  return 0;
}The draw function is normally called when a drawing area first comes
onscreen, or when it’s covered by another window and then uncovered.
You can also force a redraw by adding to the “damage region” of the
drawing area’s window using Gtk::Widget#queue_draw.
This will cause the drawing area to call the draw function again.
The available routines for drawing are documented in the
Cairo documentation; GDK
offers additional API to integrate with Cairo, like Gdk::cairo_::set_source_rgba
or Gdk::cairo_::set_source_pixbuf.
To receive mouse events on a drawing area, you will need to use event controllers. To receive keyboard events, you will need to set the “can-focus” property on the drawing area, and you should probably draw some user-visible indication that the drawing area is focused.
If you need more complex control over your widget, you should consider
creating your own Gtk::Widget subclass.
Included Modules
Defined in:
lib/gi-crystal/src/auto/gtk-4.0/drawing_area.crConstructors
- 
        .new : self
        
          Creates a new drawing area. 
- .new(*, accessible_role : Gtk::AccessibleRole | Nil = nil, can_focus : Bool | Nil = nil, can_target : Bool | Nil = nil, content_height : Int32 | Nil = nil, content_width : Int32 | Nil = nil, css_classes : Enumerable(String) | Nil = nil, css_name : String | Nil = nil, cursor : Gdk::Cursor | Nil = nil, focus_on_click : Bool | Nil = nil, focusable : Bool | Nil = nil, halign : Gtk::Align | Nil = nil, has_default : Bool | Nil = nil, has_focus : Bool | Nil = nil, has_tooltip : Bool | Nil = nil, height_request : Int32 | Nil = nil, hexpand : Bool | Nil = nil, hexpand_set : Bool | Nil = nil, layout_manager : Gtk::LayoutManager | Nil = nil, margin_bottom : Int32 | Nil = nil, margin_end : Int32 | Nil = nil, margin_start : Int32 | Nil = nil, margin_top : Int32 | Nil = nil, name : String | Nil = nil, opacity : Float64 | Nil = nil, overflow : Gtk::Overflow | Nil = nil, parent : Gtk::Widget | Nil = nil, receives_default : Bool | Nil = nil, root : Gtk::Root | Nil = nil, scale_factor : Int32 | Nil = nil, sensitive : Bool | Nil = nil, tooltip_markup : String | Nil = nil, tooltip_text : String | Nil = nil, valign : Gtk::Align | Nil = nil, vexpand : Bool | Nil = nil, vexpand_set : Bool | Nil = nil, visible : Bool | Nil = nil, width_request : Int32 | Nil = nil)
Class Method Summary
- 
        .g_type : UInt64
        
          Returns the type id (GType) registered in GLib type system. 
Instance Method Summary
- 
        #==(other : self)
        
          Returns trueif this reference is the same as other.
- 
        #content_height : Int32
        
          Retrieves the content height of the Gtk::DrawingArea.
- 
        #content_height=(height : Int32) : Nil
        
          Sets the desired height of the contents of the drawing area. 
- 
        #content_width : Int32
        
          Retrieves the content width of the Gtk::DrawingArea.
- 
        #content_width=(width : Int32) : Nil
        
          Sets the desired width of the contents of the drawing area. 
- 
        #draw_func=(draw_func : Gtk::DrawingAreaDrawFunc | Nil) : Nil
        
          Setting a draw function is the main thing you want to do when using a drawing area. 
- 
        #hash(hasher)
        
          See Object#hash(hasher)
- #resize_signal
Instance methods inherited from module Gtk::ConstraintTarget
  
  
    
      to_unsafe
    to_unsafe
    
  
      
  Constructor methods inherited from module Gtk::ConstraintTarget
  
  
    
      cast(obj : GObject::Object) : self
    cast
    
  
      
  Class methods inherited from module Gtk::ConstraintTarget
  
  
    
      cast?(obj : GObject::Object) : self | Nil
    cast?, 
    
  
    
      g_type : UInt64
    g_type
    
  
      
    
      
  Instance methods inherited from module Gtk::Buildable
  
  
    
      buildable_id : String | Nil
    buildable_id, 
    
  
    
      to_unsafe
    to_unsafe
    
  
      
  Constructor methods inherited from module Gtk::Buildable
  
  
    
      cast(obj : GObject::Object) : self
    cast
    
  
      
  Class methods inherited from module Gtk::Buildable
  
  
    
      cast?(obj : GObject::Object) : self | Nil
    cast?, 
    
  
    
      g_type : UInt64
    g_type
    
  
      
    
      
  Instance methods inherited from module Gtk::Accessible
  
  
    
      accessible_role : Gtk::AccessibleRole
    accessible_role, 
    
  
    
      accessible_role=(value : Gtk::AccessibleRole) : Gtk::AccessibleRole
    accessible_role=, 
    
  
    
      reset_property(property : Gtk::AccessibleProperty) : Nil
    reset_property, 
    
  
    
      reset_relation(relation : Gtk::AccessibleRelation) : Nil
    reset_relation, 
    
  
    
      reset_state(state : Gtk::AccessibleState) : Nil
    reset_state, 
    
  
    
      to_unsafe
    to_unsafe, 
    
  
    
      update_property(properties : Enumerable(Gtk::AccessibleProperty), values : Enumerable(_)) : Nil
    update_property, 
    
  
    
      update_relation(relations : Enumerable(Gtk::AccessibleRelation), values : Enumerable(_)) : Nil
    update_relation, 
    
  
    
      update_state(states : Enumerable(Gtk::AccessibleState), values : Enumerable(_)) : Nil
    update_state
    
  
      
  Constructor methods inherited from module Gtk::Accessible
  
  
    
      cast(obj : GObject::Object) : self
    cast
    
  
      
  Class methods inherited from module Gtk::Accessible
  
  
    
      cast?(obj : GObject::Object) : self | Nil
    cast?, 
    
  
    
      g_type : UInt64
    g_type
    
  
      
    
      
  Instance methods inherited from class Gtk::Widget
  
  
    
      ==(other : self)
    ==, 
    
  
    
      action_set_enabled(action_name : String, enabled : Bool) : Nil
    action_set_enabled, 
    
  
    
      activate : Bool
    activate, 
    
  
    
      activate_action(name : String, args : _ | Nil) : Bool
    activate_action, 
    
  
    
      activate_default : Nil
    activate_default, 
    
  
    
      add_controller(controller : Gtk::EventController) : Nil
    add_controller, 
    
  
    
      add_css_class(css_class : String) : Nil
    add_css_class, 
    
  
    
      add_mnemonic_label(label : Gtk::Widget) : Nil
    add_mnemonic_label, 
    
  
    
      add_tick_callback(callback : Gtk::TickCallback) : UInt32
    add_tick_callback, 
    
  
    
      allocate(width : Int32, height : Int32, baseline : Int32, transform : Gsk::Transform | Nil) : Nil
    allocate, 
    
  
    
      allocated_baseline : Int32
    allocated_baseline, 
    
  
    
      allocated_height : Int32
    allocated_height, 
    
  
    
      allocated_width : Int32
    allocated_width, 
    
  
    
      allocation : Gdk::Rectangle
    allocation, 
    
  
    
      ancestor(widget_type : UInt64) : Gtk::Widget | Nil
    ancestor, 
    
  
    
      can_focus : Bool
    can_focus, 
    
  
    
      can_focus=(can_focus : Bool) : Nil
    can_focus=, 
    
  
    
      can_focus? : Bool
    can_focus?, 
    
  
    
      can_target : Bool
    can_target, 
    
  
    
      can_target=(can_target : Bool) : Nil
    can_target=, 
    
  
    
      can_target? : Bool
    can_target?, 
    
  
    
      child_focus(direction : Gtk::DirectionType) : Bool
    child_focus, 
    
  
    
      child_visible : Bool
    child_visible, 
    
  
    
      child_visible=(child_visible : Bool) : Nil
    child_visible=, 
    
  
    
      children : Iterator(Widget)
    children, 
    
  
    
      clipboard : Gdk::Clipboard
    clipboard, 
    
  
    
      compute_bounds(target : Gtk::Widget) : Graphene::Rect
    compute_bounds, 
    
  
    
      compute_expand(orientation : Gtk::Orientation) : Bool
    compute_expand, 
    
  
    
      compute_point(target : Gtk::Widget, point : Graphene::Point) : Graphene::Point
    compute_point, 
    
  
    
      compute_transform(target : Gtk::Widget) : Graphene::Matrix
    compute_transform, 
    
  
    
      contains(x : Float64, y : Float64) : Bool
    contains, 
    
  
    
      create_pango_context : Pango::Context
    create_pango_context, 
    
  
    
      create_pango_layout(text : String | Nil) : Pango::Layout
    create_pango_layout, 
    
  
    
      css_classes : Enumerable(String)
    css_classes, 
    
  
    
      css_classes=(classes : Enumerable(String)) : Nil
    css_classes=, 
    
  
    
      css_name : String
    css_name, 
    
  
    
      css_name=(value : String) : Stringcss_name=(value : Nil) : Nil css_name=, css_name? : String | Nil css_name?, cursor : Gdk::Cursor | Nil cursor, cursor=(cursor : Gdk::Cursor | Nil) : Nil cursor=, cursor_from_name=(name : String | Nil) : Nil cursor_from_name=, destroy_signal destroy_signal, direction : Gtk::TextDirection direction, direction=(dir : Gtk::TextDirection) : Nil direction=, direction_changed_signal direction_changed_signal, display : Gdk::Display display, drag_check_threshold(start_x : Int32, start_y : Int32, current_x : Int32, current_y : Int32) : Bool drag_check_threshold, error_bell : Nil error_bell, first_child : Gtk::Widget | Nil first_child, focus_child : Gtk::Widget | Nil focus_child, focus_child=(child : Gtk::Widget | Nil) : Nil focus_child=, focus_on_click : Bool focus_on_click, focus_on_click=(focus_on_click : Bool) : Nil focus_on_click=, focus_on_click? : Bool focus_on_click?, focusable : Bool focusable, focusable=(focusable : Bool) : Nil focusable=, focusable? : Bool focusable?, font_map : Pango::FontMap | Nil font_map, font_map=(font_map : Pango::FontMap | Nil) : Nil font_map=, font_options : Cairo::FontOptions | Nil font_options, font_options=(options : Cairo::FontOptions | Nil) : Nil font_options=, frame_clock : Gdk::FrameClock | Nil frame_clock, grab_focus : Bool grab_focus, halign : Gtk::Align halign, halign=(align : Gtk::Align) : Nil halign=, has_css_class(css_class : String) : Bool has_css_class, has_default : Bool has_default, has_default? : Bool has_default?, has_focus : Bool has_focus, has_focus? : Bool has_focus?, has_tooltip : Bool has_tooltip, has_tooltip=(has_tooltip : Bool) : Nil has_tooltip=, has_tooltip? : Bool has_tooltip?, has_visible_focus : Bool has_visible_focus, hash(hasher) hash, height : Int32 height, height_request : Int32 height_request, height_request=(value : Int32) : Int32 height_request=, hexpand : Bool hexpand, hexpand=(expand : Bool) : Nil hexpand=, hexpand? : Bool hexpand?, hexpand_set : Bool hexpand_set, hexpand_set=(set : Bool) : Nil hexpand_set=, hexpand_set? : Bool hexpand_set?, hide : Nil hide, hide_signal hide_signal, in_destruction : Bool in_destruction, init_template : Nil init_template, insert_action_group(name : String, group : Gio::ActionGroup | Nil) : Nil insert_action_group, insert_after(parent : Gtk::Widget, previous_sibling : Gtk::Widget | Nil) : Nil insert_after, insert_before(parent : Gtk::Widget, next_sibling : Gtk::Widget | Nil) : Nil insert_before, is_ancestor(ancestor : Gtk::Widget) : Bool is_ancestor, is_drawable : Bool is_drawable, is_focus : Bool is_focus, is_sensitive : Bool is_sensitive, is_visible : Bool is_visible, keynav_failed(direction : Gtk::DirectionType) : Bool keynav_failed, keynav_failed_signal keynav_failed_signal, last_child : Gtk::Widget | Nil last_child, layout_manager : Gtk::LayoutManager | Nil layout_manager, layout_manager=(layout_manager : Gtk::LayoutManager | Nil) : Nil layout_manager=, list_mnemonic_labels : GLib::List list_mnemonic_labels, map : Nil map, map_signal map_signal, mapped : Bool mapped, margin_bottom : Int32 margin_bottom, margin_bottom=(margin : Int32) : Nil margin_bottom=, margin_end : Int32 margin_end, margin_end=(margin : Int32) : Nil margin_end=, margin_start : Int32 margin_start, margin_start=(margin : Int32) : Nil margin_start=, margin_top : Int32 margin_top, margin_top=(margin : Int32) : Nil margin_top=, measure(orientation : Gtk::Orientation, for_size : Int32) : Nil measure, mnemonic_activate(group_cycling : Bool) : Bool mnemonic_activate, mnemonic_activate_signal mnemonic_activate_signal, move_focus_signal move_focus_signal, name : String name, name=(name : String) : Nil
name=(value : Nil) : Nil name=, name? : String | Nil name?, native : Gtk::Native | Nil native, next_sibling : Gtk::Widget | Nil next_sibling, observe_children : Gio::ListModel observe_children, observe_controllers : Gio::ListModel observe_controllers, opacity : Float64 opacity, opacity=(opacity : Float64) : Nil opacity=, overflow : Gtk::Overflow overflow, overflow=(overflow : Gtk::Overflow) : Nil overflow=, pango_context : Pango::Context pango_context, parent : Gtk::Widget | Nil parent, parent=(parent : Gtk::Widget) : Nil parent=, pick(x : Float64, y : Float64, flags : Gtk::PickFlags) : Gtk::Widget | Nil pick, preferred_size : Gtk::Requisition preferred_size, prev_sibling : Gtk::Widget | Nil prev_sibling, primary_clipboard : Gdk::Clipboard primary_clipboard, query_tooltip_signal query_tooltip_signal, queue_allocate : Nil queue_allocate, queue_draw : Nil queue_draw, queue_resize : Nil queue_resize, realize : Nil realize, realize_signal realize_signal, realized : Bool realized, receives_default : Bool receives_default, receives_default=(receives_default : Bool) : Nil receives_default=, receives_default? : Bool receives_default?, remove_controller(controller : Gtk::EventController) : Nil remove_controller, remove_css_class(css_class : String) : Nil remove_css_class, remove_mnemonic_label(label : Gtk::Widget) : Nil remove_mnemonic_label, remove_tick_callback(id : UInt32) : Nil remove_tick_callback, request_mode : Gtk::SizeRequestMode request_mode, root : Gtk::Root | Nil root, scale_factor : Int32 scale_factor, sensitive : Bool sensitive, sensitive=(sensitive : Bool) : Nil sensitive=, sensitive? : Bool sensitive?, set_size_request(width : Int32, height : Int32) : Nil set_size_request, set_state_flags(flags : Gtk::StateFlags, clear : Bool) : Nil set_state_flags, settings : Gtk::Settings settings, should_layout : Bool should_layout, show : Nil show, show_signal show_signal, size(orientation : Gtk::Orientation) : Int32 size, size_allocate(x : Int32, y : Int32, width : Int32, height : Int32, baseline : Int32)
size_allocate(allocation : Gdk::Rectangle, baseline : Int32) : Nil size_allocate, size_request : Nil size_request, snapshot_child(child : Gtk::Widget, snapshot : Gtk::Snapshot) : Nil snapshot_child, state_flags : Gtk::StateFlags state_flags, state_flags_changed_signal state_flags_changed_signal, style_context : Gtk::StyleContext style_context, template_child(widget_type : UInt64, name : String) : GObject::Object
template_child(name : String) : GObject::Object template_child, tooltip_markup : String | Nil tooltip_markup, tooltip_markup=(value : String) : String
tooltip_markup=(value : Nil) : Nil
tooltip_markup=(markup : String | Nil) : Nil tooltip_markup=, tooltip_markup? : String | Nil tooltip_markup?, tooltip_text : String | Nil tooltip_text, tooltip_text=(value : String) : String
tooltip_text=(value : Nil) : Nil
tooltip_text=(text : String | Nil) : Nil tooltip_text=, tooltip_text? : String | Nil tooltip_text?, translate_coordinates(dest_widget : Gtk::Widget, src_x : Float64, src_y : Float64) : Bool translate_coordinates, trigger_tooltip_query : Nil trigger_tooltip_query, unmap : Nil unmap, unmap_signal unmap_signal, unparent : Nil unparent, unrealize : Nil unrealize, unrealize_signal unrealize_signal, unset_state_flags(flags : Gtk::StateFlags) : Nil unset_state_flags, valign : Gtk::Align valign, valign=(align : Gtk::Align) : Nil valign=, vexpand : Bool vexpand, vexpand=(expand : Bool) : Nil vexpand=, vexpand? : Bool vexpand?, vexpand_set : Bool vexpand_set, vexpand_set=(set : Bool) : Nil vexpand_set=, vexpand_set? : Bool vexpand_set?, visible : Bool visible, visible=(visible : Bool) : Nil visible=, visible? : Bool visible?, width : Int32 width, width_request : Int32 width_request, width_request=(value : Int32) : Int32 width_request=
Constructor methods inherited from class Gtk::Widget
  
  
    
      newnew(*, accessible_role : Gtk::AccessibleRole | Nil = nil, can_focus : Bool | Nil = nil, can_target : Bool | Nil = nil, css_classes : Enumerable(String) | Nil = nil, css_name : String | Nil = nil, cursor : Gdk::Cursor | Nil = nil, focus_on_click : Bool | Nil = nil, focusable : Bool | Nil = nil, halign : Gtk::Align | Nil = nil, has_default : Bool | Nil = nil, has_focus : Bool | Nil = nil, has_tooltip : Bool | Nil = nil, height_request : Int32 | Nil = nil, hexpand : Bool | Nil = nil, hexpand_set : Bool | Nil = nil, layout_manager : Gtk::LayoutManager | Nil = nil, margin_bottom : Int32 | Nil = nil, margin_end : Int32 | Nil = nil, margin_start : Int32 | Nil = nil, margin_top : Int32 | Nil = nil, name : String | Nil = nil, opacity : Float64 | Nil = nil, overflow : Gtk::Overflow | Nil = nil, parent : Gtk::Widget | Nil = nil, receives_default : Bool | Nil = nil, root : Gtk::Root | Nil = nil, scale_factor : Int32 | Nil = nil, sensitive : Bool | Nil = nil, tooltip_markup : String | Nil = nil, tooltip_text : String | Nil = nil, valign : Gtk::Align | Nil = nil, vexpand : Bool | Nil = nil, vexpand_set : Bool | Nil = nil, visible : Bool | Nil = nil, width_request : Int32 | Nil = nil) new
Class methods inherited from class Gtk::Widget
  
  
    
      default_direction : Gtk::TextDirection
    default_direction, 
    
  
    
      default_direction=(dir : Gtk::TextDirection) : Nil
    default_direction=, 
    
  
    
      g_type : UInt64
    g_type
    
  
      
    
      
  Instance methods inherited from module Gtk::ConstraintTarget
  
  
    
      to_unsafe
    to_unsafe
    
  
      
  Constructor methods inherited from module Gtk::ConstraintTarget
  
  
    
      cast(obj : GObject::Object) : self
    cast
    
  
      
  Class methods inherited from module Gtk::ConstraintTarget
  
  
    
      cast?(obj : GObject::Object) : self | Nil
    cast?, 
    
  
    
      g_type : UInt64
    g_type
    
  
      
    
      
  Instance methods inherited from module Gtk::Buildable
  
  
    
      buildable_id : String | Nil
    buildable_id, 
    
  
    
      to_unsafe
    to_unsafe
    
  
      
  Constructor methods inherited from module Gtk::Buildable
  
  
    
      cast(obj : GObject::Object) : self
    cast
    
  
      
  Class methods inherited from module Gtk::Buildable
  
  
    
      cast?(obj : GObject::Object) : self | Nil
    cast?, 
    
  
    
      g_type : UInt64
    g_type
    
  
      
    
      
  Instance methods inherited from module Gtk::Accessible
  
  
    
      accessible_role : Gtk::AccessibleRole
    accessible_role, 
    
  
    
      accessible_role=(value : Gtk::AccessibleRole) : Gtk::AccessibleRole
    accessible_role=, 
    
  
    
      reset_property(property : Gtk::AccessibleProperty) : Nil
    reset_property, 
    
  
    
      reset_relation(relation : Gtk::AccessibleRelation) : Nil
    reset_relation, 
    
  
    
      reset_state(state : Gtk::AccessibleState) : Nil
    reset_state, 
    
  
    
      to_unsafe
    to_unsafe, 
    
  
    
      update_property(properties : Enumerable(Gtk::AccessibleProperty), values : Enumerable(_)) : Nil
    update_property, 
    
  
    
      update_relation(relations : Enumerable(Gtk::AccessibleRelation), values : Enumerable(_)) : Nil
    update_relation, 
    
  
    
      update_state(states : Enumerable(Gtk::AccessibleState), values : Enumerable(_)) : Nil
    update_state
    
  
      
  Constructor methods inherited from module Gtk::Accessible
  
  
    
      cast(obj : GObject::Object) : self
    cast
    
  
      
  Class methods inherited from module Gtk::Accessible
  
  
    
      cast?(obj : GObject::Object) : self | Nil
    cast?, 
    
  
    
      g_type : UInt64
    g_type
    
  
      
    
      
  Instance methods inherited from class GObject::InitiallyUnowned
  
  
    
      ==(other : self)
    ==, 
    
  
    
      hash(hasher)
    hash
    
  
      
  Constructor methods inherited from class GObject::InitiallyUnowned
  
  
    
      new
    new
    
  
      
  Class methods inherited from class GObject::InitiallyUnowned
  
  
    
      g_type : UInt64
    g_type
    
  
      
    
      
  Instance methods inherited from class GObject::Object
  
  
    
      ==(other : self)
    ==, 
    
  
    
      bind_property(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags) : GObject::Binding
    bind_property, 
    
  
    
      bind_property_full(source_property : String, target : GObject::Object, target_property : String, flags : GObject::BindingFlags, transform_to : GObject::Closure, transform_from : GObject::Closure) : GObject::Binding
    bind_property_full, 
    
  
    
      data(key : String) : Pointer(Void) | Nil
    data, 
    
  
    
      finalize
    finalize, 
    
  
    
      freeze_notify : Nil
    freeze_notify, 
    
  
    
      getv(names : Enumerable(String), values : Enumerable(_)) : Nil
    getv, 
    
  
    
      hash(hasher)
    hash, 
    
  
    
      notify(property_name : String) : Nil
    notify, 
    
  
    
      notify_by_pspec(pspec : GObject::ParamSpec) : Nil
    notify_by_pspec, 
    
  
    
      notify_signal
    notify_signal, 
    
  
    
      property(property_name : String, value : _) : Nil
    property, 
    
  
    
      qdata(quark : UInt32) : Pointer(Void) | Nil
    qdata, 
    
  
    
      ref_count : UInt32
    ref_count, 
    
  
    
      run_dispose : Nil
    run_dispose, 
    
  
    
      set_data(key : String, data : Pointer(Void) | Nil) : Nil
    set_data, 
    
  
    
      set_property(property_name : String, value : _) : Nil
    set_property, 
    
  
    
      steal_data(key : String) : Pointer(Void) | Nil
    steal_data, 
    
  
    
      steal_qdata(quark : UInt32) : Pointer(Void) | Nil
    steal_qdata, 
    
  
    
      thaw_notify : Nil
    thaw_notify, 
    
  
    
      to_unsafe : Pointer(Void)
    to_unsafe, 
    
  
    
      watch_closure(closure : GObject::Closure) : Nil
    watch_closure
    
  
      
  Constructor methods inherited from class GObject::Object
  
  
    
      cast(obj : GObject::Object) : self
    cast, 
    
  
    
      new(pointer : Pointer(Void), transfer : GICrystal::Transfer)new new, newv(object_type : UInt64, parameters : Enumerable(GObject::Parameter)) : self newv
Class methods inherited from class GObject::Object
  
  
    
      cast?(obj : GObject::Object) : self | Nil
    cast?, 
    
  
    
      compat_control(what : UInt64, data : Pointer(Void) | Nil) : UInt64
    compat_control, 
    
  
    
      g_type : UInt64
    g_type, 
    
  
    
      interface_find_property(g_iface : GObject::TypeInterface, property_name : String) : GObject::ParamSpec
    interface_find_property, 
    
  
    
      interface_list_properties(g_iface : GObject::TypeInterface) : Enumerable(GObject::ParamSpec)
    interface_list_properties
    
  
      
  Macros inherited from class GObject::Object
  
  
    
      previous_vfunc(*args)
    previous_vfunc, 
    
  
    
      previous_vfunc!(*args)
    previous_vfunc!, 
    
  
    
      signal(signature)
    signal
    
  
    
      
      
      
      
    
      
      
      
      
    
  Constructor Detail
Class Method Detail
Returns the type id (GType) registered in GLib type system.
Instance Method Detail
Returns true if this reference is the same as other. Invokes same?.
Sets the desired height of the contents of the drawing area.
Note that because widgets may be allocated larger sizes than they
requested, it is possible that the actual height passed to your draw
function is larger than the height set here. You can use
Gtk::Widget#valign= to avoid that.
If the height is set to 0 (the default), the drawing area may disappear.
Sets the desired width of the contents of the drawing area.
Note that because widgets may be allocated larger sizes than they
requested, it is possible that the actual width passed to your draw
function is larger than the width set here. You can use
Gtk::Widget#halign= to avoid that.
If the width is set to 0 (the default), the drawing area may disappear.
Setting a draw function is the main thing you want to do when using a drawing area.
The draw function is called whenever GTK needs to draw the contents of the drawing area to the screen.
The draw function will be called during the drawing stage of GTK. In the drawing stage it is not allowed to change properties of any GTK widgets or call any functions that would cause any properties to be changed. You should restrict yourself exclusively to drawing your contents in the draw function.
If what you are drawing does change, call Gtk::Widget#queue_draw
on the drawing area. This will cause a redraw and will call draw_func again.