build: add the SIBO SDK
This commit is contained in:
@@ -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);
|
||||
}
|
||||
Reference in New Issue
Block a user