build: add the SIBO SDK
This commit is contained in:
@@ -0,0 +1,2 @@
|
||||
gbar.pic
|
||||
gbar.rsc
|
||||
@@ -0,0 +1,59 @@
|
||||
IMAGE gbar
|
||||
|
||||
EXTERNAL olib
|
||||
EXTERNAL hwim
|
||||
|
||||
INCLUDE lprinter.g
|
||||
INCLUDE help.g
|
||||
INCLUDE dlgbox.g
|
||||
|
||||
CLASS hprinter lprinter
|
||||
{
|
||||
REPLACE lpr_read
|
||||
REPLACE lpr_sense_text
|
||||
PROPERTY
|
||||
{
|
||||
INT (*sense)(WDR_PRINT *);
|
||||
}
|
||||
}
|
||||
|
||||
CLASS hhelpdlg helpdlg
|
||||
{
|
||||
REPLACE destroy
|
||||
}
|
||||
|
||||
CLASS data_dl dlgbox
|
||||
{
|
||||
REPLACE dl_dyn_init
|
||||
REPLACE dl_key
|
||||
TYPES
|
||||
{
|
||||
typedef struct
|
||||
{
|
||||
UWORD exit_code;
|
||||
UWORD totloops;
|
||||
UWORD update;
|
||||
UWORD esc;
|
||||
UWORD loopsleft;
|
||||
UWORD toupdate;
|
||||
} RB_GBAR;
|
||||
}
|
||||
}
|
||||
|
||||
CLASS gbar_dl dlgbox
|
||||
{
|
||||
REPLACE wn_sense_help
|
||||
REPLACE dl_dyn_init
|
||||
REPLACE dl_key
|
||||
ADD gbar_update
|
||||
}
|
||||
|
||||
CLASS bar_ao active
|
||||
{
|
||||
REPLACE ao_init
|
||||
REPLACE ao_run
|
||||
PROPERTY
|
||||
{
|
||||
RB_GBAR *prb;
|
||||
}
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,21 @@
|
||||
#system epoc img
|
||||
#set epocinit=iplib
|
||||
#model small jpi
|
||||
|
||||
#compile gbar.cat
|
||||
|
||||
#if %remake #or (gbar.rsg #older gbar.rss) #or (gbar.rsc #older gbar.rss) #then
|
||||
#run "rs gbar" no_window no_abort
|
||||
#file delete gbar.img
|
||||
#endif
|
||||
|
||||
#compile growbar.c
|
||||
|
||||
#pragma link(hwifo.lib)
|
||||
#pragma link(hwim.lib)
|
||||
|
||||
#if (gbar.img #older gbar.afl) #or (gbar.img #older gbar.pic) #then
|
||||
#file delete gbar.img
|
||||
#endif
|
||||
|
||||
#link gbar.img
|
||||
@@ -0,0 +1,60 @@
|
||||
#include <hwim.rg>
|
||||
#include <hwim.rh>
|
||||
#include <s_.h>
|
||||
|
||||
RESOURCE DIALOG dl_data
|
||||
{
|
||||
title="Specify grow-bar data";
|
||||
flags=DLGBOX_NOTIFY_ENTER;
|
||||
controls=
|
||||
{
|
||||
CONTROL
|
||||
{
|
||||
class=C_NCEDIT;
|
||||
prompt="Total number of loops";
|
||||
info=NCEDIT
|
||||
{
|
||||
high=100;
|
||||
low=1;
|
||||
};
|
||||
},
|
||||
CONTROL
|
||||
{
|
||||
class=C_NCEDIT;
|
||||
prompt="Update display every";
|
||||
info=NCEDIT
|
||||
{
|
||||
high=100;
|
||||
low=1;
|
||||
};
|
||||
},
|
||||
CONTROL
|
||||
{
|
||||
class=C_CHLIST;
|
||||
prompt="Allow escape";
|
||||
info=CHLIST { rid=-SYS_NO_YES; };
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
RESOURCE CONTROL item_abandon
|
||||
{
|
||||
class=C_ACLIST;
|
||||
info=ACLIST { rid=-SYS_AC_ABANDON; };
|
||||
}
|
||||
|
||||
RESOURCE DIALOG dl_gbar
|
||||
{
|
||||
title="Example grow bar";
|
||||
flags=DLGBOX_NOTIFY_ESCAPE|DLGBOX_NOTIFY_ENTER;
|
||||
controls=
|
||||
{
|
||||
CONTROL
|
||||
{
|
||||
class=C_DONEWN;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
RESOURCE STRING str_cancelled { str="Cancelled by user"; }
|
||||
RESOURCE STRING str_finished { str="Looping finished"; }
|
||||
@@ -0,0 +1,164 @@
|
||||
/*
|
||||
GROWBAR.C
|
||||
|
||||
Written by DavidW
|
||||
Started on 19/8/94
|
||||
|
||||
*/
|
||||
|
||||
#include <p_std.h>
|
||||
#include <p_object.h>
|
||||
#include <hwif.h>
|
||||
#include <hwim.h>
|
||||
|
||||
#include <gbar.g>
|
||||
#include <donewn.g>
|
||||
#include "gbar.rsg"
|
||||
|
||||
GLREF_D VOID *w_am;
|
||||
GLREF_D PR_WSERV *w_ws;
|
||||
GLREF_D VOID *DatDialogPtr;
|
||||
|
||||
|
||||
LOCAL_C VOID doDial(INT classno,INT resid,VOID *rbuf)
|
||||
{
|
||||
hOODialog(p_getlibh(CAT_GBAR_GBAR),classno,resid,rbuf);
|
||||
}
|
||||
|
||||
LOCAL_C VOID InitGbarData(RB_GBAR *pgb)
|
||||
{
|
||||
pgb->totloops=10;
|
||||
pgb->update=1;
|
||||
pgb->esc=TRUE;
|
||||
}
|
||||
|
||||
LOCAL_C VOID DisallowDialling(VOID)
|
||||
{
|
||||
w_ws->wserv.flags|=PR_WSERV_FREEFORM_DIALLING;
|
||||
}
|
||||
|
||||
LOCAL_C VOID MainLoop(VOID)
|
||||
{
|
||||
VOID *ao;
|
||||
RB_GBAR gb_data;
|
||||
|
||||
InitGbarData(&gb_data);
|
||||
DisallowDialling();
|
||||
ao=f_newsend(CAT_GBAR_GBAR,C_BAR_AO,O_AO_INIT,&gb_data);
|
||||
FOREVER
|
||||
{
|
||||
doDial(C_DATA_DL,DL_DATA,&gb_data);
|
||||
if (gb_data.exit_code==W_KEY_ESCAPE)
|
||||
continue;
|
||||
p_send2(ao,O_AO_QUEUE);
|
||||
doDial(C_GBAR_DL,DL_GBAR,&gb_data);
|
||||
p_send2(ao,O_AO_CANCEL);
|
||||
hInfoPrint(gb_data.exit_code==W_KEY_ESCAPE?
|
||||
STR_CANCELLED: STR_FINISHED);
|
||||
}
|
||||
}
|
||||
|
||||
LOCAL_C VOID SpecificInit(VOID)
|
||||
{
|
||||
hInitAppRcb();
|
||||
hCrackCommandLine();
|
||||
}
|
||||
|
||||
GLDEF_C VOID main(VOID)
|
||||
{
|
||||
uCommonInit();
|
||||
SpecificInit();
|
||||
MainLoop();
|
||||
}
|
||||
|
||||
#pragma METHOD_CALL
|
||||
|
||||
#define DL_DATA_TOT 1
|
||||
#define DL_DATA_UPD 2
|
||||
#define DL_DATA_ESC 3
|
||||
|
||||
METHOD VOID data_dl_dl_dyn_init(PR_DLGBOX *self)
|
||||
{
|
||||
RB_GBAR *prbuf;
|
||||
|
||||
prbuf=self->dlgbox.rbuf;
|
||||
hDlgSetNcedit(DL_DATA_TOT,prbuf->totloops);
|
||||
hDlgSetNcedit(DL_DATA_UPD,prbuf->update);
|
||||
hDlgSetChlist(DL_DATA_ESC,prbuf->esc);
|
||||
}
|
||||
|
||||
METHOD INT data_dl_dl_key(PR_DLGBOX *self)
|
||||
{
|
||||
RB_GBAR *prbuf;
|
||||
|
||||
prbuf=self->dlgbox.rbuf;
|
||||
prbuf->totloops=hDlgSenseNcedit(DL_DATA_TOT);
|
||||
prbuf->update=hDlgSenseNcedit(DL_DATA_UPD);
|
||||
prbuf->esc=hDlgSenseChlist(DL_DATA_ESC);
|
||||
return(WN_KEY_CHANGED);
|
||||
}
|
||||
|
||||
METHOD VOID gbar_dl_dl_dyn_init(PR_DLGBOX *self)
|
||||
{
|
||||
RB_GBAR *prbuf;
|
||||
SE_DONEWN set;
|
||||
|
||||
prbuf=self->dlgbox.rbuf;
|
||||
if (prbuf->esc)
|
||||
p_send3(self,O_DL_ITEM_APPEND,ITEM_ABANDON);
|
||||
set.flags=SE_DONEWN_RANGE;
|
||||
set.range=prbuf->totloops;
|
||||
hDlgSet(1,&set);
|
||||
prbuf->toupdate=prbuf->update;
|
||||
prbuf->loopsleft=prbuf->totloops;
|
||||
}
|
||||
|
||||
METHOD VOID gbar_dl_gbar_update(PR_DLGBOX *self)
|
||||
{
|
||||
RB_GBAR *prbuf;
|
||||
SE_DONEWN set;
|
||||
|
||||
prbuf=self->dlgbox.rbuf;
|
||||
set.flags=SE_DONEWN_VALUE;
|
||||
set.val=prbuf->totloops-prbuf->loopsleft;
|
||||
hDlgSet(1,&set);
|
||||
}
|
||||
|
||||
METHOD INT gbar_dl_dl_key(PR_DLGBOX *self)
|
||||
{
|
||||
RB_GBAR *prbuf;
|
||||
|
||||
prbuf=self->dlgbox.rbuf;
|
||||
return(prbuf->esc? WN_KEY_CHANGED: WN_KEY_NO_CHANGE);
|
||||
}
|
||||
|
||||
METHOD VOID gbar_dl_wn_sense_help(VOID *self)
|
||||
{
|
||||
p_leave(RUN_ACTIVE_USED);
|
||||
}
|
||||
|
||||
METHOD VOID bar_ao_ao_init(PR_BAR_AO *self,RB_GBAR *prb)
|
||||
{
|
||||
p_send3(w_am,O_AM_ADD_TASK,self);
|
||||
self->bar_ao.prb=prb;
|
||||
}
|
||||
|
||||
METHOD INT bar_ao_ao_run(PR_BAR_AO *self)
|
||||
{
|
||||
RB_GBAR *prb;
|
||||
|
||||
p_sleep(5); /* the next stage of computation or drawing etc */
|
||||
p_send2(self,O_AO_QUEUE);
|
||||
prb=self->bar_ao.prb;
|
||||
if (!--(prb->loopsleft))
|
||||
{
|
||||
p_send2(DatDialogPtr,O_DESTROY);
|
||||
prb->exit_code=0;
|
||||
}
|
||||
else if (!--(prb->toupdate))
|
||||
{
|
||||
p_send2(DatDialogPtr,O_GBAR_UPDATE);
|
||||
prb->toupdate=prb->update;
|
||||
}
|
||||
return(RUN_ACTIVE_USED);
|
||||
}
|
||||
@@ -0,0 +1,27 @@
|
||||
hwifood.prj ! release source files
|
||||
ts.red ! redirection file
|
||||
!
|
||||
oqd.pr ! TS project file (OQuery dyl)
|
||||
oquery.pr ! TS project file (OQuery app)
|
||||
makeoq.bat ! makes OQUERY.IMG
|
||||
!
|
||||
oquery.c ! source for Oquery
|
||||
oquery.rss ! resource script
|
||||
oquery.afl ! add file list
|
||||
query.ms ! shell data source
|
||||
query.shd ! shell data file
|
||||
query.pic ! icon
|
||||
oquery.dfl ! DYL file list
|
||||
!
|
||||
oqd.cat ! dialog DYL definitions
|
||||
oqdc.c ! dialog DYL methods
|
||||
|
||||
gbar.pr ! TS project file (GBAR)
|
||||
makegbar.bat ! makes GBAR.IMG
|
||||
!
|
||||
gbar.cat ! incorporates HWIF.CAT
|
||||
growbar.c ! main source code
|
||||
gbar.rss ! resource script
|
||||
gbar.afl ! add file list
|
||||
gbar.pic ! icon
|
||||
|
||||
@@ -0,0 +1,2 @@
|
||||
@echo off
|
||||
tscx /m gbar
|
||||
@@ -0,0 +1,3 @@
|
||||
@echo off
|
||||
tscx /m oqd /%jpivid%
|
||||
tscx /m oquery /%jpivid%
|
||||
@@ -0,0 +1,12 @@
|
||||
LIBRARY oqd
|
||||
|
||||
EXTERNAL olib
|
||||
EXTERNAL hwim
|
||||
|
||||
INCLUDE dlgbox.g
|
||||
|
||||
CLASS oqd_combins dlgbox
|
||||
{
|
||||
REPLACE dl_dyn_init
|
||||
REPLACE dl_key
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
#system epoc dyl
|
||||
#set epocinit=iplib
|
||||
#model small jpi
|
||||
|
||||
#compile oqd.cat
|
||||
|
||||
#if %remake #or (oquery.rsg #older oquery.rss) #or (oquery.rsc #older oquery.rss) #then
|
||||
#run "rs oquery" no_window no_abort
|
||||
#file delete oquery.img
|
||||
#endif
|
||||
|
||||
#compile oqdc.c
|
||||
#pragma link(hwim.lib)
|
||||
#link oqd.dyl
|
||||
@@ -0,0 +1,88 @@
|
||||
/*
|
||||
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);
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
query.pic
|
||||
oquery.rsc
|
||||
query.shd
|
||||
@@ -0,0 +1,781 @@
|
||||
/*
|
||||
OQUERY.C
|
||||
|
||||
Written by DavidW
|
||||
Started on 28/11/91
|
||||
OO aspects started 1/9/93
|
||||
|
||||
*/
|
||||
|
||||
#include <p_std.h>
|
||||
#include <p_math.h>
|
||||
#include <p_date.h>
|
||||
#include <p_object.h>
|
||||
#include <p_crypt.h>
|
||||
#include <p_file.h>
|
||||
#include <wlib.h>
|
||||
#include <hwif.h>
|
||||
|
||||
#include <oqd.g>
|
||||
|
||||
#include "oquery.rsg"
|
||||
|
||||
|
||||
LOCAL_D INT DylHandle;
|
||||
|
||||
LOCAL_D TEXT *cmds[]=
|
||||
{
|
||||
"iInches/Centimetres",
|
||||
"mMiles/Kilometres",
|
||||
"lPounds/Kilogrammes",
|
||||
"pPints/Litres",
|
||||
"fFahrenheit/Centigrade",
|
||||
"dDay of week",
|
||||
"cCombinations",
|
||||
"tTime difference",
|
||||
"hHoroscope",
|
||||
"nNow",
|
||||
"wPassword",
|
||||
"eEncrypt",
|
||||
"uDecrypt",
|
||||
"sSignificance",
|
||||
"zFile size",
|
||||
"xExit",
|
||||
NULL
|
||||
};
|
||||
|
||||
#define CONVERT_ITEMS 5
|
||||
#define CALENDAR_ITEMS 5
|
||||
#define SECRET_ITEMS 3
|
||||
#define SPECIAL_ITEMS 3
|
||||
|
||||
#define ITEMS_BEFORE_CONVERT 0
|
||||
#define ITEMS_BEFORE_CALENDAR CONVERT_ITEMS
|
||||
#define ITEMS_BEFORE_SECRET (ITEMS_BEFORE_CALENDAR+CALENDAR_ITEMS)
|
||||
#define ITEMS_BEFORE_SPECIAL (ITEMS_BEFORE_SECRET+SECRET_ITEMS)
|
||||
|
||||
LOCAL_D H_MENU_DATA mdata[]=
|
||||
{
|
||||
"Conversions",CONVERT_ITEMS,
|
||||
"Calendar",CALENDAR_ITEMS,
|
||||
"Secret",SECRET_ITEMS,
|
||||
"Special",SPECIAL_ITEMS,
|
||||
NULL
|
||||
};
|
||||
|
||||
GLDEF_D TEXT ** _cmds=(&cmds[0]);
|
||||
GLDEF_D H_MENU_DATA * _mdata=(&mdata[0]);
|
||||
|
||||
|
||||
LOCAL_D UINT MainWid;
|
||||
|
||||
LOCAL_D WORD ndp=2;
|
||||
LOCAL_D DOUBLE small;
|
||||
LOCAL_D DOUBLE vsmall;
|
||||
|
||||
LOCAL_D TEXT pass[10];
|
||||
|
||||
LOCAL_D VOID *ttH;
|
||||
LOCAL_D UWORD ttMonth=1;
|
||||
LOCAL_D UWORD ttSuffix=1;
|
||||
LOCAL_D UWORD ttDay=1;
|
||||
LOCAL_D UWORD ttCentury=2;
|
||||
LOCAL_D UWORD ttSeconds=2;
|
||||
|
||||
|
||||
LOCAL_C VOID ZeroDouble(DOUBLE *pdbl)
|
||||
{
|
||||
p_bfil(pdbl,sizeof(DOUBLE),0);
|
||||
}
|
||||
|
||||
LOCAL_C VOID MakeDouble(DOUBLE *pdbl,WORD val)
|
||||
{
|
||||
p_itof(pdbl,&val);
|
||||
}
|
||||
|
||||
LOCAL_C VOID CalcSmall(VOID)
|
||||
{
|
||||
DOUBLE dndp;
|
||||
DOUBLE temp;
|
||||
|
||||
MakeDouble(&dndp,ndp);
|
||||
p_fneg(&dndp);
|
||||
MakeDouble(&temp,10);
|
||||
p_pow(&small,&temp,&dndp);
|
||||
MakeDouble(&temp,2);
|
||||
p_fld(&vsmall,&small);
|
||||
p_fdiv(&vsmall,&temp);
|
||||
}
|
||||
|
||||
LOCAL_C VOID Clip(DOUBLE *pval)
|
||||
{
|
||||
DOUBLE remain;
|
||||
DOUBLE temp;
|
||||
|
||||
MakeDouble(&temp,0);
|
||||
if (p_fcmp(pval,&temp)>=0)
|
||||
p_fadd(pval,&vsmall);
|
||||
else
|
||||
p_fsub(pval,&vsmall);
|
||||
p_mod(&remain,pval,&small);
|
||||
p_fsub(pval,&remain);
|
||||
}
|
||||
|
||||
LOCAL_C VOID FahrToCent(DOUBLE *pcent,DOUBLE *pfahr)
|
||||
{
|
||||
DOUBLE temp;
|
||||
|
||||
p_fld(pcent,pfahr);
|
||||
MakeDouble(&temp,32);
|
||||
p_fsub(pcent,&temp);
|
||||
MakeDouble(&temp,5);
|
||||
p_fmul(pcent,&temp);
|
||||
MakeDouble(&temp,9);
|
||||
p_fdiv(pcent,&temp);
|
||||
}
|
||||
|
||||
LOCAL_C VOID CentToFahr(DOUBLE *pfahr,DOUBLE *pcent)
|
||||
{
|
||||
DOUBLE temp;
|
||||
|
||||
p_fld(pfahr,pcent);
|
||||
MakeDouble(&temp,9);
|
||||
p_fmul(pfahr,&temp);
|
||||
MakeDouble(&temp,5);
|
||||
p_fdiv(pfahr,&temp);
|
||||
MakeDouble(&temp,32);
|
||||
p_fadd(pfahr,&temp);
|
||||
}
|
||||
|
||||
LOCAL_C VOID Temperatures(VOID)
|
||||
{
|
||||
DOUBLE fahr;
|
||||
DOUBLE cent;
|
||||
H_DI_FLOAT ffahr;
|
||||
H_DI_FLOAT fcent;
|
||||
INT index;
|
||||
|
||||
MakeDouble(&fahr,32);
|
||||
MakeDouble(¢,0);
|
||||
ffahr.value=(&fahr);
|
||||
MakeDouble(&ffahr.low,-17968);
|
||||
MakeDouble(&ffahr.high,18032);
|
||||
fcent.value=(¢);
|
||||
MakeDouble(&fcent.low,-10000);
|
||||
MakeDouble(&fcent.high,10000);
|
||||
FOREVER
|
||||
{
|
||||
if (uOpenDialog("Convert temperature"))
|
||||
return;
|
||||
if (uAddDialogItem(H_DIALOG_FLOAT,"Fahrenheit",&ffahr))
|
||||
return;
|
||||
if (uAddDialogItem(H_DIALOG_FLOAT,"Centigrade",&fcent))
|
||||
return;
|
||||
index=uRunDialog();
|
||||
if (index<=0)
|
||||
break;
|
||||
if (index==2)
|
||||
{
|
||||
FahrToCent(¢,&fahr);
|
||||
Clip(¢);
|
||||
}
|
||||
else
|
||||
{
|
||||
CentToFahr(&fahr,¢);
|
||||
Clip(&fahr);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LOCAL_C VOID Convert(TEXT *pmt1,TEXT *pmt2,INT high1,INT high2)
|
||||
{
|
||||
DOUBLE val1;
|
||||
DOUBLE val2;
|
||||
H_DI_FLOAT fled1;
|
||||
H_DI_FLOAT fled2;
|
||||
INT index;
|
||||
DOUBLE ratio;
|
||||
|
||||
ZeroDouble(&val1);
|
||||
ZeroDouble(&val2);
|
||||
fled1.value=(&val1);
|
||||
ZeroDouble(&fled1.low);
|
||||
MakeDouble(&fled1.high,high1);
|
||||
fled2.value=(&val2);
|
||||
ZeroDouble(&fled2.low);
|
||||
MakeDouble(&fled2.high,high2);
|
||||
p_fld(&ratio,&fled2.high);
|
||||
p_fdiv(&ratio,&fled1.high);
|
||||
FOREVER
|
||||
{
|
||||
if (uOpenDialog("Convert"))
|
||||
return;
|
||||
if (uAddDialogItem(H_DIALOG_FLOAT,pmt1,&fled1))
|
||||
return;
|
||||
if (uAddDialogItem(H_DIALOG_FLOAT,pmt2,&fled2))
|
||||
return;
|
||||
index=uRunDialog();
|
||||
if (index<=0)
|
||||
break;
|
||||
if (index==2)
|
||||
{
|
||||
p_fld(&val2,&val1);
|
||||
p_fmul(&val2,&ratio);
|
||||
Clip(&val2);
|
||||
}
|
||||
else
|
||||
{
|
||||
p_fld(&val1,&val2);
|
||||
p_fdiv(&val1,&ratio);
|
||||
Clip(&val1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LOCAL_C VOID InchAndCm(VOID)
|
||||
{
|
||||
Convert("Inches","Centimetres",10000,25400);
|
||||
}
|
||||
|
||||
LOCAL_C VOID MileAndKm(VOID)
|
||||
{
|
||||
Convert("Miles","Kilometres",20000,32187);
|
||||
}
|
||||
|
||||
LOCAL_C VOID PoundAndKg(VOID)
|
||||
{
|
||||
Convert("Pounds","Kilograms",31938,14500);
|
||||
}
|
||||
|
||||
LOCAL_C VOID PintAndL(VOID)
|
||||
{
|
||||
Convert("Pints","Litres",28156,16000);
|
||||
}
|
||||
|
||||
LOCAL_C VOID ChangeNdp(VOID)
|
||||
{
|
||||
LONG lndp;
|
||||
H_DI_NUMBER num;
|
||||
|
||||
if (uOpenDialog("Level of significance"))
|
||||
return;
|
||||
lndp=ndp;
|
||||
num.value=(&lndp);
|
||||
num.low=0;
|
||||
num.high=4;
|
||||
if (uAddDialogItem(H_DIALOG_NUMBER,"Decimal places",&num))
|
||||
return;
|
||||
if (uRunDialog()<=0)
|
||||
return;
|
||||
ndp=(WORD)lndp;
|
||||
CalcSmall();
|
||||
}
|
||||
|
||||
LOCAL_C VOID SetUpDiDate(H_DI_DATE *pdate,P_DAYSEC *pds)
|
||||
{
|
||||
ULONG sdate;
|
||||
|
||||
sdate=p_date();
|
||||
p_sttods(&sdate,pds);
|
||||
pdate->value=(&pds->day);
|
||||
pdate->low=0;
|
||||
pdate->high=H_LAST_DAY;
|
||||
}
|
||||
|
||||
LOCAL_C VOID DayOfWeek(VOID)
|
||||
{
|
||||
P_DAYSEC ds;
|
||||
H_DI_DATE date;
|
||||
TEXT buf[40];
|
||||
H_DI_TEXT txt;
|
||||
|
||||
SetUpDiDate(&date,&ds);
|
||||
do
|
||||
{
|
||||
p_nmday(&buf[1],p_wkday(ds.day));
|
||||
buf[0]=p_slen(&buf[1]);
|
||||
txt.str=(&buf[0]);
|
||||
txt.type=H_DTEXT_ALIGN_LEFT;
|
||||
if (uOpenDialog("Find day of week"))
|
||||
return;
|
||||
if (uAddDialogItem(H_DIALOG_DATE,"Date",&date))
|
||||
return;
|
||||
if (uAddDialogItem(H_DIALOG_TEXT,"Day of week",&txt))
|
||||
return;
|
||||
} while (uRunDialog()>0);
|
||||
}
|
||||
|
||||
LOCAL_D TEXT *orient[]=
|
||||
{
|
||||
"Rat","Cow","Tiger","Rabbit","Dragon","Snake",
|
||||
"Horse","Sheep","Monkey","Rooster","Dog","Pig"
|
||||
};
|
||||
|
||||
LOCAL_D TEXT *western[]=
|
||||
{
|
||||
"Capricorn","Aquarius","Pisces","Aries","Taurus","Gemini",
|
||||
"Cancer","Leo","Virgo","Libra","Scorpio","Sagittarius"
|
||||
};
|
||||
|
||||
LOCAL_C INT Zodiac(P_DATE *pdt)
|
||||
{
|
||||
INT ret;
|
||||
LOCAL_D changeover[12]={19,18,19,19,20,20,22,22,22,22,21,20};
|
||||
|
||||
ret=pdt->month;
|
||||
if (pdt->day>changeover[ret])
|
||||
{
|
||||
if (ret++==11)
|
||||
ret=0;
|
||||
}
|
||||
return(ret);
|
||||
}
|
||||
|
||||
LOCAL_C VOID Horoscope(VOID)
|
||||
{
|
||||
P_DAYSEC ds;
|
||||
H_DI_DATE date;
|
||||
P_DATE dt;
|
||||
INT key;
|
||||
TEXT buf[40];
|
||||
|
||||
SetUpDiDate(&date,&ds);
|
||||
FOREVER
|
||||
{
|
||||
if (uOpenDialog("Horoscope"))
|
||||
return;
|
||||
if (uAddDialogItem(H_DIALOG_DATE,"Date of birth",&date))
|
||||
return;
|
||||
if (uAddButtonList("Stop",W_KEY_ESCAPE,
|
||||
"Western",'w',"Oriental",'o',NULL))
|
||||
return;
|
||||
key=uRunDialog();
|
||||
if (key<=0)
|
||||
return;
|
||||
p_dstodt(&ds,&dt);
|
||||
if (key=='o')
|
||||
p_atos(&buf[0],"Oriental horoscope is %s",orient[dt.year%12]);
|
||||
else
|
||||
p_atos(&buf[0],"Western horoscope is %s",western[Zodiac(&dt)]);
|
||||
wInfoMsg(&buf[0]);
|
||||
}
|
||||
}
|
||||
|
||||
LOCAL_C INT AddListOfDays(UWORD *pdiw)
|
||||
{
|
||||
H_DI_CHOICE ch;
|
||||
TEXT nam[32];
|
||||
INT i;
|
||||
|
||||
if (uBeginDCL(&ch))
|
||||
return(-1);
|
||||
for (i=0; i<7; i++)
|
||||
{
|
||||
p_nmday(&nam[0],i);
|
||||
if (uGrowDCL(&ch,&nam[0]))
|
||||
return(-1);
|
||||
}
|
||||
return(uAddDCL("Day in week",pdiw,&ch));
|
||||
}
|
||||
|
||||
LOCAL_C VOID SetUpTime(H_DI_TIME *ptime,P_DAYSEC *pds)
|
||||
{
|
||||
ptime->value=(&pds->sec);
|
||||
ptime->low=0;
|
||||
ptime->high=P_NSECDAY-1;
|
||||
ptime->type=H_DTIME_SHOW_SECONDS;
|
||||
}
|
||||
|
||||
LOCAL_C VOID TimeDifference(VOID)
|
||||
{
|
||||
P_DAYSEC ds1;
|
||||
H_DI_DATE date1;
|
||||
H_DI_TIME time1;
|
||||
P_DAYSEC ds2;
|
||||
H_DI_DATE date2;
|
||||
H_DI_TIME time2;
|
||||
LONG diff;
|
||||
TEXT buf[40];
|
||||
|
||||
SetUpDiDate(&date1,&ds1);
|
||||
SetUpDiDate(&date2,&ds2);
|
||||
SetUpTime(&time1,&ds1);
|
||||
SetUpTime(&time2,&ds2);
|
||||
FOREVER
|
||||
{
|
||||
if (uOpenDialog("Time difference"))
|
||||
return;
|
||||
if (uAddDialogItem(H_DIALOG_DATE,"From",&date1))
|
||||
return;
|
||||
if (uAddDialogItem(H_DIALOG_TIME,"",&time1))
|
||||
return;
|
||||
if (uAddDialogItem(H_DIALOG_DATE,"To",&date2))
|
||||
return;
|
||||
if (uAddDialogItem(H_DIALOG_TIME,"",&time2))
|
||||
return;
|
||||
if (uRunDialog()<=0)
|
||||
return;
|
||||
diff=ds2.day-ds1.day;
|
||||
if (diff<0 || !diff && ds2.sec<ds1.sec)
|
||||
{
|
||||
wInfoMsg("`To' date is before `From' date!");
|
||||
continue;
|
||||
}
|
||||
if (diff>0x7fffffffl/P_NSECDAY)
|
||||
{
|
||||
wInfoMsg("Dates are too far apart");
|
||||
continue;
|
||||
}
|
||||
p_atos(&buf[0],"Dates are %ld seconds apart",
|
||||
diff*P_NSECDAY+ds2.sec-ds1.sec);
|
||||
wInfoMsg(&buf[0]);
|
||||
}
|
||||
}
|
||||
|
||||
LOCAL_C INT AddNoYesChoiceList(TEXT *pmt,UWORD *pval)
|
||||
{
|
||||
return(uAddChoiceList(pmt,pval,"No","Yes",NULL));
|
||||
}
|
||||
|
||||
LOCAL_C VOID TimeNow(VOID)
|
||||
{
|
||||
INT values;
|
||||
H_DI_TEXT txt;
|
||||
TEXT buf[48];
|
||||
|
||||
txt.str=(&buf[0]);
|
||||
do
|
||||
{
|
||||
if (uOpenDialog(NULL))
|
||||
return;
|
||||
uZTStoBCS(&buf[0],"Time is now");
|
||||
txt.type=H_DTEXT_ALIGN_CENTRE;
|
||||
if (uAddDialogItem(H_DIALOG_TEXT,NULL,&txt))
|
||||
return;
|
||||
values=0;
|
||||
if (ttMonth==2)
|
||||
values=H_TIME_FORMAT_MONTH_NAME;
|
||||
if (ttDay==2)
|
||||
values|=H_TIME_FORMAT_DAY_NAME;
|
||||
if (ttSuffix==2)
|
||||
values|=H_TIME_FORMAT_SUFFIX;
|
||||
if (ttCentury==1)
|
||||
values|=H_TIME_FORMAT_NO_CENTURY;
|
||||
if (ttSeconds==1)
|
||||
values|=H_TIME_FORMAT_NO_SECONDS;
|
||||
hTTSetFormat(ttH,values);
|
||||
hTTSetTime(ttH,H_TIME_SET_NOW,NULL);
|
||||
buf[0]=hTTSenseString(ttH,H_TIME_SENSE_BOTH,&buf[1]);
|
||||
txt.type=H_DTEXT_ALIGN_CENTRE|H_DTEXT_UNDERLINE;
|
||||
if (uAddDialogItem(H_DIALOG_TEXT,NULL,&txt))
|
||||
return;
|
||||
if (AddNoYesChoiceList("Give month name",&ttMonth))
|
||||
return;
|
||||
if (AddNoYesChoiceList("Give day name",&ttDay))
|
||||
return;
|
||||
if (AddNoYesChoiceList("Use date suffix",&ttSuffix))
|
||||
return;
|
||||
if (AddNoYesChoiceList("Show century",&ttCentury))
|
||||
return;
|
||||
if (AddNoYesChoiceList("Show seconds",&ttSeconds))
|
||||
return;
|
||||
} while (uRunDialog()>0);
|
||||
}
|
||||
|
||||
LOCAL_C VOID EnterPassword(VOID)
|
||||
{
|
||||
TEXT pass1[10];
|
||||
TEXT pass2[10];
|
||||
H_DI_XINPUT x1;
|
||||
H_DI_XINPUT x2;
|
||||
|
||||
x1.str=(&pass1[0]);
|
||||
x2.str=(&pass2[0]);
|
||||
FOREVER
|
||||
{
|
||||
if (uOpenDialog(NULL))
|
||||
return;
|
||||
if (uAddDialogItem(H_DIALOG_XINPUT,"Define password",&x1))
|
||||
return;
|
||||
if (uAddDialogItem(H_DIALOG_XINPUT,"Confirm password",&x2))
|
||||
return;
|
||||
if (uRunDialog()<=0)
|
||||
return;
|
||||
if (p_bcmpi(&pass1[1],pass1[0],&pass2[1],pass2[0]))
|
||||
{
|
||||
wInfoMsg("Password not confirmed");
|
||||
continue;
|
||||
}
|
||||
if (pass1[0])
|
||||
break;
|
||||
wInfoMsg("Please supply password");
|
||||
}
|
||||
p_bfil(&pass[0],10,0);
|
||||
p_bcpy(&pass[0],&pass1[0],pass1[0]+1);
|
||||
}
|
||||
|
||||
LOCAL_C VOID MakeReadable(TEXT *out,TEXT *in)
|
||||
{
|
||||
INT len;
|
||||
INT i;
|
||||
INT val;
|
||||
|
||||
i=32;
|
||||
len=(*in++);
|
||||
*out++=len*2;
|
||||
while (len--)
|
||||
{
|
||||
val=(*in++);
|
||||
*out++=i+(val&0xf);
|
||||
i+=16;
|
||||
*out++=i+(val>>4);
|
||||
if (i==112)
|
||||
i=32;
|
||||
else
|
||||
i+=16;
|
||||
}
|
||||
}
|
||||
|
||||
LOCAL_C VOID MakeUnreadable(TEXT *out,TEXT *in)
|
||||
{
|
||||
INT len;
|
||||
INT i;
|
||||
INT val;
|
||||
|
||||
i=32;
|
||||
len=(*in++)/2;
|
||||
*out++=len;
|
||||
while (len--)
|
||||
{
|
||||
val=(*in++)-i;
|
||||
i+=16;
|
||||
val+=((*in++)-i)<<4;
|
||||
*out++=val;
|
||||
if (i==112)
|
||||
i=32;
|
||||
else
|
||||
i+=16;
|
||||
}
|
||||
}
|
||||
|
||||
LOCAL_C VOID Report(TEXT *title,TEXT *mess)
|
||||
{
|
||||
H_DI_TEXT txt;
|
||||
|
||||
if (uOpenDialog(title))
|
||||
return;
|
||||
txt.str=mess;
|
||||
txt.type=H_DTEXT_ALIGN_CENTRE;
|
||||
if (uAddDialogItem(H_DIALOG_TEXT,NULL,&txt))
|
||||
return;
|
||||
uRunDialog();
|
||||
}
|
||||
|
||||
LOCAL_C VOID EncryptMessage(VOID)
|
||||
{
|
||||
P_MASK mask;
|
||||
H_DI_EDIT ed;
|
||||
TEXT in[20];
|
||||
TEXT out[38];
|
||||
|
||||
if (!pass[0])
|
||||
{
|
||||
wInfoMsg("Can't encrypt with no password set");
|
||||
return;
|
||||
}
|
||||
p_setmask((VOID **)&mask,&pass[1]);
|
||||
if (uOpenDialog("Encrypt message"))
|
||||
return;
|
||||
ed.str=(&in[0]);
|
||||
ed.len=18;
|
||||
in[0]=0;
|
||||
if (uAddDialogItem(H_DIALOG_EDIT,"Message",&ed))
|
||||
return;
|
||||
if (uRunDialog()<=0)
|
||||
return;
|
||||
p_encrypt(&mask,&in[1],in[0]);
|
||||
MakeReadable(&out[0],&in[0]);
|
||||
Report("Encrypted message",&out[0]);
|
||||
}
|
||||
|
||||
LOCAL_C VOID DecryptMessage(VOID)
|
||||
{
|
||||
P_MASK mask;
|
||||
H_DI_SEDIT sed;
|
||||
TEXT in[38];
|
||||
TEXT out[20];
|
||||
|
||||
if (!pass[0])
|
||||
{
|
||||
wInfoMsg("Can't decrypt with no password set");
|
||||
return;
|
||||
}
|
||||
p_setmask((VOID **)&mask,&pass[1]);
|
||||
if (uOpenDialog("Decrypt message"))
|
||||
return;
|
||||
sed.str=(&in[0]);
|
||||
sed.len=36;
|
||||
sed.width=16;
|
||||
in[0]=0;
|
||||
if (uAddDialogItem(H_DIALOG_SEDIT,"Message",&sed))
|
||||
return;
|
||||
if (uRunDialog()<=0)
|
||||
return;
|
||||
MakeUnreadable(&out[0],&in[0]);
|
||||
p_decrypt(&mask,&out[1],out[0]);
|
||||
Report("Decrypted message",&out[0]);
|
||||
}
|
||||
|
||||
LOCAL_C VOID FileSize(VOID)
|
||||
{
|
||||
TEXT fname[P_FNAMESIZE+2];
|
||||
H_DI_FSEL fsel;
|
||||
P_INFO info;
|
||||
TEXT buf[30];
|
||||
|
||||
fname[0]=0;
|
||||
fsel.fname=(&fname[0]);
|
||||
fsel.flags=H_FILE_PICK_SELECTOR;
|
||||
FOREVER
|
||||
{
|
||||
if (uOpenDialog("Find file size"))
|
||||
return;
|
||||
if (uAddDialogItem(H_DIALOG_FSEL,"File:",&fsel))
|
||||
return;
|
||||
if (uRunDialog()<=0)
|
||||
return;
|
||||
fname[1+fname[0]]=0;
|
||||
if (!uErrorValue(p_finfo(&fname[1],&info)))
|
||||
{
|
||||
p_atos(&buf[0],"File size is %lu bytes",info.size);
|
||||
wInfoMsg(&buf[0]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LOCAL_C VOID ManageCommand(INT index)
|
||||
{
|
||||
switch (index)
|
||||
{
|
||||
case ITEMS_BEFORE_CONVERT:
|
||||
InchAndCm();
|
||||
break;
|
||||
case ITEMS_BEFORE_CONVERT+1:
|
||||
MileAndKm();
|
||||
break;
|
||||
case ITEMS_BEFORE_CONVERT+2:
|
||||
PoundAndKg();
|
||||
break;
|
||||
case ITEMS_BEFORE_CONVERT+3:
|
||||
PintAndL();
|
||||
break;
|
||||
case ITEMS_BEFORE_CONVERT+4:
|
||||
Temperatures();
|
||||
break;
|
||||
case ITEMS_BEFORE_CALENDAR:
|
||||
DayOfWeek();
|
||||
break;
|
||||
case ITEMS_BEFORE_CALENDAR+1:
|
||||
hOODialog(DylHandle,C_OQD_COMBINS,OQD_DATE_COMBINS,NULL);
|
||||
break;
|
||||
case ITEMS_BEFORE_CALENDAR+2:
|
||||
TimeDifference();
|
||||
break;
|
||||
case ITEMS_BEFORE_CALENDAR+3:
|
||||
Horoscope();
|
||||
break;
|
||||
case ITEMS_BEFORE_CALENDAR+4:
|
||||
TimeNow();
|
||||
break;
|
||||
case ITEMS_BEFORE_SECRET:
|
||||
EnterPassword();
|
||||
break;
|
||||
case ITEMS_BEFORE_SECRET+1:
|
||||
EncryptMessage();
|
||||
break;
|
||||
case ITEMS_BEFORE_SECRET+2:
|
||||
DecryptMessage();
|
||||
break;
|
||||
case ITEMS_BEFORE_SPECIAL:
|
||||
ChangeNdp();
|
||||
break;
|
||||
case ITEMS_BEFORE_SPECIAL+1:
|
||||
FileSize();
|
||||
break;
|
||||
case ITEMS_BEFORE_SPECIAL+2:
|
||||
p_exit(0);
|
||||
}
|
||||
}
|
||||
|
||||
LOCAL_C VOID TryExecuteCommand(INT keycode)
|
||||
{
|
||||
keycode=uLocateCommand(keycode);
|
||||
if (keycode>=0)
|
||||
ManageCommand(keycode);
|
||||
}
|
||||
|
||||
LOCAL_C VOID MainLoop(VOID)
|
||||
{
|
||||
INT ret;
|
||||
WMSG_KEY key;
|
||||
|
||||
FOREVER
|
||||
{
|
||||
uGetKey(&key);
|
||||
if (key.keycode&W_EVENT_KEY)
|
||||
{
|
||||
if (key.keycode==CONS_EVENT_COMMAND)
|
||||
p_exit(0);
|
||||
}
|
||||
else if (key.keycode&W_SPECIAL_KEY)
|
||||
TryExecuteCommand(key.keycode&(~W_SPECIAL_KEY));
|
||||
else if (key.keycode==W_KEY_MENU && !(key.modifiers&W_CTRL_MODIFIER))
|
||||
{
|
||||
ret=uPresentMenus();
|
||||
if (ret>0)
|
||||
TryExecuteCommand(ret);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
LOCAL_C VOID ReduceScreenSize(VOID)
|
||||
{
|
||||
W_WINDATA wd;
|
||||
|
||||
wd.extent.tl.x=wd.extent.tl.y=0;
|
||||
wd.extent.width=189;
|
||||
wd.extent.height=80;
|
||||
wSetWindow(MainWid,W_WIN_EXTENT,&wd);
|
||||
if (uErrorValue(wCheckPoint()))
|
||||
p_exit(0);
|
||||
}
|
||||
|
||||
LOCAL_C VOID CreateGC(VOID)
|
||||
{
|
||||
INT hgc;
|
||||
|
||||
hgc=gCreateGC0(MainWid);
|
||||
if (hgc<0)
|
||||
p_exit(hgc);
|
||||
}
|
||||
|
||||
LOCAL_C VOID SpecificInit(VOID)
|
||||
{
|
||||
hInitAppRcb();
|
||||
DylHandle=hLoadOwnDyl(0);
|
||||
hCrackCommandLine();
|
||||
MainWid=uFindMainWid();
|
||||
ReduceScreenSize();
|
||||
CreateGC();
|
||||
gBorder(W_BORD_CORNER_4);
|
||||
wsEnable();
|
||||
CalcSmall();
|
||||
ttH=hTTOpen();
|
||||
}
|
||||
|
||||
GLDEF_C VOID main(VOID)
|
||||
{
|
||||
uCommonInit();
|
||||
SpecificInit();
|
||||
MainLoop();
|
||||
}
|
||||
@@ -0,0 +1 @@
|
||||
oqd.dyl
|
||||
@@ -0,0 +1,17 @@
|
||||
#system epoc img
|
||||
#set epocinit=iplib
|
||||
#model small jpi
|
||||
|
||||
#compile oquery.c
|
||||
|
||||
#if %remake #or (oqd.dyl #older oquery.img) #or (oquery.dfl #older oquery.img) #then
|
||||
#file delete oquery.img
|
||||
#endif
|
||||
|
||||
#pragma link(hwif.lib)
|
||||
|
||||
#if (oquery.img #older oquery.afl) #or (oquery.img #older oquery.pic) #then
|
||||
#file delete oquery.img
|
||||
#endif
|
||||
|
||||
#link oquery.img
|
||||
@@ -0,0 +1,80 @@
|
||||
#include <hwim.rg>
|
||||
#include <hwim.rh>
|
||||
|
||||
RESOURCE MENU oqm_daynames
|
||||
{
|
||||
items =
|
||||
{
|
||||
CHOICE_ITEM { str="Monday";},
|
||||
CHOICE_ITEM { str="Tuesday";},
|
||||
CHOICE_ITEM { str="Wednesday";},
|
||||
CHOICE_ITEM { str="Thursday";},
|
||||
CHOICE_ITEM { str="Friday";},
|
||||
CHOICE_ITEM { str="Saturday";},
|
||||
CHOICE_ITEM { str="Sunday";}
|
||||
};
|
||||
}
|
||||
|
||||
RESOURCE ACLIST_ARRAY oqa_date_combins
|
||||
{
|
||||
button =
|
||||
{
|
||||
PUSH_BUT
|
||||
{
|
||||
keycode=W_KEY_ESCAPE;
|
||||
str="Stop";
|
||||
},
|
||||
PUSH_BUT
|
||||
{
|
||||
keycode=W_KEY_MENU;
|
||||
str="Backwards";
|
||||
},
|
||||
PUSH_BUT
|
||||
{
|
||||
keycode=W_KEY_RETURN;
|
||||
str="Forwards";
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
RESOURCE DIALOG oqd_date_combins
|
||||
{
|
||||
title="Find date combinations";
|
||||
controls=
|
||||
{
|
||||
CONTROL
|
||||
{
|
||||
class=C_CHLIST;
|
||||
prompt="Day in week";
|
||||
info=CHLIST { rid=oqm_daynames; };
|
||||
},
|
||||
CONTROL
|
||||
{
|
||||
class=C_NCEDIT;
|
||||
prompt="Day in month";
|
||||
info=NCEDIT
|
||||
{
|
||||
low=1;
|
||||
high=31;
|
||||
};
|
||||
},
|
||||
CONTROL
|
||||
{
|
||||
class=C_DTEDIT;
|
||||
prompt="Found date";
|
||||
info=DTEDIT
|
||||
{
|
||||
flags=IN_DTEDIT_DDMMYYYY|IN_DTEDIT_INIT;
|
||||
low=0;
|
||||
high=93501l;
|
||||
};
|
||||
},
|
||||
CONTROL
|
||||
{
|
||||
class=C_ACLIST;
|
||||
info=ACLIST { rid=oqa_date_combins; };
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
RESOURCE STRING oqs_no_further_matches { str="No further matches"; }
|
||||
@@ -0,0 +1 @@
|
||||
Query
|
||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user