forked from AuroraMiddleware/gtk
e7153de001
2002-01-01 Havoc Pennington <hp@pobox.com> * gtk/framebuffer.sgml: move README.linux-fb in here * gtk/tmpl/gtkpreview.sgml: explain what to use instead * gtk/tmpl/gtkseparator.sgml: typo fix * gtk/tmpl/gtkstock.sgml: add some overview docs * gtk/Makefile.am (content_files): add new files * gtk/changes-1.2.sgml: move Changes-1.2.txt in here * gtk/changes-2.0.sgml: move Changes-2.0.txt in here * gdk/tmpl/threads.sgml: mention gdk_threads_init() in the overview docs, copy in the examples from the FAQ * gtk/gtk-docs.sgml: change DTD to 3.1, and add question_index.sgml and changes-1.2, changes-2.0 * gtk/tmpl/gtkdrawingarea.sgml: fixups to reflect 2.0 changes * gtk/question_index.sgml: new section with question-based index of the manual * gtk/text_widget.sgml: fix some cross-references 2002-01-01 Havoc Pennington <hp@pobox.com> * docs/README.linux-fb: note that this file is obsolete * docs/Changes-2.0.txt, docs/Changes-1.2.txt: Add notes to these files that they should not be edited and look in the reference manual instead. Probably these files should just be replaced by the note, and their main contents deleted. * gtk/gtktextview.c: docs * gtk/gtktextmark.c: docs * gtk/gtktextchild.c: docs * gtk/gtktextbuffer.c: docs stuff * gtk/gtkclipboard.c (gtk_clipboard_get): fool with docs to maybe give people more leads in sorting out PRIMARY vs. CLIPBOARD
116 lines
3.2 KiB
Plaintext
116 lines
3.2 KiB
Plaintext
<!-- ##### SECTION Title ##### -->
|
|
GtkDrawingArea
|
|
|
|
<!-- ##### SECTION Short_Description ##### -->
|
|
a widget for custom user interface elements.
|
|
|
|
<!-- ##### SECTION Long_Description ##### -->
|
|
<para>
|
|
|
|
The #GtkDrawingArea widget is used for creating custom user interface
|
|
elements. It's essentially a blank widget; you can draw on
|
|
<literal>widget->window</literal>. After creating a drawing area,
|
|
the application may want to connect to:
|
|
|
|
<itemizedlist>
|
|
<listitem>
|
|
<para>
|
|
Mouse and button press signals to respond to input from
|
|
the user.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
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.)
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
The "configure_event" signal to take any necessary actions
|
|
when the widget changes size.
|
|
</para>
|
|
</listitem>
|
|
<listitem>
|
|
<para>
|
|
The "expose_event" signal to handle redrawing the
|
|
contents of the widget.
|
|
</para>
|
|
</listitem>
|
|
</itemizedlist>
|
|
</para>
|
|
<para>
|
|
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.
|
|
</para>
|
|
<example>
|
|
<title>Simple <structname>GtkDrawingArea</structname> usage.</title>
|
|
<programlisting>
|
|
gboolean
|
|
expose_event_callback (GdkWidget *widget, GdkEventExpose *event, gpointer data)
|
|
{
|
|
gdk_draw_arc (widget->window,
|
|
widget->style->fg_gc[GTK_WIDGET_STATE (widget)],
|
|
TRUE,
|
|
0, 0, widget->allocation.width, widget->allocation.height,
|
|
0, 64 * 360);
|
|
|
|
return TRUE;
|
|
}
|
|
[...]
|
|
GtkWidget *drawing_area = gtk_drawing_area_new (<!>);
|
|
gtk_widget_set_size_request (drawing_area, 100, 100);
|
|
g_signal_connect (G_OBJECT (drawing_area), "expose_event",
|
|
G_CALLBACK (expose_event_callback), NULL);
|
|
</programlisting>
|
|
</example>
|
|
|
|
<para>
|
|
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; gtk_widget_queue_draw_area() and
|
|
gdk_window_invalidate_rect() are equally good ways to do this. You'll
|
|
then get an expose event for the invalid region.
|
|
</para>
|
|
|
|
<!-- ##### SECTION See_Also ##### -->
|
|
<para>
|
|
|
|
</para>
|
|
|
|
<!-- ##### STRUCT GtkDrawingArea ##### -->
|
|
<para>
|
|
The #GtkDrawingArea struct contains private data only, and
|
|
should be accessed using the functions below.
|
|
</para>
|
|
|
|
|
|
<!-- ##### FUNCTION gtk_drawing_area_new ##### -->
|
|
<para>
|
|
Creates a new drawing area.
|
|
</para>
|
|
|
|
@Returns: a new #GtkDrawingArea
|
|
|
|
|
|
<!-- ##### FUNCTION gtk_drawing_area_size ##### -->
|
|
<para>
|
|
Sets the size that the drawing area will request
|
|
in response to a "size_request" signal. The
|
|
drawing area may actually be allocated a size
|
|
larger than this depending on how it is packed
|
|
within the enclosing containers.
|
|
</para>
|
|
|
|
@darea: a #GtkDrawingArea.
|
|
@width: the width to request.
|
|
@height: the height to request.
|
|
|
|
|