X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fgtksheet%2Fgsheet-column-iface.c;h=1cd7996d4823def6aafb0501a2bdf466f89d52e4;hb=f404544337964f80bb2d1fee5acb147f7023bc08;hp=a4cc9f36b3a54359eae56bba396f152c34b08141;hpb=573068f2bdcd3f8796e9646668fed910a90f890b;p=pspp-builds.git diff --git a/lib/gtksheet/gsheet-column-iface.c b/lib/gtksheet/gsheet-column-iface.c index a4cc9f36..1cd7996d 100644 --- a/lib/gtksheet/gsheet-column-iface.c +++ b/lib/gtksheet/gsheet-column-iface.c @@ -1,4 +1,4 @@ -/* 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 @@ -18,6 +18,8 @@ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA */ +#include + #include #include #include @@ -25,7 +27,7 @@ #include #include "gsheet-column-iface.h" #include "gtkextra-marshal.h" - +#include "gtkextra-sheet.h" enum { COLUMNS_CHANGED, @@ -39,7 +41,7 @@ static guint sheet_column_signals[LAST_SIGNAL]; static void g_sheet_column_base_init (gpointer g_class); -inline GType +GType g_sheet_column_get_type (void) { static GType sheet_column_type = 0; @@ -73,8 +75,6 @@ g_sheet_column_get_type (void) } -static GtkSheetButton default_button; - static void g_sheet_column_base_init (gpointer g_class) { @@ -95,187 +95,190 @@ 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) +void +g_sheet_column_set_width (GSheetColumn *column, glong 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) +gint +g_sheet_column_get_width (const GSheetColumn *column, glong 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 +gboolean g_sheet_column_get_visibility(const GSheetColumn *column, - gint col, const GtkSheet *sheet) + glong 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 +gboolean g_sheet_column_get_sensitivity(const GSheetColumn *column, - gint col, const GtkSheet *sheet) + glong 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 * +GtkSheetButton * g_sheet_column_get_button(const GSheetColumn *column, - gint col, const GtkSheet *sheet) + glong col) { - static GtkSheetButton button ; + GtkSheetButton *button = gtk_sheet_button_new(); + GSheetColumnIface *iface = G_SHEET_COLUMN_GET_IFACE (column); g_return_val_if_fail (G_IS_SHEET_COLUMN (column), FALSE); - memcpy(&button, &default_button, sizeof (button)); - 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) +GtkJustification +g_sheet_column_get_justification(const GSheetColumn *column, + glong 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); } +gchar * +g_sheet_column_get_subtitle (const GSheetColumn *column, glong 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 +gint g_sheet_column_get_left_text_column (const GSheetColumn *column, - gint col, const GtkSheet *sheet) + glong 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 +gint g_sheet_column_get_right_text_column (const GSheetColumn *column, - gint col, const GtkSheet *sheet) + glong 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 +void g_sheet_column_set_left_text_column (const GSheetColumn *column, - gint col, gint i, const GtkSheet *sheet) + glong 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 +void g_sheet_column_set_right_text_column (const GSheetColumn *column, - gint col, gint i, const GtkSheet *sheet) + glong 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) +glong +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) +gint +g_sheet_column_start_pixel(const GSheetColumn *geo, glong col) { gint i; gint start_pixel = 0; 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); + g_return_val_if_fail (col < + g_sheet_column_get_column_count(geo),-1); - for ( i = 0 ; i < col ; ++i ) + 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, - gint first, gint n_columns) +void +g_sheet_column_columns_changed(GSheetColumn *geo, + glong first, glong 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); } + + + +