From 31709167743d12d93d830f10480a70ef4da7cd14 Mon Sep 17 00:00:00 2001 From: Mike Kestner Date: Tue, 26 Apr 2011 16:01:26 -0500 Subject: [PATCH] System.Drawing Rect/Pt extensions for StyleContext * gtkdotnet/Makefile.am: add file * gtkdotnet/StyleContextExtensions.cs: RectangleF and PointF overloads for the new StyleContext.Render* methods. --- gtkdotnet/Makefile.am | 5 +- gtkdotnet/StyleContextExtensions.cs | 95 +++++++++++++++++++++++++++++ 2 files changed, 98 insertions(+), 2 deletions(-) create mode 100644 gtkdotnet/StyleContextExtensions.cs diff --git a/gtkdotnet/Makefile.am b/gtkdotnet/Makefile.am index 9dea76f5b..9a0b5a495 100644 --- a/gtkdotnet/Makefile.am +++ b/gtkdotnet/Makefile.am @@ -16,11 +16,12 @@ DISTCLEANFILES = $(ASSEMBLY).config POLICY_ASSEMBLIES = $(addsuffix .$(ASSEMBLY), $(addprefix policy., $(POLICY_VERSIONS))) POLICY_CONFIGS = $(addsuffix .config, $(addprefix policy., $(POLICY_VERSIONS))) -references = ../glib/glib-sharp.dll ../gio/gio-sharp.dll ../cairo/cairo-sharp.dll ../pango/pango-sharp.dll ../gdk/gdk-sharp.dll +references = $(top_builddir)/glib/glib-sharp.dll $(top_builddir)/gio/gio-sharp.dll $(top_builddir)/cairo/cairo-sharp.dll $(top_builddir)/pango/pango-sharp.dll $(top_builddir)/gdk/gdk-sharp.dll $(top_builddir)/gtk/gtk-sharp.dll build_references = $(addprefix -r:, $(references)) -r:System.Drawing.dll sources = \ - Graphics.cs + Graphics.cs \ + StyleContextExtensions.cs build_sources = $(addprefix $(srcdir)/, $(sources)) $(top_builddir)/AssemblyInfo.cs diff --git a/gtkdotnet/StyleContextExtensions.cs b/gtkdotnet/StyleContextExtensions.cs new file mode 100644 index 000000000..7621a9122 --- /dev/null +++ b/gtkdotnet/StyleContextExtensions.cs @@ -0,0 +1,95 @@ +// Copyright (c) 2011 Novell, Inc. +// +// This program is free software; you can redistribute it and/or +// modify it under the terms of version 2 of the Lesser GNU General +// Public License as published by the Free Software Foundation. +// +// This program is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU +// Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public +// License along with this program; if not, write to the +// Free Software Foundation, Inc., 59 Temple Place - Suite 330, +// Boston, MA 02111-1307, USA. + + +using System; +using System.Drawing; + +namespace Gtk.DotNet { + + public static class StyleContextExtensions { + + public static void RenderActivity (this Gtk.StyleContext style, Cairo.Context cr, RectangleF rect) + { + style.RenderActivity (cr, rect.X, rect.Y, rect.Width, rect.Height); + } + + public static void RenderArrow (this Gtk.StyleContext style, Cairo.Context cr, double angle, PointF location, double size) + { + style.RenderArrow (cr, angle, location.X, location.Y, size); + } + + public static void RenderBackground (this Gtk.StyleContext style, Cairo.Context cr, RectangleF rect) + { + style.RenderBackground (cr, rect.X, rect.Y, rect.Width, rect.Height); + } + + public static void RenderCheck (this Gtk.StyleContext style, Cairo.Context cr, RectangleF rect) + { + style.RenderCheck (cr, rect.X, rect.Y, rect.Width, rect.Height); + } + + public static void RenderExtension (this Gtk.StyleContext style, Cairo.Context cr, RectangleF rect, Gtk.PositionType gap_side) + { + style.RenderExtension (cr, rect.X, rect.Y, rect.Width, rect.Height, gap_side); + } + + public static void RenderExpander (this Gtk.StyleContext style, Cairo.Context cr, RectangleF rect) + { + style.RenderExpander (cr, rect.X, rect.Y, rect.Width, rect.Height); + } + + public static void RenderFocus (this Gtk.StyleContext style, Cairo.Context cr, RectangleF rect) + { + style.RenderFocus (cr, rect.X, rect.Y, rect.Width, rect.Height); + } + + public static void RenderFrame (this Gtk.StyleContext style, Cairo.Context cr, RectangleF rect) + { + style.RenderFrame (cr, rect.X, rect.Y, rect.Width, rect.Height); + } + + public static void RenderFrameGap (this Gtk.StyleContext style, Cairo.Context cr, RectangleF rect, Gtk.PositionType gap_side, double xy0_gap, double xy1_gap) + { + style.RenderFrameGap (cr, rect.X, rect.Y, rect.Width, rect.Height, gap_side, xy0_gap, xy1_gap); + } + + public static void RenderHandle (this Gtk.StyleContext style, Cairo.Context cr, RectangleF rect) + { + style.RenderHandle (cr, rect.X, rect.Y, rect.Width, rect.Height); + } + + public static void RenderLayout (this Gtk.StyleContext style, Cairo.Context cr, PointF location, Pango.Layout layout) + { + style.RenderLayout (cr, location.X, location.Y, layout); + } + + public static void RenderLine (this Gtk.StyleContext style, Cairo.Context cr, PointF pt0, PointF pt1) + { + style.RenderLine (cr, pt0.X, pt0.Y, pt1.X, pt1.Y); + } + + public static void RenderOption (this Gtk.StyleContext style, Cairo.Context cr, RectangleF rect) + { + style.RenderOption (cr, rect.X, rect.Y, rect.Width, rect.Height); + } + + public static void RenderSlider (this Gtk.StyleContext style, Cairo.Context cr, RectangleF rect, Gtk.Orientation orientation) + { + style.RenderSlider (cr, rect.X, rect.Y, rect.Width, rect.Height, orientation); + } + } +}