[dia] [gtk-deprecated] wrap GtkRuler in it's own file



commit cd7779f4ea30455df682c6678e0e60f24d49e232
Author: Hans Breuer <hans breuer org>
Date:   Sat Aug 11 16:39:41 2012 +0200

    [gtk-deprecated] wrap GtkRuler in it's own file
    
    interface.c now undeprecated

 app/Makefile.am  |    2 ++
 app/interface.c  |   21 ++++++---------------
 app/makefile.msc |    1 +
 app/ruler.c      |   54 ++++++++++++++++++++++++++++++++++++++++++++++++++++++
 app/ruler.h      |   11 +++++++++++
 5 files changed, 74 insertions(+), 15 deletions(-)
---
diff --git a/app/Makefile.am b/app/Makefile.am
index 7a01993..f4e9afb 100644
--- a/app/Makefile.am
+++ b/app/Makefile.am
@@ -155,6 +155,8 @@ dia_core_files = \
 	cut_n_paste.h \
 	render_gdk.c \
 	render_gdk.h \
+	ruler.c \
+	ruler.h \
 	tool.c \
 	tool.h \
 	diapagelayout.c \
diff --git a/app/interface.c b/app/interface.c
index 5d20db1..de2c2df 100644
--- a/app/interface.c
+++ b/app/interface.c
@@ -22,11 +22,6 @@
 #undef GTK_DISABLE_DEPRECATED /* gnome */
 #include <gnome.h>
 #else
-#undef GTK_DISABLE_DEPRECATED /* GtkPixmap */
-/* GtkRuler is deprecated by gtk-2-24, gone with gtk-3-0 because it is 
- * deemed to be too specialized for maintenance in Gtk. Maybe Dia is 
- * too specialized to be ported?
- */
 #include <gtk/gtk.h>
 #endif
 
@@ -48,6 +43,7 @@
 #include "persistence.h"
 #include "widgets.h"
 #include "message.h"
+#include "ruler.h"
 
 #include <gdk-pixbuf/gdk-pixbuf.h>
 #include "dia-app-icons.h"
@@ -380,14 +376,9 @@ create_canvas (DDisplay *ddisp)
 static void
 _ddisplay_setup_rulers (DDisplay *ddisp, GtkWidget *shell, GtkWidget *table)
 {
-  ddisp->hrule = gtk_hruler_new ();
-  g_signal_connect_swapped (G_OBJECT (shell), "motion_notify_event",
-                            G_CALLBACK(GTK_WIDGET_GET_CLASS (ddisp->hrule)->motion_notify_event),
-                            G_OBJECT (ddisp->hrule));
-  ddisp->vrule = gtk_vruler_new ();
-  g_signal_connect_swapped (G_OBJECT (shell), "motion_notify_event",
-			    G_CALLBACK(GTK_WIDGET_GET_CLASS (ddisp->vrule)->motion_notify_event),
-                            G_OBJECT (ddisp->vrule));
+  ddisp->hrule = dia_ruler_new (GTK_ORIENTATION_HORIZONTAL, shell);
+  ddisp->vrule = dia_ruler_new (GTK_ORIENTATION_VERTICAL, shell);
+
   /* harder to change position in the table, but we did not do it for years ;) */
   gtk_table_attach (GTK_TABLE (table), ddisp->hrule, 1, 2, 0, 1,
                     GTK_EXPAND | GTK_SHRINK | GTK_FILL, GTK_FILL, 0, 0);
@@ -806,12 +797,12 @@ ddisplay_update_rulers (DDisplay        *ddisp,
                         const Rectangle *extents,
 		        const Rectangle *visible)
 {
-  gtk_ruler_set_range  (GTK_RULER (ddisp->hrule),
+  dia_ruler_set_range  (ddisp->hrule,
 			visible->left,
 			visible->right,
 			0.0f /* position*/,
 			MAX(extents->right, visible->right)/* max_size*/);
-  gtk_ruler_set_range  (GTK_RULER (ddisp->vrule),
+  dia_ruler_set_range  (ddisp->vrule,
 			visible->top,
 			visible->bottom,
 			0.0f /*        position*/,
diff --git a/app/makefile.msc b/app/makefile.msc
index a0569b6..3e3a076 100644
--- a/app/makefile.msc
+++ b/app/makefile.msc
@@ -61,6 +61,7 @@ OBJECTS = \
 	properties-dialog.obj \
 	recent_files.obj \
 	render_gdk.obj \
+	ruler.obj \
 	scroll_tool.obj \
 	select.obj \
 	sheets.obj \
diff --git a/app/ruler.c b/app/ruler.c
new file mode 100644
index 0000000..5491198
--- /dev/null
+++ b/app/ruler.c
@@ -0,0 +1,54 @@
+/* Dia -- an diagram creation/manipulation program
+ * Copyright (C) 1998 Alexander Larsson
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation; either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * 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 General Public License for more details.
+ *
+ * You should have received a copy of the GNU 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.
+ */
+
+#include <config.h>
+
+#undef GTK_DISABLE_DEPRECATED /* GtkRuler */
+/* GtkRuler is deprecated by gtk-2-24, gone with gtk-3-0 because it is 
+ * deemed to be too specialized for maintenance in Gtk. Maybe Dia is 
+ * too specialized to be ported?
+ */
+#include <gtk/gtk.h>
+
+#include "ruler.h"
+
+GtkWidget *
+dia_ruler_new (GtkOrientation orientation, GtkWidget *shell)
+{
+  GtkWidget *rule;
+
+  if (orientation == GTK_ORIENTATION_HORIZONTAL)
+    rule = gtk_hruler_new ();
+  else if (orientation == GTK_ORIENTATION_VERTICAL)
+    rule = gtk_vruler_new ();
+
+  g_signal_connect_swapped (G_OBJECT (shell), "motion_notify_event",
+                            G_CALLBACK(GTK_WIDGET_GET_CLASS (rule)->motion_notify_event),
+                            G_OBJECT (rule));
+  return rule;
+}
+
+void 
+dia_ruler_set_range (GtkWidget *ruler,
+                     gdouble    lower,
+                     gdouble    upper,
+                     gdouble    position,
+                     gdouble    max_size)
+{
+  gtk_ruler_set_range (GTK_RULER (ruler), lower, upper, position, max_size);
+}
diff --git a/app/ruler.h b/app/ruler.h
new file mode 100644
index 0000000..75c074a
--- /dev/null
+++ b/app/ruler.h
@@ -0,0 +1,11 @@
+/* prepare deprecation of GtkRuler */
+#include <gtk/gtk.h>
+
+GtkWidget *dia_ruler_new (GtkOrientation  orientation,
+			  GtkWidget      *shell);
+
+void dia_ruler_set_range (GtkWidget      *ruler,
+                          gdouble         lower,
+                          gdouble         upper,
+                          gdouble         position,
+                          gdouble         max_size);



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