-/* GSheetColumn --- an abstract model of the column geometry of a
+/* GSheetColumn --- an abstract model of the column geometry of a
GSheet widget.
* Copyright (C) 2006 Free Software Foundation
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
+#include <config.h>
+
#include <stdlib.h>
#include <string.h>
#include <glib.h>
#include <gobject/gvaluecollector.h>
#include "gsheet-column-iface.h"
#include "gtkextra-marshal.h"
-
+#include "gtkextra-sheet.h"
enum {
COLUMNS_CHANGED,
}
-static GtkSheetButton default_button;
-
static void
g_sheet_column_base_init (gpointer g_class)
{
G_TYPE_INT);
- default_button.state = GTK_STATE_NORMAL;
- default_button.label = NULL;
- default_button.label_visible = TRUE;
- default_button.child = NULL;
- default_button.justification = GTK_JUSTIFY_FILL;
-
initialized = TRUE;
}
}
-inline void
-g_sheet_column_set_width (GSheetColumn *column,
- gint col, gint size, const GtkSheet *sheet)
+inline void
+g_sheet_column_set_width (GSheetColumn *column, gint col, gint size)
{
g_return_if_fail (G_IS_SHEET_COLUMN (column));
- if ((G_SHEET_COLUMN_GET_IFACE (column)->set_width) )
- (G_SHEET_COLUMN_GET_IFACE (column)->set_width) (column, col,
- size, sheet);
+ if ((G_SHEET_COLUMN_GET_IFACE (column)->set_width) )
+ (G_SHEET_COLUMN_GET_IFACE (column)->set_width) (column, col, size);
}
-inline gint
-g_sheet_column_get_width (const GSheetColumn *column,
- gint col, const GtkSheet *sheet)
+inline gint
+g_sheet_column_get_width (const GSheetColumn *column, gint col)
{
g_return_val_if_fail (G_IS_SHEET_COLUMN (column), -1);
g_assert (G_SHEET_COLUMN_GET_IFACE (column)->get_width);
-
- return (G_SHEET_COLUMN_GET_IFACE (column)->get_width) (column, col,
- sheet);
+
+ return (G_SHEET_COLUMN_GET_IFACE (column)->get_width) (column, col);
}
-inline gboolean
+inline gboolean
g_sheet_column_get_visibility(const GSheetColumn *column,
- gint col, const GtkSheet *sheet)
+ gint col)
{
g_return_val_if_fail (G_IS_SHEET_COLUMN (column), FALSE);
g_assert (G_SHEET_COLUMN_GET_IFACE (column)->get_visibility);
-
- return (G_SHEET_COLUMN_GET_IFACE (column)->get_visibility) (column,
- col, sheet);
+
+ return (G_SHEET_COLUMN_GET_IFACE (column)->get_visibility) (column,
+ col);
}
-inline gboolean
+inline gboolean
g_sheet_column_get_sensitivity(const GSheetColumn *column,
- gint col, const GtkSheet *sheet)
+ gint col)
{
g_return_val_if_fail (G_IS_SHEET_COLUMN (column), FALSE);
g_assert (G_SHEET_COLUMN_GET_IFACE (column)->get_sensitivity);
-
- return (G_SHEET_COLUMN_GET_IFACE (column)->get_sensitivity) (column,
- col, sheet);
+
+ return (G_SHEET_COLUMN_GET_IFACE (column)->get_sensitivity) (column,
+ col);
}
-inline const GtkSheetButton *
+inline GtkSheetButton *
g_sheet_column_get_button(const GSheetColumn *column,
- gint col, const GtkSheet *sheet)
+ gint col)
{
- g_return_val_if_fail (G_IS_SHEET_COLUMN (column), FALSE);
+ GtkSheetButton *button = gtk_sheet_button_new();
GSheetColumnIface *iface = G_SHEET_COLUMN_GET_IFACE (column);
- static GtkSheetButton button ;
- memcpy(&button, &default_button, sizeof (button));
+ g_return_val_if_fail (G_IS_SHEET_COLUMN (column), FALSE);
if ( iface->get_button_label)
- button.label = iface->get_button_label(column, col, sheet);
+ button->label = iface->get_button_label(column, col);
- return &button;
+ return button;
}
-inline GtkJustification
-g_sheet_column_get_justification(const GSheetColumn *column,
- gint col, const GtkSheet *sheet)
+inline GtkJustification
+g_sheet_column_get_justification(const GSheetColumn *column,
+ gint col)
{
g_return_val_if_fail (G_IS_SHEET_COLUMN (column), FALSE);
g_assert (G_SHEET_COLUMN_GET_IFACE (column)->get_justification);
-
- return (G_SHEET_COLUMN_GET_IFACE (column)->get_justification) (column, col, sheet);
+
+ return (G_SHEET_COLUMN_GET_IFACE (column)->get_justification) (column, col);
}
+inline gchar *
+g_sheet_column_get_subtitle (const GSheetColumn *column, gint col)
+{
+ g_return_val_if_fail (G_IS_SHEET_COLUMN (column), NULL);
+
+ if ( ! G_SHEET_COLUMN_GET_IFACE (column)->get_subtitle)
+ return NULL;
+
+ return (G_SHEET_COLUMN_GET_IFACE (column)->get_subtitle) (column, col);
+}
-inline gint
+inline gint
g_sheet_column_get_left_text_column (const GSheetColumn *column,
- gint col, const GtkSheet *sheet)
+ gint col)
{
g_return_val_if_fail (G_IS_SHEET_COLUMN (column), -1);
if ( ! G_SHEET_COLUMN_GET_IFACE (column)->get_left_text_column)
return col;
-
- return (G_SHEET_COLUMN_GET_IFACE (column)->get_left_text_column) (column, col, sheet);
+
+ return (G_SHEET_COLUMN_GET_IFACE (column)->get_left_text_column) (column, col);
}
-inline gint
+inline gint
g_sheet_column_get_right_text_column (const GSheetColumn *column,
- gint col, const GtkSheet *sheet)
+ gint col)
{
g_return_val_if_fail (G_IS_SHEET_COLUMN (column), -1);
if ( ! G_SHEET_COLUMN_GET_IFACE (column)->get_right_text_column)
return col;
-
- return (G_SHEET_COLUMN_GET_IFACE (column)->get_right_text_column) (column, col, sheet);
+
+ return (G_SHEET_COLUMN_GET_IFACE (column)->get_right_text_column) (column, col);
}
-inline void
+inline void
g_sheet_column_set_left_text_column (const GSheetColumn *column,
- gint col, gint i, const GtkSheet *sheet)
+ gint col, gint i)
{
g_return_if_fail (G_IS_SHEET_COLUMN (column));
if ( G_SHEET_COLUMN_GET_IFACE (column)->set_left_text_column)
- (G_SHEET_COLUMN_GET_IFACE (column)->set_left_text_column) (column, col, i, sheet);
+ (G_SHEET_COLUMN_GET_IFACE (column)->set_left_text_column) (column, col, i);
}
-inline void
+inline void
g_sheet_column_set_right_text_column (const GSheetColumn *column,
- gint col, gint i, const GtkSheet *sheet)
+ gint col, gint i)
{
g_return_if_fail (G_IS_SHEET_COLUMN (column));
if ( G_SHEET_COLUMN_GET_IFACE (column)->set_right_text_column)
- (G_SHEET_COLUMN_GET_IFACE (column)->set_right_text_column) (column, col, i, sheet);
+ (G_SHEET_COLUMN_GET_IFACE (column)->set_right_text_column) (column, col, i);
}
-inline gint
-g_sheet_column_get_column_count(const GSheetColumn *geo, const GtkSheet *sheet)
+inline gint
+g_sheet_column_get_column_count(const GSheetColumn *geo)
{
g_return_val_if_fail (G_IS_SHEET_COLUMN (geo), -1);
g_assert ( G_SHEET_COLUMN_GET_IFACE (geo)->get_column_count);
- return (G_SHEET_COLUMN_GET_IFACE (geo)->get_column_count) (geo, sheet);
+ return (G_SHEET_COLUMN_GET_IFACE (geo)->get_column_count) (geo);
}
-inline gint
-g_sheet_column_start_pixel(const GSheetColumn *geo, gint col, const GtkSheet *sheet)
+inline gint
+g_sheet_column_start_pixel(const GSheetColumn *geo, gint col)
{
- g_return_val_if_fail (G_IS_SHEET_COLUMN (geo), -1);
- g_return_val_if_fail (col <
- g_sheet_column_get_column_count(geo, sheet),-1);
-
gint i;
gint start_pixel = 0;
- for ( i = 0 ; i < col ; ++i )
+ g_return_val_if_fail (G_IS_SHEET_COLUMN (geo), -1);
+ g_return_val_if_fail (col <
+ g_sheet_column_get_column_count(geo),-1);
+
+ for ( i = 0 ; i < col ; ++i )
{
- if ( g_sheet_column_get_visibility(geo, i, sheet))
- start_pixel += g_sheet_column_get_width(geo, i, sheet);
+ if ( g_sheet_column_get_visibility(geo, i))
+ start_pixel += g_sheet_column_get_width(geo, i);
}
-
+
return start_pixel;
}
inline void
-g_sheet_column_columns_deleted(GSheetColumn *geo,
+g_sheet_column_columns_changed(GSheetColumn *geo,
gint first, gint n_columns)
{
g_return_if_fail (G_IS_SHEET_COLUMN (geo));
- g_signal_emit (geo, sheet_column_signals[COLUMNS_CHANGED], 0,
+ g_signal_emit (geo, sheet_column_signals[COLUMNS_CHANGED], 0,
first, n_columns);
}
+
+
+
+