remove gui elements from the account structure

git-svn-id: svn+ssh://svn.gnucash.org/repo/gnucash/trunk@476 57a11ea4-9604-0410-9ed3-97b8803252fd
This commit is contained in:
Linas Vepstas 1998-02-01 06:26:54 +00:00
parent cbad81edeb
commit e36aa363d8
3 changed files with 48 additions and 61 deletions

View File

@ -36,7 +36,6 @@
#include <Xm/PushB.h> #include <Xm/PushB.h>
#include <Xm/Text.h> #include <Xm/Text.h>
#include "config.h" #include "config.h"
#include "Account.h" #include "Account.h"
@ -52,7 +51,6 @@
typedef struct _accwindow { typedef struct _accwindow {
/* The account type buttons: */ /* The account type buttons: */
Widget dialog; Widget dialog;
Widget type_widgets[NUM_ACCOUNT_TYPES]; Widget type_widgets[NUM_ACCOUNT_TYPES];
/* The text fields: */ /* The text fields: */
@ -78,12 +76,15 @@ typedef struct _editaccwindow {
typedef struct _editnoteswindow { typedef struct _editnoteswindow {
TextBox *tb; TextBox *tb;
Account *account; /* The account to edit */ Account *account; /* The account to edit */
} EditNotesWindow; } EditNotesWindow;
/** GLOBALS *********************************************************/ /** GLOBALS *********************************************************/
extern Widget toplevel; extern Widget toplevel;
static EditAccWindow ** editAccList = NULL;
static EditNotesWindow ** editNotesList = NULL;
/** PROTOTYPES ******************************************************/ /** PROTOTYPES ******************************************************/
static void closeAccWindow ( Widget mw, XtPointer cd, XtPointer cb ); static void closeAccWindow ( Widget mw, XtPointer cd, XtPointer cb );
static void closeEditAccWindow ( Widget mw, XtPointer cd, XtPointer cb ); static void closeEditAccWindow ( Widget mw, XtPointer cd, XtPointer cb );
@ -378,15 +379,6 @@ closeAccWindow( Widget mw, XtPointer cd, XtPointer cb )
DEBUG("close AccWindow"); DEBUG("close AccWindow");
} }
/********************************************************************\
\********************************************************************/
void xaccDestroyEditAccWindow (EditAccWindow *editAccData)
{
if (!editAccData) return;
XtDestroyWidget (editAccData->dialog);
}
/********************************************************************\ /********************************************************************\
* editAccWindow * * editAccWindow *
* opens up a window to edit an account * * opens up a window to edit an account *
@ -396,20 +388,16 @@ void xaccDestroyEditAccWindow (EditAccWindow *editAccData)
* Return: none * * Return: none *
\********************************************************************/ \********************************************************************/
EditAccWindow * EditAccWindow *
editAccWindow( Widget parent, Account *account ) editAccWindow( Widget parent, Account *acc )
{ {
Widget dialog, form, widget, label, buttonform; Widget dialog, form, widget, label, buttonform;
EditAccWindow *editAccData; EditAccWindow *editAccData;
if (0x0 == account) return 0x0; /* internal error, really */ FETCH_FROM_LIST (EditAccWindow, editAccList, acc, account, editAccData);
setBusyCursor( parent ); setBusyCursor( parent );
editAccData = (EditAccWindow *)_malloc(sizeof(EditAccWindow));
editAccData->account = account;
account->editAccData = editAccData;
/* force the size of the dialog so it is not resizable */ /* force the size of the dialog so it is not resizable */
dialog = XtVaCreatePopupShell( "dialog", dialog = XtVaCreatePopupShell( "dialog",
xmDialogShellWidgetClass, parent, xmDialogShellWidgetClass, parent,
@ -456,7 +444,7 @@ editAccWindow( Widget parent, Account *account )
xmTextWidgetClass, form, xmTextWidgetClass, form,
XmNmaxLength, 40, XmNmaxLength, 40,
XmNcolumns, 25, XmNcolumns, 25,
XmNvalue, account->accountName, XmNvalue, acc->accountName,
XmNeditable, True, XmNeditable, True,
XmNtopAttachment, XmATTACH_FORM, XmNtopAttachment, XmATTACH_FORM,
XmNtopOffset, 10, XmNtopOffset, 10,
@ -479,7 +467,7 @@ editAccWindow( Widget parent, Account *account )
xmTextWidgetClass, form, xmTextWidgetClass, form,
XmNmaxLength, 40, XmNmaxLength, 40,
XmNcolumns, 30, XmNcolumns, 30,
XmNvalue, account->description, XmNvalue, acc->description,
XmNeditable, True, XmNeditable, True,
XmNtopAttachment, XmATTACH_WIDGET, XmNtopAttachment, XmATTACH_WIDGET,
XmNtopWidget, editAccData->name, XmNtopWidget, editAccData->name,
@ -566,7 +554,19 @@ editAccWindow( Widget parent, Account *account )
unsetBusyCursor( parent ); unsetBusyCursor( parent );
return editAccData; return editAccData;
} }
/********************************************************************\
\********************************************************************/
void xaccDestroyEditAccWindow (Account * acc)
{
EditAccWindow *editAccData;
REMOVE_FROM_LIST (EditAccWindow,editAccList,acc,account,editAccData);
XtDestroyWidget (editAccData->dialog);
free (editAccData);
}
/********************************************************************\ /********************************************************************\
* closeEditAccWindow * * closeEditAccWindow *
@ -583,9 +583,10 @@ static void
closeEditAccWindow( Widget mw, XtPointer cd, XtPointer cb ) closeEditAccWindow( Widget mw, XtPointer cd, XtPointer cb )
{ {
EditAccWindow *editAccData = (EditAccWindow *)cd; EditAccWindow *editAccData = (EditAccWindow *)cd;
Account *acc = editAccData->account;
editAccData->account->editAccData = NULL; REMOVE_FROM_LIST (EditAccWindow,editAccList,acc,account,editAccData);
_free(editAccData); free(editAccData);
DEBUG("close EditAccWindow"); DEBUG("close EditAccWindow");
} }
@ -603,10 +604,8 @@ notesCB( Widget mw, XtPointer cd, XtPointer cb )
{ {
AccWindow *accData = (AccWindow *)cd; AccWindow *accData = (AccWindow *)cd;
Account *acc = accData -> newacc; Account *acc = accData -> newacc;
if (NULL == acc->editNotesData) { editNotesWindow (acc);
editNotesWindow (acc); /* hack alert -- should raise window to the top */
}
/* hack alert -- else, should raise window to the top */
} }
/********************************************************************\ /********************************************************************\
@ -623,11 +622,8 @@ editNotesCB( Widget mw, XtPointer cd, XtPointer cb )
{ {
EditAccWindow *editAccData = (EditAccWindow *)cd; EditAccWindow *editAccData = (EditAccWindow *)cd;
Account *acc = editAccData -> account; Account *acc = editAccData -> account;
editNotesWindow (acc);
if (NULL == acc->editNotesData) { /* hack alert -- should raise window to the top */
editNotesWindow (acc);
}
/* hack alert -- else, should raise window to the top */
} }
/********************************************************************\ /********************************************************************\
@ -910,32 +906,28 @@ selectAccountCB( Widget mw, XtPointer cd, XtPointer cb )
EditNotesWindow * EditNotesWindow *
editNotesWindow (Account *acc) editNotesWindow (Account *acc)
{ {
EditNotesWindow *editNotesData; EditNotesWindow *enw;
if (!acc) return 0x0; FETCH_FROM_LIST (EditNotesWindow, editNotesList, acc, account, enw);
editNotesData = (EditNotesWindow *) malloc (sizeof (EditNotesWindow)); enw->tb = textBox( toplevel, NOTES_STR,
editNotesData->account = acc; &(acc->notes),
acc -> editNotesData = editNotesData; closeEditNotesWindow, enw);
return enw;
editNotesData->tb = textBox( toplevel, NOTES_STR,
&(acc->notes),
closeEditNotesWindow, editNotesData);
return editNotesData;
} }
/********************************************************************\ /********************************************************************\
\********************************************************************/ \********************************************************************/
void void
xaccDestroyEditNotesWindow (EditNotesWindow *editNotesData) xaccDestroyEditNotesWindow (Account *acc)
{ {
if (!editNotesData) return; EditNotesWindow *edwin;
editNotesData->account->editNotesData = NULL; REMOVE_FROM_LIST (EditNotesWindow,editNotesList,acc,account,edwin)
xaccDestroyTextBox (editNotesData->tb);
_free(editNotesData); xaccDestroyTextBox (edwin->tb);
free (edwin);
} }
/********************************************************************\ /********************************************************************\
@ -943,16 +935,13 @@ xaccDestroyEditNotesWindow (EditNotesWindow *editNotesData)
static void static void
closeEditNotesWindow( Widget mw, XtPointer cd, XtPointer cb ) closeEditNotesWindow( Widget mw, XtPointer cd, XtPointer cb )
{ {
EditNotesWindow *editNotesData = (EditNotesWindow *) cd; EditNotesWindow *enw = (EditNotesWindow *) cd;
editNotesData->account->editNotesData = NULL; xaccDestroyEditNotesWindow (enw->account);
xaccDestroyTextBox (editNotesData->tb);
_free(editNotesData);
DEBUG("close EditNotesWindow"); DEBUG("close EditNotesWindow");
} }
/********************** END OF FILE *********************************\ /********************** END OF FILE *********************************\
\********************************************************************/ \********************************************************************/

View File

@ -77,8 +77,6 @@ mallocAccount( void )
acc->ledgerList = NULL; acc->ledgerList = NULL;
acc->recnData = NULL; acc->recnData = NULL;
acc->adjBData = NULL; acc->adjBData = NULL;
acc->editAccData = NULL;
acc->editNotesData = NULL;
return acc; return acc;
} }

View File

@ -49,8 +49,8 @@ xaccAccountWindowDestroy (Account *acc)
xaccDestroyRegWindow (acc->regLedger); xaccDestroyRegWindow (acc->regLedger);
xaccDestroyRecnWindow (acc->recnData); xaccDestroyRecnWindow (acc->recnData);
xaccDestroyAdjBWindow (acc->adjBData); xaccDestroyAdjBWindow (acc->adjBData);
xaccDestroyEditAccWindow (acc->editAccData); xaccDestroyEditAccWindow (acc);
xaccDestroyEditNotesWindow (acc->editNotesData); xaccDestroyEditNotesWindow (acc);
} }