Graphical Interface
General description
The Interface section contains one ore more single lines describing the components shown in the WinBuilder window. It is driven from the contents of the [Interface] section of the script - UNLESS over-ridden by a setting in the [Main] section of the script.
The format of any individual line follows the basic form of any other INI file:
<name>=<content>
<name> is generated by WinBuilder when using the Interface Editor and contains the component type and an enumeration number. The <name> can be changed by the script author individually using the script editor if desired.
<content> contains one or more fields, separated by commas. The contents and number of fields will depend on the type of component being described. If any field contains a space, it is enclosed in quotes, or may be represented by the appropriate character sequence.
Component Types
There are 15 different types, internally represented by a number between 0 and 14. They are:
- cmpTextBox = 0,
- cmpTextLabel = 1,
- cmpNumberBox = 2,
- cmpCheckBox = 3,
- cmpComboBox = 4,
- cmpImage = 5,
- cmpTextFile = 6,
- cmpEditValues = 7, ( not implemented)1
- cmpButton = 8,
- cmpCheckList = 9,
- cmpWebLabel = 10,
- cmpRadioButton = 11,
- cmpBevel = 12,
- cmpFileBox = 13,
- cmpRadioGroup = 14
1 This capability wasn't implemented due to a lack of perceived value. See this post for more information
Component description
These first 7 fields are common to all implemented components:
- A Text field that contains the following:
- cmpTextBox: Caption
- cmpTextLabel: Caption
- cmpNumberBox: <Component name>
- cmpCheckBox: Caption
- cmpComboBox: <Choice>
- cmpImage: <File name>
- cmpTextFile: <File name>
- cmpButton: Caption
- cmpCheckList: Name of section in scriptfile that contains the list2
- cmpWebLabel: Caption
- cmpRadioButton: Caption
- cmpBevel: <Component name>
- cmpFileBox: <File name> or <Directory name>
- cmpRadioGroup: Caption
- Component Visibility (1=shown, 0=hidden)
- Type of component (see above)
- x-coordinate of component upper left
- y-coordinate of component upper left
- width of the component
- height of the component
Fields 8 and higher (if present) depend on the component type:
- cmpTextBox: <Value Entered in Text Box>
- cmpTextLabel: <Font size>,<Font weight>
- cmpNumberBox: <Specified Value>, <Min>,<Max>,<Increment>
- cmpCheckBox: <True/False>[,<Section to run>]
- cmpComboBox: <Caption 1>, ... ,<Caption n>
- cmpButton: <Section to run>,<Picture>
- cmpWebLabel: <URL>
- cmpRadioButton: <True/False>[,<Section to run>]
- cmpFileBox: The word 'FILE' in the case of file, nothing in case of directory
- cmpRadioGroup: <Caption 1>, ... ,<Caption n>,<Selected index, starting with 0>
2 The cmpCheckList function will display whatever is listed in the particular section up to an "=" sign, which is then followed by a either a 1 or a 0 (checked/unchecked). This status value can be retrieved using the existing "INI" file capability of WinBuilder. See this post for more information and a sample "test" script.
Added in WinBuilder 077 RC 2
Two additional (and optional) fields were added:
- The cmpCheckBox, cmpRadioButton and cmpButton now support an optional parameter that will <Show progress window when running>
- All components now support optional Tooltips. This field starts with a double underscore __ as marker. When added, it will generate a "tool-tip" that will be displayed if the mouse hovers over the object.
Example
This example code has two pages of interface, and a button that toggles between them (i.e. causes code to be executed)
[Interface] pCheckBox_PeShell="Set as default shell in PE Shell",1,3,17,11,173,23,True pBevel1=pBevel1,1,12,10,6,487,32 pTextLabel10="New PE start menu",1,1,17,39,114,18,8,Bold pCheckBox_StartMenu=" Enable PE Start Menu (experimental, search, not working)",1,3,17,60,201,33,True pTextLabel11="Number of programs in new start menu",1,1,22,96,197,18,8,Normal pScrollBox11=9,1,4,217,95,36,21,5,6,7,8,9,10 pTextLabel12="Number of programs in new Jump List",1,1,22,125,196,18,8,Normal pScrollBox12=1,1,4,217,125,37,21,1,2,3,4,5,6,7,8,9,10 pBevel10=pBevel10,1,12,10,54,255,99 pTextLabel20="Desktop Icons",1,1,291,39,90,18,8,Bold pTextLabel21=Size:,1,1,292,61,36,18,8,Normal pScrollBox21="Classic (small)",1,4,375,60,108,21,Standard,"Classic (small)","Very small" pTextLabel22=Positions:,1,1,292,87,58,18,8,Normal pScrollBox22=Standard,1,4,375,85,108,21,Standard,"Custom (in Source)" pTextLabel52=IconSpacing,1,1,292,111,79,18,8,Normal pScrollBox52="Standard",1,4,375,109,108,21,Minimum,Standard,Maximum pCheckBox21="Use small icons in Menu",1,3,292,135,148,18,True pCheckBox22="Enable Computer-Shortcut",1,3,292,153,162,18,True pCheckBox23="Enable Recycle Bin",1,3,292,171,122,18,True pCheckBox24="Remove Arrows from Shortcuts",1,3,292,189,178,18,False pBevel20=pBevel20,1,12,284,54,212,157 ptaskbarbutton="taskbar button",1,14,284,222,213,73,"Always combine, hide labels","Combine when taskbar is full","Never combine",1 pTextLabel_SC="Explorer Shortcuts",1,1,17,156,125,20,8,Bold pCheckBox_DT="Desktop shortcut",1,3,17,179,155,18,True pCheckBox_QL="Quicklaunch shortcut",1,3,17,197,122,18,True pCheckBox_SM="Start menu shortcut",1,3,17,215,122,18,True pTextBox_SMF="Start Menu folder (.. for root)",1,0,20,251,138,21,.. pBevel30=pBevel30,1,12,10,172,255,105 pTextLabel50=TaskBar,1,1,292,300,59,18,8,Bold pCheckBox51="Use small icons in taskbar",1,3,292,324,142,18,True pCheckBox52="Autohide Taskbar",1,3,292,343,115,18,False pCheckBox53="Lock the taskbar",1,3,292,361,109,18,False pCheckBox54="Disable Preview Desktop",1,3,292,379,154,18,False pCheckBox55="Last active click selection in taskbar",1,3,292,397,194,18,True pCheckBox56="Show all tray icons",1,3,292,416,120,18,True pTextLabel51=Taskbar,1,1,292,440,47,18,8,Bold pScrollBox51=Bottom,1,4,348,438,81,21,Bottom,Left,Right,Top pBevel50=pBevel50,1,12,284,319,214,144 pTextLabel40="Command Prompt",1,1,18,281,125,18,8,Bold pTextBox41="Start Menu folder",1,0,20,319,170,21,Accessories pTextBox42=Name,1,0,20,357,170,21,"Command Prompt" pBevel40=pBevel40,1,12,10,296,255,88 Shutdown_Box="Enable ShutDown Button (x86 only)",1,3,17,403,210,18,False,Select_Shutdown_Box,True,_Select_Shutdown_Box_,True pBevel60=pBevel60,1,12,10,396,255,31 pButton1="Additional Options",1,8,10,433,120,32,AdditionalOptions,0,True,_AdditionalOptions_,True // [Interface-Additional] pTextLabel100="Explorer Additional Options ",1,1,12,3,182,20,9,Bold pCheckBox101="enable Security-Tab",1,3,17,40,170,18,True pCheckBox102="ISO Date-Time Format",1,3,17,58,170,18,True pCheckBox103="Enable Previous version Tab ",1,3,17,76,170,18,True pCheckBox104="Enable Sharing-tab",1,3,17,94,170,18,True pCheckBox105="add File-Attributes Column",1,3,17,112,170,18,True pCheckBox106="Add Encryption(* Beta)",1,3,17,130,153,18,False pBevel100=pBevel100,1,12,10,36,255,116 pTextLabel110="Explorer Setting",1,1,20,160,105,18,8,Bold pCheckBox110="Show Menu bar",1,3,17,180,104,18,True pCheckBox111="Show all folders",1,3,17,198,104,18,True pCheckBox112="Automatically expand to current folder",1,3,17,216,222,18,True pCheckBox113="Add Recycle Bin to My Computer",1,3,17,234,200,18,True pCheckBox114="Add Run to My Computer",1,3,17,252,159,17,True pCheckBox115="Add Administrative Tools to My Computer",1,3,17,270,235,18,True pCheckBox116="Add Control Panel to My Computer",1,3,17,288,200,18,True pBevel110=pBevel110,1,12,10,176,254,134 pTextLabel120="Start Menu Icons",1,1,293,20,101,18,8,Bold pCheckBox120="Show Run",1,3,292,40,77,18,True pCheckBox121="Show My Computer",1,3,292,58,117,18,True pCheckBox122="Show Control Panel",1,3,292,76,119,18,True pCheckBox123="Show Admin Tools",1,3,292,94,114,18,True pCheckBox124="Show NetPlaces",1,3,292,112,99,18,True pCheckBox125="Show Favorites",1,3,292,130,98,18,True pBevel20=pBevel120,1,12,284,36,224,116 pButton2="Main Options",1,8,284,176,120,32,MainOptions,0,True,_MainOptions_,True // [AdditionalOptions] //Write or update an entry in the [main] section to set a new interface IniWrite,%ScriptFile%,Main,Interface,Interface-Additional System,REFRESHINTERFACE [MainOptions] IniWrite,%ScriptFile%,Main,Interface,Interface System,REFRESHINTERFACE
This would result in the following two pages being displayed by WinBuilder
Known issues
If you change a script containing WB 077 features with WinBuilder 076 or lower, the features are lost!