r22358 - gnucash/trunk - Reduce dependency on libgnome

Geert Janssens gjanssens at code.gnucash.org
Wed Sep 5 06:45:05 EDT 2012


Author: gjanssens
Date: 2012-09-05 06:45:04 -0400 (Wed, 05 Sep 2012)
New Revision: 22358
Trac: http://svn.gnucash.org/trac/changeset/22358

Added:
   gnucash/trunk/src/register/register-gnome/gnucash-sheetP.h
Modified:
   gnucash/trunk/configure.ac
   gnucash/trunk/src/app-utils/gnc-sx-instance-model.c
   gnucash/trunk/src/business/business-gnome/Makefile.am
   gnucash/trunk/src/business/business-gnome/dialog-invoice.c
   gnucash/trunk/src/business/business-gnome/dialog-order.c
   gnucash/trunk/src/gnome-utils/gnc-date-edit.c
   gnucash/trunk/src/gnome-utils/gnc-main-window.c
   gnucash/trunk/src/gnome/Makefile.am
   gnucash/trunk/src/gnome/dialog-sx-editor.c
   gnucash/trunk/src/gnome/gnc-split-reg.c
   gnucash/trunk/src/html/Makefile.am
   gnucash/trunk/src/import-export/aqbanking/Makefile.am
   gnucash/trunk/src/register/register-gnome/Makefile.am
   gnucash/trunk/src/register/register-gnome/combocell-gnome.c
   gnucash/trunk/src/register/register-gnome/datecell-gnome.c
   gnucash/trunk/src/register/register-gnome/formulacell-gnome.c
   gnucash/trunk/src/register/register-gnome/gnucash-color.c
   gnucash/trunk/src/register/register-gnome/gnucash-cursor.c
   gnucash/trunk/src/register/register-gnome/gnucash-cursor.h
   gnucash/trunk/src/register/register-gnome/gnucash-date-picker.c
   gnucash/trunk/src/register/register-gnome/gnucash-date-picker.h
   gnucash/trunk/src/register/register-gnome/gnucash-grid.c
   gnucash/trunk/src/register/register-gnome/gnucash-grid.h
   gnucash/trunk/src/register/register-gnome/gnucash-header.c
   gnucash/trunk/src/register/register-gnome/gnucash-header.h
   gnucash/trunk/src/register/register-gnome/gnucash-item-edit.c
   gnucash/trunk/src/register/register-gnome/gnucash-item-list.c
   gnucash/trunk/src/register/register-gnome/gnucash-item-list.h
   gnucash/trunk/src/register/register-gnome/gnucash-sheet.c
   gnucash/trunk/src/register/register-gnome/gnucash-sheet.h
   gnucash/trunk/src/register/register-gnome/gnucash-style.c
   gnucash/trunk/src/register/register-gnome/gnucash-style.h
   gnucash/trunk/src/register/register-gnome/pricecell-gnome.c
   gnucash/trunk/src/register/register-gnome/quickfillcell-gnome.c
   gnucash/trunk/src/register/register-gnome/table-gnome.c
Log:
Reduce dependency on libgnome

After this patch the only parts still requiring gnome libraries are
- src/bin/gnucash-bin.c (for gnome_program_init)
- src/gnome-utils/gnc-gnome-utils.c (for gnome_program_init)
- register-gnome (only uses libgnomecanvas)

Some refactoring was required in register-gnome to prevent other parts
of GnuCash to continue to depend on libgnomecanvas as well (the
register interface needlessly exposed the implementation details, thus
leaking GnomeCanvas dependencies to other parts of gnucash).

Most other changes simply replaced gnome specific stuff with gtk
equivalents.

Modified: gnucash/trunk/configure.ac
===================================================================
--- gnucash/trunk/configure.ac	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/configure.ac	2012-09-05 10:45:04 UTC (rev 22358)
@@ -866,6 +866,11 @@
   AC_SUBST(GNOME_CFLAGS)
   AC_SUBST(GNOME_LIBS)
 
+  PKG_CHECK_MODULES(GNOMECANVAS, libgnomecanvas-2.0)
+  AS_SCRUB_INCLUDE(GNOMECANVAS_CFLAGS)
+  AC_SUBST(GNOMECANVAS_CFLAGS)
+  AC_SUBST(GNOMECANVAS_LIBS)
+
   PKG_CHECK_MODULES(GDK_PIXBUF, gdk-pixbuf-2.0)
   AS_SCRUB_INCLUDE(GDK_PIXBUF_CFLAGS)
   AC_SUBST(GDK_PIXBUF_CFLAGS)

Modified: gnucash/trunk/src/app-utils/gnc-sx-instance-model.c
===================================================================
--- gnucash/trunk/src/app-utils/gnc-sx-instance-model.c	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/app-utils/gnc-sx-instance-model.c	2012-09-05 10:45:04 UTC (rev 22358)
@@ -278,7 +278,7 @@
 static void
 _set_var_to_random_value(gchar *key, GncSxVariable *var, gpointer unused_user_data)
 {
-    var->value = double_to_gnc_numeric(rand() + 2, 1,
+    var->value = double_to_gnc_numeric(g_random_int() + 2, 1,
                                        GNC_NUMERIC_RND_MASK
                                        | GNC_HOW_RND_FLOOR);
 }

Modified: gnucash/trunk/src/business/business-gnome/Makefile.am
===================================================================
--- gnucash/trunk/src/business/business-gnome/Makefile.am	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/business/business-gnome/Makefile.am	2012-09-05 10:45:04 UTC (rev 22358)
@@ -19,7 +19,7 @@
   -I${top_srcdir}/src/register/register-gnome \
   -I${top_srcdir}/src/register/ledger-core \
   -I${top_srcdir}/src/libqof/qof \
-  ${GNOME_CFLAGS} \
+  ${GTK_CFLAGS} \
   ${GCONF_CFLAGS} \
   ${GLIB_CFLAGS} \
   ${GUILE_INCS}
@@ -79,7 +79,7 @@
   ${top_builddir}/src/core-utils/libgnc-core-utils.la \
   ${top_builddir}/src/gnc-module/libgnc-module.la \
   ${top_builddir}/src/libqof/qof/libgnc-qof.la \
-  ${GNOME_LIBS} \
+  ${GTK_LIBS} \
   ${GCONF_LIBS} \
   ${GUILE_LIBS} \
   ${GLIB_LIBS} \

Modified: gnucash/trunk/src/business/business-gnome/dialog-invoice.c
===================================================================
--- gnucash/trunk/src/business/business-gnome/dialog-invoice.c	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/business/business-gnome/dialog-invoice.c	2012-09-05 10:45:04 UTC (rev 22358)
@@ -2292,7 +2292,7 @@
 
         iw->reg = GNUCASH_REGISTER (regWidget);
         window = gnc_plugin_page_get_window(iw->page);
-        GNUCASH_SHEET (iw->reg->sheet)->window = window;
+        gnucash_sheet_set_window (gnucash_register_get_sheet (iw->reg), window);
 
         g_signal_connect (G_OBJECT (regWidget), "activate_cursor",
                           G_CALLBACK (gnc_invoice_window_recordCB), iw);

Modified: gnucash/trunk/src/business/business-gnome/dialog-order.c
===================================================================
--- gnucash/trunk/src/business/business-gnome/dialog-order.c	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/business/business-gnome/dialog-order.c	2012-09-05 10:45:04 UTC (rev 22358)
@@ -642,7 +642,7 @@
     regWidget = gnucash_register_new (gnc_entry_ledger_get_table (entry_ledger));
     gnc_table_init_gui( regWidget, NULL);
     ow->reg = GNUCASH_REGISTER (regWidget);
-    GNUCASH_SHEET (ow->reg->sheet)->window = GTK_WIDGET(ow->dialog);
+    gnucash_sheet_set_window (gnucash_register_get_sheet (ow->reg), ow->dialog);
     gnc_entry_ledger_set_parent (entry_ledger, ow->dialog);
 
     vbox = GTK_WIDGET(gtk_builder_get_object (builder, "ledger_vbox"));

Modified: gnucash/trunk/src/gnome/Makefile.am
===================================================================
--- gnucash/trunk/src/gnome/Makefile.am	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/gnome/Makefile.am	2012-09-05 10:45:04 UTC (rev 22358)
@@ -16,8 +16,9 @@
   ${top_builddir}/src/engine/libgncmod-engine.la \
   ${top_builddir}/src/core-utils/libgnc-core-utils.la \
   ${top_builddir}/src/libqof/qof/libgnc-qof.la \
+  ${LIBXML2_LIBS} \
   ${GUILE_LIBS} \
-  ${GNOME_LIBS} \
+  ${GTK_LIBS} \
   ${GCONF_LIBS} \
   ${GLIB_LIBS} \
   ${QOF_LIBS}
@@ -123,8 +124,9 @@
   -I${top_srcdir}/src/report/report-gnome \
   -I${top_srcdir}/lib/libc \
   -I${top_srcdir}/src/libqof/qof \
+  ${LIBXML2_CFLAGS} \
   ${GUILE_INCS} \
-  ${GNOME_CFLAGS} \
+  ${GTK_CFLAGS} \
   ${GCONF_CFLAGS} \
   $(GLIB_CFLAGS) \
   ${GTK_MAC_CFLAGS}

Modified: gnucash/trunk/src/gnome/dialog-sx-editor.c
===================================================================
--- gnucash/trunk/src/gnome/dialog-sx-editor.c	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/gnome/dialog-sx-editor.c	2012-09-05 10:45:04 UTC (rev 22358)
@@ -594,7 +594,6 @@
             numIters = NUM_ITERS_WITH_VARS;
         }
 
-        srand(time(NULL));
         for ( i = 0; i < numIters && !unbalanceable; i++ )
         {
             gnc_sx_randomize_variables(vars);

Modified: gnucash/trunk/src/gnome/gnc-split-reg.c
===================================================================
--- gnucash/trunk/src/gnome/gnc-split-reg.c	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/gnome/gnc-split-reg.c	2012-09-05 10:45:04 UTC (rev 22358)
@@ -409,7 +409,7 @@
     gsr->reg = GNUCASH_REGISTER( register_widget );
     gnc_table_init_gui( GTK_WIDGET(gsr->reg), gconf_key );
     gtk_box_pack_start (GTK_BOX (gsr), GTK_WIDGET(gsr->reg), TRUE, TRUE, 0);
-    GNUCASH_SHEET(gsr->reg->sheet)->window = gsr->window;
+    gnucash_sheet_set_window (gnucash_register_get_sheet (gsr->reg), gsr->window);
     gtk_widget_show ( GTK_WIDGET(gsr->reg) );
     g_signal_connect (gsr->reg, "activate_cursor",
                       G_CALLBACK(gnc_split_reg_record_cb), gsr);

Modified: gnucash/trunk/src/gnome-utils/gnc-date-edit.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-date-edit.c	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/gnome-utils/gnc-date-edit.c	2012-09-05 10:45:04 UTC (rev 22358)
@@ -35,7 +35,7 @@
 
 #include "config.h"
 
-#include <gnome.h>
+#include <gtk/gtk.h>
 #include <glib/gi18n.h>
 #include <gdk/gdkkeysyms.h>
 #include <string.h>
@@ -510,7 +510,7 @@
         g_signal_new ("time_changed",
                       G_TYPE_FROM_CLASS (object_class),
                       G_SIGNAL_RUN_FIRST,
-                      G_STRUCT_OFFSET (GnomeDateEditClass, time_changed),
+                      G_STRUCT_OFFSET (GNCDateEditClass, time_changed),
                       NULL, NULL,
                       g_cclosure_marshal_VOID__VOID,
                       G_TYPE_NONE, 0);
@@ -519,7 +519,7 @@
         g_signal_new ("date_changed",
                       G_TYPE_FROM_CLASS (object_class),
                       G_SIGNAL_RUN_FIRST,
-                      G_STRUCT_OFFSET (GnomeDateEditClass, date_changed),
+                      G_STRUCT_OFFSET (GNCDateEditClass, date_changed),
                       NULL, NULL,
                       g_cclosure_marshal_VOID__VOID,
                       G_TYPE_NONE, 0);

Modified: gnucash/trunk/src/gnome-utils/gnc-main-window.c
===================================================================
--- gnucash/trunk/src/gnome-utils/gnc-main-window.c	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/gnome-utils/gnc-main-window.c	2012-09-05 10:45:04 UTC (rev 22358)
@@ -34,7 +34,6 @@
 */
 #include "config.h"
 
-#include <gnome.h>
 #include <glib/gi18n.h>
 #include <gdk/gdkkeysyms.h>
 #include <libguile.h>
@@ -345,7 +344,7 @@
     /* Help menu */
 
     {
-        "HelpTutorialAction", GNOME_STOCK_BOOK_BLUE, N_("Tutorial and Concepts _Guide"), NULL,
+        "HelpTutorialAction", GTK_STOCK_HELP, N_("Tutorial and Concepts _Guide"), NULL,
         N_("Open the GnuCash Tutorial"),
         G_CALLBACK (gnc_main_window_cmd_help_tutorial)
     },
@@ -355,7 +354,7 @@
         G_CALLBACK (gnc_main_window_cmd_help_contents)
     },
     {
-        "HelpAboutAction", GNOME_STOCK_ABOUT, N_("_About"), NULL,
+        "HelpAboutAction", GTK_STOCK_ABOUT, N_("_About"), NULL,
         N_("About GnuCash"),
         G_CALLBACK (gnc_main_window_cmd_help_about)
     },

Modified: gnucash/trunk/src/html/Makefile.am
===================================================================
--- gnucash/trunk/src/html/Makefile.am	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/html/Makefile.am	2012-09-05 10:45:04 UTC (rev 22358)
@@ -53,8 +53,7 @@
   ${top_builddir}/src/app-utils/libgncmod-app-utils.la \
   $(top_builddir)/lib/libc/libc-missing.la \
   ${WEBKIT_LIBS} \
-  ${GNOME_LIBS} \
-  ${GDK_PIXBUF_LIBS} \
+  ${GTK_LIBS} \
   ${GLIB_LIBS} \
   ${DB_LIBS} \
   ${QOF_LIBS} \

Modified: gnucash/trunk/src/import-export/aqbanking/Makefile.am
===================================================================
--- gnucash/trunk/src/import-export/aqbanking/Makefile.am	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/import-export/aqbanking/Makefile.am	2012-09-05 10:45:04 UTC (rev 22358)
@@ -42,7 +42,7 @@
   ${top_builddir}/src/core-utils/libgnc-core-utils.la \
   ${top_builddir}/src/gnc-module/libgnc-module.la \
   ${top_builddir}/src/libqof/qof/libgnc-qof.la \
-  ${GNOME_LIBS} \
+  ${GTK_LIBS} \
   ${GCONF_LIBS} \
   ${GLIB_LIBS} \
   ${GWENGUI_GTK2_LIBS} \
@@ -61,7 +61,7 @@
   -I${top_srcdir}/src/core-utils \
   -I${top_srcdir}/src/gnc-module \
   -I${top_srcdir}/src/libqof/qof \
-  ${GNOME_CFLAGS} \
+  ${GTK_CFLAGS} \
   ${GCONF_CFLAGS} \
   ${GLIB_CFLAGS} \
   ${AQBANKING_CFLAGS}

Modified: gnucash/trunk/src/register/register-gnome/Makefile.am
===================================================================
--- gnucash/trunk/src/register/register-gnome/Makefile.am	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/register/register-gnome/Makefile.am	2012-09-05 10:45:04 UTC (rev 22358)
@@ -13,7 +13,8 @@
   ${top_builddir}/src/gnome-utils/libgncmod-gnome-utils.la \
   ${top_builddir}/src/libqof/qof/libgnc-qof.la \
   ${GLIB_LIBS} \
-  ${GNOME_LIBS}
+  ${GCONF_LIBS} \
+  ${GNOMECANVAS_LIBS}
 
 libgncmod_register_gnome_la_SOURCES = \
   gncmod-register-gnome.c \
@@ -62,7 +63,8 @@
   -I${top_srcdir}/src/libqof/qof \
   ${GUILE_INCS} \
   ${GLIB_CFLAGS} \
+  ${GCONF_CFLAGS} \
   ${GTK_XIM_FLAGS} \
-  ${GNOME_CFLAGS}
+  ${GNOMECANVAS_CFLAGS}
 
 INCLUDES = -DG_LOG_DOMAIN=\"gnc.register.gnome\"

Modified: gnucash/trunk/src/register/register-gnome/combocell-gnome.c
===================================================================
--- gnucash/trunk/src/register/register-gnome/combocell-gnome.c	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/register/register-gnome/combocell-gnome.c	2012-09-05 10:45:04 UTC (rev 22358)
@@ -35,7 +35,6 @@
 
 #include "config.h"
 
-#include <gnome.h>
 #include <string.h>
 #include <gdk/gdkkeysyms.h>
 
@@ -45,6 +44,7 @@
 #include "gnucash-item-edit.h"
 #include "gnucash-item-list.h"
 #include "gnucash-sheet.h"
+#include "gnucash-sheetP.h"
 #include "table-allgui.h"
 
 #define KEY_AUTO_RAISE_LISTS	"auto_raise_lists"
@@ -747,8 +747,7 @@
 gnc_combo_cell_gui_realize (BasicCell *bcell, gpointer data)
 {
     GnucashSheet *sheet = data;
-    GnomeCanvasItem *item = sheet->item_editor;
-    GncItemEdit *item_edit = GNC_ITEM_EDIT (item);
+    GncItemEdit *item_edit = gnucash_sheet_get_item_edit (sheet);
     ComboCell *cell = (ComboCell *) bcell;
     PopBox *box = cell->cell.gui_private;
 

Modified: gnucash/trunk/src/register/register-gnome/datecell-gnome.c
===================================================================
--- gnucash/trunk/src/register/register-gnome/datecell-gnome.c	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/register/register-gnome/datecell-gnome.c	2012-09-05 10:45:04 UTC (rev 22358)
@@ -32,7 +32,6 @@
 
 #include "config.h"
 
-#include <gnome.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
@@ -45,6 +44,7 @@
 #include "gnucash-date-picker.h"
 #include "gnucash-item-edit.h"
 #include "gnucash-sheet.h"
+#include "gnucash-sheetP.h"
 
 
 #define DATE_BUF (MAX_DATE_LENGTH+1)
@@ -573,8 +573,7 @@
 gnc_date_cell_realize (BasicCell *bcell, gpointer data)
 {
     GnucashSheet *sheet = data;
-    GnomeCanvasItem *item = sheet->item_editor;
-    GncItemEdit *item_edit = GNC_ITEM_EDIT (item);
+    GncItemEdit *item_edit = gnucash_sheet_get_item_edit (sheet);
     DateCell *cell = (DateCell *) bcell;
     PopBox *box = cell->cell.gui_private;
 

Modified: gnucash/trunk/src/register/register-gnome/formulacell-gnome.c
===================================================================
--- gnucash/trunk/src/register/register-gnome/formulacell-gnome.c	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/register/register-gnome/formulacell-gnome.c	2012-09-05 10:45:04 UTC (rev 22358)
@@ -28,7 +28,6 @@
 
 #include "config.h"
 
-#include <gnome.h>
 #include <locale.h>
 #include <gdk/gdkkeysyms.h>
 

Modified: gnucash/trunk/src/register/register-gnome/gnucash-color.c
===================================================================
--- gnucash/trunk/src/register/register-gnome/gnucash-color.c	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/register/register-gnome/gnucash-color.c	2012-09-05 10:45:04 UTC (rev 22358)
@@ -38,8 +38,8 @@
 #include <config.h>
 #endif
 
-#include <gnome.h>
-
+#include <gtk/gtk.h>
+#include <gdk/gdk.h>
 #include "gnucash-color.h"
 
 static int color_inited;

Modified: gnucash/trunk/src/register/register-gnome/gnucash-cursor.c
===================================================================
--- gnucash/trunk/src/register/register-gnome/gnucash-cursor.c	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/register/register-gnome/gnucash-cursor.c	2012-09-05 10:45:04 UTC (rev 22358)
@@ -29,11 +29,13 @@
  */
 
 #include "config.h"
+#include <libgnomecanvas/libgnomecanvas.h>
 
 #include "gnucash-color.h"
 #include "gnucash-cursor.h"
 #include "gnucash-grid.h"
 #include "gnucash-sheet.h"
+#include "gnucash-sheetP.h"
 #include "gnucash-style.h"
 
 static GnomeCanvasItem *gnucash_cursor_parent_class;

Modified: gnucash/trunk/src/register/register-gnome/gnucash-cursor.h
===================================================================
--- gnucash/trunk/src/register/register-gnome/gnucash-cursor.h	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/register/register-gnome/gnucash-cursor.h	2012-09-05 10:45:04 UTC (rev 22358)
@@ -21,10 +21,9 @@
 #ifndef GNUCASH_CURSOR_H
 #define GNUCASH_CURSOR_H
 
-#include <gnome.h>
-
 #include "gnucash-grid.h"
 #include "gnucash-sheet.h"
+#include <libgnomecanvas/libgnomecanvas.h>
 
 
 #define GNUCASH_TYPE_CURSOR     (gnucash_cursor_get_type ())

Modified: gnucash/trunk/src/register/register-gnome/gnucash-date-picker.c
===================================================================
--- gnucash/trunk/src/register/register-gnome/gnucash-date-picker.c	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/register/register-gnome/gnucash-date-picker.c	2012-09-05 10:45:04 UTC (rev 22358)
@@ -25,9 +25,7 @@
  */
 
 #include "config.h"
-
-#include <gnome.h>
-
+#include <libgnomecanvas/libgnomecanvas.h>
 #include <gdk/gdkkeysyms.h>
 #include "gnucash-date-picker.h"
 

Modified: gnucash/trunk/src/register/register-gnome/gnucash-date-picker.h
===================================================================
--- gnucash/trunk/src/register/register-gnome/gnucash-date-picker.h	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/register/register-gnome/gnucash-date-picker.h	2012-09-05 10:45:04 UTC (rev 22358)
@@ -23,7 +23,7 @@
 #ifndef GNUCASH_DATE_PICKER_H
 #define GNUCASH_DATE_PICKER_H
 
-#include <gnome.h>
+#include <libgnomecanvas/libgnomecanvas.h>
 
 #define GNC_DATE_PICKER(obj)      G_TYPE_CHECK_INSTANCE_CAST((obj), gnc_date_picker_get_type (), GNCDatePicker)
 #define GNC_DATE_PICKER_CLASS(k)  G_TYPE_CHECK_CLASS_CAST((k), gnc_date_picker_get_type (), GNCDatePickerClass)

Modified: gnucash/trunk/src/register/register-gnome/gnucash-grid.c
===================================================================
--- gnucash/trunk/src/register/register-gnome/gnucash-grid.c	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/register/register-gnome/gnucash-grid.c	2012-09-05 10:45:04 UTC (rev 22358)
@@ -30,12 +30,44 @@
 #include "config.h"
 
 #include <string.h>
+#include <libgnomecanvas/libgnomecanvas.h>
 
 #include "gnucash-sheet.h"
+#include "gnucash-sheetP.h"
 #include "gnucash-grid.h"
 #include "gnucash-color.h"
 #include "gnucash-style.h"
 
+
+struct _GnucashGrid
+{
+    GnomeCanvasItem canvas_item;
+
+    GnucashSheet *sheet;
+
+    /* The first and last displayed block */
+    int        top_block;
+    int        bottom_block;
+
+    /* Offset from spreadsheet origin in units */
+    long       top_offset;
+    long       left_offset;
+
+    GdkGC      *grid_gc;    /* Draw grid gc */
+    GdkGC      *fill_gc;    /* Default background fill gc */
+    GdkGC      *gc;     /* Color used for the cell */
+
+    GdkColor   background;
+    GdkColor   grid_color;
+    GdkColor   default_color;
+};
+
+
+struct _GnucashGridClass
+{
+    GnomeCanvasItemClass parent_class;
+};
+
 static GnomeCanvasItem *gnucash_grid_parent_class;
 
 /* Our arguments */

Modified: gnucash/trunk/src/register/register-gnome/gnucash-grid.h
===================================================================
--- gnucash/trunk/src/register/register-gnome/gnucash-grid.h	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/register/register-gnome/gnucash-grid.h	2012-09-05 10:45:04 UTC (rev 22358)
@@ -21,8 +21,6 @@
 #ifndef GNUCASH_GRID_H
 #define GNUCASH_GRID_H
 
-#include <gnome.h>
-
 #include "table-allgui.h"
 #include "gnucash-sheet.h"
 
@@ -32,37 +30,10 @@
 #define GNUCASH_GRID_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GNUCASH_TYPE_GRID, GnucashGridClass))
 #define GNUCASH_IS_GRID(o)    (G_TYPE_CHECK_INSTANCE_TYPE((o), GNUCASH_TYPE_GRID))
 
+typedef struct _GnucashGrid GnucashGrid;
+typedef struct _GnucashGridClass GnucashGridClass;
 
-typedef struct
-{
-    GnomeCanvasItem canvas_item;
 
-    GnucashSheet *sheet;
-
-    /* The first and last displayed block */
-    int        top_block;
-    int        bottom_block;
-
-    /* Offset from spreadsheet origin in units */
-    long       top_offset;
-    long       left_offset;
-
-    GdkGC      *grid_gc;	/* Draw grid gc */
-    GdkGC      *fill_gc;	/* Default background fill gc */
-    GdkGC      *gc;		/* Color used for the cell */
-
-    GdkColor   background;
-    GdkColor   grid_color;
-    GdkColor   default_color;
-} GnucashGrid;
-
-
-typedef struct
-{
-    GnomeCanvasItemClass parent_class;
-} GnucashGridClass;
-
-
 GType      gnucash_grid_get_type (void);
 GtkWidget *gnucash_grid_new 	 (GnucashSheet *sheet);
 

Modified: gnucash/trunk/src/register/register-gnome/gnucash-header.c
===================================================================
--- gnucash/trunk/src/register/register-gnome/gnucash-header.c	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/register/register-gnome/gnucash-header.c	2012-09-05 10:45:04 UTC (rev 22358)
@@ -31,6 +31,7 @@
 #include <string.h>
 
 #include "gnucash-sheet.h"
+#include "gnucash-sheetP.h"
 #include "gnucash-color.h"
 #include "gnucash-style.h"
 #include "gnucash-grid.h"
@@ -419,7 +420,7 @@
     gnucash_sheet_set_col_width (sheet, col, width);
 
     gnucash_cursor_configure (GNUCASH_CURSOR(sheet->cursor));
-    gnc_item_edit_configure (GNC_ITEM_EDIT(sheet->item_editor));
+    gnc_item_edit_configure (gnucash_sheet_get_item_edit (sheet));
 
     gnc_header_reconfigure (header);
     gnucash_sheet_set_scroll_region (sheet);

Modified: gnucash/trunk/src/register/register-gnome/gnucash-header.h
===================================================================
--- gnucash/trunk/src/register/register-gnome/gnucash-header.h	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/register/register-gnome/gnucash-header.h	2012-09-05 10:45:04 UTC (rev 22358)
@@ -21,9 +21,7 @@
 #ifndef GNUCASH_HEADER_H
 #define GNUCASH_HEADER_H
 
-#include <gnome.h>
 
-
 #define GNC_TYPE_HEADER     (gnc_header_get_type ())
 #define GNC_HEADER(o)       (G_TYPE_CHECK_INSTANCE_CAST((o), GNC_TYPE_HEADER, GncHeader))
 #define GNC_HEADER_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GNC_TYPE_HEADER, GncHeaderClass))

Modified: gnucash/trunk/src/register/register-gnome/gnucash-item-edit.c
===================================================================
--- gnucash/trunk/src/register/register-gnome/gnucash-item-edit.c	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/register/register-gnome/gnucash-item-edit.c	2012-09-05 10:45:04 UTC (rev 22358)
@@ -30,7 +30,6 @@
 
 #include "config.h"
 
-#include <gnome.h>
 #include <string.h>
 
 #include "gnucash-color.h"
@@ -38,6 +37,7 @@
 #include "gnucash-item-edit.h"
 #include "gnucash-grid.h"
 #include "gnucash-sheet.h"
+#include "gnucash-sheetP.h"
 #include "gnucash-style.h"
 
 

Modified: gnucash/trunk/src/register/register-gnome/gnucash-item-list.c
===================================================================
--- gnucash/trunk/src/register/register-gnome/gnucash-item-list.c	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/register/register-gnome/gnucash-item-list.c	2012-09-05 10:45:04 UTC (rev 22358)
@@ -29,9 +29,9 @@
 
 #include "config.h"
 
-#include <gnome.h>
 #include <glib/gi18n.h>
 #include <gdk/gdkkeysyms.h>
+#include <libgnomecanvas/libgnomecanvas.h>
 
 #include "gnc-engine.h"
 #include "gnucash-item-list.h"

Modified: gnucash/trunk/src/register/register-gnome/gnucash-item-list.h
===================================================================
--- gnucash/trunk/src/register/register-gnome/gnucash-item-list.h	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/register/register-gnome/gnucash-item-list.h	2012-09-05 10:45:04 UTC (rev 22358)
@@ -23,6 +23,7 @@
 #ifndef GNUCASH_ITEM_LIST_H
 #define GNUCASH_ITEM_LIST_H
 
+#include <libgnomecanvas/libgnomecanvas.h>
 
 #define GNC_TYPE_ITEM_LIST     (gnc_item_list_get_type ())
 #define GNC_ITEM_LIST(o)       (G_TYPE_CHECK_INSTANCE_CAST((o), GNC_TYPE_ITEM_LIST, GncItemList))

Modified: gnucash/trunk/src/register/register-gnome/gnucash-sheet.c
===================================================================
--- gnucash/trunk/src/register/register-gnome/gnucash-sheet.c	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/register/register-gnome/gnucash-sheet.c	2012-09-05 10:45:04 UTC (rev 22358)
@@ -32,8 +32,10 @@
 #include <glib.h>
 #include <glib/gprintf.h>
 #include <gdk/gdkkeysyms.h>
+#include <libgnomecanvas/libgnomecanvas.h>
 
 #include "gnucash-sheet.h"
+#include "gnucash-sheetP.h"
 
 #include "dialog-utils.h"
 #include "gnc-gconf-utils.h"
@@ -2284,7 +2286,30 @@
                           vcell_loc.virt_col);
 }
 
+GncItemEdit *gnucash_sheet_get_item_edit (GnucashSheet *sheet)
+{
+    g_return_val_if_fail (sheet != NULL, NULL);
+    g_return_val_if_fail (GNUCASH_IS_SHEET(sheet), NULL);
 
+    if (sheet->item_editor == NULL)
+        return NULL;
+    else
+        return GNC_ITEM_EDIT (sheet->item_editor);
+}
+
+
+void gnucash_sheet_set_window (GnucashSheet *sheet, GtkWidget *window)
+{
+    g_return_if_fail (sheet != NULL);
+    g_return_if_fail (GNUCASH_IS_SHEET(sheet));
+
+    if (window)
+        g_return_if_fail (GTK_IS_WIDGET(window));
+
+    sheet->window = window;
+}
+
+
 /* This fills up a block from the table; it sets the style and returns
  * true if the style changed. */
 gboolean
@@ -3039,3 +3064,12 @@
     sheet->moved_cb_data = cb_data;
 }
 
+
+GnucashSheet *gnucash_register_get_sheet (GnucashRegister *reg)
+{
+    g_return_val_if_fail (reg != NULL, NULL);
+    g_return_val_if_fail (GNUCASH_IS_REGISTER(reg), NULL);
+
+    return GNUCASH_SHEET(reg->sheet);
+}
+

Modified: gnucash/trunk/src/register/register-gnome/gnucash-sheet.h
===================================================================
--- gnucash/trunk/src/register/register-gnome/gnucash-sheet.h	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/register/register-gnome/gnucash-sheet.h	2012-09-05 10:45:04 UTC (rev 22358)
@@ -21,10 +21,9 @@
 #ifndef GNUCASH_SHEET_H
 #define GNUCASH_SHEET_H
 
-#include <libgnomecanvas/gnome-canvas.h>
 
+#include <gtk/gtk.h>
 #include "split-register-model.h"
-
 #include "table-allgui.h"
 
 #define CELL_VPADDING 2
@@ -44,7 +43,12 @@
 
 
 typedef struct _SheetBlockStyle SheetBlockStyle;
+typedef struct _GnucashSheet GnucashSheet;
+typedef struct _GnucashSheetClass GnucashSheetClass;
+typedef struct _GnucashRegister GnucashRegister;
+typedef struct _GnucashRegisterClass GnucashRegisterClass;
 
+
 typedef struct
 {
     /* The style for this block */
@@ -57,110 +61,6 @@
 } SheetBlock;
 
 
-typedef struct
-{
-    GnomeCanvas canvas;
-
-    GtkWidget *window;
-
-    GtkWidget *popup;
-    gpointer popup_data;
-
-    Table *table;
-
-    GtkWidget *reg;
-
-    gint num_virt_rows;
-    gint num_virt_cols;
-
-    GnomeCanvasItem *header_item;
-    GnomeCanvasItem *cursor;
-    GnomeCanvasItem *grid;
-
-    GHashTable *cursor_styles;
-
-    /* some style information associated to a sheet */
-    GHashTable *dimensions_hash_table;
-
-    GTable *blocks;
-
-    GnomeCanvasItem *item_editor;
-    GtkWidget *entry;
-
-    gboolean   use_theme_colors;
-    gboolean   use_horizontal_lines;
-    gboolean   use_vertical_lines;
-    GtkWidget *header_color;
-    GtkWidget *primary_color;
-    GtkWidget *secondary_color;
-    GtkWidget *split_color;
-
-    gboolean input_cancelled;
-
-    gint top_block;  /* maybe not fully visible */
-    gint bottom_block;
-    gint left_block;
-    gint right_block;
-
-    gint num_visible_blocks;
-    gint num_visible_phys_rows;
-
-    gint width;  /* the width in pixels of the sheet */
-    gint height;
-
-    gint window_height;
-    gint window_width;
-
-    gint cell_borders;
-
-    gint editing;
-
-    guint button; /* mouse button being held down */
-    gboolean grabbed; /* has the grab */
-
-    guint insert_signal;
-    guint delete_signal;
-    guint changed_signal;
-
-    GtkAdjustment *hadj, *vadj;
-
-    GFunc moved_cb;
-    gpointer moved_cb_data;
-
-    /* IMContext */
-    GtkIMContext *im_context;
-    gint preedit_length; /* num of bytes */
-    gint preedit_char_length; /* num of chars in UTF-8 */
-    gint preedit_start_position; /* save preedit start position   *
-                                      * combined with selection start */
-    gint preedit_cursor_position; /* save preedit cursor position */
-    gint preedit_selection_length;
-    PangoAttrList *preedit_attrs;
-    gboolean need_im_reset;
-    gboolean direct_update_cell;
-    guint commit_signal;
-    guint preedit_changed_signal;
-    guint retrieve_surrounding_signal;
-    guint delete_surrounding_signal;
-
-    guint shift_state;
-    guint keyval_state;
-
-} GnucashSheet;
-
-
-typedef struct
-{
-    GtkTable table;
-
-    GtkWidget *vscrollbar;
-    GtkWidget *hscrollbar;
-    GtkWidget *sheet;
-    GtkWidget *header_canvas;
-    gboolean  hscrollbar_visible;
-} GnucashRegister;
-
-
 GType      gnucash_sheet_get_type (void);
 GtkWidget *gnucash_sheet_new (Table *table);
 
@@ -209,6 +109,8 @@
 
 void gnucash_sheet_update_adjustments (GnucashSheet *sheet);
 
+void gnucash_sheet_set_window (GnucashSheet *sheet, GtkWidget *window);
+
 void gnucash_register_goto_virt_cell (GnucashRegister *reg,
                                       VirtualCellLocation vcell_loc);
 
@@ -235,21 +137,8 @@
 void gnucash_register_set_moved_cb (GnucashRegister *reg,
                                     GFunc cb, gpointer cb_data);
 
-typedef struct
-{
-    GnomeCanvasClass parent_class;
-} GnucashSheetClass;
+GnucashSheet *gnucash_register_get_sheet (GnucashRegister *reg);
 
-
-typedef struct
-{
-    GtkTableClass parent_class;
-
-    void (*activate_cursor) (GnucashRegister *reg);
-    void (*redraw_all)      (GnucashRegister *reg);
-    void (*redraw_help)     (GnucashRegister *reg);
-} GnucashRegisterClass;
-
 GdkColor *get_gtkrc_color (GnucashSheet *sheet, RegisterColor field_type);
 
 #endif

Added: gnucash/trunk/src/register/register-gnome/gnucash-sheetP.h
===================================================================
--- gnucash/trunk/src/register/register-gnome/gnucash-sheetP.h	                        (rev 0)
+++ gnucash/trunk/src/register/register-gnome/gnucash-sheetP.h	2012-09-05 10:45:04 UTC (rev 22358)
@@ -0,0 +1,160 @@
+/********************************************************************\
+ * 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, contact:                        *
+ *                                                                  *
+ * Free Software Foundation           Voice:  +1-617-542-5942       *
+ * 51 Franklin Street, Fifth Floor    Fax:    +1-617-542-2652       *
+ * Boston, MA  02110-1301,  USA       gnu at gnu.org                   *
+ *                                                                  *
+\********************************************************************/
+
+#ifndef GNUCASH_SHEETP_H
+#define GNUCASH_SHEETP_H
+
+
+#include "gnucash-sheet.h"
+#include "gnucash-item-edit.h"
+#include <libgnomecanvas/libgnomecanvas.h>
+
+
+/** Type Definitions ***************************************************/
+
+struct _GnucashSheet
+{
+    GnomeCanvas canvas;
+
+    GtkWidget *window;
+
+    GtkWidget *popup;
+    gpointer popup_data;
+
+    Table *table;
+
+    GtkWidget *reg;
+
+    gint num_virt_rows;
+    gint num_virt_cols;
+
+    GnomeCanvasItem *header_item;
+    GnomeCanvasItem *cursor;
+    GnomeCanvasItem *grid;
+
+    GHashTable *cursor_styles;
+
+    /* some style information associated to a sheet */
+    GHashTable *dimensions_hash_table;
+
+    GTable *blocks;
+
+    GnomeCanvasItem *item_editor;
+    GtkWidget *entry;
+
+    gboolean   use_theme_colors;
+    gboolean   use_horizontal_lines;
+    gboolean   use_vertical_lines;
+    GtkWidget *header_color;
+    GtkWidget *primary_color;
+    GtkWidget *secondary_color;
+    GtkWidget *split_color;
+
+    gboolean input_cancelled;
+
+    gint top_block;  /* maybe not fully visible */
+    gint bottom_block;
+    gint left_block;
+    gint right_block;
+
+    gint num_visible_blocks;
+    gint num_visible_phys_rows;
+
+    gint width;  /* the width in pixels of the sheet */
+    gint height;
+
+    gint window_height;
+    gint window_width;
+
+    gint cell_borders;
+
+    gint editing;
+
+    guint button; /* mouse button being held down */
+    gboolean grabbed; /* has the grab */
+
+    guint insert_signal;
+    guint delete_signal;
+    guint changed_signal;
+
+    GtkAdjustment *hadj, *vadj;
+
+    GFunc moved_cb;
+    gpointer moved_cb_data;
+
+    /* IMContext */
+    GtkIMContext *im_context;
+    gint preedit_length; /* num of bytes */
+    gint preedit_char_length; /* num of chars in UTF-8 */
+    gint preedit_start_position; /* save preedit start position   *
+                                      * combined with selection start */
+    gint preedit_cursor_position; /* save preedit cursor position */
+    gint preedit_selection_length;
+    PangoAttrList *preedit_attrs;
+    gboolean need_im_reset;
+    gboolean direct_update_cell;
+    guint commit_signal;
+    guint preedit_changed_signal;
+    guint retrieve_surrounding_signal;
+    guint delete_surrounding_signal;
+
+    guint shift_state;
+    guint keyval_state;
+
+};
+
+
+struct _GnucashSheetClass
+{
+    GnomeCanvasClass parent_class;
+};
+
+
+struct _GnucashRegister
+{
+    GtkTable table;
+
+    GtkWidget *vscrollbar;
+    GtkWidget *hscrollbar;
+    GtkWidget *sheet;
+    GtkWidget *header_canvas;
+    gboolean  hscrollbar_visible;
+};
+
+
+struct _GnucashRegisterClass
+{
+    GtkTableClass parent_class;
+
+    void (*activate_cursor) (GnucashRegister *reg);
+    void (*redraw_all)      (GnucashRegister *reg);
+    void (*redraw_help)     (GnucashRegister *reg);
+};
+
+
+/** Accessor functions *************************************************/
+
+GncItemEdit *gnucash_sheet_get_item_edit (GnucashSheet *sheet);
+//Table       *gnucash_sheet_get_table (GnucashSheet *sheet);
+//gint         gnucash_sheet_get_num_virt_rows (GnucashSheet *sheet);
+//gint         gnucash_sheet_get_num_virt_cols (GnucashSheet *sheet);
+
+#endif
+

Modified: gnucash/trunk/src/register/register-gnome/gnucash-style.c
===================================================================
--- gnucash/trunk/src/register/register-gnome/gnucash-style.c	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/register/register-gnome/gnucash-style.c	2012-09-05 10:45:04 UTC (rev 22358)
@@ -23,12 +23,11 @@
  */
 
 #include "config.h"
-
-#include <gnome.h>
-
 #include "gnucash-color.h"
 #include "gnucash-grid.h"
 #include "gnucash-item-edit.h"
+#include "gnucash-sheet.h"
+#include "gnucash-sheetP.h"
 #include "gnucash-style.h"
 #include "gnc-gconf-utils.h"
 #include "gnc-engine.h"		// For debugging, e.g. ENTER(), LEAVE()

Modified: gnucash/trunk/src/register/register-gnome/gnucash-style.h
===================================================================
--- gnucash/trunk/src/register/register-gnome/gnucash-style.h	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/register/register-gnome/gnucash-style.h	2012-09-05 10:45:04 UTC (rev 22358)
@@ -21,8 +21,6 @@
 #ifndef GNUCASH_STYLE_H
 #define GNUCASH_STYLE_H
 
-#include <gnome.h>
-
 #include "gnucash-sheet.h"
 
 typedef struct

Modified: gnucash/trunk/src/register/register-gnome/pricecell-gnome.c
===================================================================
--- gnucash/trunk/src/register/register-gnome/pricecell-gnome.c	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/register/register-gnome/pricecell-gnome.c	2012-09-05 10:45:04 UTC (rev 22358)
@@ -28,7 +28,6 @@
 
 #include "config.h"
 
-#include <gnome.h>
 #include <locale.h>
 #include <gdk/gdkkeysyms.h>
 
@@ -164,11 +163,10 @@
     end = MAX(*start_selection, *end_selection);
 
     /* length in bytes, not chars. do not use g_utf8_strlen. */
-    buf = malloc(strlen(bcell->value) + 1);
-    memset(buf, 0, strlen(bcell->value) + 1);
+    buf = g_malloc0(strlen(bcell->value) + 1);
     g_utf8_strncpy(buf, bcell->value, start);
     g_string_append(newval_gs, buf);
-    free(buf);
+    g_free(buf);
 
     g_string_append_unichar(newval_gs, decimal_point);
 

Modified: gnucash/trunk/src/register/register-gnome/quickfillcell-gnome.c
===================================================================
--- gnucash/trunk/src/register/register-gnome/quickfillcell-gnome.c	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/register/register-gnome/quickfillcell-gnome.c	2012-09-05 10:45:04 UTC (rev 22358)
@@ -29,7 +29,6 @@
 
 #include "config.h"
 
-#include <gnome.h>
 #include <string.h>
 #include <gdk/gdkkeysyms.h>
 

Modified: gnucash/trunk/src/register/register-gnome/table-gnome.c
===================================================================
--- gnucash/trunk/src/register/register-gnome/table-gnome.c	2012-09-05 10:44:51 UTC (rev 22357)
+++ gnucash/trunk/src/register/register-gnome/table-gnome.c	2012-09-05 10:45:04 UTC (rev 22358)
@@ -39,13 +39,13 @@
 
 #include "config.h"
 
-#include <gnome.h>
 #include <libguile.h>
 #include <stdio.h>
 #include <stdlib.h>
 #include <string.h>
 
 #include "gnucash-sheet.h"
+#include "gnucash-sheetP.h"
 #include "gnucash-style.h"
 #include "table-allgui.h"
 #include "table-gnome.h"



More information about the gnucash-changes mailing list