Files
sibo-playground/code/SIBOSDK/oopdemo/o_hello2.c
2026-07-06 18:01:36 +01:00

76 lines
1.8 KiB
C

/*
O_HELLO
*/
#include <hwimman.g>
#include <hello2.g>
#include <hello2.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/*|FLG_APPMAN_IPCS|FLG_APPMAN_LINKING*/;
app.wserv_cat=p_getlibh(CAT_HELLO2_HELLO2);
ws.com_cat=p_getlibh(CAT_HELLO2_HELLO2);
app.wserv_class=C_HELLOWS;
ws.com_class=C_HELLOCM;
p_send4(p_new(CAT_HELLO2_HWIM,C_HWIMMAN),O_AM_INIT,&app,&ws);
}
#pragma METHOD_CALL
METHOD VOID hellows_ws_dyn_init(PR_HELLOWS *self)
{
self->wserv.cli=f_new(CAT_HELLO2_HELLO2,C_HELLOBW);
p_send2(self->wserv.cli,O_WN_INIT);
}
METHOD VOID hellobw_wn_init(PR_HELLOBW *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);
/* hInitVis(self); */
p_send3(self,O_WN_EMPHASISE,TRUE);
}
METHOD VOID hellobw_wn_draw(PR_HELLOBW *self)
{
UINT resid;
TEXT buf[40];
resid=self->hellobw.isbye ? BYE_MESSAGE:HELLO_MESSAGE;
p_send(w_am,O_AM_LOAD_RES_BUF,resid,&buf[0]);
p_supersend2(self,O_WN_DRAW);
gPrintText(50,50,&buf[0],p_slen(&buf[0]));
}
METHOD VOID hellobw_wn_set(PR_HELLOBW *self,UINT isbye)
{
self->hellobw.isbye=isbye;
p_send2(self,O_WN_DODRAW);
}
METHOD VOID hellocm_com_hello(PR_HELLOCM *self)
{
p_send3(w_ws->wserv.cli,O_WN_SET,FALSE);
}
METHOD VOID hellocm_com_bye(PR_HELLOCM *self)
{
p_send3(w_ws->wserv.cli,O_WN_SET,TRUE);
}