GtkDrawingArea             package:RGtk2             R Documentation

_G_t_k_D_r_a_w_i_n_g_A_r_e_a

_D_e_s_c_r_i_p_t_i_o_n:

     A widget for custom user interface elements

_M_e_t_h_o_d_s _a_n_d _F_u_n_c_t_i_o_n_s:

     'gtkDrawingAreaNew(show = TRUE)'
      'gtkDrawingAreaSize(object, width, height)'
      'gtkDrawingArea(show = TRUE)'

_H_i_e_r_a_r_c_h_y:

     GObject
        +----GInitiallyUnowned
              +----GtkObject
                    +----GtkWidget
                          +----GtkDrawingArea
                                +----GtkCurve 

_I_n_t_e_r_f_a_c_e_s:

     GtkDrawingArea implements AtkImplementorIface and  'GtkBuildable'.

_D_e_t_a_i_l_e_d _D_e_s_c_r_i_p_t_i_o_n:

     The 'GtkDrawingArea' widget is used for creating custom user
     interface elements. It's essentially a blank widget; you can draw
     on 'widget->window'. After creating a drawing area, the
     application may want to connect to:


        *  Mouse and button press signals to respond to input from the
           user. (Use 'gtkWidgetAddEvents' to enable events  you wish
           to receive.)

        *  The "realize" signal to take any necessary actions when the
           widget is instantiated on a particular display. (Create GDK
           resources in response to this signal.)

        *  The "configure_event" signal to take any necessary actions
           when the widget changes size.

        *  The "expose_event" signal 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. Note that
     GDK automatically clears the exposed area to the background color
     before sending the expose event, and  that drawing is implicitly
     clipped to the exposed area.

     _Simple   'GtkDrawingArea'   usage._


     expose_event_callback <- function(widget, event, data) {
       gdkDrawArc(widget[["window"]],
                  widget[["style"]][["fgGc"]][[widget[["state"]]+1]],
                  TRUE, 0, 0, widget[["allocation"]]$width,
                  widget[["allocation"]]$height, 0, 64 * 360)
       return(TRUE)
     }
     [...]

     drawing_area = gtkDrawingArea()
     drawing_area$setSizeRequest(100, 100)
     gSignalConnect(drawing_area, "expose_event",
     expose_event_callback)
      Expose events are normally delivered when a drawing area first
     comes onscreen, or when it's covered by another window and then
     uncovered (exposed). You can also force an expose event by adding
     to the "damage region" of the drawing area's window;
     'gtkWidgetQueueDrawArea' and 'gdkWindowInvalidateRect' are equally
     good ways to do this. You'll then get an expose event for the
     invalid region.

     The available routines for drawing are documented on the GDK
     Drawing Primitives page. See also 'gdkDrawPixbuf' for drawing a
     'GdkPixbuf'.

     To receive mouse events on a drawing area, you will need to enable
     them with 'gtkWidgetAddEvents'. To receive keyboard events, you
     will need to set the 'GTK_CAN_FOCUS' flag on the drawing area, and
     should probably draw some user-visible indication that the drawing
     area is focused. Use the 'gtkHasFocus()' function in your expose
     event handler to decide whether to draw the focus indicator. See
     'gtkPaintFocus' for one way to draw focus.

_S_t_r_u_c_t_u_r_e_s:


     '_G_t_k_D_r_a_w_i_n_g_A_r_e_a' The 'GtkDrawingArea' struct contains private data
          only, and should be accessed using the functions below.


_C_o_n_v_e_n_i_e_n_t _C_o_n_s_t_r_u_c_t_i_o_n:

     'gtkDrawingArea' is the equivalent of 'gtkDrawingAreaNew'.

_A_u_t_h_o_r(_s):

     Derived by RGtkGen from GTK+ documentation

_R_e_f_e_r_e_n_c_e_s:

     <URL:
     http://developer.gnome.org/doc/API/2.0/gtk/GtkDrawingArea.html>

_S_e_e _A_l_s_o:

     'GtkImage' 'GdkPixmap' 'GtkImage' 'GdkPixmap' 'GtkImage'

