GnuCash  5.6-150-g038405b370+
Modules | Files | Data Structures | Macros | Enumerator | Functions | Variables

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

Modules

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

Files

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...
 

Macros

#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"
 
#define COMPLETION_CELL_TYPE_NAME   "completion-cell"
 

Functions

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)
 

Variables

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.