MyAES programmer guide, June 11 2013, Copyright 2013, Olivier Landemarre

MyAES Programmer guide

ABSTRACT

This guide is not an AES guide, you will find here only new features avaibles in MyAES (and sometime on XaAES)

SUMMARY

- APPL_CONTROL extensions

- SHEL_WRITE extensions

- WIND_SET WIND_GET extension

- WIND_SET extensions

- WIND_GET extensions

- True color Cicon

- Difference of CICON management with XaAES and TOS

APPL_CONTROL extensions

APC_APP_CONFIG (50)

Since 0.96 version, the application can set itself some controls avalaible in configuration file for applications, put in *ap_cout.

appl_control(int ap_cid,int ap_cwhat,void *ap_cout)

ap_cwhat = 50

ap_cid = gem identification of the application asking for the change (can't be apply to another application!)

ap_cout = char * on name of the key word configuration

avaible key word:

- app_topmost

- app_forcedesk

- app_system

- app_game_kbd

- app_debug (MyAES debug version only)

SHEL_WRITE extensions

SWM_LAUNCH

Since 0.96 version, MyAES is able manage directly the call of programs to display files, for exemple:

shel_write(SWM_LAUNCH,0,0,"C:\photo\todisplay.jpg",NULL) can launch software to display the jpeg file, if this program is already in memory then a VA_START will be sent rather exec a new session of this software, link with this software can be set in the configuration by "app_link." option or if MyAES not find in the configuration an avalaible program then it display file selector to choose application and record it for next use.

96

Reserved

97

Reserved

SWM_KEYBOARD (98)

Real time management keyboard

With this function you can read and modify the keymap of the AES, change of the keymap by this way is immediately done

wiscr should be set to 1152, tail to NULL, to read the keymap wisgr should be set to 1 and to be write wisgr should be set to 2, the cmd1 should be a buffer of 1152 octets. This buffer represent 9 table of 128 octets in this order: unshift, shift, caps, altgr_unshift, altgr_caps, alt_unshift, alt_shift, alt_caps. It should be similar to Magic Keymap

99

Reserved

WIND_SET, WIND_GET extension

As wind_get and wind_set can have a lot of extension, using appl_getinfo(AES_WINDOW) is a little bit fastidue, so a new approach exist in MyAES, for this you can call wind_get() or wind_set() with window ID with a value of -2 with the mode you want to test (eventually parameters if there is sub-option link to other parameters), if the option is supported this 2 AES function will return 1, if not it return 0.

This feature can be verified with appl_getinfo(AES_WINDOW(11)) if in intout[1] bit 15 is set to true.

WIND_SET extensions

WF_WHEEL

Set value for the window with wheel management, unfortunately MyAES not manage the wheel message (todo)

Compatibility: only window by window is supported, an handle of 0 to set this flag for all windows is not supported

WF_USER_POINTER (230)

Set application value throw parameter 1& 2 values attach to the window, it can be used as the application want like an address value

WF_WIND_ATTACH (231)

Todo

WF_TOPMOST (232)

Set a windows to be always on top (but without catch the focus), this call can be done after wind_create() or on an open window (in this case MyAES close it and reopen it).

WIN_GET extensions

WF_FIRSTAREAXYWH (13)

Same as WF_FIRSTXYWH except in return pointer have been previously set by dirty rectangle you want extract the list of rectangles, this is usefull with WM_REDRAW message sent by AES that describe the dirty rectangle to process, it reduce the number of possible multiple redraw of the same area, after this first rectangle the other rectangles should be determine as usual with WF_NEXTXYWH.

Compatibility : XaAES & MyAES.

WF_WHEEL

Return in intout[1] the status of the window set by wind_set(WF_WHEEL) for wheel message management

WF_USER_POINTER (230)

Get the long value set by wind_set(WF_USER_POINTER), it's for application only the AES not use it, value is returned in parameter 1 & 2

WF_WIND_ATTACH (231)

Todo

WF_TOPMOST (232)

Not implemented - todo

WF_BITMAP (233)

Todo

True color cicon

MyAES is able to display 24 bits true color cicon, the RSC format not need any change, the number of plane for color bitmap should be set to 24, and the bitmap is simple RGB format, 8 bits per color. The 1 bit mask have not been changed.

Difference of CICON management with XaAES and TOS

When MyAES load and RSC file it doesn't translate cicon in video format as XaAES or TOS do, this translation is done the first time the cicon is displayed with objc_draw(), this can be a problem for application that manage a icon cache like Jinnee, if you run it on this 2 system, Jinnee will crash at start, in this case just erase .JIC cache file before run it on a new AES.

The good news of this management, if you want add manually a true color cicon in your application, you can create manually cicon object in the 24 bit format and ask to MyAES to display it immediately, the translation is done by AES, nothing to do by the application, unfortunately this is not compatible with XaAES.