Topic : TOS - The Operating System Author : Version : tos.hyp (December 19, 2008) Subject : Programmieren/Atari Nodes : 3010 Index Size : 93790 HCP-Version : 5 Compiled on : Atari @charset : atarist @lang : @default : Title @help : @options : +g -i -s +x +zz -t4 @width : 70 View Ref-File8.7.9.2 Messages from Geneva TOS X_MN_SELECTED (0xE000) This message is either accompanied by the MU_MESAG bit of an evnt_multi return, or is returned by the evnt_mesag call. When this message occurs, the message buffer contains: Portion Contents msg[0] 0xE000 msg[3] The object index of the menu title selected msg[4] The object index of the selected menu item msg[5], [6] The object tree of the menu item selected msg[7] The handle of the window containing the menu This feature is used in conjunction with the wind_set option X_WF_MENU, described in detail, below. X_WM_SELECTED (0xE100) This message is received when the user clicks on a window gadget in a window whose flags were modified with the wind_tree function. It only occurs when the X_WTFL_CLICKS attribute is off. If the user clicks on one of the normal scroll gadgets or arrows, a standard WM_ARROWED message is sent to the application. However, when the user clicks on any other gadget, an X_WM_SELECTED message is sent: Portion Contents msg[0] 0xE100 msg[3] The handle of the window containing the gadget msg[4] The object index of the window tree object the user clicked on This feature is used by the Task Manager's "Keyboard..." dialog. X_GET_HELP (0xE200) This message is sent to the Help display program when the user requests help on a certain topic. The message is actually comprised of two parts. When the application sees the X_GET_HELP message, it must then use the appl_read function to get the entire remainder of the message, whether it intends to use the whole thing or not. The first part of the message is comprised of the following values: Portion Contents msg[0] 0xE200 msg[1] Application ID msg[2] Length of the second part ofthe message msg[3] Length of the topic portion of the message, including the NUL terminator msg[4] Length of the filename portion of the message, including the NUL terminator msg[5] Upper/lowercase sensitivity. If non-zero, the topic is case-sensitive. The second part of the message contains the actual text of the topic and filename fields. This can be read with one or more calls to appl_read. Example: void read_string( char *s, int max, int size ) { char dummy; if( size<=max ) /* the whole string fits */ appl_read( my_application_id, size, s ); else { /* read what we can */ appl_read( my_application_id, max-1, s); s[max-1] = '\0'; /* terminate the string */ /* now, get the remaining bytes of the string */ for( size=size-(max-1); size>0; size-- ) appl_read( my_application_id, 1, &dummy ); } } main() { int msg[8], caps_sens; char topic[20], filename[100]; evnt_mesag( msg ); switch( msg[0] ) { case X_GET_HELP: caps_sens = msg[5]; /* Read the topic portion */ read_string( topic, sizeof(topic), msg[3] ); /* Read the filename portion */ read_string( filename, sizeof(filename). msg[4] ); /* Do whatever with it... */ X_WM_HSPLIT (0xE400) This message is sent to an application when the position of the horizontal split bar has changed: Portion Contents msg[0] 0xE400 msg[1] Application ID msg[2] 0 msg[3] Handle of the window being affected msg[4] The new offset (in pixels) of the split bar The application is then free to either act upon this message and change the split bar position with wind_set( X_WF_HSPLIT, or to ignore the message completely. See the x_wind_create function for more information. X_WM_ARROWED2 (0xE600) This message is sent to an application when the user has licked on one of the arrow or scroll bar gadgets which are not reported by the normal WM_ARROWED message. X_WM_ARROWED2 reports changes in gadgets which are below a vertical split bar and/or to the right of a horizontal split bar. The format of a X_WM_ARROWED2 message is identical to that of WM_ARROWED. See the x_wind_create function for more information. X_WM_HSLID2 (0xE700) This message is sent to an application when the user has dragged the second horizontal scroll gadget, which appears to the right of a horizontal split bar. The format of this message is identical to that of WM_HSLID. See the x_wind_create function for more information. X_WM_VSLID2 (0xE800) This message is sent to an application when the user has dragged the second vertical scroll gadget, which appears below a vertical split bar. The format of this message is identical to that of WM_VSLID. See the x_wind_create function for more information. X_WM_OBJECT (0xE900) (since Update 003) This message type is returned to an application when it uses wind_set mode X_WF_OBJHAND to affect the manner in which window gadgets are handled. If an application receives this message, it is because the object tree handler routine instructed Geneva not to process the mouse click on a window gadget as a normal event. Instead, a special message is returned to the application: Portion Contents msg[0] 0xE900 msg[1] Application ID msg[2] 0 msg[3] Handle of the window containing the object msg[4] Object tree index of the object which was clicked Note that in order for Geneva to determine that the mouse has been clicked on an object in a window's tree structure, it must be of type EXIT or TOUCHEXIT. Geneva's default window gadgets already have these attributes set correctly. See also: wind_set mode X_WF_OBJHAND.