[gnumeric] xls: improve object ordering on export.



commit 4dd0fc245b45d4c6ce13c304c537715523b85485
Author: Morten Welinder <terra gnome org>
Date:   Sat Mar 10 12:30:13 2012 -0500

    xls: improve object ordering on export.

 ChangeLog                      |    5 ++
 plugins/excel/ChangeLog        |    7 +++
 plugins/excel/ms-excel-write.c |  111 +++++++++++++++------------------------
 plugins/excel/ms-excel-write.h |    2 +-
 src/sheet-object-widget.c      |   29 ++++------
 src/sheet-object-widget.h      |   46 +++++++++-------
 6 files changed, 94 insertions(+), 106 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index def281c..e0edff8 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2012-03-10  Morten Welinder  <terra gnome org>
+
+	* src/sheet-object-widget.h: Grand rename.  Make GNM_IS_SOW
+	public.
+
 2012-03-10  Jean Brefort  <jean brefort normalesup org>
 
 	* src/sheet-object-image.c (gnm_soi_write_image): make it work again.
diff --git a/plugins/excel/ChangeLog b/plugins/excel/ChangeLog
index 33d6bd7..295b80b 100644
--- a/plugins/excel/ChangeLog
+++ b/plugins/excel/ChangeLog
@@ -1,3 +1,10 @@
+2012-03-10  Morten Welinder  <terra gnome org>
+
+	* ms-excel-write.c (excel_write_objs_v8): Unify writing of objects
+	to help fix stacking issues.
+	(excel_sheet_new): Eliminate special lists for lines and
+	textboxes.
+
 2012-03-09  Morten Welinder  <terra gnome org>
 
 	* xlsx-write.c (xlsx_write_sheet): Use new
diff --git a/plugins/excel/ms-excel-write.c b/plugins/excel/ms-excel-write.c
index 75796be..b5059b2 100644
--- a/plugins/excel/ms-excel-write.c
+++ b/plugins/excel/ms-excel-write.c
@@ -4251,10 +4251,8 @@ excel_write_ClientTextbox (ExcelWriteState *ewb, SheetObject *so,
 }
 
 static gsize
-excel_write_textbox_or_widget_v8 (ExcelWriteSheet *esheet,
-				  SheetObject *so,
-				  gboolean has_text_prop,
-				  gboolean is_widget)
+excel_write_other_v8 (ExcelWriteSheet *esheet,
+		      SheetObject *so)
 {
 	GString *escher = g_string_new (NULL);
 	GString *extra;
@@ -4278,6 +4276,9 @@ excel_write_textbox_or_widget_v8 (ExcelWriteSheet *esheet,
 	gboolean terminate_obj = TRUE;
 	gboolean transparent = FALSE;
 	gboolean is_image = FALSE;
+	gboolean has_text_prop = NULL != g_object_class_find_property
+		(G_OBJECT_GET_CLASS (so), "text");
+	gboolean is_widget = GNM_IS_SOW (so);
 
 	if (has_text_prop) {
 		g_object_get (so,
@@ -4559,27 +4560,6 @@ excel_write_textbox_or_widget_v8 (ExcelWriteSheet *esheet,
 	return draw_len;
 }
 
-static gsize
-excel_write_image_v8 (ExcelWriteSheet *esheet, BlipInf *bi)
-{
-	return excel_write_textbox_or_widget_v8 (esheet, bi->so, FALSE, FALSE);
-}
-
-static gsize
-excel_write_textbox_v8 (ExcelWriteSheet *esheet, SheetObject *so)
-{
-	return excel_write_textbox_or_widget_v8 (esheet, so, TRUE, FALSE);
-}
-
-static gsize
-excel_write_widget_v8 (ExcelWriteSheet *esheet, SheetObject *so)
-{
-	GParamSpec *pspec = g_object_class_find_property
-		(G_OBJECT_GET_CLASS (so), "text");
-	return excel_write_textbox_or_widget_v8 (esheet, so,
-						 pspec != NULL, TRUE);
-}
-
 static void
 write_arrow (GOArrow const *arrow, GString *escher, gsize optmark,
 	     guint id)
@@ -4743,6 +4723,16 @@ excel_write_line_v8 (ExcelWriteSheet *esheet, SheetObject *so)
 	return draw_len;
 }
 
+static gsize
+excel_write_obj_v8 (ExcelWriteSheet *esheet,
+		    SheetObject *so)
+{
+	if (IS_GNM_SO_LINE (so))
+		return excel_write_line_v8 (esheet, so);
+	else
+		return excel_write_other_v8 (esheet, so);
+}
+
 static void
 excel_write_DIMENSION (BiffPut *bp, ExcelWriteSheet *esheet)
 {
@@ -4808,8 +4798,8 @@ excel_write_PAGE_BREAK (BiffPut *bp, GnmPageBreaks const *breaks)
 		n = (ms_biff_max_record_len (bp) - 2 - 2) / step;
 
 	data = ms_biff_put_len_next (bp, manual_pbreaks->is_vert
-		? BIFF_VERTICALPAGEBREAKS : BIFF_HORIZONTALPAGEBREAKS,
-		2 + step * n);
+				     ? BIFF_VERTICALPAGEBREAKS : BIFF_HORIZONTALPAGEBREAKS,
+				     2 + step * n);
 
 	GSF_LE_SET_GUINT16 (data, (guint16)n);
 	for (data += 2, i = 0 ; i < n ; data += step, i++) {
@@ -5064,9 +5054,9 @@ excel_sheet_write_INDEX (ExcelWriteSheet *esheet, gsf_off_t fpos,
 		unsigned pos = g_array_index (dbcells, unsigned, i);
 		GSF_LE_SET_GUINT32 (data + i, pos - esheet->ewb->streamPos);
 		d (2, g_printerr ("Writing index record"
-			      " 0x%4.4x - 0x%4.4x = 0x%4.4x\n",
-			      pos, esheet->ewb->streamPos,
-			      pos - esheet->ewb->streamPos););
+				  " 0x%4.4x - 0x%4.4x = 0x%4.4x\n",
+				  pos, esheet->ewb->streamPos,
+				  pos - esheet->ewb->streamPos););
 	}
 
 	ms_biff_put_abs_write (bp, fpos, data, 4 * dbcells->len);
@@ -5124,7 +5114,7 @@ excel_sheet_write_DBCELL (ExcelWriteSheet *esheet,
  *
  * See: 'Finding records in BIFF files'
  */
-guint32
+static guint32
 excel_sheet_write_block (ExcelWriteSheet *esheet, guint32 begin, int nrows,
 			 GArray *dbcells)
 {
@@ -5279,14 +5269,14 @@ excel_write_objs_v8 (ExcelWriteSheet *esheet)
 	/* The header */
 	if (bp->version >= MS_BIFF_V8) {
 		static guint8 const header_obj_v8[] = {
-/* DgContainers */ 0x0f, 0,   2, 0xf0,	   0, 0, 0, 0,	/* fill in length */
-/* Dg */	   0x10, 0,   8, 0xf0,	   8, 0, 0, 0,
+			/* DgContainers */ 0x0f, 0,   2, 0xf0,	   0, 0, 0, 0,	/* fill in length */
+			/* Dg */	   0x10, 0,   8, 0xf0,	   8, 0, 0, 0,
 			0, 0, 0, 0,			/* fill num objects in this group + 1 */
 			0, 0, 0, 0,			/* fill last spid in this group */
-/* SpgrContainer */0x0f, 0,   3, 0xf0,	   0, 0, 0, 0,	/* fill in length */
-/* SpContainer */  0x0f, 0,   4, 0xf0,	0x28, 0, 0, 0,
-/* Spgr */	      1, 0,   9, 0xf0,	0x10, 0, 0, 0,	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
-/* Sp */	      2, 0, 0xa, 0xf0,     8, 0, 0, 0,	0, 4, 0, 0, 5, 0, 0, 0
+			/* SpgrContainer */0x0f, 0,   3, 0xf0,	   0, 0, 0, 0,	/* fill in length */
+			/* SpContainer */  0x0f, 0,   4, 0xf0,	0x28, 0, 0, 0,
+			/* Spgr */	      1, 0,   9, 0xf0,	0x10, 0, 0, 0,	0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
+			/* Sp */	      2, 0, 0xa, 0xf0,     8, 0, 0, 0,	0, 4, 0, 0, 5, 0, 0, 0
 		};
 		guint8 buf [sizeof header_obj_v8];
 		unsigned last_id, num_filters = 0;
@@ -5318,17 +5308,8 @@ excel_write_objs_v8 (ExcelWriteSheet *esheet)
 	for (ptr = esheet->graphs; ptr != NULL ; ptr = ptr->next)
 		len += excel_write_chart_v8 (esheet, ptr->data);
 
-	for (ptr = esheet->blips; ptr != NULL ; ptr = ptr->next)
-		len += excel_write_image_v8 (esheet, ptr->data);
-
-	for (ptr = esheet->textboxes; ptr != NULL ; ptr = ptr->next)
-		len += excel_write_textbox_v8 (esheet, ptr->data);
-
-	for (ptr = esheet->widgets; ptr != NULL ; ptr = ptr->next)
-		len += excel_write_widget_v8 (esheet, ptr->data);
-
-	for (ptr = esheet->lines; ptr != NULL ; ptr = ptr->next)
-		len += excel_write_line_v8 (esheet, ptr->data);
+	for (ptr = esheet->objects; ptr != NULL ; ptr = ptr->next)
+		len += excel_write_obj_v8 (esheet, ptr->data);
 
 	len += excel_write_autofilter_objs (esheet);
 
@@ -5549,17 +5530,19 @@ excel_sheet_new (ExcelWriteState *ewb, Sheet *sheet,
 				goto unhandled;
 
 			esheet->blips = g_slist_prepend (esheet->blips, bi);
+			esheet->objects =
+				g_slist_prepend (esheet->objects, so);
 			handled = TRUE;
 		} else if (IS_CELL_COMMENT (so)) {
 			esheet->comments = g_slist_prepend (esheet->comments,
 							    so);
-			/* Also a textbox.  Is that right for v7?  */
-			esheet->textboxes = g_slist_prepend (esheet->textboxes,
-							     so);
+			/* Also an object.  Is that right for v7?  */
+			esheet->objects =
+				g_slist_prepend (esheet->objects, so);
 			handled = TRUE;
 		} else if (IS_GNM_SO_FILLED (so)) {
-			esheet->textboxes =
-				g_slist_prepend (esheet->textboxes, so);
+			esheet->objects =
+				g_slist_prepend (esheet->objects, so);
 			handled = TRUE;
 		} else if (GNM_IS_SOW_CHECKBOX (so) ||
 			   GNM_IS_SOW_RADIO_BUTTON (so) ||
@@ -5568,15 +5551,15 @@ excel_sheet_new (ExcelWriteState *ewb, Sheet *sheet,
 			   GNM_IS_SOW_LIST (so) ||
 			   GNM_IS_SOW_BUTTON (so) ||
 			   GNM_IS_SOW_COMBO (so)) {
-			esheet->widgets =
-				g_slist_prepend (esheet->widgets, so);
+			esheet->objects =
+				g_slist_prepend (esheet->objects, so);
 			g_hash_table_insert (esheet->widget_macroname,
 					     so,
 					     create_macroname (so));
 			handled = TRUE;
 		} else if (IS_GNM_SO_LINE (so)) {
-			esheet->lines =
-				g_slist_prepend (esheet->lines, so);
+			esheet->objects =
+				g_slist_prepend (esheet->objects, so);
 			handled = TRUE;
 		} else if (IS_GNM_FILTER_COMBO (so)) {
 			/* Handled outside loop.  */
@@ -5619,9 +5602,7 @@ excel_sheet_new (ExcelWriteState *ewb, Sheet *sheet,
 static void
 excel_sheet_free (ExcelWriteSheet *esheet)
 {
-	g_slist_free (esheet->textboxes);
-	g_slist_free (esheet->widgets);
-	g_slist_free (esheet->lines);
+	g_slist_free (esheet->objects);
 	g_slist_free (esheet->comments);
 	g_slist_free (esheet->graphs);
 	g_hash_table_destroy (esheet->commentshash);
@@ -6059,8 +6040,7 @@ excel_write_blips (ExcelWriteState *ewb, guint32 bliplen)
 
 		for (i = 0, nblips = 0; i < ewb->esheets->len; i++) {
 			s = g_ptr_array_index (ewb->esheets, i);
-			for (b = s->blips; b != NULL; b = b->next)
-					nblips++;
+			nblips += g_slist_length (s->blips);
 		}
 
 		memcpy (buf, header_obj_v8, sizeof header_obj_v8);
@@ -6478,12 +6458,7 @@ excel_write_state_new (GOIOContext *context, WorkbookView const *wb_view,
 		for (ptr = esheet->graphs ; ptr != NULL ; ptr = ptr->next)
 			extract_gog_object_style (&ewb->base,
 				(GogObject *)sheet_object_graph_get_gog (ptr->data));
-		for (ptr = esheet->textboxes ; ptr != NULL ; ptr = ptr->next) {
-			SheetObject *so = ptr->data;
-			extract_txomarkup (ewb, so);
-		}
-
-		for (ptr = esheet->widgets ; ptr != NULL ; ptr = ptr->next) {
+		for (ptr = esheet->objects ; ptr != NULL ; ptr = ptr->next) {
 			SheetObject *so = ptr->data;
 			GParamSpec *pspec = g_object_class_find_property
 				(G_OBJECT_GET_CLASS (so), "text");
diff --git a/plugins/excel/ms-excel-write.h b/plugins/excel/ms-excel-write.h
index ae5dd08..7627674 100644
--- a/plugins/excel/ms-excel-write.h
+++ b/plugins/excel/ms-excel-write.h
@@ -49,7 +49,7 @@ typedef struct {
 	guint16		*col_xf;
 	GnmStyle	**col_style;
 	GnmStyleList	*conditions, *hlinks, *validations;
-	GSList          *blips, *textboxes, *widgets, *lines, *graphs, *comments;
+	GSList          *blips, *objects, *graphs, *comments;
 	GHashTable	*commentshash;
 	GHashTable      *widget_macroname;
 	unsigned	 cur_obj, num_objs;
diff --git a/src/sheet-object-widget.c b/src/sheet-object-widget.c
index 7418eb9..e6053fa 100644
--- a/src/sheet-object-widget.c
+++ b/src/sheet-object-widget.c
@@ -177,11 +177,8 @@ static GSF_CLASS (SOWidgetView, so_widget_view,
 
 #define SHEET_OBJECT_CONFIG_KEY "sheet-object-config-dialog"
 
-#define SHEET_OBJECT_WIDGET_TYPE     (sheet_object_widget_get_type ())
-#define SHEET_OBJECT_WIDGET(obj)     (G_TYPE_CHECK_INSTANCE_CAST((obj), SHEET_OBJECT_WIDGET_TYPE, SheetObjectWidget))
-#define SHEET_OBJECT_WIDGET_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), SHEET_OBJECT_WIDGET_TYPE, SheetObjectWidgetClass))
-#define IS_SHEET_WIDGET_OBJECT(o)    (G_TYPE_CHECK_INSTANCE_TYPE((o), SHEET_OBJECT_WIDGET_TYPE))
-#define SOW_CLASS(so)		     (SHEET_OBJECT_WIDGET_CLASS (G_OBJECT_GET_CLASS(so)))
+#define GNM_SOW_CLASS(k) (G_TYPE_CHECK_CLASS_CAST ((k), GNM_SOW_TYPE, SheetObjectWidgetClass))
+#define SOW_CLASS(so) (GNM_SOW_CLASS (G_OBJECT_GET_CLASS(so)))
 
 #define SOW_MAKE_TYPE(n1, n2, fn_config, fn_set_sheet, fn_clear_sheet, fn_foreach_dep, \
 		      fn_copy, fn_write_sax, fn_prep_sax_parser,	\
@@ -191,7 +188,7 @@ static GSF_CLASS (SOWidgetView, so_widget_view,
 static void								\
 sheet_widget_ ## n1 ## _class_init (GObjectClass *object_class)		\
 {									\
-	SheetObjectWidgetClass *sow_class = SHEET_OBJECT_WIDGET_CLASS (object_class); \
+	SheetObjectWidgetClass *sow_class = GNM_SOW_CLASS (object_class); \
 	SheetObjectClass *so_class = SHEET_OBJECT_CLASS (object_class);	\
 	object_class->finalize		= &sheet_widget_ ## n1 ## _finalize; \
 	object_class->set_property	= fn_set_property;		\
@@ -211,7 +208,7 @@ sheet_widget_ ## n1 ## _class_init (GObjectClass *object_class)		\
 GSF_CLASS (SheetWidget ## n2, sheet_widget_ ## n1,			\
 	   &sheet_widget_ ## n1 ## _class_init,				\
 	   &sheet_widget_ ## n1 ## _init,				\
-	   SHEET_OBJECT_WIDGET_TYPE)
+	   GNM_SOW_TYPE)
 
 typedef struct {
 	SheetObject so;
@@ -224,14 +221,12 @@ typedef struct {
 
 static GObjectClass *sheet_object_widget_class = NULL;
 
-static GType sheet_object_widget_get_type	(void);
-
 static void
 sheet_widget_draw_cairo (SheetObject const *so, cairo_t *cr,
 			 double width, double height)
 {
 	GtkWidget *win = gtk_offscreen_window_new ();
-	GtkWidget *w = SOW_CLASS(so)->create_widget (SHEET_OBJECT_WIDGET (so));
+	GtkWidget *w = SOW_CLASS(so)->create_widget (GNM_SOW (so));
 
 	gtk_container_add (GTK_CONTAINER (win), w);
 	gtk_widget_set_size_request (w, width, height);
@@ -284,7 +279,7 @@ static SheetObjectView *
 sheet_object_widget_new_view (SheetObject *so, SheetObjectViewContainer *container)
 {
 	GtkWidget *view_widget =
-		SOW_CLASS(so)->create_widget (SHEET_OBJECT_WIDGET (so));
+		SOW_CLASS(so)->create_widget (GNM_SOW (so));
 	GocItem *view_item = goc_item_new (
 		gnm_pane_object_group (GNM_PANE (container)),
 		so_widget_view_get_type (),
@@ -304,7 +299,7 @@ static void
 sheet_object_widget_class_init (GObjectClass *object_class)
 {
 	SheetObjectClass *so_class = SHEET_OBJECT_CLASS (object_class);
-	SheetObjectWidgetClass *sow_class = SHEET_OBJECT_WIDGET_CLASS (object_class);
+	SheetObjectWidgetClass *sow_class = GNM_SOW_CLASS (object_class);
 
 	sheet_object_widget_class = G_OBJECT_CLASS (object_class);
 
@@ -323,10 +318,10 @@ sheet_object_widget_init (SheetObjectWidget *sow)
 	so->flags |= SHEET_OBJECT_CAN_PRESS;
 }
 
-static GSF_CLASS (SheetObjectWidget, sheet_object_widget,
-		  sheet_object_widget_class_init,
-		  sheet_object_widget_init,
-		  SHEET_OBJECT_TYPE)
+GSF_CLASS (SheetObjectWidget, sheet_object_widget,
+	   sheet_object_widget_class_init,
+	   sheet_object_widget_init,
+	   SHEET_OBJECT_TYPE)
 
 static WorkbookControl *
 widget_wbc (GtkWidget *widget)
@@ -1213,7 +1208,7 @@ sheet_widget_adjustment_set_horizontal (SheetWidgetAdjustment *swa,
 		SheetObjectView *view = ptr->data;
 		GocWidget *item = get_goc_widget (view);
 		GtkWidget *neww =
-			SOW_CLASS (swa)->create_widget (SHEET_OBJECT_WIDGET (swa));
+			SOW_CLASS (swa)->create_widget (GNM_SOW (swa));
 		gtk_widget_show (neww);
 		goc_item_set (GOC_ITEM (item), "widget", neww, NULL);
 	}
diff --git a/src/sheet-object-widget.h b/src/sheet-object-widget.h
index 8f7343f..b785f76 100644
--- a/src/sheet-object-widget.h
+++ b/src/sheet-object-widget.h
@@ -11,47 +11,53 @@ G_BEGIN_DECLS
 
 void sheet_object_widget_register (void);
 
+GType sheet_object_widget_get_type (void);
+#define GNM_SOW_TYPE     (sheet_object_widget_get_type ())
+#define GNM_SOW(obj)     (G_TYPE_CHECK_INSTANCE_CAST((obj), GNM_SOW_TYPE, SheetObjectWidget))
+#define GNM_IS_SOW(o)    (G_TYPE_CHECK_INSTANCE_TYPE((o), GNM_SOW_TYPE))
+
+
 GType sheet_widget_frame_get_type	 (void); /* convert to non-widget */
-#define GNM_SOW_FRAME (sheet_widget_frame_get_type ())
-#define GNM_IS_SOW_FRAME(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), GNM_SOW_FRAME))
+#define GNM_SOW_FRAME_TYPE (sheet_widget_frame_get_type ())
+#define GNM_IS_SOW_FRAME(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), GNM_SOW_FRAME_TYPE))
 
 GType sheet_widget_button_get_type	 (void);
-#define GNM_SOW_BUTTON (sheet_widget_button_get_type ())
-#define GNM_IS_SOW_BUTTON(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), GNM_SOW_BUTTON))
+#define GNM_SOW_BUTTON_TYPE (sheet_widget_button_get_type ())
+#define GNM_IS_SOW_BUTTON(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), GNM_SOW_BUTTON_TYPE))
 
 GType sheet_widget_checkbox_get_type	 (void);
-#define GNM_SOW_CHECKBOX (sheet_widget_checkbox_get_type ())
-#define GNM_IS_SOW_CHECKBOX(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), GNM_SOW_CHECKBOX))
+#define GNM_SOW_CHECKBOX_TYPE (sheet_widget_checkbox_get_type ())
+#define GNM_IS_SOW_CHECKBOX(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), GNM_SOW_CHECKBOX_TYPE))
 
 GType sheet_widget_toggle_button_get_type(void);
-#define GNM_SOW_TOGGLE_BUTTON (sheet_widget_toggle_button_get_type ())
-#define GNM_IS_SOW_TOGGLE_BUTTON(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), GNM_SOW_TOGGLE_BUTTON))
+#define GNM_SOW_TOGGLE_BUTTON_TYPE (sheet_widget_toggle_button_get_type ())
+#define GNM_IS_SOW_TOGGLE_BUTTON(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), GNM_SOW_TOGGLE_BUTTON_TYPE))
 
 GType sheet_widget_radio_button_get_type (void);
-#define GNM_SOW_RADIO_BUTTON (sheet_widget_radio_button_get_type ())
-#define GNM_IS_SOW_RADIO_BUTTON(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), GNM_SOW_RADIO_BUTTON))
+#define GNM_SOW_RADIO_BUTTON_TYPE (sheet_widget_radio_button_get_type ())
+#define GNM_IS_SOW_RADIO_BUTTON(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), GNM_SOW_RADIO_BUTTON_TYPE))
 
 /*Descendents of the list_base sheet widget object*/
 GType sheet_widget_list_get_type	 (void);
-#define GNM_SOW_LIST (sheet_widget_list_get_type ())
-#define GNM_IS_SOW_LIST(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), GNM_SOW_LIST))
+#define GNM_SOW_LIST_TYPE (sheet_widget_list_get_type ())
+#define GNM_IS_SOW_LIST(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), GNM_SOW_LIST_TYPE))
 
 GType sheet_widget_combo_get_type	 (void);
-#define GNM_SOW_COMBO (sheet_widget_combo_get_type ())
-#define GNM_IS_SOW_COMBO(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), GNM_SOW_COMBO))
+#define GNM_SOW_COMBO_TYPE (sheet_widget_combo_get_type ())
+#define GNM_IS_SOW_COMBO(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), GNM_SOW_COMBO_TYPE))
 
 /*Descendents of the adjustment sheet widget object*/
 GType sheet_widget_scrollbar_get_type	 (void);
-#define GNM_SOW_SCROLLBAR (sheet_widget_scrollbar_get_type ())
-#define GNM_IS_SOW_SCROLLBAR(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), GNM_SOW_SCROLLBAR))
+#define GNM_SOW_SCROLLBAR_TYPE (sheet_widget_scrollbar_get_type ())
+#define GNM_IS_SOW_SCROLLBAR(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), GNM_SOW_SCROLLBAR_TYPE))
 
 GType sheet_widget_slider_get_type       (void);
-#define GNM_SOW_SLIDER (sheet_widget_slider_get_type ())
-#define GNM_IS_SOW_SLIDER(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), GNM_SOW_SLIDER))
+#define GNM_SOW_SLIDER_TYPE (sheet_widget_slider_get_type ())
+#define GNM_IS_SOW_SLIDER(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), GNM_SOW_SLIDER_TYPE))
 
 GType sheet_widget_spinbutton_get_type   (void);
-#define GNM_SOW_SPINBUTTON (sheet_widget_spinbutton_get_type ())
-#define GNM_IS_SOW_SPINBUTTON(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), GNM_SOW_SPINBUTTON))
+#define GNM_SOW_SPIN_BUTTON_TYPE (sheet_widget_spinbutton_get_type ())
+#define GNM_IS_SOW_SPINBUTTON(o) (G_TYPE_CHECK_INSTANCE_TYPE((o), GNM_SOW_SPIN_BUTTON_TYPE))
 
 /* ------------------------------------------------------------------------ */
 



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