89 lines
1.7 KiB
C
89 lines
1.7 KiB
C
/*
|
|
OQDC.C
|
|
|
|
Methods of OO dialogs of OQUERY.C
|
|
Written by DavidW
|
|
Started on 5/9/93
|
|
|
|
*/
|
|
|
|
#include <oqd.g>
|
|
#include <p_date.h>
|
|
#include <hwim.h>
|
|
|
|
#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);
|
|
}
|