From 0d75fa56f7277bba5451c54c6e2ee00411f78ee1 Mon Sep 17 00:00:00 2001 From: Linas Vepstas Date: Thu, 13 Aug 1998 02:16:13 +0000 Subject: [PATCH] misc bug fixes and ongoing devel git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@994 57a11ea4-9604-0410-9ed3-97b8803252fd --- src/MultiLedger.c | 35 +++++++++++++++++++++-------------- src/MultiLedger.h | 5 +++++ 2 files changed, 26 insertions(+), 14 deletions(-) diff --git a/src/MultiLedger.c b/src/MultiLedger.c index f9035156b7..ee806d506d 100644 --- a/src/MultiLedger.c +++ b/src/MultiLedger.c @@ -41,9 +41,6 @@ static xaccLedgerDisplay **regList = NULL; /* single-account registers */ static xaccLedgerDisplay **ledgerList = NULL; /* multiple-account registers */ static xaccLedgerDisplay **fullList = NULL; /* all registers */ -/** PROTOTYPES ******************************************************/ - -static void regRefresh (xaccLedgerDisplay *regData); /********************************************************************\ * Ledger utilities * @@ -305,6 +302,9 @@ xaccLedgerDisplayGeneral (Account *lead_acc, Account **acclist, int ledger_type) if (!regData) { regData = (xaccLedgerDisplay *) malloc (sizeof (xaccLedgerDisplay)); regData->lead_acct = NULL; + regData->redraw = NULL; + regData->gui_hook = NULL; + regData->dirty = 0; } /* count the number of accounts we are supposed to display, @@ -316,9 +316,17 @@ xaccLedgerDisplayGeneral (Account *lead_acc, Account **acclist, int ledger_type) fullList = ledgerListAdd (fullList, regData); /* create GUI here */ + + /******************************************************************\ + * The main register window itself * + \******************************************************************/ + + /* MallocBasicRegister will malloc & initialize the + * register but doesn't do the gui init */ + regData->ledger = xaccMallocSplitRegister (ledger_type); regData->dirty = 1; - regRefresh (regData); + xaccLedgerDisplayRefresh (regData); return regData; } @@ -327,8 +335,8 @@ xaccLedgerDisplayGeneral (Account *lead_acc, Account **acclist, int ledger_type) * refresh only the indicated register window * \********************************************************************/ -static void -regRefresh (xaccLedgerDisplay *regData) +void +xaccLedgerDisplayRefresh (xaccLedgerDisplay *regData) { /* If we don't really need the redraw, don't do it. */ if (!(regData->dirty)) return; @@ -340,7 +348,7 @@ regRefresh (xaccLedgerDisplay *regData) * The "blank split" is what the user edits to create * new splits and get them into the system. */ - xaccBRLoadRegister (regData->ledger, + xaccSRLoadRegister (regData->ledger, xaccAccountGetSplitList (regData->lead_acct), regData->lead_acct); @@ -404,7 +412,8 @@ MarkDirtyAllRegs (Account *acc) * refresh *all* register windows which contain this account * \********************************************************************/ -static void RefreshAllRegs (Account *acc) +static void +RefreshAllRegs (Account *acc) { xaccLedgerDisplay *regData; int n; @@ -415,19 +424,17 @@ static void RefreshAllRegs (Account *acc) n = 0; regData = fullList[n]; while (regData) { if (ledgerIsMember (regData, acc)) { - regRefresh (regData); + xaccLedgerDisplayRefresh (regData); } n++; regData = fullList[n]; } - - /* hack alert -- refesh adjbwindow too */ - recnRefresh (acc); } /********************************************************************\ \********************************************************************/ -void xaccAccountDisplayRefresh (Account *acc) +void +xaccAccountDisplayRefresh (Account *acc) { /* avoid excess screen flicker with a two-phase refresh */ MarkDirtyAllRegs (acc); @@ -485,7 +492,7 @@ closeLedgerDisplay( Widget mw, XtPointer cd, XtPointer cb ) Account *acc = regData->lead_acct; /* Save any unsaved changes */ - xaccBRSaveRegEntry (regData->ledger); + xaccSRSaveRegEntry (regData->ledger); xaccDestroyBasicRegister (regData->ledger); diff --git a/src/MultiLedger.h b/src/MultiLedger.h index aa6a30bfe9..2b96ef3750 100644 --- a/src/MultiLedger.h +++ b/src/MultiLedger.h @@ -82,6 +82,11 @@ extern void xaccAccountDisplayRefresh (Account *acc); */ extern void xaccTransDisplayRefresh (Transaction *trans); +/* + * redisplay/redraw only the indicated window. + */ +extern void xaccLedgerDisplayRefresh (xaccLedgerDisplay *); + #endif /* __MULTI_LEDGER_H__ */ /************************** END OF FILE *************************/