From e57e0e978d5954ea11062db9353287133bf4d4cb Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 23 Nov 2010 18:00:43 -0500 Subject: [PATCH] Illustrate extension rendering --- docs/reference/gtk/images/extensions.png | Bin 0 -> 475 bytes docs/reference/gtk/images/focus.png | Bin 0 -> 371 bytes gtk/gtkstylecontext.c | 9 +++++ tests/styleexamples.c | 41 +++++++++++++++++++++++ 4 files changed, 50 insertions(+) create mode 100644 docs/reference/gtk/images/extensions.png create mode 100644 docs/reference/gtk/images/focus.png diff --git a/docs/reference/gtk/images/extensions.png b/docs/reference/gtk/images/extensions.png new file mode 100644 index 0000000000000000000000000000000000000000..f41d710ac8c2b275d19ebcdd71bb7351ae80509d GIT binary patch literal 475 zcmeAS@N?(olHy`uVBq!ia0vp^UO?>4!2~2D-nBIYDdu7)&kzm{j@u9Y9{{bJ};f*ZHN|gq-Hxom*G!;z$XvjJm6`@6o)qXEXYAZ_aXj`1$eOS5Mzv z*;<~yb4F)rzK4>!R($oPWVfm_9{rLpcXn=McWV|nc8$YFb75JE*`br1CC2Bc zRc+ww*x3J9aQdY382?!x+r+<*4+Devw1CYyb4Z+Wfu_ukP{F;Jgu@Xc$=ep;79XGVDvC}y85}Sb4q9e07wel AzW@LL literal 0 HcmV?d00001 diff --git a/docs/reference/gtk/images/focus.png b/docs/reference/gtk/images/focus.png new file mode 100644 index 0000000000000000000000000000000000000000..583d292c9c4926566e624e16b94aa56e914379a9 GIT binary patch literal 371 zcmeAS@N?(olHy`uVBq!ia0vp^UO?=@!2~4lRejL~Qq09po*^6@9Je3(KLBziOI#yL zg7ec#$`gxH8PfCeb5nJTlZ#SQ^NKU_OWrf@w_{*nWb<@!49RGGJIj#kkb?+ox$nky z&MuZcO}!OcW3*kJICh?IYE@`Th*PNh-aa$wwBq?pow}Uc-|BWBlQ=AA`R6xt9rtIO z!#3v)&KsZk%=6i1b5dMwPSLrgd++bJ?5bb+I@y>n)=TqwOlYX(d$X_4R{CqU3d}nu zbno)dO%eWcm+$DAxxDUlRkvR93U}MPsXSj-EZ^O;Q0{BVbi*r)=e;v(tGaSI_EgTe~DWM4fCP}DO literal 0 HcmV?d00001 diff --git a/gtk/gtkstylecontext.c b/gtk/gtkstylecontext.c index 78957e6ca1..e5bd4cf683 100644 --- a/gtk/gtkstylecontext.c +++ b/gtk/gtkstylecontext.c @@ -3159,6 +3159,10 @@ gtk_render_expander (GtkStyleContext *context, * @height: rectangle height * * Renders a focus indicator on the rectangle determined by @x, @y, @width, @height. + * + * Typical focus rendering + * + * * * Since: 3.0 **/ @@ -3357,6 +3361,11 @@ gtk_render_frame_gap (GtkStyleContext *context, * defined by @x, @y, @width, @height. The side where the extension * connects to is defined by @gap_side. * + * + * Typical extension rendering + * + * + * * Since: 3.0 **/ void diff --git a/tests/styleexamples.c b/tests/styleexamples.c index b66add59ac..6b65ba86bd 100644 --- a/tests/styleexamples.c +++ b/tests/styleexamples.c @@ -226,7 +226,44 @@ draw_cb_slider (GtkWidget *widget, cairo_t *cr) return TRUE; } +static gboolean +draw_cb_focus (GtkWidget *widget, cairo_t *cr) +{ + GtkStyleContext *context; + context = gtk_widget_get_style_context (widget); + + gtk_style_context_save (context); + + gtk_render_focus (context, cr, 12, 12, 50, 50); + + gtk_style_context_restore (context); + + return TRUE; +} + +static gboolean +draw_cb_extension (GtkWidget *widget, cairo_t *cr) +{ + GtkStyleContext *context; + + context = gtk_widget_get_style_context (widget); + + gtk_style_context_save (context); + + gtk_style_context_add_class (context, "notebook"); + gtk_style_context_add_region (context, GTK_STYLE_REGION_TAB, 0); + + gtk_style_context_set_state (context, 0); + gtk_render_extension (context, cr, 26, 12, 24, 12, GTK_POS_BOTTOM); + gtk_render_extension (context, cr, 12, 26, 12, 24, GTK_POS_RIGHT); + gtk_render_extension (context, cr, 26, 52, 24, 12, GTK_POS_TOP); + gtk_render_extension (context, cr, 52, 26, 12, 24, GTK_POS_LEFT); + + gtk_style_context_restore (context); + + return TRUE; +} static char *what; @@ -249,6 +286,10 @@ draw_cb (GtkWidget *widget, cairo_t *cr) return draw_cb_activity (widget, cr); else if (strcmp (what, "slider") == 0) return draw_cb_slider (widget, cr); + else if (strcmp (what, "focus") == 0) + return draw_cb_focus (widget, cr); + else if (strcmp (what, "extension") == 0) + return draw_cb_extension (widget, cr); return FALSE; }