home *** CD-ROM | disk | FTP | other *** search
- /* filterPanel.c
- *
- * defines the GUIFront characteristics of the filter panel
- */
-
- #include <stdio.h>
- #include <intuition/gadgetclass.h>
- #include <clib/dos_protos.h>
- #include "amiCheck.h"
- #include "regGadget.h"
- #include "edittempPanel.h"
- #include "dataBase.h"
- #include "filterPanel.h"
- #include <string.h>
-
- /* prototypes */
- BOOL FilterHandleGadget(struct IntuiMessage *);
- void FilterInit(void);
- void FilterDisableCR(BOOL);
- void FilterDisableAR(BOOL);
- void FilterDisableDR(BOOL);
- void FilterDisableCAT(BOOL);
- void FilterDisablePAYEE(BOOL);
- void FilterDisableMEMO(BOOL);
- BOOL FilterGoodbye(struct IntuiMessage *, filterSetting *);
-
- struct Window *filtWin;
- filterSetting currFilter;
- BOOL fretval;
- ExtErrorData FilterExtData;
- GUIFront *filterGUI;
-
- /* quick configure of some gadgets */
- STRPTR filterlabels[] =
- {
- "N/A",
- "Yes",
- "No",
- NULL,
- };
-
- struct TagItem filterCycleTags[] =
- {
- {GTCY_Labels, filterlabels},
- {TAG_DONE},
- };
-
- STRPTR rangelabels[] =
- {
- "N/A",
- "In",
- "Out",
- NULL,
- };
-
- struct TagItem rangeCycleTags[] =
- {
- {GTCY_Labels, rangelabels},
- {TAG_DONE},
- };
-
- /* define gadgetspec */
- GadgetSpec FPgadgetspecs[] =
- {
- {CHECKBOX_KIND,0,0, {0,0,0,0,"Chec_ks",NULL,GID_FPCHECKS,
- PLACETEXT_RIGHT},NULL,GS_DefaultTags},
-
- {CHECKBOX_KIND,0,0, {0,0,0,0,"_Withdrawals",NULL,GID_FPWITHDRAWALS,
- PLACETEXT_RIGHT},NULL,GS_DefaultTags},
-
- {CHECKBOX_KIND,0,0, {0,0,0,0,"_Deposits",NULL,GID_FPDEPOSITS,
- PLACETEXT_RIGHT},NULL,GS_DefaultTags},
-
- {CYCLE_KIND,0,1, {0,0,0,0,"_Checks",NULL,GID_FPCHECKRANGE,
- PLACETEXT_LEFT},rangeCycleTags,GS_DefaultTags | GS_NoHeightExtend},
-
- {INTEGER_KIND,11,1, {0,0,0,0,"From (_1)",NULL,GID_FPCHECKFROM,
- PLACETEXT_LEFT},strCheckTags,GS_DefaultTags},
-
- {INTEGER_KIND,11,1, {0,0,0,0,"To (_2)",NULL,GID_FPCHECKTO,
- PLACETEXT_LEFT},strCheckTags,GS_DefaultTags},
-
- {CYCLE_KIND,0,1, {0,0,0,0,"_Amounts",NULL,GID_FPAMNTRANGE,
- PLACETEXT_LEFT},rangeCycleTags,GS_DefaultTags | GS_NoHeightExtend},
-
- {STRING_KIND,11,1, {0,0,0,0,"From (_3)",NULL,GID_FPAMNTFROM,
- PLACETEXT_LEFT},strAmntTags,GS_DefaultTags},
-
- {STRING_KIND,11,1, {0,0,0,0,"To (_4)",NULL,GID_FPAMNTTO,
- PLACETEXT_LEFT},strAmntTags,GS_DefaultTags},
-
- {CYCLE_KIND,0,1, {0,0,0,0,"_Printed",NULL,GID_FPPRINTED,
- PLACETEXT_LEFT},filterCycleTags,GS_DefaultTags | GS_NoHeightExtend },
-
- {CYCLE_KIND,0,1, {0,0,0,0,"_Voided",NULL,GID_FPVOIDED,
- PLACETEXT_LEFT},filterCycleTags,GS_DefaultTags | GS_NoHeightExtend},
-
- {CYCLE_KIND,0,1, {0,0,0,0,"C_leared",NULL,GID_FPCLEARED,
- PLACETEXT_LEFT},filterCycleTags,GS_DefaultTags | GS_NoHeightExtend},
-
- {CYCLE_KIND,0,1, {0,0,0,0,"Ta_x Deduct",NULL,GID_FPTAX,
- PLACETEXT_LEFT},filterCycleTags,GS_DefaultTags | GS_NoHeightExtend},
-
- {CYCLE_KIND,0,1, {0,0,0,0,"Categor_y",NULL,GID_FPUSECAT,
- PLACETEXT_LEFT},rangeCycleTags,GS_DefaultTags | GS_NoHeightExtend},
-
- {LISTVIEW_KIND,21,5, {0,0,0,0,NULL,NULL,GID_FPCATEGORY,
- PLACETEXT_ABOVE},ListView,GS_DefaultTags},
-
- {CYCLE_KIND,0,1, {0,0,0,0,"_Reconciled",NULL,GID_FPRECONCILED,
- PLACETEXT_LEFT},filterCycleTags,GS_DefaultTags | GS_NoHeightExtend},
-
- {CYCLE_KIND,0,1, {0,0,0,0,"Date_s",NULL,GID_FPDATERANGE,
- PLACETEXT_LEFT},rangeCycleTags,GS_DefaultTags | GS_NoHeightExtend},
-
- {STRING_KIND,11,1, {0,0,0,0,"From (_5)",NULL,GID_FPDATEFROM,
- PLACETEXT_LEFT},strDateTags,GS_DefaultTags},
-
- {STRING_KIND,11,1, {0,0,0,0,"To (_6)",NULL,GID_FPDATETO,
- PLACETEXT_LEFT},strDateTags,GS_DefaultTags},
-
- {BUTTON_KIND,0,0,{0,0,0,0,"_OK", NULL, GID_FPOK,
- PLACETEXT_IN}, NULL, GS_DefaultTags},
-
- {BUTTON_KIND,0,0,{0,0,0,0,"_Cancel", NULL, GID_FPCANCEL,
- PLACETEXT_IN}, NULL, GS_DefaultTags},
-
- {CYCLE_KIND,0,1, {0,0,0,0,"_Name",NULL,GID_FPPAYEE,
- PLACETEXT_LEFT},rangeCycleTags,GS_DefaultTags | GS_NoHeightExtend},
-
- {STRING_KIND,11,1, {0,0,0,0,"(_7)",NULL,GID_FPPAYEESTR,
- PLACETEXT_LEFT},strNameTags,GS_DefaultTags},
-
- {CYCLE_KIND,0,1, {0,0,0,0,"_Memo",NULL,GID_FPMEMO,
- PLACETEXT_LEFT},rangeCycleTags,GS_DefaultTags | GS_NoHeightExtend},
-
- {STRING_KIND,11,1, {0,0,0,0,"(_8)",NULL,GID_FPMEMOSTR,
- PLACETEXT_LEFT},strNameTags,GS_DefaultTags},
- };
-
- /* set up array of pointers to our specs */
- GadgetSpec *FP_FilterSpecs[] =
- {
- &FPgadgetspecs[0],
- &FPgadgetspecs[1],
- &FPgadgetspecs[2],
- &FPgadgetspecs[3],
- &FPgadgetspecs[4],
- &FPgadgetspecs[5],
- &FPgadgetspecs[6],
- &FPgadgetspecs[7],
- &FPgadgetspecs[8],
- &FPgadgetspecs[9],
- &FPgadgetspecs[10],
- &FPgadgetspecs[11],
- &FPgadgetspecs[12],
- &FPgadgetspecs[13],
- &FPgadgetspecs[14],
- &FPgadgetspecs[15],
- &FPgadgetspecs[16],
- &FPgadgetspecs[17],
- &FPgadgetspecs[18],
- &FPgadgetspecs[19],
- &FPgadgetspecs[20],
- &FPgadgetspecs[21],
- &FPgadgetspecs[22],
- &FPgadgetspecs[23],
- &FPgadgetspecs[24],
-
- NULL,
- };
-
-
- /* define the layout of this panel */
- ULONG FP_FilterPanel[] =
- {
- GUIL_Flags, GUILF_PropShare | GUILF_EqualWidth,
-
- GUIL_HorizGroup, 1,
- GUIL_Flags, GUILF_PropShare | GUILF_EqualHeight,
- GUIL_FrameType, GUILFT_Recess,
-
- GUIL_VertGroup, 1,
- GUIL_Flags, GUILF_EqualWidth | GUILF_PropShare,
-
- GUIL_VertGroup, 1,
- GUIL_FrameType, GUILFT_Ridge,
- GUIL_FrameHeadline, "Types",
-
- GUIL_GadgetSpecID, GID_FPCHECKS,
- GUIL_GadgetSpecID, GID_FPWITHDRAWALS,
- GUIL_GadgetSpecID, GID_FPDEPOSITS,
- TAG_DONE,
-
- GUIL_VertGroup, 1,
- GUIL_Flags, GUILF_LabelAlign,
- GUIL_FrameType, GUILFT_Ridge,
- GUIL_FrameHeadline, "Characteristics",
- GUIL_GadgetSpecID, GID_FPCLEARED,
- GUIL_GadgetSpecID, GID_FPVOIDED,
- GUIL_GadgetSpecID, GID_FPTAX,
- GUIL_GadgetSpecID, GID_FPRECONCILED,
- GUIL_GadgetSpecID, GID_FPPRINTED,
- TAG_DONE,
-
- TAG_DONE,
-
- GUIL_HorizGroup,3,
- GUIL_FrameType, GUILFT_Ridge,
- GUIL_FrameHeadline, "Range Settings",
-
- GUIL_VertGroup, 2,
- GUIL_Flags, GUILF_LabelAlign,
-
- GUIL_VertGroup,0,
- GUIL_Flags, GUILF_LabelAlign,
- GUIL_GadgetSpecID, GID_FPCHECKRANGE,
- GUIL_GadgetSpecID, GID_FPCHECKFROM,
- GUIL_GadgetSpecID, GID_FPCHECKTO,
- TAG_DONE,
- GUIL_VertGroup,0,
- GUIL_Flags, GUILF_LabelAlign,
- GUIL_GadgetSpecID, GID_FPAMNTRANGE,
- GUIL_GadgetSpecID, GID_FPAMNTFROM,
- GUIL_GadgetSpecID, GID_FPAMNTTO,
- TAG_DONE,
- GUIL_VertGroup,0,
- GUIL_Flags, GUILF_LabelAlign,
- GUIL_GadgetSpecID, GID_FPDATERANGE,
- GUIL_GadgetSpecID, GID_FPDATEFROM,
- GUIL_GadgetSpecID, GID_FPDATETO,
- TAG_DONE,
- TAG_DONE,
-
-
- GUIL_VertGroup,1,
- GUIL_Flags, GUILF_LabelAlign | GUILF_PropShare,
-
- GUIL_VertGroup,0,
- GUIL_Flags, GUILF_LabelAlign,
- GUIL_GadgetSpecID, GID_FPPAYEE,
- GUIL_GadgetSpecID, GID_FPPAYEESTR,
- TAG_DONE,
-
- GUIL_VertGroup,0,
- GUIL_Flags, GUILF_LabelAlign,
- GUIL_GadgetSpecID, GID_FPMEMO,
- GUIL_GadgetSpecID, GID_FPMEMOSTR,
- TAG_DONE,
-
- GUIL_VertGroup, 0,
- GUIL_Flags, GUILF_PropShare,
- GUIL_GadgetSpecID, GID_FPUSECAT,
- GUIL_GadgetSpecID, GID_FPCATEGORY,
- TAG_DONE,
- TAG_DONE,
-
- TAG_DONE,
-
- TAG_DONE,
-
- GUIL_HorizGroup,1,
- GUIL_Flags, GUILF_EqualSize | GUILF_EqualWidth,
-
- GUIL_GadgetSpecID, GID_FPOK,
- GUIL_GadgetSpecID, GID_FPCANCEL,
-
- TAG_DONE,
-
- TAG_DONE,
- };
-
-
- /****************************************************
- * FilterGUI ()
- *
- * Creates the GUI for the filter panel.
- *****************************************************/
- BOOL FilterGUI(void)
- {
- BOOL replyval, done = FALSE;
- UWORD ordinal;
- categoryNode *cat;
- ULONG signal;
-
- AmiLock();
-
- GF_SetGUIAttr(filterGUI,GUI_OpenGUI,TRUE, TAG_DONE);
- /* grab window */
- GF_GetGUIAttr(filterGUI,GUI_Window,&filtWin,TAG_DONE);
- FilterInit();
-
- #if 1
- /* Process input events */
- while (!done)
- {
- struct IntuiMessage *imsg;
-
- /* Wait for an event to occur */
-
- signal = GF_Wait(guiapp,AmigaGuideSignal(agc));
- if (signal & AmigaGuideSignal(agc)) {
- AmiHelpMsg();
- continue;
- }
-
- /* We only bother to listen for CLOSEWINDOW events.
- * Of course, in a real application, you would be
- * examining the Class field for IDCMP_GADGETUP
- * messages and act accordingly.
- */
-
- while (imsg = GF_GetIMsg(guiapp))
- {
- replyval = FALSE;
- switch (imsg->Class) {
- case IDCMP_REFRESHWINDOW:
- RegRefresh(TRUE);
- break;
-
- case IDCMP_CLOSEWINDOW:
- done = TRUE;
- fretval = FALSE;
- break;
-
- case IDCMP_RAWKEY:
- /* check for tab key */
-
- if (GF_ProcessListView(filterGUI,FP_FilterSpecs[GID_FPCATEGORY],
- imsg,&ordinal)) {
- cat = (categoryNode *)DataOrd2Node(&categories,ordinal);
- strncpy(currFilter.category,cat->node.ln_Name,CATNAMESIZE);
- }
- else AmiHelpKey(imsg,FILTER_PANEL);
- break;
-
- case IDCMP_GADGETUP:
- replyval = FALSE;
- done=FilterHandleGadget(imsg);
- break;
- }
-
-
- if (replyval) GF_ReplyIMsg(imsg);
- }
- }
- #endif
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPCATEGORY]->gs_Gadget,
- GTLV_Labels, ~0,
- TAG_DONE);
-
-
- GF_SetGUIAttr(filterGUI, GUI_OpenGUI, FALSE, TAG_DONE);
- AmiUnlock();
-
- return (fretval);
- }
-
- /***************************************************
- * FilterHandleGadget()
- *
- * Handles gadget events for this panel
- ****************************************************/
- BOOL FilterHandleGadget(struct IntuiMessage *imsg)
- {
- struct Gadget *gad = (struct Gadget *)(imsg->IAddress);
- UWORD code = imsg->Code;
- BOOL done = FALSE;
- categoryNode *cat;
- char newamntstr[AMNTSIZE+1];
- char newdatestr[DATESIZE+1];
-
- switch (gad->GadgetID) {
- case GID_FPCHECKS:
- currFilter.checks = code;
- break;
-
- case GID_FPWITHDRAWALS:
- currFilter.withdrawals = code;
- break;
-
- case GID_FPDEPOSITS:
- currFilter.deposits = code;
- break;
-
- case GID_FPPRINTED:
- switch (code) {
- case FILTERNA:
- currFilter.andflag &= ~PRINTED;
- currFilter.notflag &= ~PRINTED;
- break;
-
- case FILTERYES:
- currFilter.andflag |= PRINTED;
- currFilter.notflag &= ~PRINTED;
- break;
-
- case FILTERNO:
- currFilter.andflag &= ~PRINTED;
- currFilter.notflag |= PRINTED;
- break;
- }
- currFilter.printcode = code;
- break;
-
- case GID_FPCLEARED:
- switch (code) {
- case FILTERNA:
- currFilter.andflag &= ~CLEARED;
- currFilter.notflag &= ~CLEARED;
- break;
-
- case FILTERYES:
- currFilter.andflag |= CLEARED;
- currFilter.notflag &= ~CLEARED;
- break;
-
- case FILTERNO:
- currFilter.andflag &= ~CLEARED;
- currFilter.notflag |= CLEARED;
- break;
- }
- currFilter.clearcode = code;
- break;
-
- case GID_FPVOIDED:
- switch (code) {
- case FILTERNA:
- currFilter.andflag &= ~VOIDED;
- currFilter.notflag &= ~VOIDED;
- break;
-
- case FILTERYES:
- currFilter.andflag |= VOIDED;
- currFilter.notflag &= ~VOIDED;
- break;
-
- case FILTERNO:
- currFilter.andflag &= ~VOIDED;
- currFilter.notflag |= VOIDED;
- break;
- }
- currFilter.voidcode = code;
- break;
-
- case GID_FPTAX:
- switch (code) {
- case FILTERNA:
- currFilter.andflag &= ~TAXDEDUCT;
- currFilter.notflag &= ~TAXDEDUCT;
- break;
-
- case FILTERYES:
- currFilter.andflag |= TAXDEDUCT;
- currFilter.notflag &= ~TAXDEDUCT;
- break;
-
- case FILTERNO:
- currFilter.andflag &= ~TAXDEDUCT;
- currFilter.notflag |= TAXDEDUCT;
- break;
- }
- currFilter.taxcode = code;
- break;
-
- case GID_FPRECONCILED:
- switch (code) {
- case FILTERNA:
- currFilter.andflag &= ~RECONCILED;
- currFilter.notflag &= ~RECONCILED;
- break;
-
- case FILTERYES:
- currFilter.andflag |= RECONCILED;
- currFilter.notflag &= ~RECONCILED;
- break;
-
- case FILTERNO:
- currFilter.andflag &= ~RECONCILED;
- currFilter.notflag |= RECONCILED;
- break;
- }
- currFilter.reconcilecode = code;
- break;
-
- case GID_FPAMNTRANGE:
- currFilter.amntrange = code;
- FilterDisableAR(!code);
- break;
-
- case GID_FPCHECKRANGE:
- currFilter.checkrange = code;
- FilterDisableCR(!code);
- break;
-
- case GID_FPCHECKFROM:
- currFilter.checkfrom =(UWORD)((struct StringInfo*)gad->SpecialInfo)->LongInt;
- break;
-
- case GID_FPCHECKTO:
- currFilter.checkto =(UWORD)((struct StringInfo*)gad->SpecialInfo)->LongInt;
- break;
-
- case GID_FPAMNTFROM:
- /* special case return early.... activated gadget */
- if (!DataVerifyAmnt(((struct StringInfo*)gad->SpecialInfo)->Buffer,newamntstr) ) {
- DisplayBeep(filtWin->WScreen);
- DataAnnounceAmount(filterGUI);
- GF_ReplyIMsg(imsg);
- DataSitNSpin(FP_FilterSpecs[GID_FPAMNTFROM]->gs_Gadget,filtWin);
- return (done);
- }
- else {
- DataStoreAmnt(&currFilter.amountFrom,newamntstr );
- GF_SetGadgetAttrs(filterGUI,FP_FilterSpecs[GID_FPAMNTFROM]->gs_Gadget,
- GTST_String,newamntstr,
- TAG_DONE);
- }
- break;
-
- case GID_FPAMNTTO:
- /* special case return early.... activated gadget */
- if (!DataVerifyAmnt(((struct StringInfo*)gad->SpecialInfo)->Buffer,newamntstr) ) {
- DisplayBeep(filtWin->WScreen);
- DataAnnounceAmount(filterGUI);
- GF_ReplyIMsg(imsg);
- DataSitNSpin(FP_FilterSpecs[GID_FPAMNTTO]->gs_Gadget,filtWin);
- return (done);
- }
- else {
- DataStoreAmnt(&currFilter.amountTo,newamntstr );
- GF_SetGadgetAttrs(filterGUI,FP_FilterSpecs[GID_FPAMNTTO]->gs_Gadget,
- GTST_String,newamntstr,
- TAG_DONE);
- }
-
- break;
-
- case GID_FPMEMO:
- currFilter.usememo = code;
- FilterDisableMEMO(!code);
- break;
-
- case GID_FPPAYEE:
- currFilter.usepayee = code;
- FilterDisablePAYEE(!code);
- break;
-
- case GID_FPPAYEESTR:
- strcpy(currFilter.payee,((struct StringInfo*)gad->SpecialInfo)->Buffer);
- break;
-
- case GID_FPMEMOSTR:
- strcpy(currFilter.payee,((struct StringInfo*)gad->SpecialInfo)->Buffer);
- break;
-
- case GID_FPUSECAT:
- currFilter.usecategory = code;
- FilterDisableCAT(!code);
- break;
-
- case GID_FPCATEGORY:
- cat = (categoryNode *)DataOrd2Node(&categories,code);
- strncpy(currFilter.category,cat->catname,CATNAMESIZE);
- break;
-
- case GID_FPDATERANGE:
- currFilter.daterange = code;
- FilterDisableDR(!code);
- break;
-
- case GID_FPDATEFROM:
- /* special case return early.... activated gadget */
- if (!DataVerifyDate(((struct StringInfo*)gad->SpecialInfo)->Buffer,newdatestr) ) {
- DisplayBeep(filtWin->WScreen);
- DataAnnounceDate(filterGUI);
- GF_ReplyIMsg(imsg);
- DataSitNSpin(FP_FilterSpecs[GID_FPDATEFROM]->gs_Gadget,filtWin);
- return (done);
- }
- else {
- DataStoreDate(&currFilter.dateFrom,newdatestr );
- GF_SetGadgetAttrs(filterGUI,FP_FilterSpecs[GID_FPDATEFROM]->gs_Gadget,
- GTST_String,newdatestr,
- TAG_DONE);
- }
- break;
-
- case GID_FPDATETO:
- /* special case return early.... activated gadget */
- if (!DataVerifyDate(((struct StringInfo*)gad->SpecialInfo)->Buffer,newdatestr) ) {
- DisplayBeep(filtWin->WScreen);
- DataAnnounceDate(filterGUI);
- GF_ReplyIMsg(imsg);
- DataSitNSpin(FP_FilterSpecs[GID_FPDATETO]->gs_Gadget,filtWin);
- return (done);
- }
- else {
- DataStoreDate(&currFilter.dateTo,newdatestr );
- GF_SetGadgetAttrs(filterGUI,FP_FilterSpecs[GID_FPDATETO]->gs_Gadget,
- GTST_String,newdatestr,
- TAG_DONE);
- }
- break;
-
- case GID_FPCANCEL:
- fretval = FALSE;
- done = TRUE;
- break;
-
- case GID_FPOK:
- if (FilterGoodbye(imsg, &currFilter)) {
- amiChangedItems = TRUE;
- done = TRUE;
- fretval = TRUE;
- }
- else return (FALSE);
- break;
- }
-
- GF_ReplyIMsg(imsg);
- return (done);
- }
-
- /****************************************************
- * FilterInit()
- *
- * Initialize the settings
- *****************************************************/
- void FilterInit(void)
- {
- char amntfrom[AMNTSIZE], amntto[AMNTSIZE];
- char strdate[DATESIZE+1];
-
- /* grab window */
- GF_GetGUIAttr(filterGUI,GUI_Window,&filtWin,TAG_DONE);
-
- memcpy(&currFilter, &filterControl, sizeof(filterSetting));
-
- /* update gfx */
- if (currFilter.checkrange == FILTERNA)
- FilterDisableCR(TRUE);
-
- if (currFilter.amntrange == FILTERNA)
- FilterDisableAR(TRUE);
-
- if (currFilter.daterange == FILTERNA)
- FilterDisableDR(TRUE);
-
- if (currFilter.usecategory == FILTERNA)
- FilterDisableCAT(TRUE);
-
- if (currFilter.usepayee == FILTERNA)
- FilterDisablePAYEE(TRUE);
-
- if (currFilter.usememo == FILTERNA)
- FilterDisableMEMO(TRUE);
-
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPCATEGORY]->gs_Gadget,
- GTLV_Labels, &categories,
- TAG_DONE);
-
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPCHECKS]->gs_Gadget,
- GTCB_Checked,currFilter.checks,
- TAG_DONE);
-
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPWITHDRAWALS]->gs_Gadget,
- GTCB_Checked,currFilter.withdrawals,
- TAG_DONE);
-
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPDEPOSITS]->gs_Gadget,
- GTCB_Checked,currFilter.deposits,
- TAG_DONE);
-
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPCHECKRANGE]->gs_Gadget,
- GTCY_Active,currFilter.checkrange,
- TAG_DONE);
-
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPAMNTRANGE]->gs_Gadget,
- GTCY_Active,currFilter.amntrange,
- TAG_DONE);
-
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPPRINTED]->gs_Gadget,
- GTCY_Active,currFilter.printcode,
- TAG_DONE);
-
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPVOIDED]->gs_Gadget,
- GTCY_Active, currFilter.voidcode,
- TAG_DONE);
-
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPCLEARED]->gs_Gadget,
- GTCY_Active, currFilter.clearcode,
- TAG_DONE);
-
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPTAX]->gs_Gadget,
- GTCY_Active, currFilter.taxcode,
- TAG_DONE);
-
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPRECONCILED]->gs_Gadget,
- GTCY_Active, currFilter.reconcilecode,
- TAG_DONE);
-
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPPAYEE]->gs_Gadget,
- GTCY_Active, currFilter.usepayee,
- TAG_DONE);
-
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPMEMO]->gs_Gadget,
- GTCY_Active, currFilter.usememo,
- TAG_DONE);
-
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPCHECKFROM]->gs_Gadget,
- GTIN_Number, currFilter.checkfrom,
- TAG_DONE);
-
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPCHECKTO]->gs_Gadget,
- GTIN_Number, currFilter.checkto,
- TAG_DONE);
-
- DataBuildAmnt(TRUE,&currFilter.amountFrom,amntfrom);
- DataBuildAmnt(TRUE,&currFilter.amountTo,amntto);
-
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPAMNTFROM]->gs_Gadget,
- GTST_String,amntfrom,
- TAG_DONE);
-
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPAMNTTO]->gs_Gadget,
- GTST_String,amntto,
- TAG_DONE);
-
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPPAYEESTR]->gs_Gadget,
- GTST_String,currFilter.payee,
- TAG_DONE);
-
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPMEMOSTR]->gs_Gadget,
- GTST_String,currFilter.memo,
- TAG_DONE);
-
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPUSECAT]->gs_Gadget,
- GTCY_Active,currFilter.usecategory,
- TAG_DONE);
-
-
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPCATEGORY]->gs_Gadget,
- GTLV_Selected, DataNode2Ord(&categories,currFilter.category),
- TAG_DONE);
-
- /* now do the date thing */
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPDATERANGE]->gs_Gadget,
- GTCY_Active,currFilter.daterange,
- TAG_DONE);
-
- DataBuildDate(&currFilter.dateFrom, strdate);
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPDATEFROM]->gs_Gadget,
- GTST_String,strdate,
- TAG_DONE);
-
- DataBuildDate(&currFilter.dateTo, strdate);
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPDATETO]->gs_Gadget,
- GTST_String,strdate,
- TAG_DONE);
- }
-
- /***************************************************************
- * FilterDisableCR()
- *
- * Disable/enable check ranging
- ****************************************************************/
- void FilterDisableCR(BOOL dis)
- {
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPCHECKFROM]->gs_Gadget,
- GA_Disabled, dis,
- TAG_DONE);
-
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPCHECKTO]->gs_Gadget,
- GA_Disabled, dis,
- TAG_DONE);
- }
-
- /***************************************************************
- * FilterDisableAR()
- *
- * Disable/enable amount ranging
- ****************************************************************/
- void FilterDisableAR(BOOL dis)
- {
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPAMNTFROM]->gs_Gadget,
- GA_Disabled, dis,
- TAG_DONE);
-
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPAMNTTO]->gs_Gadget,
- GA_Disabled, dis,
- TAG_DONE);
- }
-
- /***************************************************************
- * FilterDisablePAYEE()
- *
- * Disable/enable payee ranging
- ****************************************************************/
- void FilterDisablePAYEE(BOOL dis)
- {
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPPAYEESTR]->gs_Gadget,
- GA_Disabled, dis,
- TAG_DONE);
- }
-
- /***************************************************************
- * FilterDisableMEMO()
- *
- * Disable/enable MEMO ranging
- ****************************************************************/
- void FilterDisableMEMO(BOOL dis)
- {
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPMEMOSTR]->gs_Gadget,
- GA_Disabled, dis,
- TAG_DONE);
- }
-
-
- /***************************************************************
- * FilterDisableDR()
- *
- * Disable/enable date ranging
- ****************************************************************/
- void FilterDisableDR(BOOL dis)
- {
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPDATEFROM]->gs_Gadget,
- GA_Disabled, dis,
- TAG_DONE);
-
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPDATETO]->gs_Gadget,
- GA_Disabled, dis,
- TAG_DONE);
- }
-
- /***************************************************************
- * FilterDisableCAT()
- *
- * Disable/enable date ranging
- ****************************************************************/
- void FilterDisableCAT(BOOL dis)
- {
- GF_SetGadgetAttrs (filterGUI, FP_FilterSpecs[GID_FPCATEGORY]->gs_Gadget,
- GA_Disabled, dis,
- TAG_DONE);
- }
-
- /***************************************************
- * FilterGoodbye()
- *
- * Grab strings
- ****************************************************/
- BOOL FilterGoodbye(struct IntuiMessage *imsg, filterSetting *temp)
- {
- char newdatestr[DATESIZE+1];
- char newamntstr[AMNTSIZE+1];
- char *grab;
-
- /* first check "special" entries */
- if (temp->daterange) {
- grab = ((struct StringInfo *)(FP_FilterSpecs[GID_FPDATETO]->gs_Gadget)->SpecialInfo)->Buffer;
- if (!DataVerifyDate(grab,newdatestr) ) {
- DisplayBeep(filtWin->WScreen);
- DataAnnounceDate(filterGUI);
- GF_ReplyIMsg(imsg);
- DataSitNSpin(FP_FilterSpecs[GID_FPDATETO]->gs_Gadget,filtWin);
- return (FALSE);
- }
- else {
- DataStoreDate(&temp->dateTo,newdatestr);
- }
-
- grab = ((struct StringInfo *)(FP_FilterSpecs[GID_FPDATEFROM]->gs_Gadget)->SpecialInfo)->Buffer;
- if (!DataVerifyDate(grab,newdatestr) ) {
- DisplayBeep(filtWin->WScreen);
- DataAnnounceDate(filterGUI);
- GF_ReplyIMsg(imsg);
- DataSitNSpin(FP_FilterSpecs[GID_FPDATEFROM]->gs_Gadget,filtWin);
- return (FALSE);
- }
- else {
- DataStoreDate(&temp->dateFrom,newdatestr);
- }
- }
-
- if (temp->amntrange) {
- grab = ((struct StringInfo *)(FP_FilterSpecs[GID_FPAMNTFROM]->gs_Gadget)->SpecialInfo)->Buffer;
- if (!DataVerifyAmnt(grab,newamntstr) ) {
- DisplayBeep(filtWin->WScreen);
- DataAnnounceAmount(filterGUI);
- GF_ReplyIMsg(imsg);
- DataSitNSpin(FP_FilterSpecs[GID_FPAMNTFROM]->gs_Gadget,filtWin);
- return (FALSE);
- }
- else {
- DataStoreAmnt(&temp->amountFrom,newamntstr );
- }
-
- grab = ((struct StringInfo *)(FP_FilterSpecs[GID_FPAMNTTO]->gs_Gadget)->SpecialInfo)->Buffer;
- if (!DataVerifyAmnt(grab,newamntstr) ) {
- DisplayBeep(filtWin->WScreen);
- DataAnnounceAmount(filterGUI);
- GF_ReplyIMsg(imsg);
- DataSitNSpin(FP_FilterSpecs[GID_FPAMNTTO]->gs_Gadget,filtWin);
- return (FALSE);
- }
- else {
- DataStoreAmnt(&temp->amountTo,newamntstr );
- }
- }
-
- /* now just stuff in strings */
- temp->checkfrom =(UWORD)((struct StringInfo*)(FP_FilterSpecs[GID_FPCHECKFROM]->gs_Gadget)->SpecialInfo)->LongInt;
- temp->checkto =(UWORD)((struct StringInfo*)(FP_FilterSpecs[GID_FPCHECKTO]->gs_Gadget)->SpecialInfo)->LongInt;
-
- /* grab memo/payee fields */
- grab = ((struct StringInfo *)(FP_FilterSpecs[GID_FPPAYEESTR]->gs_Gadget)->SpecialInfo)->Buffer;
- strcpy(temp->payee,grab);
- grab = ((struct StringInfo *)(FP_FilterSpecs[GID_FPMEMOSTR]->gs_Gadget)->SpecialInfo)->Buffer;
- strcpy(temp->memo,grab);
-
- /* create memo/payee patterns */
- ParsePatternNoCase(temp->payee,temp->payeetoken,STRINGSIZE*2+2);
- ParsePatternNoCase(temp->memo,temp->memotoken,STRINGSIZE*2+2);
-
-
- return (TRUE);
- }
-