mirror of
https://github.com/Gnucash/gnucash.git
synced 2024-11-27 11:20:27 -06:00
83d14e1c1c
It is split into - /libgnucash (for the non-gui bits) - /gnucash (for the gui) - /common (misc source files used by both) - /bindings (currently only holds python bindings) This is the first step in restructuring the code. It will need much more fine tuning later on.
240 lines
5.6 KiB
Plaintext
240 lines
5.6 KiB
Plaintext
\input texinfo @c -*-texinfo-*-
|
|
@c %**start of header
|
|
@setfilename gnucash-design.info
|
|
@settitle GnuCash Design Document
|
|
@c %**end of header
|
|
|
|
@comment 'version.texi' is a magic filename that, when included,
|
|
@comment will be auto-generated courtesy of automake.
|
|
@include version.texi
|
|
|
|
@ifinfo
|
|
@format
|
|
|
|
@dircategory Programming
|
|
|
|
@direntry
|
|
* gnucash: (gnucash-design). Design of the GnuCash program
|
|
@end direntry
|
|
|
|
@end format
|
|
@end ifinfo
|
|
|
|
@ifinfo
|
|
This file documents the design of the GnuCash program.
|
|
|
|
Copyright 2000 Gnumatic Incorporated
|
|
|
|
This is Edition @value{EDITION}, last updated @value{UPDATED},
|
|
of the @cite{GnuCash Design Document}, version @value{VERSION}.
|
|
|
|
Permission is granted to copy, distribute and/or modify this document
|
|
under the terms of the GNU Free Documentation License, Version 1.1
|
|
or any later version published by the Free Software Foundation;
|
|
with the Invariant Sections being LIST THEIR TITLES, with the
|
|
Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
|
|
A copy of the license is included in the section entitled "GNU
|
|
Free Documentation License".
|
|
|
|
@ignore
|
|
Permission is granted to process this file through TeX
|
|
and print the results, provided the printed document
|
|
carries a copying permission notice identical to this
|
|
one except for the removal of this paragraph (this
|
|
paragraph not being relevant to the printed manual).
|
|
@end ignore
|
|
|
|
@end ifinfo
|
|
|
|
@titlepage
|
|
@title GnuCash Design Document
|
|
@subtitle Edition @value{EDITION} for Version @value{VERSION}
|
|
@author Rob Browning
|
|
@author Bill Gribble
|
|
@author Robert Merkel
|
|
@author Dave Peticolas
|
|
@author Linas Vepstas
|
|
@page
|
|
@vskip 0pt plus 1filll
|
|
@copyright{} 2000 Gnumatic Incorporated
|
|
Permission is granted to copy, distribute and/or modify this document
|
|
under the terms of the GNU Free Documentation License, Version 1.1
|
|
or any later version published by the Free Software Foundation;
|
|
with the Invariant Sections being LIST THEIR TITLES, with the
|
|
Front-Cover Texts being LIST, and with the Back-Cover Texts being LIST.
|
|
A copy of the license is included in the section entitled "GNU
|
|
Free Documentation License".
|
|
@end titlepage
|
|
|
|
@ifnottex
|
|
@node Top, GNU Free Documentation License, (dir), (dir)
|
|
@top GnuCash Design Document
|
|
This is Edition @value{EDITION}, last updated @value{UPDATED},
|
|
of the @cite{GnuCash Design Document}, version @value{VERSION}.
|
|
@end ifnottex
|
|
|
|
@menu
|
|
* GNU Free Documentation License::
|
|
* Introduction::
|
|
* Top Level::
|
|
* Engine::
|
|
* Component Manager::
|
|
* Register::
|
|
* Reports::
|
|
* User Preferences::
|
|
* Function Index::
|
|
* Data Type Index::
|
|
* Concept Index::
|
|
|
|
|
|
@detailmenu
|
|
--- The Detailed Node Listing ---
|
|
|
|
Engine
|
|
|
|
* Engine Introduction::
|
|
* Using and Extending the Engine API::
|
|
* Globally Unique Identifiers::
|
|
* Numeric Library::
|
|
* Key-Value Pair Frames::
|
|
* Events::
|
|
* Commodities::
|
|
* Commodity Tables::
|
|
* Prices::
|
|
* Price Databases::
|
|
* Splits::
|
|
* Transactions::
|
|
* Accounts::
|
|
* Account Groups::
|
|
* GNCBooks::
|
|
* Scrub::
|
|
|
|
Globally Unique Identifiers
|
|
|
|
* When to use GUIDs::
|
|
* GUID Types::
|
|
* How to use GUIDs::
|
|
* GUIDs and GnuCash Entities::
|
|
* The GUID Generator::
|
|
|
|
Numeric Library
|
|
|
|
* Standard Numeric Arguments::
|
|
* Creating Numeric Objects::
|
|
* Basic Arithmetic Operations::
|
|
* Numeric Comparisons and Predicates::
|
|
* Numeric Denominator Conversion::
|
|
* Numeric Floating Point Conversion::
|
|
* Numeric String Conversion::
|
|
* Numeric Error Handling ::
|
|
* Numeric Example::
|
|
|
|
Key-Value Pair Frames
|
|
|
|
* Key-Value Policy::
|
|
* kvp_frame::
|
|
* KvpValue::
|
|
* kvp_list::
|
|
|
|
Events
|
|
|
|
* Event API::
|
|
|
|
Commodities
|
|
|
|
* General Commodity API::
|
|
* Commodity Getters::
|
|
* Commodity Setters::
|
|
|
|
Commodity Tables
|
|
|
|
* General Commodity Table API::
|
|
* Commodity Table Access API::
|
|
* Commodity Table Modification API::
|
|
|
|
Prices
|
|
|
|
* Price Implementation Details::
|
|
* General Price API::
|
|
* Price Getters::
|
|
* Price Setters::
|
|
|
|
Price Databases
|
|
|
|
* Price Lists::
|
|
* General Price Database API::
|
|
|
|
Splits
|
|
|
|
* General Split API::
|
|
* Split Getters::
|
|
* Split Setters::
|
|
|
|
Transactions
|
|
|
|
* General Transaction API::
|
|
* Transaction Getters::
|
|
* Transaction Setters::
|
|
|
|
Accounts
|
|
|
|
* Account Types::
|
|
* General Account API::
|
|
* Account Type API::
|
|
* Account Getters::
|
|
|
|
Account Groups
|
|
|
|
* General Account Group API::
|
|
* Account Group Account API::
|
|
|
|
GNCBooks
|
|
|
|
* GNCBook API::
|
|
|
|
Component Manager
|
|
|
|
* Component Manager Introduction::
|
|
|
|
Register
|
|
|
|
* Cells::
|
|
* Cellblocks::
|
|
* Table::
|
|
* Split Register::
|
|
|
|
Cells
|
|
|
|
* BasicCell::
|
|
|
|
Reports
|
|
|
|
* Creating a Report::
|
|
|
|
User Preferences
|
|
|
|
* Option Databases::
|
|
* Option Types::
|
|
* Option Creation::
|
|
* Option Values::
|
|
|
|
@end detailmenu
|
|
@end menu
|
|
|
|
@include fdl.texi
|
|
@include intro.texi
|
|
@include top-level.texi
|
|
@include engine.texi
|
|
@include component-manager.texi
|
|
@include register.texi
|
|
@include reports.texi
|
|
@include user-preferences.texi
|
|
@include function-index.texi
|
|
@include type-index.texi
|
|
@include concept-index.texi
|
|
|
|
@summarycontents
|
|
@contents
|
|
|
|
@bye
|