GnuCash  4.13-177-g21dd8aa057+
Modules | Files | Data Structures | Macros | Enumerator | Functions | Variables

An infrastructure for building a modular matrix of cells like a spreadsheet or checkbook register. More...


 A "Cell" is an active object which is designed to read a specific kind of user input.
 A "Cellblock" is an array of active cells.
 The "Table" is a displayed matrix.


file  register-common.h
 Common declarations for the register core.

Data Structures

struct  VirtualCellLocation
 The VirtualCellLocation structure contains the virtual location of a virtual cell. More...
struct  VirtualLocation
 The VirtualLocation structure contains the virtual location of a physical cell. More...


#define BASIC_CELL_TYPE_NAME   "basic-cell"
#define COMBO_CELL_TYPE_NAME   "combo-cell"
#define DATE_CELL_TYPE_NAME   "date-cell"
#define NUM_CELL_TYPE_NAME   "num-cell"
#define PRICE_CELL_TYPE_NAME   "price-cell"
#define RECN_CELL_TYPE_NAME   "recn-cell"
#define DOCLINK_CELL_TYPE_NAME   "doclink-cell"
#define QUICKFILL_CELL_TYPE_NAME   "quickfill-cell"
#define FORMULA_CELL_TYPE_NAME   "formula-cell"
#define CHECKBOX_CELL_TYPE_NAME   "checkbox-cell"


void gnc_register_init (void)
void gnc_register_shutdown (void)
void gnc_register_add_cell_type (const char *cell_type_name, CellCreateFunc cell_creator)
BasicCell * gnc_register_make_cell (const char *cell_type_name)
gboolean virt_cell_loc_equal (VirtualCellLocation vcl1, VirtualCellLocation vcl2)
gboolean virt_loc_equal (VirtualLocation vl1, VirtualLocation vl2)


char * BasicCell::cell_name
gchar * BasicCell::cell_type_name
char * BasicCell::value
guint BasicCell::value_chars
 current value
gboolean BasicCell::changed
 number of characters in value
gboolean BasicCell::conditionally_changed
 true if value modified
CellSetValueFunc BasicCell::set_value
 true if value modified conditionally
CellDestroyFunc BasicCell::destroy
CellEnterFunc BasicCell::enter_cell
CellModifyVerifyFunc BasicCell::modify_verify
CellDirectUpdateFunc BasicCell::direct_update
CellLeaveFunc BasicCell::leave_cell
CellRealizeFunc BasicCell::gui_realize
CellMoveFunc BasicCell::gui_move
CellDestroyFunc BasicCell::gui_destroy
char * BasicCell::sample_text
CellAlignment BasicCell::alignment
 sample text for sizing purposes
gboolean BasicCell::expandable
 horizontal alignment in column
gboolean BasicCell::span
 can fill with extra space
gboolean BasicCell::is_popup
 can span multiple columns
gpointer BasicCell::gui_private
 is a popup widget

Detailed Description

An infrastructure for building a modular matrix of cells like a spreadsheet or checkbook register.

Each cell may be specialized to perform a particular function, e.g. to read dates, numerical amounts, or text. The register core has been designed to be easy to extend, modular, easy to maintain, and memory efficient. It is intended to be used for building financial apps and spreadsheets.

The register core is built from several types of components: Cells, Cellblocks, Cursors, and the Table.

The register core should not have any 'knowledge' of the accounting model of GnuCash or of the workings of the main application. It should not be specific to a particular GUI (such as Gnome/GTK). It should be possible to use the register core in a stand-alone fashion.

For information on the GnuCash-specific register implementation that has been built atop this core, see Split Register.