build: add the SIBO SDK
This commit is contained in:
@@ -0,0 +1,3 @@
|
||||
dat.pic
|
||||
dat.rzc
|
||||
dat.shd
|
||||
@@ -0,0 +1,58 @@
|
||||
IMAGE dat
|
||||
|
||||
EXTERNAL olib
|
||||
EXTERNAL hwim
|
||||
|
||||
INCLUDE p_gen.h
|
||||
INCLUDE p_file.h
|
||||
INCLUDE epoc.h
|
||||
INCLUDE wlib.h
|
||||
INCLUDE olib.g
|
||||
INCLUDE hwimman.g
|
||||
INCLUDE mfne.g
|
||||
INCLUDE time.g
|
||||
|
||||
CLASS datcom comman
|
||||
{
|
||||
ADD com_date
|
||||
}
|
||||
|
||||
CLASS datwserv wserv
|
||||
{
|
||||
REPLACE ws_dyn_init
|
||||
}
|
||||
|
||||
CLASS datwin bwin
|
||||
{
|
||||
REPLACE wn_init
|
||||
REPLACE wn_dodraw
|
||||
REPLACE wn_draw
|
||||
PROPERTY
|
||||
{
|
||||
PR_TIME *time;
|
||||
}
|
||||
}
|
||||
|
||||
CLASS datedlg dlgbox
|
||||
{
|
||||
REPLACE dl_item_new
|
||||
REPLACE dl_dyn_init
|
||||
REPLACE dl_key
|
||||
}
|
||||
|
||||
CLASS date mfne
|
||||
{
|
||||
REPLACE wn_init
|
||||
REPLACE wn_set
|
||||
REPLACE wn_sense
|
||||
REPLACE lg_self_check
|
||||
PROPERTY
|
||||
{
|
||||
WORD dType;
|
||||
UINT day;
|
||||
UINT month;
|
||||
UINT year;
|
||||
ULONG min;
|
||||
ULONG max;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
Dat
|
||||
|
||||
1000
|
||||
Binary file not shown.
@@ -0,0 +1,39 @@
|
||||
#system epoc img
|
||||
#set epocinit=iplib
|
||||
#model small jpi
|
||||
|
||||
#set version=0x118F
|
||||
#set priority=0x80
|
||||
#set heapsize=0x48
|
||||
|
||||
#compile %main.cat
|
||||
|
||||
#if %remake #or (%main.rg #older %main.re) #or (%main.rg #older %main.g) #then
|
||||
#run "re %main" no_window no_abort
|
||||
#endif
|
||||
|
||||
#if (%main.rsg #older %main.rss) #or (%main.rsg #older %main.rg) #then
|
||||
#file delete %main.rsg
|
||||
#run "rs %main" no_window no_abort
|
||||
#run "rch %main" no_window no_abort
|
||||
#endif
|
||||
|
||||
#compile datwserv.c
|
||||
#compile datwin.c
|
||||
#compile datcom.c
|
||||
#compile date.c
|
||||
#compile datdial.c
|
||||
|
||||
#if %main.shd #older %main.ms #then
|
||||
#run "makeshd %main" no_window no_abort
|
||||
#file delete %main.img
|
||||
#endif
|
||||
|
||||
#if (%main.img #older %main.afl) #or (%main.img #older %main.pic) #then
|
||||
#file delete %main.img
|
||||
#endif
|
||||
|
||||
#pragma link(olib.lib)
|
||||
#pragma link(hwim.lib)
|
||||
|
||||
#link %main
|
||||
@@ -0,0 +1,6 @@
|
||||
#include <dat.g>
|
||||
|
||||
_C_DATE
|
||||
_O_COM_EXIT
|
||||
_O_COM_DATE
|
||||
_C_DATCOM
|
||||
@@ -0,0 +1,69 @@
|
||||
/*
|
||||
Resource file for timer demonstration program
|
||||
*/
|
||||
|
||||
#include <hwim.rg>
|
||||
#include <hwim.rh>
|
||||
#include <dat.rg>
|
||||
#include <dat.rsg>
|
||||
|
||||
RESOURCE WSERV_INFO tim_accs
|
||||
{
|
||||
menbar_id=tim_menu;
|
||||
first_com=O_COM_EXIT;
|
||||
/* follows order in cat file command manager */
|
||||
accel={'x', /* Exit */
|
||||
's' /* Set current date */
|
||||
};
|
||||
}
|
||||
|
||||
RESOURCE MENU_BAR tim_menu
|
||||
{
|
||||
items =
|
||||
{
|
||||
MENU_BAR_ITEM
|
||||
{
|
||||
menu_id=options_menu;
|
||||
mb_item="Options";
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
RESOURCE MENU options_menu
|
||||
{
|
||||
items =
|
||||
{
|
||||
MENU_ITEM
|
||||
{
|
||||
com_id=O_COM_DATE;
|
||||
mn_item="Current date";
|
||||
},
|
||||
MENU_ITEM
|
||||
{
|
||||
com_id=O_COM_EXIT;
|
||||
mn_item="Exit";
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
RESOURCE STRING month_day_reset
|
||||
{
|
||||
str="Day exceeds days in month: reset";
|
||||
}
|
||||
|
||||
RESOURCE DIALOG date_dl_res
|
||||
{
|
||||
title="Current date";
|
||||
flags=DLGBOX_NOTIFY_ENTER;
|
||||
controls=
|
||||
{
|
||||
CONTROL
|
||||
{
|
||||
class=C_DATE;
|
||||
flags=DLGBOX_ITEM_CENTRE|DLGBOX_ITEM_APPL_CAT;
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
/*
|
||||
kalcom.c
|
||||
*/
|
||||
|
||||
#include <hwim.h>
|
||||
#include <dat.g>
|
||||
#include <dat.rsg>
|
||||
|
||||
GLREF_D PR_WSERV * const w_ws;
|
||||
|
||||
LOCAL_C INT LaunchDial(VOID *buf,INT id,INT class)
|
||||
{
|
||||
DL_DATA dl_data;
|
||||
|
||||
dl_data.id=id;
|
||||
dl_data.rbuf=buf;
|
||||
dl_data.pdlg=NULL;
|
||||
return(p_send5(w_ws,O_WS_DO_DIAL,p_getlibh(CAT_DAT_DAT),class,&dl_data));
|
||||
}
|
||||
|
||||
#pragma METHOD_CALL
|
||||
|
||||
METHOD VOID datcom_com_date(PR_DATCOM *self)
|
||||
{
|
||||
LaunchDial(NULL,DATE_DL_RES,C_DATEDLG);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,31 @@
|
||||
#include <dat.g>
|
||||
#include <dat.rg>
|
||||
#include <date.h>
|
||||
|
||||
GLREF_D PR_DATWSERV * const w_ws;
|
||||
|
||||
#pragma METHOD_CALL
|
||||
|
||||
METHOD VOID *datedlg_dl_item_new(PR_DATEDLG *self,AD_DLGBOX *par)
|
||||
{
|
||||
return(f_new(CAT_DAT_DAT,par->class));
|
||||
}
|
||||
|
||||
METHOD VOID datedlg_dl_dyn_init(PR_DATEDLG *self)
|
||||
{
|
||||
P_DAYSEC ds;
|
||||
|
||||
p_send4(((PR_DATWIN *)w_ws->wserv.cli)->datwin.time,O_TO_SENSE,SENSE_TIME_DAYSEC,&ds);
|
||||
p_send4(self,O_WN_SET,1,&ds.day);
|
||||
}
|
||||
|
||||
METHOD INT datedlg_dl_key(PR_DATEDLG *self,INT index,INT keycode)
|
||||
{
|
||||
P_DAYSEC ds;
|
||||
|
||||
p_send4(self,O_WN_SENSE,1,&ds.day);
|
||||
ds.sec=0;
|
||||
f_leave(p_send4(((PR_DATWIN *)w_ws->wserv.cli)->datwin.time,O_TO_SET,SET_TIME_DAYSEC,&ds));
|
||||
return(WN_KEY_CHANGED);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,121 @@
|
||||
#include <p_date.h>
|
||||
#include <p_std.h>
|
||||
#include <p_config.h>
|
||||
#include <date.h>
|
||||
#include <hwim.h>
|
||||
#include <s_.rsg>
|
||||
#include <mfne.g>
|
||||
#include <dat.g>
|
||||
#include <dat.rsg>
|
||||
|
||||
LOCAL_C VOID InitField(PR_DATE *self,UINT i,LONG val,LONG min,LONG max,UBYTE width)
|
||||
{
|
||||
self->mfne.f[i].value=val;
|
||||
self->mfne.f[i].limits[MFNE_LOWER]=min;
|
||||
self->mfne.f[i].limits[MFNE_UPPER]=max;
|
||||
self->mfne.f[i].width=width;
|
||||
}
|
||||
|
||||
LOCAL_C VOID DayMonthYear(PR_DATE *self,INT i,INT j,INT k)
|
||||
{
|
||||
self->date.day=i;
|
||||
self->date.month=j;
|
||||
self->date.year=k;
|
||||
}
|
||||
|
||||
#pragma METHOD_CALL
|
||||
|
||||
METHOD VOID date_wn_init(PR_DATE *self,VOID *par,PR_WIN *landlord)
|
||||
{
|
||||
P_DAYSEC ds;
|
||||
P_DATE dt;
|
||||
E_CONFIG cfg;
|
||||
|
||||
p_getctd(&cfg);
|
||||
self->lodger.landlord=landlord;
|
||||
self->mfne.selected=FALSE;
|
||||
self->mfne.changed=FALSE;
|
||||
self->mfne.cField=0;
|
||||
self->mfne.nField=3;
|
||||
self->mfne.f[0].separator=cfg.dateSeparator;
|
||||
self->mfne.f[1].separator=cfg.dateSeparator;
|
||||
self->mfne.f[2].flags=MFNE_SUPPRESS_SEPARATOR;
|
||||
self->date.dType=cfg.dateType;
|
||||
if (self->date.dType==E_DATE_EUROPE)
|
||||
{
|
||||
DayMonthYear(self,0,1,2);
|
||||
}
|
||||
else if (self->date.dType==E_DATE_USA)
|
||||
{
|
||||
DayMonthYear(self,1,0,2);
|
||||
}
|
||||
else if (self->date.dType==E_DATE_JAPAN)
|
||||
{
|
||||
DayMonthYear(self,2,1,0);
|
||||
}
|
||||
InitField(self,self->date.day,1,1,31,2);
|
||||
InitField(self,self->date.month,1,1,12,2);
|
||||
InitField(self,self->date.year,1,1900,2154,4);
|
||||
dt.year=254;
|
||||
dt.month=11;
|
||||
dt.day=30;
|
||||
dt.hour=dt.minute=dt.second=dt.yrday=0;
|
||||
p_dttods(&dt,&ds);
|
||||
self->date.max=ds.day;
|
||||
}
|
||||
|
||||
METHOD VOID date_wn_set(PR_DATE *self,ULONG *par)
|
||||
{
|
||||
P_DAYSEC ds;
|
||||
P_DATE dt;
|
||||
|
||||
ds.day=*par;
|
||||
ds.sec=0;
|
||||
if (ds.day>self->date.max)
|
||||
{
|
||||
ds.day=self->date.max;
|
||||
}
|
||||
p_dstodt(&ds,&dt);
|
||||
self->mfne.f[self->date.day].value=dt.day+1;
|
||||
self->mfne.f[self->date.month].value=dt.month+1;
|
||||
self->mfne.f[self->date.year].value=dt.year+1900;
|
||||
p_supersend2(self,O_WN_SET);
|
||||
}
|
||||
|
||||
METHOD VOID date_wn_sense(PR_DATE *self,ULONG *par)
|
||||
{
|
||||
P_DATE dt;
|
||||
P_DAYSEC ds;
|
||||
|
||||
dt.second=0;
|
||||
dt.minute=0;
|
||||
dt.hour=0;
|
||||
dt.day=self->mfne.f[self->date.day].value-1;
|
||||
dt.month=self->mfne.f[self->date.month].value-1;
|
||||
dt.year=self->mfne.f[self->date.year].value-1900;
|
||||
p_dttods(&dt,&ds);
|
||||
*par=ds.day;
|
||||
}
|
||||
|
||||
METHOD INT date_lg_self_check(PR_DATE *self,INT can_defer)
|
||||
{
|
||||
INT ret;
|
||||
INT days;
|
||||
|
||||
ret=p_supersend3(self,O_LG_SELF_CHECK,can_defer);
|
||||
if ((can_defer==FALSE)&&(ret==LG_CHECK_OK_CHANGED))
|
||||
{
|
||||
days=p_dayinm((INT)self->mfne.f[self->date.year].value-1900,
|
||||
(INT)self->mfne.f[self->date.month].value-1);
|
||||
if (self->mfne.f[self->date.day].value>(LONG)days)
|
||||
{
|
||||
hBeep();
|
||||
self->mfne.cField=self->date.day;
|
||||
self->mfne.f[self->date.day].value=(LONG)days;
|
||||
p_supersend3(self,O_LG_SELF_CHECK,TRUE);
|
||||
hInfoPrint(MONTH_DAY_RESET);
|
||||
ret=LG_CHECK_FAILED_CHANGED;
|
||||
}
|
||||
}
|
||||
return(ret);
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
typedef struct
|
||||
{
|
||||
WORD flags;
|
||||
ULONG value;
|
||||
ULONG min;
|
||||
ULONG max;
|
||||
} SE_DATE;
|
||||
|
||||
typedef struct
|
||||
{
|
||||
ULONG value;
|
||||
ULONG min;
|
||||
ULONG max;
|
||||
} IN_DATE;
|
||||
|
||||
#define SE_DATE_VALUE 0x01
|
||||
#define SE_DATE_MIN 0x02
|
||||
#define SE_DATE_MAX 0x04
|
||||
@@ -0,0 +1,51 @@
|
||||
/* Written by Leif November 1993 */
|
||||
|
||||
#include <p_std.h>
|
||||
#include <p_date.h>
|
||||
#include <epoc.h>
|
||||
#include <hwim.h>
|
||||
#include <time.g>
|
||||
#include <dat.g>
|
||||
#include <dat.rsg>
|
||||
|
||||
GLREF_D PR_WSERV * const w_ws;
|
||||
GLREF_D PR_APPMAN * const w_am;
|
||||
|
||||
#pragma METHOD_CALL
|
||||
|
||||
METHOD VOID datwin_wn_draw(PR_DATWIN *self)
|
||||
{
|
||||
TEXT buf[LN_TIME_DATE_STR];
|
||||
G_FONT_INFO fontinfo;
|
||||
W_WINDATA windata;
|
||||
P_RECT r;
|
||||
|
||||
p_supersend2(self,O_WN_DRAW);
|
||||
wInquireWindow(self->win.id,&windata);
|
||||
gFontInfo(WS_FONT_SYSTEM,0,&fontinfo);
|
||||
r.tl.x=2;
|
||||
r.br.x=windata.extent.width-2;
|
||||
r.tl.y=(windata.extent.height-fontinfo.height)>>1;
|
||||
r.br.y=r.tl.y+fontinfo.height;
|
||||
f_leave(p_send4(self->datwin.time,O_TO_SENSE,SENSE_TIME_DATESTR,&buf[0]));
|
||||
gPrintBoxText(&r,fontinfo.ascent,G_TEXT_ALIGN_CENTRE,0,&buf[0],p_slen(&buf[0]));
|
||||
}
|
||||
|
||||
METHOD VOID datwin_wn_dodraw(PR_DATWIN *self)
|
||||
{
|
||||
gCreateTempGC0(self->win.id);
|
||||
datwin_wn_draw(self);
|
||||
gFreeTempGC();
|
||||
wFlush();
|
||||
}
|
||||
|
||||
METHOD VOID datwin_wn_init(PR_DATWIN *self,PR_WIN *par,UINT fields,W_WINDATA *pwd)
|
||||
{
|
||||
p_supersend5(self,O_WN_CONNECT,par,fields,pwd);
|
||||
p_send3(self,O_WN_VISIBLE,WV_INITVIS);
|
||||
p_send3(self,O_WN_EMPHASISE,TRUE);
|
||||
self->datwin.time=f_newsend(CAT_DAT_OLIB,C_TIME,O_TO_SET_FORMAT,NULL,NULL);
|
||||
p_send4(self->datwin.time,O_TO_SET,SET_TIME_NOW,NULL);
|
||||
datwin_wn_dodraw(self);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,38 @@
|
||||
#include <hwim.g>
|
||||
#include <hwim.h>
|
||||
#include <dat.g>
|
||||
#include <dat.rsg>
|
||||
|
||||
GLREF_D WSERV_SPEC *wserv_channel;
|
||||
|
||||
GLDEF_C VOID main(VOID)
|
||||
{
|
||||
IN_HWIMMAN app;
|
||||
IN_WSERV ws;
|
||||
|
||||
p_linklib(0);
|
||||
app.flags=FLG_APPMAN_FULLSCREEN|FLG_APPMAN_RSCFILE|FLG_APPMAN_CLEAN|
|
||||
FLG_APPMAN_SRSCFILE;
|
||||
app.wserv_cat=ws.com_cat=p_getlibh(CAT_DAT_DAT);
|
||||
app.wserv_class=C_DATWSERV;
|
||||
ws.com_class=C_DATCOM;
|
||||
p_send4(p_new(CAT_DAT_HWIM,C_HWIMMAN),O_AM_INIT,&app,&ws);
|
||||
}
|
||||
|
||||
#pragma METHOD_CALL
|
||||
|
||||
METHOD VOID datwserv_ws_dyn_init(PR_DATWSERV *self)
|
||||
{
|
||||
W_WINDATA wd;
|
||||
|
||||
wd.extent.tl.y=0;
|
||||
wd.extent.tl.x=0;
|
||||
wd.extent.width=wserv_channel->conn.info.pixels.x;
|
||||
wd.extent.height=wserv_channel->conn.info.pixels.y;
|
||||
wd.background=W_WIN_BACK_CLR|W_WIN_BACK_GREY_CLR;
|
||||
self->wserv.cli=f_newsend(CAT_DAT_DAT,C_DATWIN,O_WN_INIT,NULL,W_WIN_EXTENT|W_WIN_BACKGROUND,&wd);
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
gaugedem.pic
|
||||
gaugedem.rzc
|
||||
gaugedem.shd
|
||||
@@ -0,0 +1,43 @@
|
||||
IMAGE gaugedem
|
||||
|
||||
EXTERNAL olib
|
||||
EXTERNAL hwim
|
||||
|
||||
INCLUDE hwimman.g
|
||||
INCLUDE timer.g
|
||||
|
||||
CLASS gaugewsv wserv
|
||||
{
|
||||
REPLACE ws_dyn_init
|
||||
}
|
||||
|
||||
CLASS gaugewin bwin
|
||||
main window
|
||||
{
|
||||
REPLACE wn_init
|
||||
REPLACE wn_draw
|
||||
}
|
||||
|
||||
CLASS gaugecom comman
|
||||
command manager
|
||||
{
|
||||
ADD com_run
|
||||
}
|
||||
|
||||
CLASS gaugetim timer
|
||||
{
|
||||
REPLACE ao_init
|
||||
REPLACE ao_queue
|
||||
REPLACE ao_run
|
||||
PROPERTY
|
||||
{
|
||||
ULONG count;
|
||||
ULONG total;
|
||||
}
|
||||
}
|
||||
|
||||
CLASS gaugedlg dlgbox
|
||||
{
|
||||
REPLACE dl_dyn_init
|
||||
}
|
||||
|
||||
@@ -0,0 +1,3 @@
|
||||
Gauge
|
||||
|
||||
1000
|
||||
Binary file not shown.
@@ -0,0 +1,41 @@
|
||||
#system epoc img
|
||||
#set epocinit=iplib
|
||||
#model small jpi
|
||||
|
||||
#abort on
|
||||
|
||||
#set version=0x100F
|
||||
#set priority=0x80
|
||||
#set heapsize=0x80
|
||||
|
||||
#compile %main.cat
|
||||
|
||||
#if %remake #or (%main.rg #older %main.re) #or (%main.rg #older %main.g) #then
|
||||
#run "re %main" no_window no_abort
|
||||
#endif
|
||||
|
||||
#if (%main.rsg #older %main.rss) #or (%main.rsg #older %main.rg) #then
|
||||
#file delete %main.rsg
|
||||
#run "rs %main" no_window no_abort
|
||||
#endif
|
||||
|
||||
#if %main.rzc #older %main.rsg #then
|
||||
#run "rch %main" no_window no_abort
|
||||
#endif
|
||||
|
||||
#compile o_gauge.c
|
||||
|
||||
#if %main.shd #older %main.ms #then
|
||||
#run "makeshd %main" no_window no_abort
|
||||
#file delete %main.img
|
||||
#endif
|
||||
|
||||
#if (%main.img #older %main.afl) #or (%main.img #older %main.pic) #then
|
||||
#file delete %main.img
|
||||
#endif
|
||||
|
||||
#pragma link(olib.lib)
|
||||
#pragma link(hwim.lib)
|
||||
|
||||
#link %main
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
#include <hwimman.g>
|
||||
#include <gaugedem.g>
|
||||
|
||||
_O_COM_RUN
|
||||
_O_COM_EXIT
|
||||
@@ -0,0 +1,106 @@
|
||||
/*
|
||||
GAUGEDEM.RSS
|
||||
|
||||
English resource file for GAUGEDEM demonstration app
|
||||
|
||||
*/
|
||||
|
||||
#include <hwim.rh>
|
||||
#include <hwim.rg>
|
||||
#include <gaugedem.rg>
|
||||
|
||||
RESOURCE WSERV_INFO hello_accs
|
||||
{
|
||||
menbar_id=gauge3_menbar;
|
||||
first_com=O_COM_EXIT;
|
||||
accel={'x', /* Exit */
|
||||
'r' /* Run */
|
||||
};
|
||||
}
|
||||
|
||||
RESOURCE MENU_BAR gauge3_menbar
|
||||
{
|
||||
items=
|
||||
{
|
||||
MENU_BAR_ITEM
|
||||
{
|
||||
menu_id=gauge_menu;
|
||||
mb_item="Gauge";
|
||||
},
|
||||
MENU_BAR_ITEM
|
||||
{
|
||||
menu_id=special_menu;
|
||||
mb_item="Special";
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
RESOURCE MENU gauge_menu
|
||||
{
|
||||
items =
|
||||
{
|
||||
MENU_ITEM
|
||||
{
|
||||
com_id=O_COM_RUN;
|
||||
mn_item="Run";
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
RESOURCE MENU special_menu
|
||||
{
|
||||
items =
|
||||
{
|
||||
MENU_ITEM
|
||||
{
|
||||
com_id=O_COM_EXIT;
|
||||
mn_item="Exit";
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
RESOURCE STRING title_res {str="Welcome to GAUGEDEM";}
|
||||
|
||||
RESOURCE ACLIST_ARRAY escape_ac
|
||||
{
|
||||
button=
|
||||
{
|
||||
PUSH_BUT
|
||||
{
|
||||
keycode=W_KEY_ESCAPE;
|
||||
str="Cancel";
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
RESOURCE DIALOG gauge_dl_res
|
||||
{
|
||||
flags=DLGBOX_NOTIFY_ENTER|DLGBOX_RBUF_FILLED;
|
||||
controls=
|
||||
{
|
||||
CONTROL
|
||||
{
|
||||
class=C_TEXTWIN;
|
||||
flags=DLGBOX_ITEM_CENTRE|DLGBOX_ITEM_DEAD;
|
||||
info=TXTMESS
|
||||
{
|
||||
flags=IN_TEXTWIN_AL_CENTRE;
|
||||
str="Loading data";
|
||||
};
|
||||
},
|
||||
CONTROL
|
||||
{
|
||||
class=C_DONEWN;
|
||||
},
|
||||
CONTROL
|
||||
{
|
||||
class=C_ACLIST;
|
||||
info=ACLIST
|
||||
{
|
||||
rid=escape_ac;
|
||||
};
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,140 @@
|
||||
/*
|
||||
O_GAUGE: demonstrates a gauge used to monitor the progress
|
||||
of a lengthy operation simulated using a timer.
|
||||
*/
|
||||
|
||||
|
||||
#include <hwimman.g>
|
||||
#include <p_file.h>
|
||||
#include <timer.g>
|
||||
#include <donewn.g>
|
||||
#include <ncedit.g>
|
||||
#include <gaugedem.g>
|
||||
#include <gaugedem.rsg>
|
||||
|
||||
GLREF_D WSERV_SPEC *wserv_channel;
|
||||
GLREF_D PR_HWIMMAN *w_am;
|
||||
GLREF_D PR_WSERV *w_ws;
|
||||
|
||||
GLDEF_C VOID main(VOID)
|
||||
{
|
||||
IN_HWIMMAN app;
|
||||
IN_WSERV ws;
|
||||
|
||||
p_linklib(0);
|
||||
app.flags=FLG_APPMAN_FULLSCREEN|FLG_APPMAN_RSCFILE|FLG_APPMAN_CLEAN|
|
||||
FLG_APPMAN_SRSCFILE;
|
||||
app.wserv_cat=p_getlibh(CAT_GAUGEDEM_GAUGEDEM);
|
||||
ws.com_cat=p_getlibh(CAT_GAUGEDEM_GAUGEDEM);
|
||||
app.wserv_class=C_GAUGEWSV;
|
||||
ws.com_class=C_GAUGECOM;
|
||||
p_send4(p_new(CAT_GAUGEDEM_HWIM,C_HWIMMAN),O_AM_INIT,&app,&ws);
|
||||
}
|
||||
|
||||
LOCAL_C INT LaunchDial(VOID *buf,INT id,INT class)
|
||||
{
|
||||
DL_DATA dl_data;
|
||||
|
||||
dl_data.id=id;
|
||||
dl_data.rbuf=buf;
|
||||
dl_data.pdlg=NULL;
|
||||
return(p_send5(w_ws,O_WS_DO_DIAL,p_getlibh(CAT_GAUGEDEM_GAUGEDEM),class,&dl_data));
|
||||
}
|
||||
|
||||
#pragma METHOD_CALL
|
||||
|
||||
METHOD VOID gaugewsv_ws_dyn_init(PR_GAUGEWSV *self)
|
||||
{
|
||||
self->wserv.cli=f_new(CAT_GAUGEDEM_GAUGEDEM,C_GAUGEWIN);
|
||||
p_send2(self->wserv.cli,O_WN_INIT);
|
||||
}
|
||||
|
||||
METHOD VOID gaugewin_wn_init(PR_GAUGEWIN *self)
|
||||
{
|
||||
W_WINDATA wd;
|
||||
|
||||
wd.extent.tl.x=0;
|
||||
wd.extent.tl.y=0;
|
||||
wd.extent.width=wserv_channel->conn.info.pixels.x;
|
||||
wd.extent.height=wserv_channel->conn.info.pixels.y;
|
||||
p_send5(self,O_WN_CONNECT,NULL,W_WIN_EXTENT,&wd);
|
||||
p_send3(self,O_WN_VISIBLE,WV_INITVIS);
|
||||
p_send3(self,O_WN_EMPHASISE,TRUE);
|
||||
}
|
||||
|
||||
METHOD VOID gaugewin_wn_draw(PR_GAUGEWIN *self)
|
||||
{
|
||||
G_FONT_INFO fontinfo;
|
||||
W_WINDATA windata;
|
||||
TEXT buf[40];
|
||||
P_RECT r;
|
||||
INT w,len;
|
||||
|
||||
p_supersend2(self,O_WN_DRAW);
|
||||
len=p_send(w_am,O_AM_LOAD_RES_BUF,TITLE_RES,&buf[0]);
|
||||
w=gTextWidth(WS_FONT_SYSTEM,0,&buf[0],--len);
|
||||
wInquireWindow(self->win.id,&windata);
|
||||
r.tl.x=(windata.extent.width-w)/2;
|
||||
r.br.x=r.tl.x+w;
|
||||
gFontInfo(WS_FONT_SYSTEM,0,&fontinfo);
|
||||
r.tl.y=(windata.extent.height-fontinfo.height)/2;
|
||||
r.br.y=r.tl.y+fontinfo.height;
|
||||
gPrintBoxText(&r,fontinfo.ascent,G_TEXT_ALIGN_CENTRE,0,&buf[0],len);
|
||||
}
|
||||
|
||||
METHOD VOID gaugecom_com_run(PR_GAUGECOM *self)
|
||||
{
|
||||
ULONG duration;
|
||||
|
||||
duration=100;
|
||||
f_newsend(CAT_GAUGEDEM_GAUGEDEM,C_GAUGETIM,O_AO_INIT,&duration);
|
||||
LaunchDial(&duration,GAUGE_DL_RES,C_GAUGEDLG);
|
||||
}
|
||||
|
||||
METHOD VOID gaugedlg_dl_dyn_init(PR_GAUGEDLG *self)
|
||||
{
|
||||
SE_DONEWN se_donewn;
|
||||
|
||||
se_donewn.val=0L;
|
||||
se_donewn.range=*(ULONG *)self->dlgbox.rbuf;
|
||||
se_donewn.flags=SE_DONEWN_RANGE|SE_DONEWN_VALUE;
|
||||
p_send4(self,O_WN_SET,1,&se_donewn);
|
||||
}
|
||||
|
||||
METHOD VOID gaugetim_ao_queue(PR_GAUGETIM *self,UINT lsw,UINT msw)
|
||||
{
|
||||
self->active.stat=E_FILE_PENDING;
|
||||
self->active.isactive=TRUE;
|
||||
p_supersend4(self,O_AO_QUEUE,lsw,msw);
|
||||
}
|
||||
|
||||
METHOD VOID gaugetim_ao_init(PR_GAUGETIM *self,ULONG *ptotal)
|
||||
{
|
||||
p_send3(w_am,O_AM_ADD_TASK,self);
|
||||
self->active.priority=PRIORITY_ACTIVE_WSERV-1;
|
||||
self->gaugetim.count=0L;
|
||||
self->gaugetim.total=*ptotal;
|
||||
p_supersend2(self,O_AO_INIT);
|
||||
p_send4(self,O_AO_QUEUE,1,0);
|
||||
}
|
||||
|
||||
METHOD INT gaugetim_ao_run(PR_GAUGETIM *self)
|
||||
{
|
||||
SE_DONEWN se_donewn;
|
||||
|
||||
self->gaugetim.count++;
|
||||
if (w_ws->wserv.dial)
|
||||
{
|
||||
se_donewn.flags=SE_DONEWN_INCREMENT;
|
||||
p_send4(w_ws->wserv.dial,O_WN_SET,1,&se_donewn);
|
||||
if (self->gaugetim.count<self->gaugetim.total)
|
||||
{
|
||||
p_send4(self,O_AO_QUEUE,1,0);
|
||||
return(RUN_ACTIVE_USED);
|
||||
}
|
||||
else
|
||||
p_send2(w_ws->wserv.dial,O_DESTROY);
|
||||
}
|
||||
p_send2(self,O_DESTROY);
|
||||
return(RUN_ACTIVE_USED);
|
||||
}
|
||||
Reference in New Issue
Block a user