[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[MiNT] SV: form_button in XaAES



> Any suggestions on where to find the bindings? I'm still using the
> originall PureC AES-library...

I use for all new project the GEM- and TOS-Lib from Martin Elsässer

http://acspro.atari.org/

If you want to use them and your program use list boxes can I send you a new
version, because the version V0.9.2 have a bug.

-------------------------------cut-------------------------------
The window-oriented drawing functions in the AES
================================================

Formatting: Tab width 5

Andreas Kromke
22.2.97
English translation: Peter West, April 99.


How do I recogise whether the functions are present?
====================================================

Currently you can't.

General
-------

The functions present since  MagiC 5.10:

  objc_wdraw()
  objc_wchange()
  graf_wwatchbox()
  form_wbutton()
  form_wkeybd()
  objc_wedit()

correspond to the respective equivalents

  objc_draw()
  objc_change()
  graf_watchbox()
  form_button()
  form_keybd()
  objc_edit()

with the difference that the drawing functions are restricted to the
visible part of a window, i.e. that the objects to be drawn are
positioned within a window (also window #0 = desktop).
For this a window handle is passed in addition to the known parameters.
These functions are required, for instance, for the background
servicing of window dialogs.


Draw object(tree)
-----------------

Prototype:
    void objc_wdraw(
      OBJECT *tree,
      WORD object,
      WORD  depth,
      GRECT *clip,
      WORD windowhandle
      );

Call:
    contrl[0] = 60    function number
    contrl[1] = 3     entries in intin
    contrl[2] = 0     entries in intout
    contrl[3] = 2     entries in addrin
    contrl[4] = 0     entries in addrout

    intin[0] = object   as for objc_draw()
    intin[1] = depth    as for objc_draw()
    intin[2] = windowhandle window

    addrin[0] = tree    as for objc_draw()
    addrin[1] = clip    NULL => whole window


Alter object status and redraw object
-------------------------------------

Prototype:
    void objc_wchange(
      OBJECT *tree,
      WORD object,
      WORD  newstate,
      GRECT *clip,
      WORD windowhandle
      );

Call:
    contrl[0] = 61    function number
    contrl[1] = 3     entries in intin
    contrl[2] = 0     entries in intout
    contrl[3] = 2     entries in addrin
    contrl[4] = 0     entries in addrout

    intin[0] = object   as for objc_change
    intin[1] = newstate   as for objc_change
    intin[2] = windowhandle window

    addrin[0] = tree    as for objc_change()
    addrin[1] = clip    NULL => whole window

This call is equivalent to objc_change() without a redraw followed by
objc_wdraw().


Service button in window
------------------------

Prototype:
    WORD graf_wwatchbox(
      OBJECT *tree,
      WORD object,
      WORD instate,
      WORD outstate,
      WORD windowhandle
      );

Call:
    contrl[0] = 62    function number
    contrl[1] = 4     entries in intin
    contrl[2] = 1     entries in intout
    contrl[3] = 1     entries in addrin
    contrl[4] = 0     entries in addrout

    intin[0] = object   as for graf_watchbox().
    intin[1] = instate    as for graf_watchbox().
    intin[2] = outstate   as for graf_watchbox().
    intin[3] = windowhandle window

    addrin[0] = tree    as for graf_watchbox()

    intout[0]       as for graf_watchbox()


Service button event for window dialogs
---------------------------------------

Prototype:
  WORD form_wbutton(
      OBJECT *tree,
      WORD object,
      WORD nclicks,
      WORD *nextob,
      WORD windowhandle
      );

Call:
    contrl[0] = 63    function number
    contrl[1] = 3     entries in intin
    contrl[2] = 2     entries in intout
    contrl[3] = 1     entries in addrin
    contrl[4] = 0     entries in addrout

    intin[0] = object   as for form_button()
    intin[1] = nclicks  as for form_button()
    intin[2] = windowhandle window

    addrin[0] = tree    as for form_button()

    intout[0]       as for form_button()
    intout[1] = nextob    as for form_button()


Service keyboard event for window dialogs
-----------------------------------------

Prototype:
  WORD form_wkeybd(
      OBJECT *tree,
      WORD object,
      WORD nextob,
      WORD ichar,
      WORD *onextob,
      WORD *ochar,
      WORD windowhandle
      );

Call:
    contrl[0] = 64    function number
    contrl[1] = 3     entries in intin
    contrl[2] = 3     entries in intout
    contrl[3] = 1     entries in addrin
    contrl[4] = 0     entries in addrout

    intin[0] = object   as for form_keybd()
    intin[1] = ichar    as for form_keybd()
    intin[2] = nextob   as for form_keybd()
    intin[3] = windowhandle window

    addrin[0] = tree    as for form_keybd()

    intout[0]       as for form_keybd()
    intout[1] = onextob   as for form_keybd()
    intout[2] = ochar   as for form_keybd()


Text field input for window dialogs
-----------------------------------

Prototype:
  WORD objc_wedit(
      OBJECT *tree,
      WORD object,
      WORD edchar,
      WORD *didx,
      WORD kind,
      WORD  windowhandle
      );

Call:
    contrl[0] = 65    function number
    contrl[1] = 5     entries in intin
    contrl[2] = 2     entries in intout
    contrl[3] = 1     entries in addrin
    contrl[4] = 0     entries in addrout

    intin[0] = object   as for objc_edit()
    intin[1] = edchar   as for objc_edit()
    intin[2] = *didx    as for objc_edit()
    intin[3] = kind     as for objc_edit()
    intin[4] = windowhandle window

    addrin[0] = tree    as for objc_edit()

    intout[0]       as for objc_edit()
    intout[1] = *didx   as for objc_edit()

-------------------------------cut-------------------------------

Regards, Gerhard