X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;ds=sidebyside;f=lib%2Fgtksheet%2Fgsheet-row-iface.c;h=4bbd2e1c529b4c4b042633ee907a8580ed681ae7;hb=c5bf90ff8baa7a81274421acb24a915c953e560f;hp=44afc0aaec9541a284e7c8332374d63a1aca48f9;hpb=ad10aed69efec78ddbfcdbe4774bf9a0435fcfd6;p=pspp-builds.git diff --git a/lib/gtksheet/gsheet-row-iface.c b/lib/gtksheet/gsheet-row-iface.c index 44afc0aa..4bbd2e1c 100644 --- a/lib/gtksheet/gsheet-row-iface.c +++ b/lib/gtksheet/gsheet-row-iface.c @@ -36,7 +36,7 @@ static guint sheet_row_signals[LAST_SIGNAL]; -static void g_sheet_row_base_init (gpointer g_class); +static void g_sheet_row_base_init (gpointer g_class); GType @@ -96,7 +96,6 @@ g_sheet_row_base_init (gpointer g_class) 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; @@ -105,74 +104,59 @@ g_sheet_row_base_init (gpointer g_class) void g_sheet_row_set_height (GSheetRow *row_geo, - glong row, gint size, gpointer data) + glong row, gint size) { g_return_if_fail (G_IS_SHEET_ROW (row_geo)); if ((G_SHEET_ROW_GET_IFACE (row_geo)->set_height) ) (G_SHEET_ROW_GET_IFACE (row_geo)->set_height) (row_geo, row, - size, data); + size); } gint g_sheet_row_get_height (const GSheetRow *row_geo, - glong row, gpointer data) + glong row) { g_return_val_if_fail (G_IS_SHEET_ROW (row_geo), -1); g_assert (G_SHEET_ROW_GET_IFACE (row_geo)->get_height); - return (G_SHEET_ROW_GET_IFACE (row_geo)->get_height) (row_geo, row, - data); + return (G_SHEET_ROW_GET_IFACE (row_geo)->get_height) (row_geo, row); } gboolean -g_sheet_row_get_visibility(const GSheetRow *row_geo, - glong row, gpointer data) -{ - g_return_val_if_fail (G_IS_SHEET_ROW (row_geo), FALSE); - - g_assert (G_SHEET_ROW_GET_IFACE (row_geo)->get_visibility); - - return (G_SHEET_ROW_GET_IFACE (row_geo)->get_visibility) (row_geo, - row, data); - -} - -gboolean -g_sheet_row_get_sensitivity(const GSheetRow *row_geo, - glong row, gpointer data) +g_sheet_row_get_sensitivity (const GSheetRow *row_geo, + glong row) { g_return_val_if_fail (G_IS_SHEET_ROW (row_geo), FALSE); g_assert (G_SHEET_ROW_GET_IFACE (row_geo)->get_sensitivity); return (G_SHEET_ROW_GET_IFACE (row_geo)->get_sensitivity) (row_geo, - row, data); - + row); } GtkSheetButton * -g_sheet_row_get_button(const GSheetRow *row_geo, - glong row, gpointer data) +g_sheet_row_get_button (const GSheetRow *row_geo, + glong row) { - GtkSheetButton *button = gtk_sheet_button_new(); + GtkSheetButton *button = gtk_sheet_button_new (); GSheetRowIface *iface = G_SHEET_ROW_GET_IFACE (row_geo); g_return_val_if_fail (G_IS_SHEET_ROW (row_geo), FALSE); if ( iface->get_button_label) - button->label = iface->get_button_label(row_geo, row, data); + button->label = iface->get_button_label (row_geo, row); return button; } -inline gchar * +gchar * g_sheet_row_get_subtitle (const GSheetRow *row_geo, glong row) { g_return_val_if_fail (G_IS_SHEET_ROW (row_geo), NULL); @@ -187,13 +171,13 @@ g_sheet_row_get_subtitle (const GSheetRow *row_geo, glong row) glong -g_sheet_row_get_row_count (const GSheetRow *geo, gpointer data) +g_sheet_row_get_row_count (const GSheetRow *geo) { g_return_val_if_fail (G_IS_SHEET_ROW (geo), -1); g_assert ( G_SHEET_ROW_GET_IFACE (geo)->get_row_count); - return (G_SHEET_ROW_GET_IFACE (geo)->get_row_count) (geo, data); + return (G_SHEET_ROW_GET_IFACE (geo)->get_row_count) (geo); } /** @@ -203,6 +187,8 @@ g_sheet_row_get_row_count (const GSheetRow *geo, gpointer data) * @sheet: pointer to the sheet * * Returns the top y pixel for ROW. + * ROW may point to the row BELOW the last row, in which case it should + * return the position where it would start if it existed. * Instances may override this method in order to achieve time and/or memory * optmisation. * @@ -210,23 +196,21 @@ g_sheet_row_get_row_count (const GSheetRow *geo, gpointer data) */ gint -g_sheet_row_start_pixel(const GSheetRow *geo, glong row, gpointer data) +g_sheet_row_start_pixel (const GSheetRow *geo, glong row) { gint i; gint start_pixel = 0; g_return_val_if_fail (G_IS_SHEET_ROW (geo), -1); g_return_val_if_fail (row >= 0, -1); - g_return_val_if_fail (row < - g_sheet_row_get_row_count(geo, data),-1); + g_return_val_if_fail (row <= g_sheet_row_get_row_count (geo), -1); - if ( G_SHEET_ROW_GET_IFACE(geo)->top_ypixel) - return (G_SHEET_ROW_GET_IFACE(geo)->top_ypixel)(geo, row, data); + if ( G_SHEET_ROW_GET_IFACE (geo)->top_ypixel) + return (G_SHEET_ROW_GET_IFACE (geo)->top_ypixel)(geo, row); - for ( i = 0 ; i < row ; ++i ) + for (i = 0; i < row; ++i) { - if ( g_sheet_row_get_visibility(geo, i, data)) - start_pixel += g_sheet_row_get_height(geo, i, data); + start_pixel += g_sheet_row_get_height (geo, i); } return start_pixel; @@ -234,30 +218,27 @@ g_sheet_row_start_pixel(const GSheetRow *geo, glong row, gpointer data) glong -g_sheet_row_pixel_to_row (const GSheetRow *geo, gint pixel, - gpointer data) +g_sheet_row_pixel_to_row (const GSheetRow *geo, gint pixel) { gint i, cy; g_return_val_if_fail (G_IS_SHEET_ROW (geo), -1); g_return_val_if_fail (pixel >= 0, -1) ; - if ( G_SHEET_ROW_GET_IFACE(geo)->pixel_to_row) - return (G_SHEET_ROW_GET_IFACE(geo)->pixel_to_row)(geo, pixel, data); + if ( G_SHEET_ROW_GET_IFACE (geo)->pixel_to_row) + return (G_SHEET_ROW_GET_IFACE (geo)->pixel_to_row)(geo, pixel); cy = 0; - for (i = 0; i < g_sheet_row_get_row_count(geo, data); ++i ) + for (i = 0; i < g_sheet_row_get_row_count (geo); ++i ) { if (pixel >= cy && - pixel <= (cy + g_sheet_row_get_height(geo, i, data)) && - g_sheet_row_get_visibility(geo, i, data)) + pixel <= (cy + g_sheet_row_get_height (geo, i))) return i; - if(g_sheet_row_get_visibility(geo, i, data)) - cy += g_sheet_row_get_height(geo, i, data); + cy += g_sheet_row_get_height (geo, i); } /* no match */ - return g_sheet_row_get_row_count(geo, data) - 1; + return g_sheet_row_get_row_count (geo) - 1; }