[gnumeric] Kittens: bring out your dead!



commit 50afbaac8535494dd26ecb51d2a860283de00e0f
Author: Morten Welinder <terra gnome org>
Date:   Wed Nov 10 15:48:19 2010 -0500

    Kittens: bring out your dead!

 configure.in                     |    7 +-
 plugins/excel/ms-obj.c           |   14 ++--
 src/commands.c                   |   14 +----
 src/dead-kittens.h               |   50 ++++++++++++++-
 src/dialogs/dialog-autoformat.c  |    6 +-
 src/dialogs/dialog-cell-format.c |   11 +---
 src/gnm-pane.c                   |   11 ++--
 src/gui-util.c                   |    8 ++-
 src/io-context-gtk.c             |    3 +-
 src/sheet-control-gui.c          |  104 +++++++++++++++----------------
 src/sheet-object-widget.c        |  127 +++++++++++++++++++++++--------------
 src/wbc-gtk.c                    |   11 ++--
 12 files changed, 213 insertions(+), 153 deletions(-)
---
diff --git a/configure.in b/configure.in
index 69f5d0f..dda52d1 100644
--- a/configure.in
+++ b/configure.in
@@ -688,16 +688,17 @@ LIBS="$GNUMERIC_LIBS $LIBS"
 
 AC_CHECK_FUNCS(g_option_context_set_delocalize g_hash_table_get_keys)
 AC_CHECK_FUNCS(gdk_cairo_set_source_rgba)
-AC_CHECK_FUNCS(gtk_adjustment_configure gtk_adjustment_set_lower gtk_adjustment_set_upper gtk_adjustment_get_page_size)
+AC_CHECK_FUNCS(gtk_adjustment_configure gtk_adjustment_get_page_increment gtk_adjustment_get_page_size gtk_adjustment_get_lower gtk_adjustment_get_upper gtk_adjustment_get_step_increment gtk_adjustment_set_lower gtk_adjustment_set_upper gtk_adjustment_set_page_increment gtk_adjustment_set_step_increment)
 AC_CHECK_FUNCS(gtk_cell_renderer_get_alignment gtk_cell_renderer_get_padding)
 AC_CHECK_FUNCS(gtk_cell_renderer_text_get_background_set gtk_cell_renderer_text_get_foreground_set gtk_cell_renderer_text_get_editable)
 AC_CHECK_FUNCS(gtk_dialog_get_content_area gtk_dialog_get_action_area)
-AC_CHECK_FUNCS(gtk_entry_get_text_length gtk_entry_set_icon_from_stock gtk_entry_get_buffer gtk_entry_get_text_area gtk_entry_set_editing_cancelled)
+AC_CHECK_FUNCS(gtk_entry_get_text_length gtk_entry_set_icon_from_stock gtk_entry_get_buffer gtk_entry_get_text_area gtk_entry_set_editing_cancelled gtk_entry_get_overwrite_mode)
 AC_CHECK_FUNCS(gtk_layout_get_bin_window)
 AC_CHECK_FUNCS(gtk_orientable_set_orientation)
 AC_CHECK_FUNCS(gtk_table_get_size)
 AC_CHECK_FUNCS(gtk_tree_view_column_get_button)
-AC_CHECK_FUNCS(gtk_widget_get_visible gtk_widget_set_visible gtk_widget_get_state gtk_widget_is_toplevel gtk_widget_get_window gtk_widget_get_can_focus gtk_widget_has_focus gtk_widget_get_style gtk_widget_get_allocation gtk_widget_is_sensitive gtk_widget_set_can_focus gtk_widget_get_realized)
+AC_CHECK_FUNCS(gtk_widget_get_visible gtk_widget_set_visible gtk_widget_get_state gtk_widget_is_toplevel gtk_widget_get_window gtk_widget_get_can_focus gtk_widget_has_focus gtk_widget_get_style gtk_widget_get_allocation gtk_widget_is_sensitive gtk_widget_set_can_focus gtk_widget_set_can_default gtk_widget_get_realized)
+AC_CHECK_FUNCS(gtk_window_get_default_widget)
 AC_CHECK_FUNCS(gsf_infile_msvba_steal_modules gsf_open_pkg_foreach_rel )
 AC_CHECK_FUNCS(pango_font_map_create_context)
 
diff --git a/plugins/excel/ms-obj.c b/plugins/excel/ms-obj.c
index 7cf460e..c36d874 100644
--- a/plugins/excel/ms-obj.c
+++ b/plugins/excel/ms-obj.c
@@ -1560,11 +1560,11 @@ ms_objv8_write_adjustment (BiffPut *bp,
 	GSF_LE_SET_GUINT16 (data + 2, sizeof (data) - 4);
 	GSF_LE_SET_GUINT32 (data + 4, 0); /* Unused */
 #define SQUEEZE(f) ((guint16)CLAMP(f, -32768, 32767))
-	GSF_LE_SET_GUINT16 (data +  8, SQUEEZE (adj->value));
-	GSF_LE_SET_GINT16  (data + 10, SQUEEZE (adj->lower));
-	GSF_LE_SET_GINT16  (data + 12, SQUEEZE (adj->upper + adj->step_increment));
-	GSF_LE_SET_GINT16  (data + 14, SQUEEZE (adj->step_increment));
-	GSF_LE_SET_GINT16  (data + 16, SQUEEZE (adj->page_increment));
+	GSF_LE_SET_GUINT16 (data +  8, SQUEEZE (gtk_adjustment_get_value (adj)));
+	GSF_LE_SET_GINT16  (data + 10, SQUEEZE (gtk_adjustment_get_lower (adj)));
+	GSF_LE_SET_GINT16  (data + 12, SQUEEZE (gtk_adjustment_get_upper (adj) + gtk_adjustment_get_step_increment (adj)));
+	GSF_LE_SET_GINT16  (data + 14, SQUEEZE (gtk_adjustment_get_step_increment (adj)));
+	GSF_LE_SET_GINT16  (data + 16, SQUEEZE (gtk_adjustment_get_page_increment (adj)));
 #undef SQUEEZE
 	GSF_LE_SET_GINT16  (data + 18, !!horiz);
 	GSF_LE_SET_GINT16  (data + 20, 15);  /* widget in pixels */
@@ -1673,8 +1673,8 @@ ms_objv8_write_list (BiffPut *bp,
 	if (0 && macro_nexpr)
 		ms_objv8_write_macro_ref (bp, esheet, macro_nexpr);
 	ms_objv8_write_list_data (bp, esheet, data_texpr,
-				  (guint16)adj->upper - 1,
-				  (guint16)adj->value);
+				  (guint16)gtk_adjustment_get_upper (adj) - 1,
+				  (guint16)gtk_adjustment_get_value (adj));
 }
 
 void
diff --git a/src/commands.c b/src/commands.c
index 0581144..e8039b8 100644
--- a/src/commands.c
+++ b/src/commands.c
@@ -76,6 +76,7 @@
 #include "tools/tabulate.h"
 #include "wbc-gtk.h"
 #include "undo.h"
+#include <dead-kittens.h>
 
 #include <goffice/goffice.h>
 #include <gsf/gsf-doc-meta-data.h>
@@ -7624,19 +7625,6 @@ cmd_so_set_checkbox (WorkbookControl *wbc,
 #define CMD_SO_SET_ADJUSTMENT_TYPE (cmd_so_set_adjustment_get_type ())
 #define CMD_SO_SET_ADJUSTMENT(o)   (G_TYPE_CHECK_INSTANCE_CAST ((o), CMD_SO_SET_ADJUSTMENT_TYPE, CmdSOSetAdjustment))
 
-#ifndef HAVE_GTK_ADJUSTMENT_CONFIGURE
-#       define gtk_adjustment_configure(adjustment,value,lower,upper,step_increment,page_increment,page_size) \
-		g_object_set (G_OBJECT (adjustment), "value", (double) (value), "lower", (double) (lower), "upper", (double) (upper), \
-				"step-increment", (double) (step_increment), "page-increment", (double) (page_increment), \
-				"page-size", (double) (page_size), NULL)
-#       define gtk_adjustment_get_value(adjustment)     (adjustment)->value
-#       define gtk_adjustment_get_lower(adjustment)     (adjustment)->lower
-#       define gtk_adjustment_get_upper(adjustment)     (adjustment)->upper
-#       define gtk_adjustment_get_step_increment(adjustment)     (adjustment)->step_increment
-#       define gtk_adjustment_get_page_increment(adjustment)     (adjustment)->page_increment
-#       define gtk_adjustment_get_page_size(adjustment)     (adjustment)->page_size
-#endif
-
 typedef struct {
 	GnmCommand cmd;
 	SheetObject *so;
diff --git a/src/dead-kittens.h b/src/dead-kittens.h
index 35b6ba2..5020e8b 100644
--- a/src/dead-kittens.h
+++ b/src/dead-kittens.h
@@ -61,6 +61,10 @@
 #  endif
 #endif
 
+#ifndef HAVE_GTK_ENTRY_GET_OVERWRITE_MODE
+#define gtk_entry_get_overwrite_mode(_e_) ((_e_)->overwrite_mode)
+#endif
+
 /* This function does not exist in gtk+ yet.  634342.  */
 #ifndef HAVE_GTK_ENTRY_SET_EDITING_CANCELLED
 #define gtk_entry_set_editing_cancelled(_e_,_b_) \
@@ -107,6 +111,18 @@
 #define gtk_widget_has_focus(w) GTK_WIDGET_HAS_FOCUS (w)
 #endif
 
+#ifndef HAVE_GTK_WIDGET_SET_CAN_DEFAULT
+#define gtk_widget_set_can_default(w,t)					\
+	do {								\
+	if (t) GTK_WIDGET_SET_FLAGS ((w), GTK_CAN_DEFAULT);	\
+		else GTK_WIDGET_UNSET_FLAGS ((w), GTK_CAN_DEFAULT);	\
+	} while (0)
+#endif
+
+#ifndef HAVE_GTK_WIDGET_GET_CAN_FOCUS
+#define gtk_widget_get_can_focus(_w_) GTK_WIDGET_CAN_FOCUS((_w_))
+#endif
+
 #ifndef HAVE_GTK_WIDGET_SET_CAN_FOCUS
 #define gtk_widget_set_can_focus(w,t)					\
 	do {								\
@@ -139,20 +155,46 @@
                 NULL)
 #endif
 
+#ifndef HAVE_GTK_ADJUSTMENT_GET_LOWER
+#define gtk_adjustment_get_lower(_a) ((_a)->lower)
+#endif
+
+#ifndef HAVE_GTK_ADJUSTMENT_GET_UPPER
+#define gtk_adjustment_get_lower(_a) ((_a)->upper)
+#endif
+
 #ifndef HAVE_GTK_ADJUSTMENT_GET_PAGE_SIZE
 #define gtk_adjustment_get_page_size(_a) ((_a)->page_size)
 #endif
 
+#ifndef HAVE_GTK_ADJUSTMENT_GET_PAGE_INCREMENT
+#define gtk_adjustment_get_page_increment(_a) ((_a)->page_increment)
+#endif
+
+#ifndef HAVE_GTK_ADJUSTMENT_GET_STEP_INCREMENT
+#define gtk_adjustment_get_step_increment(_a) ((_a)->step_increment)
+#endif
+
 #ifndef HAVE_GTK_ADJUSTMENT_SET_LOWER
-#define gtk_adjustment_set_lower (_a,_l) \
+#define gtk_adjustment_set_lower(_a,_l) \
   g_object_set ((_a), "lower", (double)(_l), NULL)
 #endif
 
 #ifndef HAVE_GTK_ADJUSTMENT_SET_UPPER
-#define gtk_adjustment_set_upper (_a,_u) \
+#define gtk_adjustment_set_upper(_a,_u) \
   g_object_set ((_a), "upper", (double)(_u), NULL)
 #endif
 
+#ifndef HAVE_GTK_ADJUSTMENT_PAGE_INCREMENT
+#define gtk_adjustment_set_page_increment(_a,_pi) \
+  g_object_set ((_a), "page-increment", (double)(_pi), NULL)
+#endif
+
+#ifndef HAVE_GTK_ADJUSTMENT_STEP_INCREMENT
+#define gtk_adjustment_set_step_increment(_a,_si) \
+  g_object_set ((_a), "step-increment", (double)(_si), NULL)
+#endif
+
 #ifndef HAVE_GTK_TABLE_GET_SIZE
 #  ifdef HAVE_GTK_TABLE_NROWS
 #     define gtk_table_get_size(_t,_r,_c) do {	\
@@ -183,4 +225,8 @@
 #  endif
 #endif
 
+#ifndef HAVE_GTK_WINDOW_GET_DEFAULT_WIDGET
+#define gtk_window_get_default_widget(_w_) ((_w_)->default_widget)
+#endif
+
 #endif
diff --git a/src/dialogs/dialog-autoformat.c b/src/dialogs/dialog-autoformat.c
index 3bcdb8b..a2ccff3 100644
--- a/src/dialogs/dialog-autoformat.c
+++ b/src/dialogs/dialog-autoformat.c
@@ -244,10 +244,8 @@ templates_load (AutoFormatState *state)
 	/*
 	 * Hide the scrollbar when it's not needed
 	 */
-	if (n_templates > NUM_PREVIEWS)
-		gtk_widget_show (GTK_WIDGET (state->scroll));
-	else
-		gtk_widget_hide (GTK_WIDGET (state->scroll));
+	gtk_widget_set_visible (GTK_WIDGET (state->scroll),
+				n_templates > NUM_PREVIEWS);
 
 	return TRUE;
 }
diff --git a/src/dialogs/dialog-cell-format.c b/src/dialogs/dialog-cell-format.c
index 6bce5e4..79dea34 100644
--- a/src/dialogs/dialog-cell-format.c
+++ b/src/dialogs/dialog-cell-format.c
@@ -2383,14 +2383,9 @@ set_initial_focus (FormatState *s)
 	else
 		focus_widget = NULL;
 
-
-	if (focus_widget
-#ifdef HAVE_GTK_WIDGET_GET_CAN_FOCUS
-	    && gtk_widget_get_can_focus (focus_widget)
-#else
-	    && GTK_WIDGET_CAN_FOCUS (focus_widget)
-#endif
-	    && gtk_widget_is_sensitive (focus_widget))
+	if (focus_widget &&
+	    gtk_widget_get_can_focus (focus_widget) &&
+	    gtk_widget_is_sensitive (focus_widget))
 		gtk_widget_grab_focus (focus_widget);
 }
 
diff --git a/src/gnm-pane.c b/src/gnm-pane.c
index a0aca68..fc84075 100644
--- a/src/gnm-pane.c
+++ b/src/gnm-pane.c
@@ -685,13 +685,14 @@ gnm_pane_realize (GtkWidget *w)
 
 	/* Set the default background color of the canvas itself to white.
 	 * This makes the redraws when the canvas scrolls flicker less. */
-	style = gtk_style_copy (w->style);
+	style = gtk_style_copy (gtk_widget_get_style (w));
 	style->bg[GTK_STATE_NORMAL] = style->white;
 	gtk_widget_set_style (w, style);
 	g_object_unref (style);
 
-	gtk_im_context_set_client_window (GNM_PANE (w)->im_context,
-					  gtk_widget_get_toplevel (w)->window);
+	gtk_im_context_set_client_window
+		(GNM_PANE (w)->im_context,
+		 gtk_widget_get_window (gtk_widget_get_toplevel (w)));
 }
 
 static void
@@ -747,7 +748,7 @@ cb_gnm_pane_commit (GtkIMContext *context, char const *str, GnmPane *pane)
 		gtk_editable_delete_selection (editable);
 	else {
 		tmp_pos = gtk_editable_get_position (editable);
-		if (GTK_ENTRY (editable)->overwrite_mode)
+		if (gtk_entry_get_overwrite_mode (GTK_ENTRY (editable)))
 			gtk_editable_delete_text (editable,tmp_pos,tmp_pos+1);
 	}
 
@@ -949,7 +950,7 @@ gnm_pane_init (GnmPane *pane)
 	pane->im_first_focus = TRUE;
 
 	gtk_widget_set_can_focus (GTK_WIDGET (canvas), TRUE);
-	GTK_WIDGET_SET_FLAGS (canvas, GTK_CAN_DEFAULT);
+	gtk_widget_set_can_default (GTK_WIDGET (canvas), TRUE);
 
 	g_signal_connect (G_OBJECT (pane->im_context), "commit",
 			  G_CALLBACK (cb_gnm_pane_commit), pane);
diff --git a/src/gui-util.c b/src/gui-util.c
index b210823..0c569d1 100644
--- a/src/gui-util.c
+++ b/src/gui-util.c
@@ -227,6 +227,7 @@ static void
 cb_save_sizes (GtkWidget *dialog, const char *key)
 {
 	GdkRectangle *r;
+	GtkAllocation da;
 	GdkScreen *screen = gtk_widget_get_screen (dialog);
 	GHashTable *h = g_object_get_data (G_OBJECT (screen),
 					   SAVE_SIZES_SCREEN_KEY);
@@ -247,7 +248,8 @@ cb_save_sizes (GtkWidget *dialog, const char *key)
 					(GDestroyNotify)g_hash_table_destroy);
 	}
 
-	r = g_memdup (&dialog->allocation, sizeof (dialog->allocation));
+	gtk_widget_get_allocation (dialog, &da);
+	r = g_memdup (&da, sizeof (da));
 	gdk_window_get_position (gtk_widget_get_window (dialog), &r->x, &r->y);
 	g_hash_table_replace (h, g_strdup (key), r);
 }
@@ -350,12 +352,12 @@ gnumeric_dialog_raise_if_exists (WBCGtk *wbcg, char const *key)
 static gboolean
 cb_activate_default (GtkWindow *window)
 {
+	GtkWidget *dw = gtk_window_get_default_widget (window);
 	/*
 	 * gtk_window_activate_default has a bad habit of trying
 	 * to activate the focus widget.
 	 */
-	return window->default_widget &&
-		gtk_widget_is_sensitive (window->default_widget) &&
+	return dw && gtk_widget_is_sensitive (dw) &&
 		gtk_window_activate_default (window);
 }
 
diff --git a/src/io-context-gtk.c b/src/io-context-gtk.c
index 0bcff14..ed9e7d1 100644
--- a/src/io-context-gtk.c
+++ b/src/io-context-gtk.c
@@ -97,7 +97,8 @@ cb_realize (GtkWindow *window, void *dummy)
 
 	/* In a Xinerama setup, we want the geometry of the actual display
 	 * unit, if available. See bug 59902.  */
-	gdk_screen_get_monitor_geometry (window->screen, 0, &rect);
+	gdk_screen_get_monitor_geometry (gtk_window_get_screen (window),
+					 0, &rect);
 	sx = rect.width;
 	sy = rect.height;
 	gtk_widget_get_allocation (GTK_WIDGET (window), &allocation);
diff --git a/src/sheet-control-gui.c b/src/sheet-control-gui.c
index c351470..3c4f2a9 100644
--- a/src/sheet-control-gui.c
+++ b/src/sheet-control-gui.c
@@ -424,34 +424,31 @@ scg_scrollbar_config (SheetControl const *sc)
 		int max_col = last_col;
 		int max_row = last_row;
 
-		if (sv_is_frozen (sv)) {
-			ha->lower = sv->unfrozen_top_left.col;
-			va->lower = sv->unfrozen_top_left.row;
-		} else
-			ha->lower = va->lower = 0;
-
 		if (max_row < sheet->rows.max_used)
 			max_row = sheet->rows.max_used;
 		if (max_row < sheet->max_object_extent.row)
 			max_row = sheet->max_object_extent.row;
-		va->upper = max_row + 1;
-		va->value = pane->first.row;
-		va->page_size = last_row - pane->first.row + 1;
-		va->page_increment = MAX (va->page_size - 3.0, 1.0);
-		va->step_increment = 1;
+		gtk_adjustment_configure
+			(va,
+			 pane->first.row,
+			 sv_is_frozen (sv) ? sv->unfrozen_top_left.row : 0,
+			 max_row + 1,
+			 1,
+			 MAX (gtk_adjustment_get_page_size (va) - 3.0, 1.0),
+			 last_row - pane->first.row + 1);
 
 		if (max_col < sheet->cols.max_used)
 			max_col = sheet->cols.max_used;
 		if (max_col < sheet->max_object_extent.col)
 			max_col = sheet->max_object_extent.col;
-		ha->upper = max_col + 1;
-		ha->page_size = last_col - pane->first.col + 1;
-		ha->value = pane->first.col;
-		ha->page_increment = MAX (ha->page_size - 3.0, 1.0);
-		ha->step_increment = 1;
-
-		gtk_adjustment_changed (va);
-		gtk_adjustment_changed (ha);
+		gtk_adjustment_configure
+			(ha,
+			 pane->first.col,
+			 sv_is_frozen (sv) ? sv->unfrozen_top_left.col : 0,
+			 max_col + 1,
+			 1,
+			 MAX (gtk_adjustment_get_page_size (ha) - 3.0, 1.0),
+			 last_col - pane->first.col + 1);
 	}
 }
 
@@ -563,7 +560,7 @@ cb_select_all_btn_expose (GtkWidget *widget, GdkEventExpose *event, SheetControl
 
 	/* This should be keep in sync with item_bar_cell code (item-bar.c) */
 	gdk_draw_rectangle (gtk_widget_get_window (widget),
-			    widget->style->bg_gc[GTK_STATE_ACTIVE],
+			    gtk_widget_get_style (widget)->bg_gc[GTK_STATE_ACTIVE],
 			    TRUE,
 			    offset + 1, 1, widget->allocation.width - 1, widget->allocation.height - 1);
 	/* The widget parameters could be NULL, but if so some themes would emit a warning.
@@ -590,34 +587,43 @@ cb_select_all_btn_event (GtkWidget *widget, GdkEvent *event, SheetControlGUI *sc
 static void
 cb_vscrollbar_value_changed (GtkRange *range, SheetControlGUI *scg)
 {
-	scg_set_top_row (scg, range->adjustment->value);
+	GtkAdjustment *adj = gtk_range_get_adjustment (range);
+	scg_set_top_row (scg, gtk_adjustment_get_value (adj));
 }
+
 static void
 cb_hscrollbar_value_changed (GtkRange *range, SheetControlGUI *scg)
 {
-	scg_set_left_col (scg, range->adjustment->value);
+	GtkAdjustment *adj = gtk_range_get_adjustment (range);
+	scg_set_left_col (scg, gtk_adjustment_get_value (adj));
 }
 
 static void
 cb_hscrollbar_adjust_bounds (GtkRange *range, gdouble new_value, Sheet *sheet)
 {
-	gdouble limit = range->adjustment->upper - range->adjustment->page_size;
-	if (range->adjustment->upper < gnm_sheet_get_max_cols (sheet) && new_value >= limit) {
-		range->adjustment->upper = new_value + range->adjustment->page_size + 1;
-		if (range->adjustment->upper > gnm_sheet_get_max_cols (sheet))
-			range->adjustment->upper = gnm_sheet_get_max_cols (sheet);
-		gtk_adjustment_changed (range->adjustment);
+	GtkAdjustment *adj = gtk_range_get_adjustment (range);
+	double upper = gtk_adjustment_get_upper (adj);
+	double page_size = gtk_adjustment_get_page_size (adj);
+	gdouble limit = upper - page_size;
+	if (upper < gnm_sheet_get_max_cols (sheet) && new_value >= limit) {
+		upper = new_value + page_size + 1;
+		if (upper > gnm_sheet_get_max_cols (sheet))
+			upper = gnm_sheet_get_max_cols (sheet);
+		gtk_adjustment_set_upper (adj, upper);
 	}
 }
 static void
 cb_vscrollbar_adjust_bounds (GtkRange *range, gdouble new_value, Sheet *sheet)
 {
-	gdouble limit = range->adjustment->upper - range->adjustment->page_size;
-	if (range->adjustment->upper < gnm_sheet_get_max_rows (sheet) && new_value >= limit) {
-		range->adjustment->upper = new_value + range->adjustment->page_size + 1;
-		if (range->adjustment->upper > gnm_sheet_get_max_rows (sheet))
-			range->adjustment->upper = gnm_sheet_get_max_rows (sheet);
-		gtk_adjustment_changed (range->adjustment);
+	GtkAdjustment *adj = gtk_range_get_adjustment (range);
+	double upper = gtk_adjustment_get_upper (adj);
+	double page_size = gtk_adjustment_get_page_size (adj);
+	gdouble limit = upper - page_size;
+	if (upper < gnm_sheet_get_max_rows (sheet) && new_value >= limit) {
+		upper = new_value + page_size + 1;
+		if (upper > gnm_sheet_get_max_rows (sheet))
+			upper = gnm_sheet_get_max_rows (sheet);
+		gtk_adjustment_set_upper (adj, upper);
 	}
 }
 
@@ -1740,37 +1746,27 @@ scg_adjust_preferences (SheetControlGUI *scg)
 
 	SCG_FOREACH_PANE (scg, pane, {
 		if (pane->col.canvas != NULL) {
-			if (sheet->hide_col_header)
-				gtk_widget_hide (GTK_WIDGET (pane->col.alignment));
-			else
-				gtk_widget_show (GTK_WIDGET (pane->col.alignment));
+			gtk_widget_set_visible (GTK_WIDGET (pane->col.alignment),
+						!sheet->hide_col_header);
 		}
 
 		if (pane->row.canvas != NULL) {
-			if (sheet->hide_row_header)
-				gtk_widget_hide (GTK_WIDGET (pane->row.alignment));
-			else
-				gtk_widget_show (GTK_WIDGET (pane->row.alignment));
+			gtk_widget_set_visible (GTK_WIDGET (pane->row.alignment),
+						!sheet->hide_row_header);
 		}
 	});
 
 	if (scg->corner) {
-		if (sheet->hide_col_header || sheet->hide_row_header)
-			gtk_widget_hide (GTK_WIDGET (scg->corner));
-		else
-			gtk_widget_show (GTK_WIDGET (scg->corner));
+		gtk_widget_set_visible (GTK_WIDGET (scg->corner),
+					!(sheet->hide_col_header || sheet->hide_row_header));
 
 		if (scg_wbc (scg) != NULL) {
 			WorkbookView *wbv = wb_control_view (scg_wbc (scg));
-			if (wbv->show_horizontal_scrollbar)
-				gtk_widget_show (scg->hs);
-			else
-				gtk_widget_hide (scg->hs);
+			gtk_widget_set_visible (scg->hs,
+						wbv->show_horizontal_scrollbar);
 
-			if (wbv->show_vertical_scrollbar)
-				gtk_widget_show (scg->vs);
-			else
-				gtk_widget_hide (scg->vs);
+			gtk_widget_set_visible (scg->vs,
+						wbv->show_vertical_scrollbar);
 		}
 	}
 }
diff --git a/src/sheet-object-widget.c b/src/sheet-object-widget.c
index 55fd43f..9d6b654 100644
--- a/src/sheet-object-widget.c
+++ b/src/sheet-object-widget.c
@@ -345,7 +345,7 @@ static GSF_CLASS (SheetObjectWidget, sheet_object_widget,
 static WorkbookControl *
 widget_wbc (GtkWidget *widget)
 {
-	return scg_wbc (GNM_SIMPLE_CANVAS (widget->parent)->scg);
+	return scg_wbc (GNM_SIMPLE_CANVAS (gtk_widget_get_parent (widget))->scg);
 }
 
 
@@ -1098,8 +1098,9 @@ sheet_widget_button_set_markup (SheetObject *so, PangoAttrList *markup)
 	for (ptr = swb->sow.so.realized_list; ptr != NULL; ptr = ptr->next) {
 		SheetObjectView *view = ptr->data;
 		GocWidget *item = get_goc_widget (view);
-		gtk_label_set_attributes (GTK_LABEL (GTK_BIN (item->widget)->child),
-					  swb->markup);
+		GtkLabel *lab =
+			GTK_LABEL (gtk_bin_get_child (GTK_BIN (item->widget)));
+		gtk_label_set_attributes (lab, swb->markup);
 	}
 }
 
@@ -1213,10 +1214,8 @@ sheet_widget_adjustment_set_value (SheetWidgetAdjustment *swa, double new_val)
 {
 	if (swa->being_updated)
 		return;
-	swa->adjustment->value = new_val;
-
 	swa->being_updated = TRUE;
-	gtk_adjustment_value_changed (swa->adjustment);
+	gtk_adjustment_set_value (swa->adjustment, new_val);
 	swa->being_updated = FALSE;
 }
 
@@ -1287,7 +1286,7 @@ cb_adjustment_widget_value_changed (GtkWidget *widget,
 	if (so_get_ref (SHEET_OBJECT (swa), &ref, TRUE) != NULL) {
 		GnmCell *cell = sheet_cell_fetch (ref.sheet, ref.col, ref.row);
 		/* TODO : add more control for precision, XL is stupid */
-		int new_val = gnm_fake_round (swa->adjustment->value);
+		int new_val = gnm_fake_round (gtk_adjustment_get_value (swa->adjustment));
 		if (cell->value != NULL &&
 		    VALUE_IS_FLOAT (cell->value) &&
 		    value_get_as_float (cell->value) == new_val)
@@ -1420,11 +1419,14 @@ sheet_widget_adjustment_copy (SheetObject *dst, SheetObject const *src)
 	dst_adjust = dst_swa->adjustment;
 	src_adjust = src_swa->adjustment;
 
-	dst_adjust->lower = src_adjust->lower;
-	dst_adjust->upper = src_adjust->upper;
-	dst_adjust->value = src_adjust->value;
-	dst_adjust->step_increment = src_adjust->step_increment;
-	dst_adjust->page_increment = src_adjust->page_increment;
+	gtk_adjustment_configure
+		(dst_adjust,
+		 gtk_adjustment_get_value (src_adjust),
+		 gtk_adjustment_get_lower (src_adjust),
+		 gtk_adjustment_get_upper (src_adjust),
+		 gtk_adjustment_get_step_increment (src_adjust),
+		 gtk_adjustment_get_page_increment (src_adjust),
+		 gtk_adjustment_get_page_size (src_adjust));
 }
 
 typedef struct {
@@ -1449,16 +1451,20 @@ static void
 cb_adjustment_set_focus (GtkWidget *window, GtkWidget *focus_widget,
 			 AdjustmentConfigState *state)
 {
+	GtkWidget *ofp;
+
 	/* Note:  half of the set-focus action is handle by the default
 	 *        callback installed by wbc_gtk_attach_guru. */
 
+	ofp = state->old_focus
+		? gtk_widget_get_parent (state->old_focus)
+		: NULL;
 	/* Force an update of the content in case it needs tweaking (eg make it
 	 * absolute) */
-	if (state->old_focus != NULL &&
-	    IS_GNM_EXPR_ENTRY (state->old_focus->parent)) {
+	if (ofp && IS_GNM_EXPR_ENTRY (ofp)) {
 		GnmParsePos  pp;
 		GnmExprTop const *texpr = gnm_expr_entry_parse (
-			GNM_EXPR_ENTRY (state->old_focus->parent),
+			GNM_EXPR_ENTRY (ofp),
 			parse_pos_init_sheet (&pp, state->sheet),
 			NULL, FALSE, GNM_EXPR_PARSE_DEFAULT);
 		if (texpr != NULL)
@@ -1576,13 +1582,17 @@ sheet_widget_adjustment_user_config_impl (SheetObject *so, SheetControl *sc, cha
 
 	/* TODO : This is silly, no need to be similar to XL here. */
 	state->min = go_gtk_builder_get_widget (gui, "spin_min");
-	gtk_spin_button_set_value (GTK_SPIN_BUTTON (state->min), swa->adjustment->lower);
+	gtk_spin_button_set_value (GTK_SPIN_BUTTON (state->min),
+				   gtk_adjustment_get_lower (swa->adjustment));
 	state->max = go_gtk_builder_get_widget (gui, "spin_max");
-	gtk_spin_button_set_value (GTK_SPIN_BUTTON (state->max), swa->adjustment->upper);
+	gtk_spin_button_set_value (GTK_SPIN_BUTTON (state->max),
+				   gtk_adjustment_get_upper (swa->adjustment));
 	state->inc = go_gtk_builder_get_widget (gui, "spin_increment");
-	gtk_spin_button_set_value (GTK_SPIN_BUTTON (state->inc), swa->adjustment->step_increment);
+	gtk_spin_button_set_value (GTK_SPIN_BUTTON (state->inc),
+				   gtk_adjustment_get_step_increment (swa->adjustment));
 	state->page = go_gtk_builder_get_widget (gui, "spin_page");
-	gtk_spin_button_set_value (GTK_SPIN_BUTTON (state->page), swa->adjustment->page_increment);
+	gtk_spin_button_set_value (GTK_SPIN_BUTTON (state->page),
+				   gtk_adjustment_get_page_increment (swa->adjustment));
 
 	gnumeric_editable_enters (GTK_WINDOW (state->dialog),
 				  GTK_WIDGET (state->expression));
@@ -1654,11 +1664,21 @@ sheet_widget_adjustment_write_xml_sax (SheetObject const *so, GsfXMLOut *output,
 	SheetWidgetAdjustment const *swa = SHEET_WIDGET_ADJUSTMENT (so);
 	SheetWidgetAdjustmentClass *swa_class = SWA_CLASS (so);
 
-	gsf_xml_out_add_float (output, "Min",   swa->adjustment->lower, 2);
-	gsf_xml_out_add_float (output, "Max",   swa->adjustment->upper, 2); /* allow scrolling to max */
-	gsf_xml_out_add_float (output, "Inc",   swa->adjustment->step_increment, 2);
-	gsf_xml_out_add_float (output, "Page",  swa->adjustment->page_increment, 2);
-	gsf_xml_out_add_float (output, "Value", swa->adjustment->value, 2);
+	gsf_xml_out_add_float (output, "Min",
+			       gtk_adjustment_get_lower (swa->adjustment),
+			       2);
+	gsf_xml_out_add_float (output, "Max",
+			       gtk_adjustment_get_upper (swa->adjustment),
+			       2); /* allow scrolling to max */
+	gsf_xml_out_add_float (output, "Inc",
+			       gtk_adjustment_get_step_increment (swa->adjustment),
+			       2);
+	gsf_xml_out_add_float (output, "Page",
+			       gtk_adjustment_get_page_increment (swa->adjustment),
+			       2);
+	gsf_xml_out_add_float (output, "Value",
+			       gtk_adjustment_get_value (swa->adjustment),
+			       2);
 
 	if (swa_class->htype != G_TYPE_NONE && swa_class->vtype != G_TYPE_NONE)
 		gsf_xml_out_add_bool (output, "Horizontal", swa->horizontal);
@@ -1680,15 +1700,15 @@ sheet_widget_adjustment_prep_sax_parser (SheetObject *so, GsfXMLIn *xin,
 		gboolean b;
 
 		if (gnm_xml_attr_double (attrs, "Min", &tmp))
-			swa->adjustment->lower = tmp;
+			gtk_adjustment_set_lower (swa->adjustment, tmp);
 		else if (gnm_xml_attr_double (attrs, "Max", &tmp))
-			swa->adjustment->upper = tmp;  /* allow scrolling to max */
+			gtk_adjustment_set_upper (swa->adjustment, tmp);  /* allow scrolling to max */
 		else if (gnm_xml_attr_double (attrs, "Inc", &tmp))
-			swa->adjustment->step_increment = tmp;
+			gtk_adjustment_set_step_increment (swa->adjustment, tmp);
 		else if (gnm_xml_attr_double (attrs, "Page", &tmp))
-			swa->adjustment->page_increment = tmp;
+			gtk_adjustment_set_step_increment (swa->adjustment, tmp);
 		else if (gnm_xml_attr_double (attrs, "Value", &tmp))
-			swa->adjustment->value = tmp;
+			gtk_adjustment_set_value (swa->adjustment, tmp);
 		else if (sax_read_dep (attrs, "Input", &swa->dep, xin, convs))
 			;
 		else if (swa_class->htype != G_TYPE_NONE &&
@@ -1698,7 +1718,6 @@ sheet_widget_adjustment_prep_sax_parser (SheetObject *so, GsfXMLIn *xin,
 	}
 
 	swa->dep.flags = adjustment_get_dep_type ();
-	gtk_adjustment_changed	(swa->adjustment);
 }
 
 void
@@ -1707,17 +1726,17 @@ sheet_widget_adjustment_set_details (SheetObject *so, GnmExprTop const *tlink,
 				     int inc, int page)
 {
 	SheetWidgetAdjustment *swa = SHEET_WIDGET_ADJUSTMENT (so);
+	double page_size;
+
 	g_return_if_fail (swa != NULL);
-	swa->adjustment->value = value;
-	swa->adjustment->lower = min;
-	swa->adjustment->upper = max; /* allow scrolling to max */
-	swa->adjustment->step_increment = inc;
-	swa->adjustment->page_increment = page;
+
 	dependent_set_expr (&swa->dep, tlink);
 	if (NULL != tlink)
 		dependent_link (&swa->dep);
-	else
-		gtk_adjustment_changed (swa->adjustment);
+
+	page_size = gtk_adjustment_get_page_size (swa->adjustment); /* ??? */
+	gtk_adjustment_configure (swa->adjustment,
+				  value, min, max, inc, page, page_size);
 }
 
 static GtkWidget *
@@ -1867,8 +1886,10 @@ sheet_widget_spinbutton_create_widget (SheetObjectWidget *sow)
 	GtkWidget *spinbutton;
 
 	swa->being_updated = TRUE;
-	spinbutton = gtk_spin_button_new (swa->adjustment,
-		swa->adjustment->step_increment, 0);
+	spinbutton = gtk_spin_button_new
+		(swa->adjustment,
+		 gtk_adjustment_get_step_increment (swa->adjustment),
+		 0);
 	gtk_widget_set_can_focus (spinbutton, FALSE);
 	g_signal_connect (G_OBJECT (spinbutton),
 		"value_changed",
@@ -2290,16 +2311,21 @@ static void
 cb_checkbox_set_focus (GtkWidget *window, GtkWidget *focus_widget,
 		       CheckboxConfigState *state)
 {
+	GtkWidget *ofp;
+
 	/* Note:  half of the set-focus action is handle by the default
-	 *        callback installed by wbc_gtk_attach_guru */
+	 *        callback installed by wbc_gtk_attach_guru. */
+
+	ofp = state->old_focus
+		? gtk_widget_get_parent (state->old_focus)
+		: NULL;
 
 	/* Force an update of the content in case it needs tweaking (eg make it
 	 * absolute) */
-	if (state->old_focus != NULL &&
-	    IS_GNM_EXPR_ENTRY (state->old_focus->parent)) {
+	if (ofp && IS_GNM_EXPR_ENTRY (ofp)) {
 		GnmParsePos  pp;
 		GnmExprTop const *texpr = gnm_expr_entry_parse (
-			GNM_EXPR_ENTRY (state->old_focus->parent),
+			GNM_EXPR_ENTRY (ofp),
 			parse_pos_init_sheet (&pp, state->sheet),
 			NULL, FALSE, GNM_EXPR_PARSE_DEFAULT);
 		if (texpr != NULL)
@@ -2984,16 +3010,21 @@ static void
 cb_radio_button_set_focus (GtkWidget *window, GtkWidget *focus_widget,
  			   RadioButtonConfigState *state)
 {
+	GtkWidget *ofp;
+
  	/* Note:  half of the set-focus action is handle by the default
  	 *        callback installed by wbc_gtk_attach_guru */
 
+	ofp = state->old_focus
+		? gtk_widget_get_parent (state->old_focus)
+		: NULL;
+
  	/* Force an update of the content in case it needs tweaking (eg make it
  	 * absolute) */
- 	if (state->old_focus != NULL &&
- 	    IS_GNM_EXPR_ENTRY (state->old_focus->parent)) {
+ 	if (ofp && IS_GNM_EXPR_ENTRY (ofp)) {
  		GnmParsePos  pp;
  		GnmExprTop const *texpr = gnm_expr_entry_parse (
- 			GNM_EXPR_ENTRY (state->old_focus->parent),
+ 			GNM_EXPR_ENTRY (ofp),
  			parse_pos_init_sheet (&pp, state->sheet),
  			NULL, FALSE, GNM_EXPR_PARSE_DEFAULT);
  		if (texpr != NULL)
@@ -3636,6 +3667,7 @@ cb_selection_changed (GtkTreeSelection *selection,
 		      SheetWidgetListBase *swl)
 {
 	GtkWidget    *view = (GtkWidget *)gtk_tree_selection_get_tree_view (selection);
+	GnmSimpleCanvas *scanvas = GNM_SIMPLE_CANVAS (gtk_widget_get_parent (gtk_widget_get_parent (gtk_widget_get_parent (view))));
 	GtkTreeModel *model;
 	GtkTreeIter   iter;
 	int	      pos = 0;
@@ -3648,8 +3680,7 @@ cb_selection_changed (GtkTreeSelection *selection,
 			}
 		}
 		sheet_widget_list_base_set_selection
-			(swl, pos,
-			 scg_wbc (GNM_SIMPLE_CANVAS (view->parent->parent->parent)->scg));
+			(swl, pos, scg_wbc (scanvas->scg));
 	}
 }
 
diff --git a/src/wbc-gtk.c b/src/wbc-gtk.c
index 18e2031..9c16bc8 100644
--- a/src/wbc-gtk.c
+++ b/src/wbc-gtk.c
@@ -949,10 +949,10 @@ cb_paned_size_allocate (GtkHPaned *hpaned,
 	GtkRequisition child1_requisition;
 	gint handle_size;
 	gint p1, p2, h1, h2, w1, w2, w, wp;
-	gint border_width = GTK_CONTAINER (paned)->border_width;
+	gint border_width = gtk_container_get_border_width (GTK_CONTAINER (paned));
 	gboolean position_set;
-	GtkWidget *child1 = paned->child1;
-	GtkWidget *child2 = paned->child2;
+	GtkWidget *child1 = gtk_paned_get_child1 (paned);
+	GtkWidget *child2 = gtk_paned_get_child2 (paned);
 
 	if (child1 == NULL || !gtk_widget_get_visible (child1) ||
 	    child2 == NULL || !gtk_widget_get_visible (child2))
@@ -2393,7 +2393,7 @@ set_visibility (WBCGtk *wbcg,
 {
 	GtkWidget *w = g_hash_table_lookup (wbcg->visibility_widgets, action_name);
 	if (w)
-		(visible ? gtk_widget_show : gtk_widget_hide) (w);
+		gtk_widget_set_visible (w, visible);
 	wbc_gtk_set_toggle_action_state (wbcg, action_name, visible);
 }
 
@@ -2488,7 +2488,8 @@ show_gui (WBCGtk *wbcg)
 
 	/* In a Xinerama setup, we want the geometry of the actual display
 	 * unit, if available. See bug 59902.  */
-	gdk_screen_get_monitor_geometry (wbcg_toplevel (wbcg)->screen, 0, &rect);
+	gdk_screen_get_monitor_geometry
+		(gtk_window_get_screen (wbcg_toplevel (wbcg)), 0, &rect);
 	sx = MAX (rect.width, 600);
 	sy = MAX (rect.height, 200);
 



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