X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=lib%2Fgtksheet%2Fgtksheet.h;h=de308a60ebe630b11f5cf5c9c394d116f1db61dd;hb=11706f97dd318697e43e6468b130ca5b7f1bff87;hp=b61883689025044a86c079480e86afeccffc7dd1;hpb=36fd5e5fa7adcc065a3c363d9de2c271be50f5c9;p=pspp-builds.git diff --git a/lib/gtksheet/gtksheet.h b/lib/gtksheet/gtksheet.h index b6188368..de308a60 100644 --- a/lib/gtksheet/gtksheet.h +++ b/lib/gtksheet/gtksheet.h @@ -30,27 +30,12 @@ #include "gtkextra-sheet.h" #include "gsheetmodel.h" -#include "gsheet-column-iface.h" #include "gsheet-row-iface.h" - +#include "psppire-axis.h" G_BEGIN_DECLS - -typedef enum -{ - GTK_SHEET_FOREGROUND, - GTK_SHEET_BACKGROUND, - GTK_SHEET_FONT, - GTK_SHEET_JUSTIFICATION, - GTK_SHEET_BORDER, - GTK_SHEET_BORDER_COLOR, - GTK_SHEET_IS_EDITABLE, - GTK_SHEET_IS_VISIBLE -} GtkSheetAttrType; - /* sheet->state */ - enum { GTK_SHEET_NORMAL, @@ -61,6 +46,7 @@ enum #define GTK_TYPE_SHEET_RANGE (gtk_sheet_range_get_type ()) +#define GTK_TYPE_SHEET_CELL (gtk_sheet_cell_get_type ()) #define GTK_TYPE_SHEET (gtk_sheet_get_type ()) #define GTK_SHEET(obj) GTK_CHECK_CAST (obj, gtk_sheet_get_type (), GtkSheet) @@ -68,15 +54,9 @@ enum #define GTK_IS_SHEET(obj) GTK_CHECK_TYPE (obj, gtk_sheet_get_type ()) - -#define GTK_SHEET_AUTORESIZE(sheet) gtk_sheet_autoresize (sheet) -#define GTK_SHEET_AUTO_SCROLL(sheet) gtk_sheet_autoscroll (sheet) -#define GTK_SHEET_JUSTIFY_ENTRY(sheet) gtk_sheet_justify_entry (sheet) - - typedef struct _GtkSheetClass GtkSheetClass; typedef struct _GtkSheetCellAttr GtkSheetCellAttr; -typedef struct _GtkSheetCell GtkSheetCell; + typedef struct _GtkSheetHoverTitle GtkSheetHoverTitle; @@ -91,13 +71,6 @@ struct _GtkSheetCellAttr gboolean is_visible; }; -struct _GtkSheetCell -{ - gint row; - gint col; -}; - - struct _GtkSheetHoverTitle { GtkWidget *window; @@ -117,7 +90,10 @@ struct _GtkSheet GtkBin parent; gboolean dispose_has_run; + /* GSheetColumn *column_geometry; + */ + PsppireAxis *haxis; GSheetRow *row_geometry; guint16 flags; @@ -125,9 +101,6 @@ struct _GtkSheet GSheetModel *model; GtkSelectionMode selection_mode; - gboolean autoresize; - gboolean autoscroll; - gboolean justify_entry; /* Component colors */ GdkColor color[n_COLORS]; @@ -156,6 +129,9 @@ struct _GtkSheet /* The type of entry_widget */ GtkType entry_type; + /* Handler of the "changed" callback for the entry widget */ + glong entry_handler_id; + /* expanding selection */ GtkSheetCell selection_cell; @@ -168,14 +144,9 @@ struct _GtkSheet /* selected range */ GtkSheetRange range; - /*the scrolling window and it's height and width to + /* the scrolling window and its height and width to * make things a little speedier */ GdkWindow *sheet_window; - guint sheet_window_width; - guint sheet_window_height; - - /* sheet backing pixmap */ - GdkPixmap *pixmap; /* border shadow style */ GtkShadowType shadow_type; @@ -250,9 +221,6 @@ struct _GtkSheetClass gint row, gint column, gint *new_row, gint *new_column); - gboolean (*deactivate) (GtkSheet *sheet, - gint row, gint column); - gboolean (*activate) (GtkSheet *sheet, gint row, gint column); @@ -265,18 +233,18 @@ GtkType gtk_sheet_range_get_type (void); /* create a new sheet */ -GtkWidget * gtk_sheet_new (GSheetRow *vgeo, GSheetColumn *hgeo, +GtkWidget * gtk_sheet_new (GSheetRow *vgeo, void *hgeo, GSheetModel *model); /* create a new sheet with custom entry */ GtkWidget * gtk_sheet_new_with_custom_entry (GSheetRow *vgeo, - GSheetColumn *hgeo, + void *hgeo, GtkType entry_type); void gtk_sheet_construct_with_custom_entry (GtkSheet *sheet, GSheetRow *vgeo, - GSheetColumn *hgeo, + void *hgeo, GtkType entry_type); /* Change entry */ void gtk_sheet_change_entry (GtkSheet *sheet, GtkType entry_type); @@ -284,57 +252,14 @@ void gtk_sheet_change_entry (GtkSheet *sheet, GtkType entry_type); GtkWidget *gtk_sheet_get_entry (GtkSheet *sheet); -guint gtk_sheet_get_columns_count (GtkSheet *sheet); - -guint gtk_sheet_get_rows_count (GtkSheet *sheet); - void gtk_sheet_get_selected_range (GtkSheet *sheet, GtkSheetRange *range); -void gtk_sheet_set_selection_mode (GtkSheet *sheet, gint mode); - -void gtk_sheet_set_autoresize (GtkSheet *sheet, gboolean autoresize); - -gboolean gtk_sheet_autoresize (GtkSheet *sheet); - -void gtk_sheet_set_autoscroll (GtkSheet *sheet, gboolean autoscroll); - -gboolean gtk_sheet_autoscroll (GtkSheet *sheet); - -void gtk_sheet_set_justify_entry (GtkSheet *sheet, gboolean justify); - -gboolean gtk_sheet_justify_entry (GtkSheet *sheet); - void gtk_sheet_show_grid (GtkSheet *sheet, gboolean show); gboolean gtk_sheet_grid_visible (GtkSheet *sheet); -/* set/get column title */ -void gtk_sheet_set_column_title (GtkSheet * sheet, - gint column, - const gchar * title); - -const gchar *gtk_sheet_get_column_title (GtkSheet * sheet, - gint column); - -/* set/get row title */ -void gtk_sheet_set_row_title (GtkSheet * sheet, - gint row, - const gchar * title); - -const gchar *gtk_sheet_get_row_title (GtkSheet * sheet, - gint row); - -/* set/get button label */ -void gtk_sheet_row_button_add_label (GtkSheet *sheet, - gint row, const gchar *label); - -const gchar *gtk_sheet_row_button_get_label (GtkSheet *sheet, - gint row); - -void gtk_sheet_row_button_justify (GtkSheet *sheet, - gint row, GtkJustification justification); /* scroll the viewing area of the sheet to the given column * and row; row_align and col_align are between 0-1 representing the @@ -353,30 +278,6 @@ void gtk_sheet_hide_row_titles (GtkSheet *sheet); void gtk_sheet_show_column_titles (GtkSheet *sheet); void gtk_sheet_hide_column_titles (GtkSheet *sheet); -gboolean gtk_sheet_row_titles_visible (GtkSheet *sheet); - - -/* set row button sensitivity. If sensitivity is TRUE can be toggled, - * otherwise it acts as a title */ -void gtk_sheet_row_set_sensitivity (GtkSheet *sheet, - gint row, gboolean sensitive); - -/* set sensitivity for all row buttons */ -void gtk_sheet_rows_set_sensitivity (GtkSheet *sheet, gboolean sensitive); -void gtk_sheet_rows_set_resizable (GtkSheet *sheet, gboolean resizable); -gboolean gtk_sheet_rows_resizable (GtkSheet *sheet); - -/* set row visibility. The default value is TRUE. If FALSE, the - * row is hidden */ -void gtk_sheet_row_set_visibility (GtkSheet *sheet, - gint row, gboolean visible); - -void gtk_sheet_row_label_set_visibility (GtkSheet *sheet, - gint row, gboolean visible); - -void gtk_sheet_rows_labels_set_visibility (GtkSheet *sheet, gboolean visible); - - /* select the row. The range is then highlighted, and the bounds are stored * in sheet->range */ void gtk_sheet_select_row (GtkSheet * sheet, gint row); @@ -394,11 +295,9 @@ void gtk_sheet_get_visible_range (GtkSheet *sheet, GtkSheetRange *range); /* obvious */ void gtk_sheet_unselect_range (GtkSheet *sheet); -/* set active cell where the entry will be displayed - * returns FALSE if current cell can't be deactivated or - * requested cell can't be activated */ -gboolean gtk_sheet_set_active_cell (GtkSheet *sheet, - gint row, gint column); +/* set active cell where the entry will be displayed */ +void gtk_sheet_set_active_cell (GtkSheet *sheet, + gint row, gint column); /* Sets *ROW and *COLUMN to be the coordinates of the active cell. ROW and/or COLUMN may be null if the caller is not interested in their @@ -409,90 +308,6 @@ void gtk_sheet_get_active_cell (GtkSheet *sheet, /* get cell contents */ gchar *gtk_sheet_cell_get_text (const GtkSheet *sheet, gint row, gint col); -/* clear cell contents */ -void gtk_sheet_cell_clear (GtkSheet *sheet, gint row, gint col); - -/* clear range contents. If range==NULL the whole sheet will be cleared */ -void gtk_sheet_range_clear (GtkSheet *sheet, - const GtkSheetRange *range); - -/* get cell state: GTK_STATE_NORMAL, GTK_STATE_SELECTED */ -GtkStateType gtk_sheet_cell_get_state (GtkSheet *sheet, gint row, gint col); - -/* get area of a given cell */ -gboolean gtk_sheet_get_cell_area (GtkSheet *sheet, - gint row, - gint column, - GdkRectangle *area); - -/* set row height */ -void gtk_sheet_set_row_height (GtkSheet * sheet, - gint row, - guint height); - - -/* delete nrows rows starting in row */ -void gtk_sheet_delete_rows (GtkSheet *sheet, guint row, guint nrows); - -/* append nrows row to the end of the sheet */ -void gtk_sheet_add_row (GtkSheet *sheet, guint nrows); - -/* insert nrows rows before the given row and pull right */ -void gtk_sheet_insert_rows (GtkSheet *sheet, guint row, guint nrows); - -/* set abckground color of the given range */ -void gtk_sheet_range_set_background (GtkSheet *sheet, - const GtkSheetRange *range, - const GdkColor *color); - -/* set foreground color (text color) of the given range */ -void gtk_sheet_range_set_foreground (GtkSheet *sheet, - const GtkSheetRange *range, - const GdkColor *color); - -/* set text justification (GTK_JUSTIFY_LEFT, RIGHT, CENTER) of the given range. - * The default value is GTK_JUSTIFY_LEFT. If autoformat is on, the - * default justification for numbers is GTK_JUSTIFY_RIGHT */ -void gtk_sheet_range_set_justification (GtkSheet *sheet, - const GtkSheetRange *range, - GtkJustification justification); - -void gtk_sheet_column_set_justification (GtkSheet *sheet, - gint column, - GtkJustification justification); - -/* set if cell contents can be edited or not in the given range: - * accepted values are TRUE or FALSE. */ -void gtk_sheet_range_set_editable (GtkSheet *sheet, - const GtkSheetRange *range, - gint editable); - -/* set if cell contents are visible or not in the given range: - * accepted values are TRUE or FALSE.*/ -void gtk_sheet_range_set_visible (GtkSheet *sheet, - const GtkSheetRange *range, - gboolean visible); - -/* set cell border style in the given range. - * mask values are CELL_LEFT_BORDER, CELL_RIGHT_BORDER, CELL_TOP_BORDER, - * CELL_BOTTOM_BORDER - * width is the width of the border line in pixels - * line_style is the line_style for the border line */ -void gtk_sheet_range_set_border (GtkSheet *sheet, - const GtkSheetRange *range, - gint mask, - guint width, - gint line_style); - -/* set border color for the given range */ -void gtk_sheet_range_set_border_color (GtkSheet *sheet, - const GtkSheetRange *range, - const GdkColor *color); - -/* set font for the given range */ -void gtk_sheet_range_set_font (GtkSheet *sheet, - const GtkSheetRange *range, - PangoFontDescription *font); /* get cell attributes of the given cell */ /* TRUE means that the cell is currently allocated */ @@ -500,8 +315,7 @@ gboolean gtk_sheet_get_attributes (const GtkSheet *sheet, gint row, gint col, GtkSheetCellAttr *attributes); - -void gtk_sheet_set_model (GtkSheet *sheet, +void gtk_sheet_set_model (GtkSheet *sheet, GSheetModel *model); GSheetModel * gtk_sheet_get_model (const GtkSheet *sheet);