[gtkmm] Make getting Gtk::Border style properties work.



commit e4305d78b33a454ae0763ea8849b080bde4805e7
Author: Krzesimir Nowak <qdlacz gmail com>
Date:   Thu Dec 17 21:43:45 2009 +0100

    Make getting Gtk::Border style properties work.
    
    * gtk/gtkmm/border.h: Created separate header file for Gtk::Border.
    It contains a typedef and Glib::Value specialization
    for Gtk::Border.
    * gtk/gtkmm/filelist.am: Added border.h to gtkmm_files_extra_h.
    * gtk/gtkmm.h: Included the new border.h header.
    * gtk/src/entry.hg: Removed Gtk::Border typedef and included
    border.h.
    * gtk/src/range.hg: get_range_border() vfunc now uses Gtk::Border*
    instead of GtkBorder*. Written proper conversions for this.
    * MSVC_NET{2005,2008}/gtkmm/gtkmm.vcproj: Added border.h.

 ChangeLog                       |   10 ++++++
 MSVC_Net2005/gtkmm/gtkmm.vcproj |    4 ++
 MSVC_Net2008/gtkmm/gtkmm.vcproj |    4 ++
 gtk/gtkmm.h                     |    1 +
 gtk/gtkmm/border.h              |   61 +++++++++++++++++++++++++++++++++++++++
 gtk/gtkmm/filelist.am           |    1 +
 gtk/src/entry.hg                |    4 +--
 gtk/src/range.hg                |    5 ++-
 8 files changed, 86 insertions(+), 4 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 48f3f16..96dd435 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,13 @@
+2009-12-17  Krzesimir Nowak  <qdlacz gmail com>
+
+	* gtk/gtkmm/border.h: Created separate header file for Gtk::Border.
+	It contains a typedef and Glib::Value specialization for Gtk::Border.
+	* gtk/gtkmm/filelist.am: Add border.h to gtkmm_files_extra_h.
+	* gtk/src/entry.hg: Remove Gtk::Border typedef and include border.h.
+	* gtk/src/range.hg: get_range_border() vfunc now uses Gtk::Border*
+	instead of GtkBorder*. Written proper conversions for this.
+	* gtk/gtkmm.h: Include the new border.h header.
+
 2009-12-17  Murray Cumming  <murrayc murrayc com>
 
 	Added ToolPalette.
diff --git a/MSVC_Net2005/gtkmm/gtkmm.vcproj b/MSVC_Net2005/gtkmm/gtkmm.vcproj
index 9be0e24..58ce04e 100755
--- a/MSVC_Net2005/gtkmm/gtkmm.vcproj
+++ b/MSVC_Net2005/gtkmm/gtkmm.vcproj
@@ -962,6 +962,10 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\gtk\gtkmm\border.h"
+				>
+			</File>
+			<File
 				RelativePath="..\..\gtk\gtkmm\box.h"
 				>
 			</File>
diff --git a/MSVC_Net2008/gtkmm/gtkmm.vcproj b/MSVC_Net2008/gtkmm/gtkmm.vcproj
index ca82a76..ae33f2e 100644
--- a/MSVC_Net2008/gtkmm/gtkmm.vcproj
+++ b/MSVC_Net2008/gtkmm/gtkmm.vcproj
@@ -961,6 +961,10 @@
 				>
 			</File>
 			<File
+				RelativePath="..\..\gtk\gtkmm\border.h"
+				>
+			</File>
+			<File
 				RelativePath="..\..\gtk\gtkmm\box.h"
 				>
 			</File>
diff --git a/gtk/gtkmm.h b/gtk/gtkmm.h
index 19c30dc..44a7dab 100644
--- a/gtk/gtkmm.h
+++ b/gtk/gtkmm.h
@@ -41,6 +41,7 @@ extern const int gtkmm_micro_version;
 #include <gtkmm/assistant.h>
 #include <gtkmm/base.h>
 #include <gtkmm/bin.h>
+#include <gtkmm/border.h>
 #include <gtkmm/box.h>
 #include <gtkmm/builder.h>
 #include <gtkmm/button.h>
diff --git a/gtk/gtkmm/border.h b/gtk/gtkmm/border.h
new file mode 100644
index 0000000..a64c669
--- /dev/null
+++ b/gtk/gtkmm/border.h
@@ -0,0 +1,61 @@
+// -*- c++ -*-
+#ifndef _GTKMM_BORDER_H
+#define _GTKMM_BORDER_H
+
+/* border.h
+ *
+ * Copyright (C) 2009 The gtkmm Development Team
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 2.1 of the License, or (at your option) any later version.
+ *
+ * This library 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 library; if not, write to the Free
+ * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
+ */
+
+#include <glibmm/value.h>
+
+namespace Gtk
+{
+
+typedef GtkBorder Border;
+
+} /* namespace Gtk */
+
+
+#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
+namespace Glib
+{
+
+template <>
+class Value<Gtk::Border> : public ValueBase_Boxed
+{
+public:
+  typedef Gtk::Border CppType;
+
+  static GType value_type() { return gtk_border_get_type(); }
+
+  void set(const Gtk::Border& data) { set_boxed(&data); }
+  Gtk::Border get() const
+  {
+    GtkBorder* cobj = static_cast<GtkBorder*>(get_boxed());
+    Gtk::Border obj = {0, 0, 0, 0};
+    return ((cobj) ? (static_cast<Gtk::Border>(*cobj)) : (obj));
+  }
+};
+
+} /* namespace Glib */
+
+#endif /* DOXYGEN_SHOULD_SKIP_THIS */
+
+#endif /* _GTKMM_BORDER_H */
+
diff --git a/gtk/gtkmm/filelist.am b/gtk/gtkmm/filelist.am
index d8c94c5..93e74af 100644
--- a/gtk/gtkmm/filelist.am
+++ b/gtk/gtkmm/filelist.am
@@ -24,6 +24,7 @@ gtkmm_files_extra_h =			\
 	accelkey.h			\
 	accelmap.h			\
 	base.h				\
+	border.h			\
 	cellrenderer_generation.h	\
 	comboboxentrytext.h		\
 	comboboxtext.h			\
diff --git a/gtk/src/entry.hg b/gtk/src/entry.hg
index 36d3457..1781a86 100644
--- a/gtk/src/entry.hg
+++ b/gtk/src/entry.hg
@@ -26,6 +26,7 @@
 #include <gtkmm/entrycompletion.h>
 #include <gtkmm/adjustment.h>
 #include <gtkmm/image.h> //For ImageType.
+#include <gtkmm/border.h>
 
 _DEFS(gtkmm,gtk)
 _PINCLUDE(gtkmm/private/widget_p.h)
@@ -35,9 +36,6 @@ namespace Gtk
 
 _WRAP_ENUM(EntryIconPosition, GtkEntryIconPosition)
 
-//TODO: This is used in Range too, so put it somewhere more appropriate:
-typedef GtkBorder Border;
-
 /** A single line text entry field.
  *
  * The Gtk::Entry widget is a single line text entry widget. A fairly large
diff --git a/gtk/src/range.hg b/gtk/src/range.hg
index 6b22469..59ec04a 100644
--- a/gtk/src/range.hg
+++ b/gtk/src/range.hg
@@ -19,6 +19,7 @@
 
 #include <gtkmm/widget.h>
 #include <gtkmm/enums.h> //For SensitivityType.
+#include <gtkmm/border.h>
 _DEFS(gtkmm,gtk)
 _PINCLUDE(gtkmm/private/widget_p.h)
 
@@ -108,7 +109,9 @@ public:
   _WRAP_PROPERTY("fill-level", double)
   
 protected:
-  _WRAP_VFUNC(void get_range_border(GtkBorder* border) const, get_range_border)
+#m4 _CONVERSION(`Gtk::Border*',`GtkBorder*',($3))
+#m4 _CONVERSION(`GtkBorder*',`Gtk::Border*',($3))
+  _WRAP_VFUNC(void get_range_border(Gtk::Border* border) const, get_range_border)
 };
 
 } // namespace Gtk



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]