home *** CD-ROM | disk | FTP | other *** search
- /*
- * interface.c
- */
-
- #include <string.h>
-
- #include "swis.h"
- #include "os.h"
- #include "wimp.h"
- #include "wimpt.h"
-
- #include "interface.h"
-
- os_error *interface_slabbutton(wimp_mousestr *mouse)
- {
- os_regset regs;
- os_error *error;
-
- regs.r[1] = (int) mouse;
-
- error = os_swix(Interface_SlabButton, ®s);
-
- return error;
- }
-
- os_error *interface_render3dwindow(wimp_redrawstr *redraw)
- {
- os_regset regs;
- os_error *error;
-
- regs.r[1] = (int) redraw;
-
- error = os_swix(Interface_Render3dWindow, ®s);
-
- return error;
- }
-
- os_error *interface_initialise(void)
- {
- os_regset regs;
- os_error *error;
-
- regs.r[0] = (int) wimpt_task();
-
- error = os_swix(Interface_Initialise, ®s);
-
- return error;
- }
-
- os_error *interface_closedown(void)
- {
- os_regset regs;
- os_error *error;
-
- regs.r[0] = (int) wimpt_task();
-
- error = os_swix(Interface_CloseDown, ®s);
-
- return error;
- }
-
- os_error *interface_setworkareapointer(wimp_pointerstr *pointer)
- {
- os_regset regs;
- os_error *error;
-
- regs.r[1] = (int) pointer;
-
- error = os_swix(Interface_SetWorkareaPointer, ®s);
-
- return error;
- }
-
- os_error *interface_removeworkareapointer(wimp_pointerstr *pointer)
- {
- os_regset regs;
- os_error *error;
-
- regs.r[0] = (int) wimpt_task();
- regs.r[1] = (int) pointer;
-
- error = os_swix(Interface_RemoveWorkareaPointer, ®s);
-
- return error;
- }
-
-
- os_error *interface_poll(int reason)
- {
- os_regset regs;
- os_error *error;
-
- regs.r[0] = (int) reason;
- regs.r[2] = (int) wimpt_task();
-
- error = os_swix(Interface_Poll, ®s);
-
- return error;
- }
-
- os_error *interface_sendhelp(wimp_msghdr *msg)
- {
- os_regset regs;
- os_error *error;
-
- regs.r[1] = (int) msg;
-
- error = os_swix(Interface_SendHelp, ®s);
-
- return error;
- }
-
- os_error *interface_preprocesskey(wimp_eventstr *event)
- {
- os_regset regs;
- os_error *error;
-
- regs.r[0] = (int) event->e;
- regs.r[1] = (int) &event->data;
- regs.r[2] = wimpt_task();
-
- error = os_swix(Interface_PreProcessKey, ®s);
-
- return error;
- }
-
- os_error *interface_plot3dicon(wimp_wstate *wstate, wimp_icon *icon)
- {
- os_regset regs;
- os_error *error;
-
- regs.r[0] = (int) wstate;
- regs.r[1] = (int) icon;
-
- error = os_swix(Interface_Plot3dIcon, ®s);
-
- return error;
- }
-
- os_error *interface_boundingbox(wimp_icon *icon)
- {
- os_regset regs;
- os_error *error;
-
- regs.r[1] = (int) icon;
-
- error = os_swix(Interface_BoundingBox, ®s);
-
- return error;
- }
-
- /* secondary functions */
-
- void interface_slabicon(wimp_w w, wimp_i i)
- {
- wimp_mousestr mouse;
-
- mouse.w = w;
- mouse.bbits = 4;
- mouse.i = i;
-
- wimpt_complain(interface_slabbutton(&mouse));
-
- return;
- }
-
- void interface_unslabicon(wimp_w w, wimp_i i)
- {
- wimp_mousestr mouse;
-
- mouse.w = w;
- mouse.bbits = 0;
- mouse.i = i;
-
- wimpt_complain(interface_slabbutton(&mouse));
-
- return;
- }
-
- void interface_autoredraw(wimp_redrawstr *redraw)
- {
- BOOL more;
-
- wimpt_complain(wimp_redraw_wind(redraw, &more));
-
- while (more)
- {
- wimpt_complain(interface_render3dwindow(redraw));
-
- wimp_get_rectangle(redraw, &more);
- }
-
- return;
- }
-
- void interface_setpointer(wimp_w w, char *name)
- {
- wimp_pointerstr pointer;
-
- pointer.w = w;
- pointer.box.x0 = -1;
- pointer.box.x1 = -1;
- pointer.box.y0 = -1;
- pointer.box.y1 = -1;
-
- strcpy(pointer.validstring, name);
-
- wimpt_complain(interface_setworkareapointer(&pointer));
-
- return;
- }
-
- void interface_removepointer(wimp_w w)
- {
- wimp_pointerstr pointer;
-
- pointer.w = w;
- pointer.box.x0 = -1;
- pointer.box.x1 = -1;
- pointer.box.y0 = -1;
- pointer.box.y1 = -1;
-
- wimpt_complain(interface_removeworkareapointer(&pointer));
-
- return;
- }
-