|
GnuCash 2.4.99
|
Declarations for the Table object. More...
#include <glib.h>#include "basiccell.h"#include "cellblock.h"#include "gtable.h"#include "register-common.h"#include "table-control.h"#include "table-layout.h"#include "table-model.h"Go to the source code of this file.
Data Structures | |
| struct | VirtualCell |
| struct | TableGUIHandlers |
| struct | table |
Typedefs | |
| typedef struct table | Table |
| typedef void(* | TableCursorRefreshCB )(Table *table, VirtualCellLocation vcell_loc, gboolean do_scroll) |
| typedef void(* | TableRedrawHelpCB )(Table *table) |
| typedef void(* | TableDestroyCB )(Table *table) |
Functions | |
| void | gnc_table_set_default_gui_handlers (TableGUIHandlers *gui_handlers) |
| Table * | gnc_table_new (TableLayout *layout, TableModel *model, TableControl *control) |
| void | gnc_virtual_location_init (VirtualLocation *vloc) |
| void | gnc_table_save_state (Table *table) |
| void | gnc_table_destroy (Table *table) |
| int | gnc_table_current_cursor_changed (Table *table, gboolean include_conditional) |
| void | gnc_table_clear_current_cursor_changes (Table *table) |
| void | gnc_table_save_current_cursor (Table *table, CursorBuffer *buffer) |
| void | gnc_table_restore_current_cursor (Table *table, CursorBuffer *buffer) |
| const char * | gnc_table_get_current_cell_name (Table *table) |
| gboolean | gnc_table_get_current_cell_location (Table *table, const char *cell_name, VirtualLocation *virt_loc) |
| gboolean | gnc_table_virtual_cell_out_of_bounds (Table *table, VirtualCellLocation vcell_loc) |
| gboolean | gnc_table_virtual_location_in_header (Table *table, VirtualLocation virt_loc) |
| VirtualCell * | gnc_table_get_virtual_cell (Table *table, VirtualCellLocation vcell_loc) |
| const char * | gnc_table_get_entry (Table *table, VirtualLocation virt_loc) |
| const char * | gnc_table_get_label (Table *table, VirtualLocation virt_loc) |
| CellIOFlags | gnc_table_get_io_flags (Table *table, VirtualLocation virt_loc) |
| guint32 | gnc_table_get_fg_color (Table *table, VirtualLocation virt_loc) |
| guint32 | gnc_table_get_bg_color (Table *table, VirtualLocation virt_loc, gboolean *hatching) |
| guint32 | gnc_table_get_gtkrc_bg_color (Table *table, VirtualLocation virt_loc, gboolean *hatching) |
| void | gnc_table_get_borders (Table *table, VirtualLocation virt_loc, PhysicalCellBorders *borders) |
| CellAlignment | gnc_table_get_align (Table *table, VirtualLocation virt_loc) |
| gboolean | gnc_table_is_popup (Table *table, VirtualLocation virt_loc) |
| char * | gnc_table_get_help (Table *table) |
| BasicCell * | gnc_table_get_cell (Table *table, VirtualLocation virt_loc) |
| const char * | gnc_table_get_cell_name (Table *table, VirtualLocation virt_loc) |
| const gchar * | gnc_table_get_cell_type_name (Table *table, VirtualLocation virt_loc) |
| gboolean | gnc_table_get_cell_location (Table *table, const char *cell_name, VirtualCellLocation vcell_loc, VirtualLocation *virt_loc) |
| void | gnc_table_save_cells (Table *table, gpointer save_data) |
| VirtualCell * | gnc_table_get_header_cell (Table *table) |
| void | gnc_table_set_size (Table *table, int virt_rows, int virt_cols) |
| void | gnc_table_set_vcell (Table *table, CellBlock *cursor, gconstpointer vcell_data, gboolean visible, gboolean start_primary_color, VirtualCellLocation vcell_loc) |
| void | gnc_table_set_virt_cell_data (Table *table, VirtualCellLocation vcell_loc, gconstpointer vcell_data) |
| void | gnc_table_set_virt_cell_visible (Table *table, VirtualCellLocation vcell_loc, gboolean visible) |
| void | gnc_table_set_virt_cell_cursor (Table *table, VirtualCellLocation vcell_loc, CellBlock *cursor) |
| void | gnc_table_move_cursor (Table *table, VirtualLocation virt_loc) |
| void | gnc_table_move_cursor_gui (Table *table, VirtualLocation virt_loc) |
| gboolean | gnc_table_verify_cursor_position (Table *table, VirtualLocation virt_loc) |
| gpointer | gnc_table_get_vcell_data (Table *table, VirtualCellLocation vcell_loc) |
| gboolean | gnc_table_find_close_valid_cell (Table *table, VirtualLocation *virt_loc, gboolean exact_cell) |
| void | gnc_table_init_gui (GtkWidget *widget, gpointer data) |
| void | gnc_table_realize_gui (Table *table) |
| void | gnc_table_refresh_current_cursor_gui (Table *table, gboolean do_scroll) |
| void | gnc_table_refresh_gui (Table *table, gboolean do_scroll) |
| void | gnc_table_show_range (Table *table, VirtualCellLocation start_loc, VirtualCellLocation end_loc) |
| void | gnc_table_refresh_cursor_gui (Table *table, VirtualCellLocation vcell_loc, gboolean do_scroll) |
| void | gnc_table_wrap_verify_cursor_position (Table *table, VirtualLocation virt_loc) |
| gboolean | gnc_table_virtual_loc_valid (Table *table, VirtualLocation virt_loc, gboolean exact_pointer) |
| gboolean | gnc_table_move_tab (Table *table, VirtualLocation *virt_loc, gboolean move_right) |
| gboolean | gnc_table_move_vertical_position (Table *table, VirtualLocation *virt_loc, int phys_row_offset) |
| gboolean | gnc_table_enter_update (Table *table, VirtualLocation virt_loc, int *cursor_position, int *start_selection, int *end_selection) |
| void | gnc_table_leave_update (Table *table, VirtualLocation virt_loc) |
| gboolean | gnc_table_confirm_change (Table *table, VirtualLocation virt_loc) |
| const char * | gnc_table_modify_update (Table *table, VirtualLocation virt_loc, const char *change, int change_len, const char *newval, int newval_len, int *cursor_position, int *start_selection, int *end_selection, gboolean *cancelled) |
| gboolean | gnc_table_direct_update (Table *table, VirtualLocation virt_loc, char **newval_ptr, int *cursor_position, int *start_selection, int *end_selection, gpointer gui_data) |
| gboolean | gnc_table_traverse_update (Table *table, VirtualLocation virt_loc, gncTableTraversalDir dir, VirtualLocation *dest_loc) |
Declarations for the Table object.
The Table object defines the structure and the GUI required to display a two-dimensional grid. It provides several important functions:
Please see src/doc/design/gnucash-design.info for additional information.
This implements the gui-independent parts of the table infrastructure. Additional, GUI-dependent parts are implemented in table-gnome.c.
The following concepts apply to the rows in a table:
Lets say there are three cursors T(rans), S(plit), and B(lank). Lets say that these are used to 'print' the following table layout:
virtual row 1 T virtual row 2 S virtual row 3 B virtual row 4 T virtual row 5 S virtual row 6 S virtual row 7 S virtual row 8 S virtual row 9 B
You can see there is only one cursor per virtual row. There is no overlap between cursors and virtual rows; the correspondence is one to one. Note that the three cursors T, S and B may consist of one, or more physical rows, e.g. B and S may be one line each, but T may be two lines. Thus, we have the following physical layout:
physical row 1 virtual row 1 T physical row 2 virtual row 1 T physical row 3 virtual row 2 S physical row 4 virtual row 3 B physical row 5 virtual row 4 T physical row 6 virtual row 4 T physical row 7 virtual row 5 S physical row 8 virtual row 6 S physical row 9 virtual row 7 S physical row 10 virtual row 8 S physical row 11 virtual row 9 B
This layout remains static until the next time that the table is re-'printed'.
Definition in file table-allgui.h.
1.7.4