From d1f1af202b0d3389e049ff33cee2f8887f2ec585 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Tue, 23 Nov 2010 22:55:52 -0500 Subject: [PATCH] Add a frame-gap illustration --- docs/reference/gtk/Makefile.am | 1 + docs/reference/gtk/images/frame-gap.png | Bin 0 -> 322 bytes gtk/gtkstylecontext.c | 13 ++++++--- tests/styleexamples.c | 34 ++++++++++++++++++++++++ 4 files changed, 44 insertions(+), 4 deletions(-) create mode 100644 docs/reference/gtk/images/frame-gap.png diff --git a/docs/reference/gtk/Makefile.am b/docs/reference/gtk/Makefile.am index be16af174c..23194b77aa 100644 --- a/docs/reference/gtk/Makefile.am +++ b/docs/reference/gtk/Makefile.am @@ -348,6 +348,7 @@ HTML_IMAGES = \ $(srcdir)/images/expanders.png \ $(srcdir)/images/background.png \ $(srcdir)/images/frames.png \ + $(srcdir)/images/frame-gap.png \ $(srcdir)/images/sliders.png \ $(srcdir)/images/focus.png \ $(srcdir)/images/extensions.png diff --git a/docs/reference/gtk/images/frame-gap.png b/docs/reference/gtk/images/frame-gap.png new file mode 100644 index 0000000000000000000000000000000000000000..3c0caf24d494ffd98051905f70de481845a9a107 GIT binary patch literal 322 zcmeAS@N?(olHy`uVBq!ia0vp^PC)F=!2~32ezWlaDdu7)&kzm{j@u9Y9{{lFz$!L6g+nei{-3%gf1zDcC2hhC$0W8+NtO1D z2Zg(@MBP@G>R&$R^Y+u%gsdY?&m6hd|mv|uUjW?8Z;l_ d5i<6$yZT>YgXZE42cQQTJYD@<);T3K0RVvfg+2fP literal 0 HcmV?d00001 diff --git a/gtk/gtkstylecontext.c b/gtk/gtkstylecontext.c index 6dac9bdf3b..ff5038d7b2 100644 --- a/gtk/gtkstylecontext.c +++ b/gtk/gtkstylecontext.c @@ -3037,7 +3037,7 @@ gtk_render_arrow (GtkStyleContext *context, * * Typical background rendering, showing the effect of * <parameter>background-image</parameter>, - * <parameter>border-width</parameter and + * <parameter>border-width</parameter> and * <parameter>border-radius</parameter> * * @@ -3320,9 +3320,14 @@ gtk_render_slider (GtkStyleContext *context, * @xy1_gap: end coordinate (X or Y depending on @gap_side) for the gap * * Renders a frame around the rectangle defined by (@x, @y, @width, @height), - * leaving a gap on one side. @xy0_gap and @xy1_gap will mean X coordinates for - * %GTK_POS_TOP and %GTK_POS_BOTTOM gap sides, and Y coordinates for %GTK_POS_LEFT - * and %GTK_POS_RIGHT. + * leaving a gap on one side. @xy0_gap and @xy1_gap will mean X coordinates + * for %GTK_POS_TOP and %GTK_POS_BOTTOM gap sides, and Y coordinates for + * %GTK_POS_LEFT and %GTK_POS_RIGHT. + * + * + * Typical rendering of a frame with a gap + * + * * * Since: 3.0 **/ diff --git a/tests/styleexamples.c b/tests/styleexamples.c index 6b65ba86bd..b20c7e4eea 100644 --- a/tests/styleexamples.c +++ b/tests/styleexamples.c @@ -265,6 +265,38 @@ draw_cb_extension (GtkWidget *widget, cairo_t *cr) return TRUE; } +static gboolean +draw_cb_frame_gap (GtkWidget *widget, cairo_t *cr) +{ + GtkStyleContext *context; + GtkStyleProvider *provider; + + context = gtk_widget_get_style_context (widget); + + gtk_style_context_save (context); + + provider = (GtkStyleProvider *)gtk_css_provider_new (); + gtk_css_provider_load_from_data (GTK_CSS_PROVIDER (provider), + ".frame {\n" + " border-style: solid;\n" + " border-width: 1;\n" + " border-radius: 0;\n" + "}\n", + -1, NULL); + gtk_style_context_add_provider (context, provider, GTK_STYLE_PROVIDER_PRIORITY_APPLICATION); + + gtk_style_context_add_class (context, "frame"); + gtk_style_context_set_junction_sides (context, 0); + gtk_render_frame_gap (context, cr, 12, 12, 50, 50, GTK_POS_TOP, 15, 35); + gtk_style_context_remove_class (context, "frame"); + + gtk_style_context_remove_provider (context, provider); + + gtk_style_context_restore (context); + + return TRUE; +} + static char *what; static gboolean @@ -290,6 +322,8 @@ draw_cb (GtkWidget *widget, cairo_t *cr) return draw_cb_focus (widget, cr); else if (strcmp (what, "extension") == 0) return draw_cb_extension (widget, cr); + else if (strcmp (what, "frame-gap") == 0) + return draw_cb_frame_gap (widget, cr); return FALSE; }