S Y M B O S D E S K T O P - M A N A G E R D A T A - R E C O R D S Date: 27.11.2004 =============================================================================== W I N D O W S =============================================================================== WINDOW DATA RECORD ------------------------------------------------------------------------------- 00 1B Status (0=closed, 1=normal, 2=maximized, 3=minimized) 01 1B [bit0]=display 8x8 pixel application icon (in the upper left edge) [bit1]=window is resizeable [bit2]=display close button [bit3]=display tool bar (below the menu bar) [bit4]=display title bar [bit5]=display menu bar (below the title bar) [bit6]=display status bar (at the lower side of the window) 02 1B [bit0]=adjust size of the window content to the size of the window [bit1]=adjust size of the window content to the size of the window 03 1B Process ID of the windows owner 04 2W x/y position, if window is not maximized 08 2W x/y size, if window is not maximized 12 2W x/y offset of the displayed window content 16 2W full x/y length of the total window content 20 2W minimal possible x/y size of the window 24 2W maximal possible x/y size of the window 28 1W address of the application icon (graphic object) 30 1W address of the title line text (terminated by 0) 32 1W address of the status line text (terminated by 0) 34 1W address of the menu data record 36 1W address of the CONTROL GROUP DATA RECORD of the window content 38 1W address of the CONTROL GROUP DATA RECORD of the tool bar content 40 1W height of the tool bar ------------------------------------------------------------------------------- =============================================================================== CONTROL GROUP DATA RECORD ------------------------------------------------------------------------------- 00 1B number of controls 01 1B Process ID of the control group owner 02 1W address of the CONTROL DATA RECORDS 04 1W address of the position/size calculation rules (0 means, no re-calculation) 06 8B [*not used, set to 0*] 14 1B focus object (1-255, 0=no focus on any object) 15 1B [*not used, set to 0*] ------------------------------------------------------------------------------- =============================================================================== CONTROL DATA RECORD ------------------------------------------------------------------------------- [Number of controls] * [ 00 1W control ID (will be send to the application, if clicked by user) 02 1B CONTROL TYPE (for the type IDs see below) 03 1B bank number, where the extended control data record is located 04 1W parameter or pointer to the extended control data record 06 2W x/y position of the control 10 2W x/y size of the control 14 2B [*not used, set to 0*] ] ------------------------------------------------------------------------------- =============================================================================== CALCULATION RULE DATA RECORD ------------------------------------------------------------------------------- 00 1W x position (static part) 02 1B window x size multiplier 03 1B window x size divider 04 1W y position (static part) 06 1B window y size multiplier 07 1B window y size divider 08 1W x size (static part) 10 1B window x size multiplier 12 1B window x size divider 13 1W y size (static part) 14 1B window y size multiplier 15 1B window y size divider Description: If "recalculation" for a control group is activated every coordinate and size value of a control will be calculated, if the user changes the size of the window. The calculation is: position or size = static_part + window_size * multiplier / divider Example: centered_x_position = 0 + window_x_size * 1 / 2 quartered_y_size = 0 + window_y_size * 1 / 4 ------------------------------------------------------------------------------- C O N T R O L T Y P E S =============================================================================== PAINT ------------------------------------------------------------------------------- ID: 00 (PLF) Name: paint_area Parameter: [bit0-1]=pen Data record: - Description: Fills an area with a specified colour. ------------------------------------------------------------------------------- ID: 01 (PLT) Name: paint_text Parameter: pointer to data record Data record: 1W text address (terminated by 0) 1B [bit0-1]=paper, [bit2-3]=pen, [bit7]=if 1, fill background 1B Alignment (0=left, 1=right, 2=center) Description: Plots a text. If "fill background" is activated first the whole area of the control will be filled with the paper-colour. ------------------------------------------------------------------------------- ID: 02 (PLR) Name: paint_frame Parameter: [bit0-1]=pen of upper and left line [bit2-3]=pen of lower and right line [bit4-5]=pen of area inside frame (only used, if bit6=1) [bit6]=if 1, fill area inside frame Data record: - Description: Plots a frame. Optionally the area inside will be filled. ------------------------------------------------------------------------------- ID: 03 (PLX) Name: paint_frame_with_title Parameter: pointer to data record Data record: 1W text address (terminated by 0) 1B [bit0-1]=paper, [bit2-3]=pen of text and line Description: Plots a frame with a text title. Notice, that the lines have a distance of 3 pixels to the border of the control. The area inside the frame will not be filled. ------------------------------------------------------------------------------- =============================================================================== GRAPHICS ------------------------------------------------------------------------------- ID: 08 (ICN) Name: graphic_simple Parameter: grafic address Data record: - Description: Plots a grafic. For the description how a graphic-object is stored in the memory see [...]. ------------------------------------------------------------------------------- ID: 09 (ICT) Name: graphic_with_text Parameter: pointer to data record Data record: 1W graphic address 1W 0 or address of text for line 1 (terminated by 0) 1W 0 or address of text for line 2 (terminated by 0) 1B [bit0-1]=paper, [bit2-3]=pen Description: Plots a graphic with one or two textlines below. This should be only used for displaying icons, which have a total size of 48x40 (the graphic itself has a size of 24x24, the text below needs 48x16) ------------------------------------------------------------------------------- ID: 10 (ICG) Name: graphic_extended Parameter: pointer to data record Data record: 1W graphic address 1B bank-number (0-8) Description: Plots a graphic which can be placed in every RAM bank. 0 is the primary 64K RAM bank, 1-8 are the extended RAM banks. ------------------------------------------------------------------------------- =============================================================================== BUTTONS ------------------------------------------------------------------------------- ID: 16 (BTN) Name: button_simple Parameter: text address (terminated by 0) Data record: - Description: Plots a button with a centered text inside. Pen 2 is used for the background, pen 1 for text colour and right/lower lines, pen 3 for left/upper lines. ------------------------------------------------------------------------------- ID: 17 (BTC) Name: button_check Parameter: pointer to data record Data record: 1W address of status byte (this byte can be 0 or 1) 1W text address (terminated by 0) 1B [bit0-1]=text paper, [bit2-3]=text pen Description: Plots a check box followed by a textline. The status byte contains 1, if the box is checked, otherwise it contains 0. ------------------------------------------------------------------------------- ID: 18 (BTR) Name: button_radio Parameter: pointer to data record Data record: 1W address of global status byte 1W text address (terminated by 0) 1B [bit0-1]=text paper, [bit2-3]=text pen 1B value of the own status 1W pointer a global 4byte coordinate buffer Description: Plots a radio button followed by a textline. If the global status byte has the same value as the own status, this radio button is checked. The 4byte coordinate buffer has to contain -1,-1,-1,-1 at the beginning. It stores the coordinates of the actual checked radio button. Radio buttons, which are connected to each other, have to point to the same global status byte and the same coordinate buffer. ------------------------------------------------------------------------------- ID: 19 (BTP) Name: button_hidden Parameter: - Data record: - Description: This just defines an area on which the user can click. Nothing will be displayed. ------------------------------------------------------------------------------- ID: 20 (BTT) Name: button_tabs Parameter: pointer to data record Data record: 1B number of tabs 1B [bit0-1]=paper, [bit2-3]=pen, [bit4-5]=colour of left/upper lines, [bit6-7]=colour of right/lower lines 1B selected tab 1W text address of tab 1 title (terminated by 0) 1B -1 or width of tab 1 title ... 1W text address of tab n title 1B -1 or width of tab n title Description: Plots a tab line. Notice that the height of this control is 11 pixel. If -1 is set as the width of one tab title the system will calculate the needed width by itself. ------------------------------------------------------------------------------- =============================================================================== SLIDER ------------------------------------------------------------------------------- ID: 24 (SLD) Name: slider_simple Parameter: pointer to data record Data record: 1B [bit0]=alignment (0=vertical, 1=horizontal) [bit1]=type (0=value control, 1=window section control) 1B [*not used, set to 0*] 1W actual value/position 1W maximum value/position 1B value increase, if the user clicks the down/left button 1B value decrease, if the user clicks the up/right button Description: Plots a slider. It can be used to control a value or to move inside a window or list. ------------------------------------------------------------------------------- =============================================================================== TEXTINPUT ------------------------------------------------------------------------------- ID: 32 (TXL) Name: textinput_line Parameter: pointer to data record Data record: 1W address of text/buffer (has to be large enough, see below) 1W first displayed character 1W cursor position 1W number of selected characters (0=no selection, <0 cursor is placed at the end of the selection, >0 cursor is placed at the beginning of the selection) 1W length of the current text 1W possible maximum text length (doesn't include the 0 terminator at the end of the text) Description: - ------------------------------------------------------------------------------- ID: 33 (TXB) Name: textinput_box Parameter: pointer to data record Data record: [...] Description: [not yet implemented] ------------------------------------------------------------------------------- =============================================================================== LISTS ------------------------------------------------------------------------------- ID: 40 (LST) Name: list_title Parameter: pointer to data record Data record: 1W number of lines 1W first displayed line of the list 1W pointer to data record for the list content 2B [*not used, set to 0*] 1B number of columns (1-64) 1B [bit0-5]=number of sorted column [bit6]=sort list on start [bit7]=sort order (0=ascending, 1=descending) 1W pointer to data record for the columns 1W last clicked line 1B [bit0]=flag, if list slider will be displayed [bit1]=flag, if multiselections are possible 1B [*not used, set to 0*] Column record: [Number of columns] * [ 1B [bit0-1]=allignment (0=left, 1=right, 2=center) [bit2-3]=type (0=text, 1=graphic, 2=16bit number, 3=32bit number) 1B [*not used, set to 0*] 1W width of this column in pixel 1W text address of the title (terminated by 0) 2B [*not used, set to 0*] ] List record: [Number of lines] * [ 1W [bit0-13]=value of this line [bit14]=set to 0, it is used for "selection update" [bit15]=flag, if this line is selected [Number of columns] * 1W text address for this cell (terminated by 0) ] Description: Plots the title line of a list. It's height is always 10 pixel. ------------------------------------------------------------------------------- ID: 41 (LSI) Name: list_content Parameter: pointer to data record Data record: [see ID 40] Description: Plots the list itself without the title. ------------------------------------------------------------------------------- ID: 42 (LSP) Name: list_dropdown Parameter: pointer to data record Data record: [see ID 40] Description: Plots a dropdown list. Only one line of the list will be displayed. If the user clicks on this control, the complete list will drop down and the user can choose on of the entries. ------------------------------------------------------------------------------- ID: 43 (LSC) Name: list_complete Parameter: pointer to data record Data record: [see ID 40] Description: Plots the list title and the list itself together. This is the combination of ID 40 and ID 41. ------------------------------------------------------------------------------- P U L L D O W N - M E N U S =============================================================================== [...] -------------------------------------------------------------------------------