Files
sibo-playground/code/SIBOSDK/hwifood/oqdc.c
T

89 lines
1.7 KiB
C
Raw Normal View History

2026-07-06 18:01:36 +01:00
/*
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);
}