MyAES programmer guide, June 11 2013, Copyright 2013, Olivier Landemarre
This guide is not an AES guide, you will find here only new features avaibles in MyAES (and sometime on XaAES)
- Difference of CICON management with XaAES and TOS
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)
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
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.
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).
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
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.
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.