build: add the SIBO SDK
This commit is contained in:
@@ -0,0 +1,17 @@
|
||||
/* DEDLG.C */
|
||||
|
||||
#include <demo.g>
|
||||
#include <hwim.h>
|
||||
|
||||
#pragma METHOD_CALL
|
||||
|
||||
METHOD INT dedlg_dl_key(PR_DLGBOX *self)
|
||||
{
|
||||
RBUF_LP *prbuf;
|
||||
|
||||
prbuf=self->dlgbox.rbuf;
|
||||
prbuf->dayno=hDlgSenseDtedit(1);
|
||||
prbuf->ndays=hDlgSenseNcedit(2);
|
||||
prbuf->gap=hDlgSenseChlist(3);
|
||||
return(WN_KEY_CHANGED);
|
||||
}
|
||||
@@ -0,0 +1,105 @@
|
||||
/* DELP.C */
|
||||
|
||||
#include <demo.g>
|
||||
#include <demo.rsg>
|
||||
#include <hwim.h>
|
||||
|
||||
#define TIME_FMT_FLAGS (PR_TIME_MONTH_NAME|PR_TIME_SUFFIX_NAME)
|
||||
|
||||
LOCAL_C VOID InitTimeObject(PR_DELP *self)
|
||||
{
|
||||
P_DAYSEC ds;
|
||||
SE_TIME_FORMAT fmt;
|
||||
|
||||
ds.day=self->delp.rbuf.dayno;
|
||||
ds.sec=0;
|
||||
self->delp.time=f_new(CAT_DEMO_OLIB,C_TIME);
|
||||
p_send4(self->delp.time,O_TO_SET,SET_TIME_DAYSEC,&ds);
|
||||
fmt.flags=TIME_FMT_FLAGS;
|
||||
p_send4(self->delp.time,O_TO_SET_FORMAT,&fmt,TIME_FMT_FLAGS);
|
||||
}
|
||||
|
||||
LOCAL_C UINT SenseBufWidth(PR_DELP *self,TEXT *pb)
|
||||
{
|
||||
return(p_send4(self,O_LPR_SENSE_BUF_WIDTH,pb,p_slen(pb)));
|
||||
}
|
||||
|
||||
LOCAL_C VOID FindWidthFirstColumn(PR_DELP *self)
|
||||
{
|
||||
INT i;
|
||||
TEXT buf[E_MAX_DAY_NAME];
|
||||
UWORD wid;
|
||||
|
||||
for (i=0; i<7; i++)
|
||||
{
|
||||
p_nmday(&buf[0],i);
|
||||
wid=SenseBufWidth(self,&buf[0]);
|
||||
if (wid>self->delp.colwid)
|
||||
self->delp.colwid=wid;
|
||||
}
|
||||
self->delp.colwid+=SenseBufWidth(self," "); /* two spaces */
|
||||
if (self->delp.colwid>(3*self->lprinter.width/4))
|
||||
{
|
||||
hInfoPrint(DELP_PAPER_NARROW);
|
||||
p_sleep(20);
|
||||
p_leave(RUN_ACTIVE_CLEANUP_NONOTIFY);
|
||||
}
|
||||
self->lprinter.subsqind=self->delp.colwid;
|
||||
}
|
||||
|
||||
#pragma METHOD_CALL
|
||||
|
||||
METHOD VOID delp_lpr_init(PR_DELP *self,RBUF_LP *prbuf)
|
||||
{
|
||||
self->delp.rbuf=(*prbuf);
|
||||
p_supersend2(self,O_LPR_INIT);
|
||||
}
|
||||
|
||||
METHOD INT delp_lpr_sense_text(PR_DELP *self,WDR_PRINT *pr)
|
||||
{
|
||||
P_DATE dt;
|
||||
P_DAYSEC ds;
|
||||
|
||||
if (!self->delp.time)
|
||||
{
|
||||
InitTimeObject(self);
|
||||
FindWidthFirstColumn(self);
|
||||
}
|
||||
else if (!self->delp.rbuf.ndays)
|
||||
return(FALSE);
|
||||
switch (self->delp.state++)
|
||||
{
|
||||
case DELP_STATE_COL1:
|
||||
if (self->delp.rbuf.gap)
|
||||
{
|
||||
p_send4(self->delp.time,O_TO_SENSE,SENSE_TIME_DATE,&dt);
|
||||
if (!dt.day)
|
||||
{
|
||||
pr->down=pr->height;
|
||||
if (self->delp.rbuf.gap==1)
|
||||
pr->down>>=1;
|
||||
}
|
||||
}
|
||||
p_send4(self->delp.time,O_TO_SENSE,SENSE_TIME_DAYSEC,&ds);
|
||||
p_nmday(&self->delp.dname[0],P_WEEK(ds.day));
|
||||
self->delp.right=self->delp.colwid
|
||||
-SenseBufWidth(self,&self->delp.dname[0]);
|
||||
pr->buf=(&self->delp.dname[0]);
|
||||
break;
|
||||
case DELP_STATE_COL2:
|
||||
pr->flags&=(~(WDR_PRINT_LINE|WDR_PRINT_TEXT));
|
||||
pr->flags|=WDR_PRINT_RIGHT;
|
||||
pr->right=self->delp.right;
|
||||
return(TRUE);
|
||||
case DELP_STATE_COL3:
|
||||
p_send4(self->delp.time,O_TO_SENSE,SENSE_TIME_DATESTR,&self->delp.buf[0]);
|
||||
pr->buf=(&self->delp.buf[0]);
|
||||
pr->flags&=(~WDR_PRINT_LINE);
|
||||
pr->indent=self->delp.colwid;
|
||||
self->delp.rbuf.ndays--;
|
||||
p_send4(self->delp.time,O_TO_ADD_DAYS,1,0);
|
||||
self->delp.state=DELP_STATE_COL1;
|
||||
}
|
||||
pr->blen=p_slen(pr->buf);
|
||||
return(TRUE);
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
/* DEMAIN.C */
|
||||
|
||||
#include <demo.g>
|
||||
|
||||
GLDEF_C VOID main(VOID)
|
||||
{
|
||||
IN_HWIMMAN app;
|
||||
IN_WSERV wserv;
|
||||
|
||||
p_linklib(0);
|
||||
app.flags=FLG_APPMAN_RSCFILE|FLG_APPMAN_SRSCFILE|FLG_APPMAN_CLEAN|FLG_APPMAN_FULLSCREEN;
|
||||
app.wserv_cat=p_getlibh(CAT_DEMO_DEMO);
|
||||
app.wserv_class=C_DEWSERV;
|
||||
wserv.com_cat=p_getlibh(CAT_DEMO_HWIM);
|
||||
wserv.com_class=C_COMMAN;
|
||||
p_send4(p_new(CAT_DEMO_HWIM,C_HWIMMAN),O_AM_INIT,&app,&wserv);
|
||||
}
|
||||
@@ -0,0 +1,51 @@
|
||||
IMAGE demo
|
||||
|
||||
EXTERNAL olib
|
||||
EXTERNAL hwim
|
||||
|
||||
INCLUDE hwimman.g
|
||||
INCLUDE dlgbox.g
|
||||
INCLUDE lprinter.g
|
||||
INCLUDE time.g
|
||||
INCLUDE epoc.h
|
||||
|
||||
CLASS dewserv wserv
|
||||
{
|
||||
REPLACE ws_dyn_init
|
||||
}
|
||||
|
||||
CLASS dedlg dlgbox
|
||||
{
|
||||
REPLACE dl_key
|
||||
TYPES
|
||||
{
|
||||
typedef struct
|
||||
{
|
||||
UWORD dayno;
|
||||
UWORD ndays;
|
||||
UWORD gap;
|
||||
} RBUF_LP;
|
||||
}
|
||||
}
|
||||
|
||||
CLASS delp lprinter
|
||||
{
|
||||
REPLACE lpr_init
|
||||
REPLACE lpr_sense_text
|
||||
CONSTANTS
|
||||
{
|
||||
DELP_STATE_COL1 0
|
||||
DELP_STATE_COL2 1
|
||||
DELP_STATE_COL3 2
|
||||
}
|
||||
PROPERTY 1
|
||||
{
|
||||
VOID *time;
|
||||
UWORD colwid;
|
||||
UWORD right;
|
||||
UWORD state;
|
||||
RBUF_LP rbuf;
|
||||
TEXT dname[E_MAX_DAY_NAME];
|
||||
TEXT buf[LN_TIME_DATE_STR];
|
||||
}
|
||||
}
|
||||
Binary file not shown.
@@ -0,0 +1,55 @@
|
||||
/* DEMO.RSS */
|
||||
|
||||
#include <hwim.rh>
|
||||
#include <hwim.rg>
|
||||
|
||||
RESOURCE WSERV_INFO demo_accs
|
||||
{
|
||||
menbar_id=0;
|
||||
first_com=0;
|
||||
accel={'x'};
|
||||
}
|
||||
|
||||
RESOURCE MENU delp_gap_chlist
|
||||
{
|
||||
items =
|
||||
{
|
||||
CHOICE_ITEM { str="No gap";},
|
||||
CHOICE_ITEM { str="Half a line";},
|
||||
CHOICE_ITEM { str="Complete line";}
|
||||
};
|
||||
}
|
||||
|
||||
RESOURCE DIALOG delp_dlg
|
||||
{
|
||||
title="Print list of days";
|
||||
flags=DLGBOX_NOTIFY_ENTER|DLGBOX_RBUF_FILLED;
|
||||
controls=
|
||||
{
|
||||
CONTROL
|
||||
{
|
||||
class=C_DTEDIT;
|
||||
prompt="Start date";
|
||||
info=DTEDIT { flags=IN_DTEDIT_DDMMYYYY;};
|
||||
},
|
||||
CONTROL
|
||||
{
|
||||
class=C_NCEDIT;
|
||||
prompt="Number of days to print";
|
||||
info=NCEDIT
|
||||
{
|
||||
low=10;
|
||||
current=20;
|
||||
high=200;
|
||||
};
|
||||
},
|
||||
CONTROL
|
||||
{
|
||||
class=C_CHLIST;
|
||||
prompt="Space between months";
|
||||
info=CHLIST { rid=delp_gap_chlist; };
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
RESOURCE STRING delp_paper_narrow { str="Paper size too narrow"; }
|
||||
@@ -0,0 +1,29 @@
|
||||
/* DEWSERV.C */
|
||||
|
||||
#include <demo.g>
|
||||
#include <demo.rsg>
|
||||
#include <hwim.h>
|
||||
|
||||
LOCAL_C INT LaunchDialog(INT class,INT resid,VOID *rbuf)
|
||||
{
|
||||
DL_DATA dld;
|
||||
|
||||
dld.id=resid;
|
||||
dld.rbuf=rbuf;
|
||||
dld.pdlg=NULL;
|
||||
return hLaunchDial(CAT_DEMO_DEMO,class,&dld);
|
||||
}
|
||||
|
||||
#pragma METHOD_CALL
|
||||
|
||||
METHOD VOID dewserv_ws_dyn_init(PR_DEWSERV *self)
|
||||
{
|
||||
RBUF_LP rbuf;
|
||||
|
||||
if (LaunchDialog(C_DEDLG,DELP_DLG,&rbuf))
|
||||
{
|
||||
p_send2(self,O_WS_EDIT_PRINT_CONTEXT);
|
||||
hDestroy(f_newsend(CAT_DEMO_DEMO,C_DELP,O_LPR_INIT,&rbuf));
|
||||
}
|
||||
p_exit(0);
|
||||
}
|
||||
@@ -0,0 +1,3 @@
|
||||
@echo off
|
||||
tscx /m tprint
|
||||
tscx /m tprint
|
||||
@@ -0,0 +1,2 @@
|
||||
demo.pic
|
||||
demo.rzc
|
||||
@@ -0,0 +1,31 @@
|
||||
#system epoc img
|
||||
#set epocinit=iplib
|
||||
#model small jpi
|
||||
|
||||
#abort on
|
||||
|
||||
#compile demo.cat
|
||||
|
||||
#if %remake #or (demo.rsg #older demo.rss) #then
|
||||
#file delete demo.rsg
|
||||
#run "rs demo" no_window no_abort
|
||||
#endif
|
||||
|
||||
#if demo.rzc #older demo.rsg #then
|
||||
#run "rch demo" no_window no_abort
|
||||
#file delete tprint.img
|
||||
#endif
|
||||
|
||||
#compile delp.c
|
||||
#compile dedlg.c
|
||||
#compile demain.c
|
||||
#compile dewserv.c
|
||||
|
||||
#if (tprint.img #older tprint.afl) #or (tprint.img #older demo.pic) #then
|
||||
#file delete tprint.img
|
||||
#endif
|
||||
|
||||
#pragma link(olib.lib)
|
||||
#pragma link(hwim.lib)
|
||||
|
||||
#link tprint.img
|
||||
@@ -0,0 +1,14 @@
|
||||
tprrel.prj ! releases source files
|
||||
tprint.pr ! TS project file
|
||||
make.bat ! makes TPRINT.IMG
|
||||
!
|
||||
demo.cat ! category file
|
||||
demo.rss ! resource script
|
||||
!
|
||||
delp.c ! line printer
|
||||
dedlg.c ! dialog
|
||||
demain.c ! main
|
||||
dewserv.c ! window server subclass
|
||||
!
|
||||
tprint.afl ! add file list
|
||||
demo.pic ! icon
|
||||
Reference in New Issue
Block a user