/* OQDC.C Methods of OO dialogs of OQUERY.C Written by DavidW Started on 5/9/93 */ #include #include #include #include "oquery.rsg" #define COMBINS_DIW 1 #define COMBINS_DIM 2 #define COMBINS_FOUND 3 LOCAL_C VOID SetControls(P_DAYSEC *pds) { P_DATE dt; hDlgSetChlist(COMBINS_DIW,p_wkday(pds->day)); p_dstodt(pds,&dt); hDlgSetNcedit(COMBINS_DIM,dt.day+1); hDlgSetDtedit(COMBINS_FOUND,pds->day); } #pragma METHOD_CALL METHOD VOID oqd_combins_dl_dyn_init(PR_DLGBOX *self) { ULONG sdate; P_DAYSEC ds; sdate=p_date(); p_sttods(&sdate,&ds); SetControls(&ds); } METHOD INT oqd_combins_dl_key(PR_DLGBOX *self,INT index,INT key) { P_DAYSEC ds; P_DATE dt; INT diw; INT dim; INT diff; ULONG reset; INT inc; if (key==W_KEY_ESCAPE) return(WN_KEY_CHANGED); diw=hDlgSenseChlist(COMBINS_DIW); dim=hDlgSenseNcedit(COMBINS_DIM)-1; ds.day=hDlgSenseDtedit(COMBINS_FOUND); ds.sec=0; reset=ds.day; diff=diw-p_wkday(ds.day); if (key==W_KEY_RETURN) { if (diff<=0) diff+=7; inc=7; } else { if (diff>=0) diff-=7; inc=(-7); } ds.day+=diff; FOREVER { if (ds.day>93501l) { hInfoPrint(OQS_NO_FURTHER_MATCHES); ds.day=reset; break; } p_dstodt(&ds,&dt); if (dt.day==dim) break; ds.day+=inc; } SetControls(&ds); return(WN_KEY_NO_CHANGE); }