build: add the SIBO SDK
This commit is contained in:
@@ -0,0 +1,209 @@
|
||||
/*
|
||||
HHWIF.C
|
||||
|
||||
Started by Huw 11/3/91
|
||||
|
||||
Routines for supplying menus and dialogs for non OOP users
|
||||
such as OPL/W
|
||||
*/
|
||||
|
||||
#include <hwif.g>
|
||||
#include <hwif.h>
|
||||
#include <gate.g>
|
||||
#include <p_gen.h>
|
||||
#include <epoc.h>
|
||||
|
||||
GLREF_D PR_GATE *DatGate;
|
||||
GLDEF_D UWORD _UseFullScreen;
|
||||
GLDEF_D UWORD *_GreyLines;
|
||||
GLDEF_D UWORD *_MenuPositions;
|
||||
GLDEF_D UWORD _SmallFontDialog;
|
||||
|
||||
GLDEF_C INT hIFInit(VOID *console)
|
||||
/*
|
||||
Initialise HWIM interface
|
||||
*/
|
||||
{
|
||||
if (!(DatGate=p_new(CAT_HWIF_HWIM,C_GATE)))
|
||||
return(E_GEN_NOMEMORY);
|
||||
if (_UseFullScreen)
|
||||
p_send2(DatGate,O_GT_XW_ENABLE);
|
||||
return(p_send3(DatGate,O_GT_INIT,console));
|
||||
}
|
||||
|
||||
GLDEF_C INT hMenuOpen()
|
||||
/*
|
||||
Create a new menu bar
|
||||
*/
|
||||
{
|
||||
return(p_send2(DatGate,O_GT_MENU_OPEN));
|
||||
}
|
||||
|
||||
GLDEF_C INT hMenuAdd(TEXT *title,VOID *menu)
|
||||
/*
|
||||
Add another menu to the menu bar
|
||||
*/
|
||||
{
|
||||
return(p_send4(DatGate,O_GT_MENU_ADD,title,menu));
|
||||
}
|
||||
|
||||
GLDEF_C INT hMenuRun()
|
||||
/*
|
||||
Display and use the menu bar
|
||||
|
||||
Note that due to the addition of 'gate.g.dx' in os 356 and above, the
|
||||
property 'gate.g.ulines' is in different places on different models.
|
||||
|
||||
Older models will be expecting the greyline data to be where later
|
||||
models look for 'gate.g.dx', so a test is required to determine where
|
||||
to copy the greyline data to.
|
||||
*/
|
||||
{
|
||||
if (_GreyLines)
|
||||
{
|
||||
p_bcpy((BYTE *)&DatGate->gate.g.ulines[0]-((p_version()>0x355f)?0:
|
||||
sizeof(DLG_X_CONSTANTS)),_GreyLines,16*sizeof(UWORD));
|
||||
}
|
||||
return(p_send3(DatGate,O_GT_MENU_RUN,_MenuPositions));
|
||||
}
|
||||
|
||||
GLDEF_C VOID hMenuClose()
|
||||
/*
|
||||
Close an incomplete menu bar down
|
||||
*/
|
||||
{
|
||||
p_send2(DatGate,O_GT_MENU_CLOSE);
|
||||
}
|
||||
|
||||
GLDEF_C INT hDlgOpen(TEXT *title)
|
||||
/*
|
||||
Create a new dialog
|
||||
*/
|
||||
{
|
||||
INT method;
|
||||
|
||||
method=O_GT_DIAL_OPEN;
|
||||
if (_SmallFontDialog)
|
||||
{
|
||||
method=O_GT_DIAL_SOPEN;
|
||||
_SmallFontDialog=FALSE;
|
||||
}
|
||||
return(p_send3(DatGate,method,title));
|
||||
}
|
||||
|
||||
GLDEF_C INT hDlgAdd(UWORD type,TEXT *prompt,VOID *data)
|
||||
/*
|
||||
Add an item to the dialog
|
||||
*/
|
||||
{
|
||||
return(p_send5(DatGate,O_GT_DIAL_ADD,type,prompt,data));
|
||||
}
|
||||
|
||||
GLDEF_C INT hDlgRun()
|
||||
/*
|
||||
Display and use the dialog
|
||||
*/
|
||||
{
|
||||
return(p_send2(DatGate,O_GT_DIAL_RUN));
|
||||
}
|
||||
|
||||
GLDEF_C VOID hDlgClose()
|
||||
/*
|
||||
Close an incomplete dialog down
|
||||
*/
|
||||
{
|
||||
p_send2(DatGate,O_GT_DIAL_CLOSE);
|
||||
}
|
||||
|
||||
GLDEF_C VOID *hCardOpen()
|
||||
/*
|
||||
Open a menu card for building
|
||||
*/
|
||||
{
|
||||
return((VOID *)p_send2(DatGate,O_GT_CARD_OPEN));
|
||||
}
|
||||
|
||||
GLDEF_C INT hCardAdd(VOID *hand,INT index,INT accel,TEXT *str)
|
||||
/*
|
||||
Add an item to a menu card
|
||||
*/
|
||||
{
|
||||
H_CARD card;
|
||||
|
||||
card.accel=accel;
|
||||
card.str=str;
|
||||
return(p_send5(DatGate,O_GT_CARD_ADD,hand,index,&card));
|
||||
}
|
||||
|
||||
GLDEF_C VOID hCardClose(VOID *hand)
|
||||
/*
|
||||
Discard a menu card
|
||||
*/
|
||||
{
|
||||
p_send3(DatGate,O_GT_CARD_CLOSE,hand);
|
||||
}
|
||||
|
||||
GLDEF_C VOID *hChoiceOpen()
|
||||
/*
|
||||
Open a choice list for building
|
||||
*/
|
||||
{
|
||||
return((VOID *)p_send2(DatGate,O_GT_CHOICE_OPEN));
|
||||
}
|
||||
|
||||
GLDEF_C INT hChoiceAdd(VOID *hand,INT index,TEXT *str)
|
||||
/*
|
||||
Add an item to a choice list
|
||||
*/
|
||||
{
|
||||
H_CHOICE choice;
|
||||
|
||||
choice.str=str;
|
||||
return(p_send5(DatGate,O_GT_CHOICE_ADD,hand,index,&choice));
|
||||
}
|
||||
|
||||
GLDEF_C VOID hChoiceClose(VOID *hand)
|
||||
/*
|
||||
Discard a choice list
|
||||
*/
|
||||
{
|
||||
p_send3(DatGate,O_GT_CHOICE_CLOSE,hand);
|
||||
}
|
||||
|
||||
GLDEF_C VOID *hButtonOpen()
|
||||
/*
|
||||
Open a action list for building
|
||||
*/
|
||||
{
|
||||
return((VOID *)p_send2(DatGate,O_GT_BUTTON_OPEN));
|
||||
}
|
||||
|
||||
GLDEF_C INT hButtonAdd(VOID *hand,INT index,INT key,TEXT *str)
|
||||
/*
|
||||
Add a button to an action list
|
||||
*/
|
||||
{
|
||||
H_BUTTON but;
|
||||
|
||||
but.keycode=key;
|
||||
but.str=str;
|
||||
return(p_send5(DatGate,O_GT_BUTTON_ADD,hand,index,&but));
|
||||
}
|
||||
|
||||
GLDEF_C VOID hButtonClose(VOID *hand)
|
||||
/*
|
||||
Discard an action list
|
||||
*/
|
||||
{
|
||||
p_send3(DatGate,O_GT_BUTTON_CLOSE,hand);
|
||||
}
|
||||
|
||||
GLDEF_C INT hDlgPosition(INT x,INT y)
|
||||
{
|
||||
return(p_send4(DatGate,O_GT_DIAL_POSITION,x,y));
|
||||
}
|
||||
|
||||
GLDEF_C UINT hLastSystemKey(UINT *pmodifiers)
|
||||
{
|
||||
return(p_send3(DatGate,O_GT_LAST_KEY,pmodifiers));
|
||||
}
|
||||
Reference in New Issue
Block a user