Other contributors are Mira Balikova, Travis W. Beaty, Tommy Carlier, CoJaBo, David Cuny, Euman, Wolf Fritz, Josef Jindra, Matt Lewis, Dan Moyer, Derek Parnell, Don Phillips, Tone Skoda, Martin Stachon, Mario Steele, Roland Stowasser and Virtual B. Special thanks to Robert Sy for IDE.html improvements,
... Short Discussion About IDE For New Users...
First of all, some basic understandings about Euphoria and IDEEuphoria allows the inclusion of files into another file with the statement 'include filename'. Euphoria calls these files include files but IDE calls them modules. What the included files do for the user is allow frequently used code be stored and used in various programs. Euphoria, itself, has many include files which are in the folder Euphoria\Include. User files may be placed in this same folder for frequently used modules or another of his choice (see Euphoria documentation.) Using Euphoria\Include eliminates the need to duplicate code into many folders. Recent releases of Euphoria also allow adding EuInc in autoexec.bat to indicate other folders to use as include folders. See Euphoria documentation for information. In this discussion, Include Folders will refer to both Euphoria/Include and any folders specified with EuInc.
User may create new modules with any editor of choice. IDE supplies a simple, internal editor which may also be used while in IDE.
Win32lib.ew is an include file which is used by many people to write Window(tm) applications. This file and its related include files are often placed in the Euphoria\include folder. An include Win32lib.ew statement is inserted near the top of an .EXW program and routines from it are used to create windows and controls and to manipulate data between the user and these controls. The user may include other files which contain special routines by coding additional Include statements.
IDE is simply a tool to help the user interface with Win32lib.ew. IDE is a work in progress.
IDE considers a project as the collection of windows, controls, icon files, bitmap files, etc necessary to produce the Window(tm) interactive program with an file type of EXW. Some of these files may be in Euphoria\Include folder. IDE will look for files in the project's folder, IDE's folder, in folders specified with EuINC or the Euphoria\Include folder. The project folder is determined when user selects Menu Project/SaveAs or Project/Save his program from within IDE. When user selects Menu Project/Open he opens the main program of his project which happens to be stored as a PRJ file type. The EXW program is never directly opened in IDE. Martin Stachon has begun an EXW to PRJ converter so that IDE may open programs not created by IDE. Look for it on Euphoria's Recent Contributions Page.
Users may also have modules which contain windows and controls of its own which he wants to include in his project but not as an additional window of the program. This might be a window with routines commonly used throughout many projects and user has created it only once. IDE calls these types of modules by the term Include File or sometimes Include Module. These files may be created with any editor of choice and added to the project. Or IDE and the IDE internal editor may be used to create them. IDE itself has many Include Modules. This was done to keep each portion of IDE small and modular.
Some people place IDE's folder within the Euphoria folder's path and others outside of Euphoria completely. Either method is permitted as long as every file in the IDE distribution zip is kept together. Win32lib.ew must be downloaded from the Win32lib site also found on Euphoria's Recent Contributions Page.
When first started, IDE loads a basic configuration file which has options the user may specify to tailor his version of IDE via Menu Options/Configure IDE.
Use of IDEA new IDE user might wish to browse the configurable options of IDE and change right away, or wait until he has explored IDE a bit. These options are found under Menu Options/Configure IDE on IDE's main window. An explanation of all the configuration options may be found elsewhere in this document.
IDE uses single click, double click and right click extensively in Form Design, Properties, Project View and supporting windows.
Let us assume user has a very simple program to write. It contains a window and some controls. When IDE opens, a first window, Window1, is presented in Form Design and an entry for Window1 is in Project View and a combo in IDE's tool bar. Window1's caption, size, placement and many other attributes may be modified in Properties located at the Top Left under the tool bar of the IDE main window. Explanations of Properties attributes may be found elsewhere in this document. Window1 may also be resized via its resize arrows. User might need to maximize Form Design to access the right side of Window1. To add a control to Window1, use the Tool Box icons located near the Bottom Right. Click an icon and click on Window1 where the control should be located. The control may be moved or resized via mouse, keyboard arrow keys or Properties. An entry is added to Project View for the new control. To access Properties for a control, click the control, use the combo box at the top of Properties or select from Project View.
After all controls are added to Window1, the user may run his program from Menu Generate Program/Run project or pressing F5 key. When the program is run it may be executed as the project or as a temporary file. To run from project it must have previously been created via Menu File/SaveAs. Files of EXW and PRJ file type are generated. The PRJ file is the project file and is used to reload the project on subsequent runs of IDE. The EXW file is the created program. If a project file has not yet been created, IDE will generate a temporary EXW file in IDE's folder. If a project file has been created, user may still request a temporary file from Menu Generate Program/Temporary Run/Temp run or pressing F6 key. If the project exists, the temporary run will be in the project folder. When a temporary run is executed, either because project does not yet exist or because user wants a testing run, IDE will not create a PRJ file. The temporary file will have _TEMP in its name.
So what does the user get? Window1 pops up. But nothing special happens because there is not yet code to manipulate the program and its controls.
Coding is done in IDE's internal editor and requires some knowledge of Win32lib. User accesses the Code Editor via Menu Editors/Code Editor, right click in Window1 or by double clicking the control to which he wishes to supply code. Double click in an empty area of Window1 to access Code Editor for Window1 control. The Code Editor opens with a combo of created controls at Top Left and Win32lib events in a combo in the middle and a Module combo at Top Right. The body of the editor contains a suggested procedure statement, a blank line, an end procedure statement and an onXXX or setHandler event statement. If (General), (Intro) or (Final) event was selected from the Event combo only a blank line will be placed in the body of editor. Add any coding for the selected event. To code other events for this control, use the Event combo box. To switch to another control, return to Form Design and select another control or use the Controls combo box while in Code Editor. Note that currently the Events combo contains all events for all controls. In a future enhancement, the Event combo will contain only events for the selected control. Events may be coded in any order. IDE will generate the events in a preset order and user has no control over this order. When Menu Generate Program/Run project (F5) or Menu Generate Program/Temporary run/Temp run (F6) is next selected, any coding will be passed to the generated EXW. If there are errors, IDE will attempt to locate them in editor.
Special editors are found in Menu Editors. They are Code Editor, Menu Editor, Popup Editor and Timer Editor. Also available are Menu Edit/Initial Values for entering initial data for List and Combo controls, Edit/Window Styles Explorer and Edit/List View Styles Explorer for testing various styles and extended styles. Menu Editor designs menus for the program; Popup Editor designs right-click popups, Timer Editor specifies any timers, the time interval and in which procedure they are turned on and off and Initial Values allows creation of List and Combo controls data contents. Code Editor may be accessed via double click or right click from any Menu Item, Menu with ! in Caption, Popup Item or Timer Editor. To use these Editors, first click add buttons (or press SHIFT+ENTER keys to add Menu or ENTER key to add MenuItem while cursor is in Caption or Name field) in the middle of the selected editor's window. Then click on the entry in the item box to select the entry and change the caption and/or name in the edit boxes above, if desired. When Menu Editor is used to create a menu, the Menu and Menu Items are added to Window1 in Form Design. All items are added to Project View. To use Initial Values, enter data and either press enter key or select the Add button to add the entry to the list box below. To change or delete an entry, first select from the list of entries by left click, then select Delete or Change button.
Additional WindowsIf the project program has more windows, these are added from Menu Edit/New Window. Add controls and coding for additional windows as described above for Window1. User switches back and forth between windows in Form Design via a combo in IDE's tool bar. IDE does not supply a procedure to open additional window(s) in the EXW program so user must add code for that in Window1 event code or pertinent control of Window1 event code. Naturally additional window(s) may be opened from coding associated with any window and any controls within them. When selecting Menu Generate Program/Run project (F5) or Menu Generate Program/Temporary run/Temp run (F6) the user may step through the windows of the generated EXW program.
For example a window may be created that is opened via a Menu Item. User designs for example, Window2 which might contain only text controls, and creates the Menu and its Menu Items for Window1 from Menu Editor. Lets take for an example Menu 'Help' and its Menu Item 'About'. With Window1 currently active in Form Design select Menu Editors/Menu Editor and add a menu and a menu item. In the list box click the menu and change its caption to 'Help' and click the menu item and change its caption to 'About'. Code may not be associated with Menu 'Help'; it is a restriction of Win32lib that top-level Menus may not have code unless the caption contains an !. When a Menu contains ! in its caption it may not have Menu Items. All Menu Items may have code. User would double click or right click the Menu Editor item list box 'About' entry. Code Editor will be opened with the Menu Item 'About' and onClick Event. (The reason it goes to onClick is that event is common for many controls so it shows first.) This is the event that is triggered when the user clicks controls such as PushButton and Menu Item. In the body of the code that shows at the blank line add the statement 'openWindow( Window2, Normal )' with other choices being Minimize, Maximize and Modal. Press F5 or F6 key to generate and run the EXW code just created. User may test the generated Window program while IDE is running but may not make any changes within IDE that affect the current generated EXW until the EXW program is closed. Click on Menu Item "About" and the second window will be opened.
This same technique may be used with controls within any window to open another window in the program. The primary window is opened via a WinMain(Window1, Normal) statement where Window1 is the first window in the project. Other choices instead of Normal are Minimize and Maximize. This statement is generated for the EXW and is located at the bottom of the program. If the project program is EW file type then the WinMain statement is not generated. The file type EW is used for clarification only. Usually modules with .e contain no controls and .ew does but Euphoria itself does not care.
Modules and Include ModulesAs mentioned previously Modules and Include Modules may be used with the project program. To add a prewritten Module or Include Module to the project use Menu Generate Tools/Manage Include Statements. Selecting this Menu Item will open a dialog to select the file and add the Module name to Project View and to a list of include statements generated for the EXW. This include statement is generated at the top of the EXW. If this location is not satisfactory for the user's program, the statement must be manually added in (General) or (Intro) event and removed from the include statements with Menu Generate Tools/Manage Include Statements.
To create a new Module from within IDE, select Code Editor from Menu Editor/Code Editor and under editor's Menu File select New. Write code for the Module and when completed select Menu File/SaveAs. Return to IDE Menu Generate Tools/Manage Include Statements as described above. Modules may be edited and saved with IDE's internal editor as many times as needed.
To create a new Include Module (remember it has window and controls) is a bit different. User may use IDE to create the Include Module in the same manner as the main project program or use any editor of choice. If user creates with another editor, the Include Module is added as above using IDE Menu Generate Tools/Manage Include Statements. However, if IDE creates the Module, the difference is that user must specify that the generated program will be an EW file type instead of EXW. First select Menu Project/New and create the window and controls and any associated coding. Under Menu Generate Tools/Program Information indicate .EW file type. Save as a new project with Menu Project/SaveAs. These two files may be saved in the project folder, a EuInc folder or in Euphoria/Include. Return to IDE Main Menu and open the main project from Menu Project/Open and then select Menu Generate Tools/Manage Include Statements to add the new EW Module to Project View and to the include statements in the generated EXW program.
Is There An easier way?Sure. Write the Module or Include Module if it doesn't exit. Don't add it to the project but in your main program code, usually in the (General) or (Intro) Event simply add an 'include filename' statement for the Module or Include Module.
Neither will show in Project View however. But either can still be opened in Code Editor or external editor for modifications and saved.
What is Project View used for?Project View is simply an overview of the project showing all Forms (windows and controls), Modules and Class Modules. Modules are the ones opened via Menu Generate Tools/Manage Include Statements and Class Modules are the onEvent-control pairing created with Code Editor. Clicking an entry in Project View either selects the window or control in Form Design and Properties or opens associated code in Code Editor. When clicking a Menu, Menu Item, Popup, PopupItem or Timer the respective Editor will open.
Some controls that might need explanationTab Control and Tab Item Controls:
Most controls used with IDE are pretty easy to use. The exception is Tab Control and Tab Item Control. Tab Control is a holder control for Tab Item controls. There is one Tab Control as parent of many Tab Items. There may be other Tab Controls with child Tab Items in a window or the project or even on a Tab Item.The Tab Control must be added to Form Window1 prior to any Tab Items that will be child to it. When selecting Tab Control the first Tab Item is automatically added. Drop additional Tab Items on top of the Tab Control. User may notice that as Tab Items are dropped onto Tab Control, the Tab Control and prior Tab Items are hidden. There is a combo in the IDE tool bar next to the Window combo which shows the active Tab Item -- the one user sees. Whatever Tab Item is showing in the combo is the one receiving additional controls dropped upon the Tab Item.
Controls are added by selecting from Tool Box and clicking in the Tab Item to which they belong. To switch Tab Items, use either the Tab Item combo in the IDE tool bar or click on the "tab" of the Tab Item, if it shows. As Tab Items are added to a Tab Control, IDE will draw their "tab" until such time as there is no longer room for a new "tab" based on the width of the Tab Item. Note that the Tab Control and all its Tab Items are the same width and height. If user changes one, all are changed. Other Tab Controls are not affected. When there is no longer room to add a new "tab", IDE will draw scroll arrows, however, they do not function.
User may notice that in Project View, the Tab Items are indented under the Tab Control parent. All controls behave in this manner so user can see the relationship between a control and its parent or child.
Table Control:
Table Control emulates a grid. After introducing Table control, in a later release IDE added support for Grid Control created via EuGrid. EuGrid is written and maintained by Phil Russell and questions about it should be directed to him. However Table control is still useful. Table control may have cells made up of more than one control. User should design Cell One and then right click in the Table Control to access Table Specification window where user can indicate the number of rows and columns and any spacing between. A Table may be created in the generated EXW as an array. IDE allows the user to modify Cell One, but be advised that moving the controls in Cell One and recreating the grid via Table Specifications may lead to some "interesting" results. Normally when a Table is created via Table Specs, the number of cells are created and the Table is adjusted to surround them. However user may create a small Table which contains many more cells than can fit inside its boundaries by creating small foot print Tables. Drop the Table icon on Design and size as it should appear in the generated EXW. Add cell one controls as usual, right click somewhere in the Table and select Table Specs. In Table Specs, in "Size To Fit Cells", check "No" and then decide if scroll bars are needed. Making the Table resizable by the EXW user may also be selected. This type of Table may also be an created as an array. When returning to Design you will see only the cells that actually fit inside the boundaries of Table. To see the rest, right click on Table control and select "Show Full Size". The window that is opened will show the Table as the generated EXW would create it. Cells outside the Table boundaries may not be seen in Design but may be manipulated via Properties. Use the Property Drop Down to select this type of cell.
Final WordsThis was a simple introduction to IDE. There is much more to be learned about IDE. After experimenting with IDE, user is advised to read the rest of this document for more information about other features and explanations of all windows. This document is not very well organized at this time so plan to spend some time reading.
You might wish to review some sample programs from the Demos package on IDE's home page for ideas and see what other users have done with IDE.
Upon IDE crash please notify Judith Evans via the Topica List or giving the nature of what you were doing and the ex.err message, if available. Also helpful is the version of Windows(tm) used, Win32lib version, Euphoria version and IDE version.
Suggestions for improvements are always welcome and anyone who would like to contribute code is welcome to do so.
Important Notes:
If you last used v0.18.8 and are loading a project file that had Layers, you should inspect each control in Layers to check the attribute 'may use setLayer' in Properties or all your layer controls may not appear. This is because with v0.18.10 only those controls with 'may use setLayer' checked are considered for use by setLayerVisible and setLayerEnable. Starting with v0.18.10 controls are auto checked only if they conform to the Menu Item "All controls in active layer may use setLayer."IDE_ScrollingWindow.ew has been modified. If you have this module in folders other than IDE's Includes then please replace with the new version or Table control as an array will crash.
Now requires Win32lib v0.60.4 or later Added WS_TABSTOP to all createEx controls in Prop.ew which contain WS_CHILD per Derek Parnell instructions. This addition will stop Properties window from freezing. Fixed: If user modifies a file in Code Editor, minimizes Code Editor without saving the file and then MenuRuns then the message box asking to save the file or not was not shown. EuGrid control: Added Picture and DropDown. For Picture select the "Bitmap" ToolBox icon. For DropDown pick the "List" ToolBox icon and it is converted to DropDownList Class and EGW_DROPDOWN. Code Editor, when open, now allows use of Design. User may now paste text into Code Editor/stand alone editor Search Find and Replace text boxes. Hints and Win32lib keywords (in firstTimeOtherC.ini) have been upgraded to the new Win32lib version. You can upgrade OtherC.ini with program winlibscan.exw included in the distribution. Fixed bug case where checked "Use Local Color" in Code Editor was not working. Thanks to a new include module by Elliott S. de Andrade, Property, Project View and Tool Box keep title bar highlighted when undocked. When resize Properties and undock then redock, the undock button for ProjectView is no longer hidden. When selecting "New" project and Yes to save data and in the SaveAs dialog press Cancel button, IDE will now return to Design and not continue with "New" project. Fixed bug where controls in container controls was losing parent. Added new option "Name change in &Properties is ignored for Code Editor Statements" due to problems when user has variables with same name or when not using 'Wait For Enter key' on Name and Name is reduced to the same values as a variable. Added w32HMouseTrap event to Code Editor events combo. When moving or resizing TabItem, the TabItem was moved first in the TabItem list in ProjectView. Now it stays in original order. Fixed bug when place some cell controls from Table control in different layers, check the controls to use setLayerVisible/Enable and in the EXW generate the Table as an array. Improved response when building a Table control with a large number of cells. Table cells will no longer expand beyond Window size. When user has a Table control and the Table is an array, IDE will supply scroll bars only if requested in Table Specs. When changing Properties data in Name, Col and Row, Design will not take focus between keystrokes. Added Property "Use In WinMain". When checked this window will be used in the generated EXW's WinMain statement. Default is the first window in the project. Allow Text Color for EditText, List, LText, CText and RText controls Allow back color for HScrollbar and RScrollbar and Pixmap controls. Removed back color for Bitmap control. Fixed bug when IDE opened and there were tabitems in the project, the tabitem shown in TabItem combo in toolbar was is not the same as the one drawn in Design. Fixed bug when delete a control in a tabitem using right click delete, the tabitem was also deleted. Fixed problem in Multiple File Editor showing Editor Options window selected colors. Fixed bug changing Name in Properties when first letter matches any other controls' first letter. Fixed bug using arrow keys to move controls when multiple controls have been selected with Shift+S and the controls had child controls. Col and Row in Property may use Shift+S/Shift+A now. Fixed bug when configurations is set to open IDE at last position and size and IDE is minimized, then when opened again and IDE is minimized could not click in taskbar's restore selection. Ctrl+Shift+Arrow keys now working to resize controls. Properties for Eugrid EditText did not have Numeric and Format entry together. Introducing varable caption and hint text data. Preceed varable with var: and define the varable contents in previous code. This may only be incorporated in Caption from Properties. When adding EuGrid control, IDE will automatically add to Manage Include Statements, if not already added by user. When using Static control in EuGrid control, the Static control may use Multiline. Resizing Design now resizes the overlay grid. Revised "What is requested for future releases" to include my ToDo List. This mill ensure this information is kept current.
Problems!
Sometimes when IDE activates, a window that has not been opened yet by IDE but is createEx'd will show. You will not be able to close it so restart IDE.
When resize a control all the way to right edge with mouse, the control does not stick there. You must move back a few pixels and release the mouse.
Sometimes Code Editor does not display correct ex.err statement line but the line above or line 1
Keying "ERROR: Couldn't show \"%s\" for might result in autocompletion of for.I wish to thank everyone who gave of their time to help me test this version.
Nice include files to use with IDE
The following may all be found on Euphoria's Recent Contributions Page.Auto-Scale Controls by Mr. Trick. Automatically sizes controls to parent window. Make Project File by Marton Stachon. Converts an exw to IDE prj file format. A bit outdated but still will do a lot of the conversion for you. onXXX to setHandler IDE Project Convert by Andy Drummond. Converts existing IDE project file which used the onXXX event handler to setHandler method. Win32lib and IDE will soon eliminate support of onXXX. Grid Control by Jonas Temple. (Required if you use the Grid Control in IDE) System Tray Icons by Thomas Parslow. (Required if you use systray feature in IDE) AlphaBlending by Thomas Parslow. (Required if you use alpha blending in IDE) Return to Table of Contents
Software ID: IDE
Copyright: (c) 2001 David Cuny, Judith Evans, etal
All rights reserved.
License:
This software is provided 'as-is', without any expressed or implied warranty. In no event will the authors be held liable for any damages arising from the use of this software.Permission is granted to anyone to use this software for any purpose, including commercial applications, and to alter it and redistribute it freely, subject to the following restrictions:
- The origin of this software must not be misrepresented; you must not claim that you wrote the original software.
- If you use this software in a product, acknowledgement in the product's documentation and binary are required.
- Altered source versions, and works substantially derived from the it, must...
- be plainly marked as such,
- not be misrepresented as the original software,
- you may place your name in the IDE "About" box as a modifier, translator, etc.
- include this notice, unaltered
Return to Table of Contents
IDE requires win32lib.ew version v0.59.1 or later. Menu Help/About shows the user's version of win32lib.ew. If not a version of win32lib containing this information, IDE will fail.
Standalone editor, editor.exw, should be kept in the same folder as IDE. If you elect not to do this then several files must be copied to the folder it is placed into.
Return to Table of Contents
When a container control is moved onto a non container control the non container control may be hidden in Design. Even when shown, the control is not added to the container. Container controls are Tab Control, Tab Item, Group, Tool Bar, Status Bar, Table, ReBar, ReBarBand, CWindow and EuGrid.Return to Table of Contents
This is an Euphoria IDE for use with Win32Lib. You can create multiple windows, populate with controls, attach code to those controls and generate an EXW file, or if an Include Module, an EW file.The original concepts and designs of Design Window, Properties, Code Editor, Menu Editor and EXW creation are by David Cuny. You might still find his version in a Win32lib download at http://www.lanset.com/dcuny/euphoria.htm. This author built upon his ideas, added features and provided functionality as requested (and at times code provided) by the Euphoria User Community.
Return to Table of Contents
Designer Components:Splash Window
While IDE activates a splash window appears. Moving the mouse across will close it.
Credits:
- Splash Window was contributed by Mario Steele.
- Elliott S. de Andrade added a text area to show processing steps of loading to Spash Window.
MainWindow
This window contains IDE Menus, Tool Bar, Design Window, Properties, Project View and Tool Box.
Credits:
- Roland Stowasser supplied a fix to keep Tool Bar and Tool Box icons from disappearing from buttons.
Form Design Window
This is the window with a grid, scroll bars and Window1. Window1 is a view of the window that the end user will interact with. Controls can be added to it using the Tool Box icons. Initial Grid may be hidden, disabled or drawn with different colors and lines/dots.
Credits:
- CK Lester provided information as to how Design interacts with Properties and Project View when maximized or resized.
- Martin Stachon provided many solutions to problems with Design Window positioning and faster painting when Design is resized.
- David Cuny supplied a fast grid drawing routine.
Properties
Displays attributes of a particular control, or the window if an unoccupied spot on the design window is clicked. The tiny button in the upper right corner undocks and redocks Properties. One Tab Item shows Property information about controls. Property caption and property value panels may be adjusted in width using the mouse over the divider line between them. The other Tab Item of Properties is a list of Events for the control. Events with code are flagged. Properties and Project View may be resized, and when docked, resize each other. Design Window when maximized will not cover docked Properties or Project View.
Credits:
- The latest Property module was contributed by Martin Stachon.
- Travis Beaty suggested the method used to undock Properties via the little button.
- CK Lester provided much knowledge as to how Properties and Project View resize to one another.
Project View
Project View is a Tree View of the elements of the current Project: Forms, Class Modules and Modules. Design, Properties, Menu Editor, Popup Editor, Timer Editor and Code Editor may be accessed by clicking on one of the elements of Project View. The tiny button in the upper right corner undocks and redocks Project View. Project View and Properties may be resized, and when docked, resize each other. Design Window when maximized will not cover docked Properties or Project View unless it has been undocked. An undocked Design Window when maximized will cover full screen. .
User may elect to start IDE with or without Project View. See Menu Options/Configure IDE.
Credits:
- Derek Parnell provided routines for manipulating Tree View within ProjectView.
- Travis Beaty suggested the method used to undock ProjectView via the little button.
- CK Lester provided much knowledge as to how Properties and Project View resize to one another.
Tool Box
Icons from the Tool Box can be selected to place controls onto the Design Window. Icons may be dropped once per selection or multiple times. See Icon Behavior below. The tiny button in the upper right corner undocks and redocks Tool Box. The ? Button left of the undock button will open the IDE Help System Window for information about various controls. The Help System information is not complete.
Credits:
- The Help System View was contributed by Roland Stowasser and Virtual B.
- Most Icons for Tool Box were obtained from David Cuny or Thomas C. Janes.
- Concepts for Tool Box were submitted by David Cuny.
- Travis Beaty suggested the method used to undock Tool Box via the little button.
Code Editor
The editor allows code to be associated to control-event pairs or with program modules. User may select to automatically add the SaveAs file name to Generate Tools/Manage Include Statements and Code Editor's Module combo or be asked first. User's selection, if any, is saved for next run of IDE.
A stand alone editor, editor.exw, is provided as a companion to Code Editor. Multiple instances of editor.exw are permitted. Code from editor.exw is not incorporated into IDE except through copy/paste. Further enhancements are planned for this editor.
Credits:
- The latest editor, syntax editor, was contributed by Don Phillips.
- Some modifications were made by Martin Stachon, Mario Steele and Roland Stowasser for adaption to IDE.
- Brian Broker improved syntax editor for standard behavior.
- Mario Steele suggested adding SaveAs module to the project and the third component of combos for code selection.
Menu Editor
Editor for designing Menu and Menu Items. User may use \t to right align portions of the Menu Item text and ! to treat a Menu as a command button.
User may press Shift+Enter key while in either Caption or Name to create a new Menu. User may press Enter key while in either Caption or Name to create a new MenuItem.
Pressing Enter or Tab key after changing Name to a new Name will not create new entries but will instead check for changes of Name in code data.
Credits:
- Menu Editor has been modified from its original design by Roland Stowasser and Martin Stachon.
- Enter key for creating entries was suggested by Greg Haberek.
PopUp Editor
Editor for designing right click PopUps.
Timer Editor
Editor for pseudo control Timer.
Launch other programs while in IDE.
Under Menu Launch are:
"Run" which opens a dialog for user to select a file.
"Edit Launcher" which allows user to set up files to list under the Menu Launch.
Files that were previously set up via Edit Launcher.
When parameters are selected in Edit Launcher, the file name will be passed to the launched program.IDE does not send data to or receive data from programs under Launch.
Suggested files to add to Edit Launch are:
- eTranslate by Roland Stowasser which will pass your generated EXW to the Translator. Look for it on Euphoria Recent Contributions Page.
- exw2prj by Martin Stachon which generates a project file from most EXW files. Look for it on Euphoria Recent Contributions Page.
Credits:
- Edit Launcher was written and contributed by Roland Stowasser.
Return to Table of Contents Associated with IDE are other windows:About
This window, selected from Menu Help shows all the people who have contributed to IDE. This window may be moved.
Credits:
- Scrolling list was contributed by Roland Stowasser.
- Movable window was contributed by Elliott S. de Andrade.
Control Order
This window, selected from Menu Generate Tools/Change Control Order For Program or Properties/Control Order, allows reordering the controls for the output EXW (EW). Control order within Design, Code Editor Control combo, Properties or Project View is not changed.
Manage Include Statements
This window, selected from Menu Generate Tools/Manage Include Statements, allows the user to add Modules and select the order they are included in the generated EXW (EW) file after the statement 'include Win32lib.ew'. Previously included Modules may also be removed from the Project from this window.
Text may be associated with the included Module. This will allow user to add something such as 'as XXX' or a comment. To add the appended text, or view previously added text, click the Module name in Manage Include Statements and enter the text in the edit box above. Also shown is the full path of the included Module.
Module Path may be altered. This is particularily useful when using a project file created by another IDE user. The Path may be selected from the ... button located next to the path which presents Folder Dialog or via right click in the path field to further modify the path.
When creating the generated EXW, if the module's path is within the project folder, the project folder is removed from the path.
Credits:
- Right click on path was contributed by Roland Stowasser.
Message Box Generator
This selection from Menu Edit/Create Message Box allows user to create a Message Box while using IDE and add to Code Editor via Window(tm) clipboard.
Enter information such as number of lines for message text, Icon desired, Button Type. Then click the CREATE button to see and modify the text of the message. COPY button will copy to clipboard and user may then paste into Code Editor.
Credits:
- This module was contributed by Roland Stowasser.
Visual Styles Explorer
This window allows user to try various styles, extended styles and CS_NOCLOSE for window control and transfer the selection to Properties.
Special attention should be paid to Child Window. Some selections will produce Class Default style changes and if the Style is modified after using Visual Styles Explorer that field in Properties should be examined. Also remember that following Windows will be using the same styles as changed by Class Defaults and if they are not correct then they may need a Class Default with WS_SYSMENU,WS_MINIMIZEBOX,WS_MAXIMIZEBOX if TitleBar with full system buttons is desired.
Select from Menu Edit or right click on current window in Design.
Credits:
- This module was contributed by Don Phillips.
Visual ListView Styles Explorer, Initial Values, Icons and Column Titles
This series of windows allows user to try various styles, extended styles, headings, icons and data for ListView control and transfer selection to Properties. When a ListView is selected in Properties and Visual ListView Styles Explorer selected from Menu Edit, existing data will be supplied; otherwise default data is shown. User may also right click on ListView control to obtain ListView Styles Explorer.
Credits:
- The original author is unknown.
Initial Values
This window, selected from Menu Edit/Initial Value for List and Combo or right click Properties/<LIST>, allows user to enter initial values for List and Combo Class controls.
Show Window
This window, selected from right click in Design, is a Full Size Design. User may add, move and delete controls as in the smaller Design window; however the mechanism is not friendly. Both versions of Design are maintained when 'Show Full Size' is selected.
Off Screen Window
When a control's X position becomes negative, it may not be fully displayed in the Design Window. Off Screen is accessed via right click in Design. The control is positioned as an offset relative to the right edge of the Off Screen Window whose width is Design width. Controls of this nature are usually Pixmaps but other controls may be placed off screen such that the EXW's user does not see them. If there are not any off screen controls, the right click option is disabled. This window is currently not editable.
Configure IDE
User selected options from the below configurations are modifiable and may be saved for future runs of IDE.
Documentation LocationIDE attempts to locate documentation files (Win32Lib's index.htm, Ruler.chm and IDE.htm) in IDE's folder or sub-folders. If not found, the Euphoria folder and sub folders are searched. Multiple copies of the files are entered in a combo box for selection.
If the user has placed the documentation files into folders outside of Euphoria and/or IDE or on another drive, Browse button selections will allow a direct lookup for them using the Open Dialog.
This action only needs to be done once or when one of the files is moved or renamed.
Default Control Values
Default Name, Title, CX and CY over-rides may be entered for controls dropped onto Design. These values may be used for the current IDE session, saved for future IDE use or replaced with original values.
Grid Configuration
Configure items such as color, pixel size and dot/lines. Options hide/show, enable/disable are located in Menu Options on IDE's main Menu.
Changing the grid pixel increment after adding controls may lead to unpredictable behavior. It is recommended that the grid pixel size be determined before adding any controls.
The default status of grid is: blue color, 4 pixel, show grid, grid enabled and grid dots. Changing some of these fields results in a slight delay while IDE builds the new grid.
When using Properties the grid is temporarily disabled. If a control X or Y is changed, any later move of the control with the mouse will re-snap to the grid if the user has grid enabled
Credits:
- David Cuny provided method for fast redrawing of grid after user selects a change.
Backup Before Save
When the project is saved a backup file filename.bak is automatically created. If an existing file of this name exists, it is overwritten. Uncheck this menu item to bypass writing the backup file.
Language Preference
All language translations that have been downloaded by user and placed into the Language sub folder will appear in the combo and user may select the one he prefers. Never remove English.lng from Language folder.
New Controls Local or Global
Allows user to select local or global as default when creating a new control for the project. User may also change existing controls on the project by checking "Change existing controls on this project." Choice may alternatively be changed per control in Properties or Menu, Popup and Timer editors. When 'global' IDE generates 'global constant Name = create ....' statements and when 'local' IDE generates 'constant Name = create ....' statements. The default is initially set to local.
Credits:
- Derek Parnell suggested adding this feature with default 'Local.'
- Mario Steele suggested adding this feature to Menu and Popup Editors.
One Instance of IDE
If checked IDE may not be started if a current instance is running. If unchecked IDE may be restarted but only from the first instance.
Credits:
- Instance processing was contributed by Euman.
Do Not Minimize IDE During Menu Run
The default behavior is IDE minimizes when user generates the exw via Menu Run or Menu Temp Run. User may restore IDE while the exw is running. If user never wants IDE to minimize in this manner then he should check this item.
Properties Wait For Enter Key
This window shows the attributes from Properties that respond to user input data with a redraw of the control or required value. User may select the attributes that must wait for a press of Enter key or TAB to process entered data.
General Information
This option allows user to:
- Indicate that IDE always start with last project. This implies that the project has been saved. Opening with last project is bypassed if user has not saved a project or if user starts IDE from a filetype association such as from Windows Explorer.
- Indicate the default folder for Open and SaveAs Dialogs. This may or may not be the actual project folder, depending upon user's folder structure. The default folder must already exist.
- Define Project File Type.
The Define Project File Type option allows user to select the three-character file type IDE will use when reading and writing the project file. This applies to all projects. 'prj' is the default.Window Opening Positioning
Indicate how major windows within IDE are opened when IDE initiates, e.g. always maximized, maximized only if left IDE with it maximized, at last position and size, closed, undocked. Not all options apply to every window.If option of 'closed' for an IDE window is selected, none of the other options will be considered.
Register Additional Styles
Register Additional Styles allows user to enter style constants for window or controls. This feature simply allows user to save keying by adding and deleting all styles he might need during any project. These styles are then added to "Styles"/"Other Flags" for the currently selected control via edit button in Property "Other Flags" or Menu Edit/Select From Registered Styles. Register Additional Styles is pre-loaded with LBS_NOINTEGRALHEIGHT and PBS_VERTICAL. Use Menu Edit/Select From Registered Styles to add selected styles to Properties.
Credits:
- Andy Drummond and Sasha Zindel suggested allowing user to indicate various Window positioning and state.
- Mario Steele suggested the default folder.
- Unknown user suggested automatic start of last project.
- Andy Drummond suggested Define Project File Type feature.
Return to Table of Contents Notes on IDE WindowsWhen IDE opens, it displays Form Design window, Window1 with a grid, Properties (optional), Project View (optional) and Tool Box. IDE may be started from 'run' command or, if file associations have been set up, from a project file in Windows Explorer.
Window1 being designed is included within its own Form Design Window which may be maximized, resized and undocked. When docked and maximized the window's x,y position depends upon the docking status of Properties and Project View. When either one is docked the Form Design window may not go over or under it but will expand to fill the rest of available area. When Undocked, Form Design can be placed anywhere on the Screen. Scroll bars are visible when needed to view the Design window controls. Properties or Project View may be expanded over or under the Form Design in order to view long attribute values. It is users responsibility to move Properties and Project View out of the way of Form Design.
Undock and redock Form Design window via Menu Edit/Undock Form or by right click popup selection Undock Form and Redock Form.
The Form Design window, when docked, may be moved around within the IDE but must remain inside the client area. When moved outside the IDE, IDE tries to reposition the window which may cause some flickering. When the Form Design is maximized and then moved outside the IDE, the IDE sometimes can not recognize that is was moved while in a maximized state and will reposition the window in normal state. The same holds true if the Form Design window is resized with its arrows.
Associated with the Design Window is a project file which is used to reload the Design Window. When closing IDE with unsaved changes, there is a query to Save(As) a project file. The user supplies the name of the file and its path from a dialog box. The project file is also written when 'run' is selected from Menu Generate Program unless the user indicates that a temporary EXW file be generated. An EXW file is also created or an EW file if the module is an Include Module. IDE and the output EXW from Menu Generate Program/Run may both be concurrently working. In other words the taskbar or titlebar of each window may be used to swap back and forth between them. Code Editor may be re-opened, however it will jump in front of both IDE and the EXW window. Changes made in IDE in this mode will not affect the currently executing EXW.
Credits:
- Process control module was provided by Tone Skoda.
- Method to determine file processing name by Wolf Fritz.
IDE may not be tiled. IDE will cause an exception when tiled. Probably because of the structures used within IDE for Properties, Tool Box and Form windows and the X and Y relationships to the IDE. This problem is currently being studied.
IDE messages are centrally located in Languages sub folder in the English.lng file by default. Translations, contributed by IDE users may be found on IDE home page for other languages. Place the unzipped language file in Languages sub folder without removing English.lng file. Other language translations are welcome.
Credits:
- IDE_MsgCzech.zip by Martin Stachon, Mira Balikova.
- IDE_MsgGerman.zip by Roland Stowasser.
Return to Table of Contents
The Control Icons:The following icons are represented in the Tool Box:
Control Default Class Other Classes Bit map * Bitmap Pixmap Icon/Image Icon Static Text * LText CText, RText Edit Text EditText Mle Text MleText Rich Edit RichEdit Menu Menu PopUp PopUp Frame Group Push button * PushButton PictureButton, TogglePicture, ToggleButton, DefPushButton Radio button Radio Check box * CheckBox TriCheckBox Combo box * Combo SortedCombo, SimpleCombo, ComboBoxEx List * List SortedList, DropDownList Horizontal Scrollbar * HScroll HTrackBar Vertical Scrollbar * VScroll VTrackBar Progress Bar ProgressBar Up/Down UpDown Page Control TabControl Tab Item TabItem Calendar MonthCalendar Tree View TreeView List View ListView Tool Bar ToolBar Tool Bar Spacer n/a Status Bar StatusBar Table Table Pseudo control Flat Tool Bar FlatTool Bar Separator Button SepButton for FlatToolBar ReBar ReBar ReBar Band ReBarBand Timer Timer Child Window CWindow EuGrid EuGrid * To select a class that is not the default ( for example, CText), use Properties 'Class' once the control has been added to Design Window.
Menu, PopUp and Timer when selected transfer to their respective editors.
Return to Table of Contents Adding ControlsTo add a control to the window, select the icon of the control from the Tool Box by clicking it, and then click the Form Design window where you want the control to appear. Menu, PopUp and Timer when selected transfer to their respective editors. If you add a control over an existing control it does not necessarily become the parent but IDE will attempt to draw both controls. This is also true if a control is moved by mouse or Properties over another control.
Properties and Project View may be expanded or contracted in height and width by using their window resize arrows. Neither one may be smaller than their width when IDE opens. When either one is changed in width, the other changes as well. When either one is changed in height, the other adjusts accordingly. These windows stay on top of the IDE when undocked except when openFileName dialog, color Dialog, message boxes, etc appear. When docked and expanding over the Form Design window they might be hidden by Form Design and it is the users responsibility to resize them or click on them to bring them forward when necessary to work with controls.
Properties and Project View may be undocked and moved anywhere on the Screen. It is not a requirement that they stay within IDE's main window. If they are redocked they return to their original position but retain the latest width, provided it is at least as wide as the when IDE opened. If one of them is already docked when the other is redocked the width of the redocked one will be the width of the currently docked one. If only one is redocked, it returns to the upper portion of the original position but occupies the entire length.
Tool Box may be undocked and moved anywhere on the Screen. It is not a requirement that it stay within IDE's main window. If redocked it returns to the original position.
Properties, Project View and Tool Box may be minimized, closed and (re)opened. To (re)open, select from Menu View, right click on Design or use a hot key. If Properties or Project View is docked, or undocked and open, when their respective menu item is clicked, their contents are refreshed. When undocked the respective window is moved forward into view if hidden behind another window.
There is an option under Menu Options, Icon Behavior, which allows changing how the selection of control icons works for the current session. The default is single selection with multiple selection as the option. You can toggle back and forth during the current session by clicking 'OFF' Menu Item, toggling the "Off"/"On" button on the Tool Bar or answering the question under 'Instructions.' When clicking 'OFF' Menu Item, the check mark is toggled. If multiple selection is selected be sure to turn it off before clicking on a control to see its Properties.
With multiple selection the control icon selected remains active until de-selected by clicking on it again. This allows multiple additions of the control without having to reselect from the Tool Box. It will not remain active after right clicking, Menu Editor, Popup Editor, Timer Editor, Menu Generate Program, error messages or selection of a new window. To de-select the control for control move or resize, press the control icon again in the Tool Box, press the Esc key, click the "Off" menu item, click the "Off"/"On" Tool Bar button or click somewhere in the Design window where there is not a control. Selecting another control will automatically de-select any prior selection.
Tab Control must be added before Tab Item. There may be multiple Tab Controls and each one may have any number of Tab Items with their respective controls. Tab Control may be added to an existing Tab Item of another Tab Control. Adding a Tab Control automatically adds a Tab Item.
To add an additional Tab Item, select the Tab Item icon and click within the Tab Item which is masking the Tab Control to which you wish to add. The second combo box in the Main Window Tool Bar designates the currently selected Tab Item. As new Tab Items are added, the combo box is updated with the Title. Dropping a control within a Tab Item adds to the currently selected Tab Item. Change the combo box for the appropriate Tab Item wanted active to drop a control onto or for move/copy/resize. User may also select the Tab Item by clicking on its "tab" in Design, if it shows, using Properties dropdown list or selecting from Project View.
Tool Bar control is automatically inserted at the top of Design Window1 when selected from Tool Box. When Window1 is larger than can be displayed, you will not see the Tool Bar after vertical scrolling. There may be only one Tool Bar but it may be resized into rows. Rows are automatically sized. Just drag the Tool Bar down and let go and a row will be added. After designing the Tool Bar and its contents, if Window1 is resized smaller, some of its controls may appear to be "lost" if the Tool Bar was completely full.
The exception to these rules is when Tool Bar is dropped onto ReBarBand control. Then multiple Tool Bars are allowed but must be on different ReBarBands and Tool Bar must stay within its parent ReBarBand.
To add a control to the Tool Bar, select the icon from the Tool Box by clicking on it, and then click on the Tool Bar. The control will be auto positioned within the Tool Bar. Controls may be repositioned by dragging them to a new position. Drop the control a bit under the top of the row you want it on and it will snap into place. To add or move a control between existing controls, drag or drop overlapping each one. Controls may also be added to Tool Bar by moving them into the Tool Bar, positioning a little bit below the top of the row desired. The control will autoposition and snap into place. Removing controls from the Tool Bar causes the remaining controls to automatically reposition. Use ToolBar Spacer control for adding spaces between controls on Tool Bar.
Status Bar control is automatically inserted at the bottom of Design Window1 when selected from Tool Box. When Window1 is larger than can be displayed, you will see the Status Bar after vertical scrolling.
To add a control to the Status Bar, select the icon from the Tool Box by clicking on it, and then click on the Status Bar. Controls added to the Status Bar are automatically CY sized. Controls may also be added to Status Bar by moving them into the Status Bar.
Menus can be added by selecting Menu from the Tool Box. or from Menu Editors, right click on Design or hot key.
Popups can be added by selecting Popup from the Tool Box or from Menu Editors, right click or hot key. Use mouse right button in Design and select 'Show Popup' to see the Popup Items. There may be multiple Popups on a window and under that condition when selecting 'Show Popup' there will be another window for choosing the Popup Name to show. Click on the window, an item in the Popup or a Form Design control to clear the Popup display. There has been no attempt to associate Popups with controls but user may do this in Code Editor. This display is for visual purposes only.
Timers can be added by selecting Timer from the Tool Box. or from Menu Editors, right click on Design or hot key.
Credits:
- Dan Moyer provided assistance with multiple selection logic.
Return to Table of Contents
To add an additional window to the project, select Menu Edit/New Window. The window will be added to the currently active window combo box in the Main Window Tool Bar. Properties 'Parent' may be modified for additional windows. If parent is blank, IDE will generate "0" for the parent attribute in the EXW (EW).A dropdown list of available windows may be used in Properties 'Parent' attribute. The dropdown will include a 'blank' entry, all window names defined prior to the selected window and, if an include module project, the parent of the first window. The first window may not have a parent unless the project is an include module project. The first window in the include module project may have a parent but be aware that using one most likely will cause the generated EW to fail when run in stand alone mode.
Return to Table of Contents
User may re-order most controls prior to running the EXW. Select Menu Generate Tools/Change Control Order For Program or use Properties 'Control Order' for this option. The initial order of the controls in the list box is the y, x order unless the user has previously re-ordered the controls. Controls within a container are offset by '<'s but may not necessarily be directly under the parent if another control's y, x are between them. Changing the EXW reorder does not change the order in Code Editor Controls combo, Design, Properties or Project View. Changing the control order does not change the parent of a control. IDE can not change Windows(tm) tabbing behavior. If user could not tab to a control, e.g. Group, using Control Order will not force that to happen.User may add and order the 'include' statements within the EXW. Use Menu Generate Tools/Manage Include Statements for this option.
Text may be associated with the include module in Generate Tools/Manage Include Statements. This will allow user to add something such as 'as XXX' or a comment. To add the appended text, or view previously added text, click the module name in Manage Include Statements and enter the text in the edit box above.
User may indicate that 'global constant Name = create ....' statements not have the word global by checking 'local' in Properties or changing the default to local in Menu Options/Configure IDE.
User may indicate to use integer instead of constant in create statements with Properties attribute Create With.
User may indicate that an EW instead of EXW generated program be created, an optional Win32lib.ew be used, in Generate Tools/Program Information.
Also available in Program Information are fields for Author, Title, Version, Date, Required Win32lib Version, Comment and Description which is passed to the generated program if supplied. Comment and Description are supplied as comment lines and the others as constants so user may refer to them in his program. User may also specify Command Line data to attach to the generated exw.
Select Menu Generate Program/Run to produce the EXW or EW file. User may elect to direct the generated EXW to a temporary file. If there are ex.err errors IDE attempts to find the location if in a user written procedure from Code Editor or within the Properties for a particular control. If the ex.err refers to a module IDE will show the error code in that module if the module can be opened and read.
User may elect to create a temporary file instead of the normal project PRJ and EXW files. When electing to use this version of Menu Generate Program, a temporary PRJ file is not created and the existing PRJ file is not modified. User may indicate what to do with the temporary EXW file under Menu Generate Program/Temporary Run Project/Include/Rules and select the run from Menu Generate program/Temporary Run/Run or from a menu item in Rules. The file name will be project name _TEMP.exw or unidentified_TEMP.exw, if the project has not yet been saved. If the file is an Include Module, .EW will be the extension instead of .EXW. The temporary file, if user elects to keep it, is in the project's folder or in IDE's folder if unidentified_TEMP.exw.
The Temporary Run Rules may be saved in IDE.cfg with configuration choices.
When user requests Menu Generate Program and has not previously saved his project, a temporary run is forced. The GetOpenFile Dialog will not be presented unless the Temporary Run Rules require it.
While the generated exw is running, IDE is minimized by default. User always may restore IDE from taskbar during this time. If user never wants IDE to minimize during Menu Run or Menu Temp Run there is a configuration item which will prevent the default behavior.
While viewing generated EXW file, user may return to IDE to make changes. These changes do not take effect in the currently running EXW.
Credits
- Interactive processing was contributed by Tone Skoda.
- Determining file processing name was contributed by Wolf Fritz.
- Author, Title, Version, Date, Required Win32lib.ew Version were suggested by Dan Moyer.
Return to Table of Contents
See the Help under Options\Ruler Tool for documentation or view Ruler.chm.
Credits:
- Measuring Tool module was provided by Travis W. Beaty.
Return to Table of Contents
Project View contains all the forms and controls for a project, the class module-event pair having code and include module names. User adds include files necessary for the EXW directly into IDE via Menu Generate Tools/Manage Include Statements. Win32lib.ew should not be included since it is automatically generated when indicated. The module will be added to Project View under Modules. The module list is saved in the project's PRJ file. Prior to Menu Generate Program the include module list may be reordered by Menu Generate Tools/Manage Include Statements. The included modules are inserted in the EXW after Win32lib.ew.The view will be rebuilt each time Menu Edit/UnDo for Controls is selected, a different window is added, selected or deleted or Project View is selected from Menu View.
Clicking a node of the tree view will result in the Design Form being altered to show selection of that control or window if the control is not Menu, Popup or Timer and the Properties reflecting that control or window and, if a Class Module or Module node was selected, Code Editor for the selected Class Module-event pairing or routines for Module. If the control is Menu, Popup or Timer the respective Editor is opened.
Return to Table of Contents
Click on the control in the Design window that you want to edit, select the control from Properties dropdown or select from Project View. Tab Items may also be selected from IDE's ToolBar Tab Item Combo or their "tab", if showing. The selected control will appear as a rectangle and resizing arrows will be supplied. Select a Tab Control with Tab Items via Properties dropdown list or Project View.Unselecting Controls:
To unselect a control, either press the Esc key, click in the Design window where there are no controls or pick another control from the Tool box.Deleting Controls:
To delete a control, select it and press the Delete key or select it with the right button and choose 'Delete Control.'To select a Tab Control with Tab Items, use Properties dropdown list, ProjectView or right click in Design. When Tab Control has only one Tab Item and Delete key is pressed, IDE will be delete both Tab Item and Tab Control.
Deleting a Tab Control, Tab Item, Status Bar, Tool Bar, Group, Table, ReBar or ReBarBand automatically deletes its sub controls.
Deleting a control from the Tool Bar results in the remaining controls in the Tool Bar being repositioned.
The Currently Active window may be deleted using Menu Edit/Delete Active Window. If the currently active window is the only window, the window is replaced with an empty Window1.
Editing Controls:
Click on a control using the left button, and Properties will be updated for this control or the Window if an unoccupied spot on Design is clicked. If multiple icon usage has been selected, it needs to be turned off before clicking on a control. Control may also be selected via Properties dropdown or ProjectView.User can change the size of the control with the mouse and the position with the mouse or keyboard arrow keys. Properties may also be used to change size and position.
Resizing Controls with the Mouse:
To resize the control, select it then drag one of the corners, top, bottom or side.Moving Controls with the Mouse:
To move the control, select it and drag it to the new position. Properties may also be used to move to a new location as well as the keyboard arrow keys.To move a Tab Control and all its Tab Items, select with the left mouse and drag. A Tab Control may not be moved to any other control except to an existing Tab Item. To move a Tab Item, select with the left mouse while holding down the Shift key and drag.
A Tab Item must be moved to an existing Tab Item on a different Tab Control. When moving to a Tab Control with existing Tab Items, they will all be sized to the largest Tab Item. Lift up on the mouse with the cursor within the Tab Item and the moved Tab Item will auto position.
Moving the Tab Item, Group, Table, CWindow or ReBarBand controls automatically moves controls contained within them.
Controls moved out of a Tab Item, Group, CWindow or ReBarBand no longer are assigned to a parent, unless moved into another Group, ReBarband, CWindow or Tab Item. Parenting is carried into the EXW or EW file and x, y positions re-calculated to fit within the parent. The project file retains the original positions for reload purposes.
Controls moved into a Tab Item, Group, CWindow or ReBarBand will have the Tab Item, Group, CWindow or ReBarBand assigned as parent. The exception is a Group within a Tab Item. In this case, if a control is moved into the Group, the parent will be the Tab Item although Properties and ProjectView will show the Group as parent. If the Group is subsequently moved out of the Tab Item, the controls within are re-assigned to the Group. The EXW or EW file will assign controls within the Group control to the Group even though the Group is within a Tab Item. The PRJ file retains the original parenting for reload purposes. Since version 0.17.0, direct parenting and child information is maintained in the project file and the above discussion refers to the highest parent of a control.
Controls in the Tool Bar may be moved around (or out of the Tool Bar) by selecting with the left button, moving where desired and releasing the mouse. Be sure to release it just a bit under the top of the Tool Bar row if moving to a new row. The existing controls in the Tool Bar will auto position to accommodate the insertion.
Multiple controls may be selected for moving and resizing via keyboard arrow keys or for changes in Properties (except row and column.) The controls must all be the same class. Click a control and press Shift+S, then select and press Shift+S for every control you wish to mass change. If you change your mind press Shift+A. Use either keyboard arrow keys to move/resize all the controls or the change made in Properties will apply to all the selected controls. When completed with changes for these controls, press Shift+A to terminate multiple processing. This procedure may not be used with Copy Control or Delete Control.
Copy a Control
To copy a control to another location, press the Ctrl key, select the control to copy and drag to the new location. Any controls within the selected control will also copy. When copying a control or container controls the newly created control will have Name and Title built from the control's Name or Title less any trailing numbers plus the next available incrementing number assigned. Any controls child to the copied control will also follow this rule when copied. However if the control is a List View and it has trailing quote the new control will have the quote at the end.If Indexed Copy is Active (the default), after pressing Ctrl key and moving the control, user will be asked if the new control should be indexed to the original. When answering "Yes" this control, and others copied from the original control will create a one dimensional array in the generated EXW. To suspend this feature, click the Indexed Copy Active icon in the IDE toolbar. When creating controls in this manner, user may continue to write code referring to the Name as shown in Properties and IDE will translate to the proper index when generating the EXW. If the new control is not in the same control (including window) as the original, it will be created without indexing. In the generated EXW the order of the controls is the original and then the copy-indexed in Control Order (TabOrder) and they are named the original control e.g. if original is PushButton2 then it is PushButton2[1] and the copies will be PushButton2[2]..PushButton2[n]. If a control created in the way has a lower row value than the control copied from, the control copied from is still the first index. Group, TabItem, TabControl,CWindow when create an index-copy should not have within it a control that creates an index-copy because IDE can not figure out some of the indexing. A container control when Copied (without index-copy) that has indexed controls will not create the new container with indexed controls. State of Indexed Copy Active button is saved for next IDE run.
Tool Bar, Status Bar, ReBar and ReBarBand may not be copied.
Indexed Copy is Active may be set/unset in configurations for future runs of IDE. User switching Index Copy from toolbar does not alter configuration 'Never index when copy a control' setting. This allows user to set the 'usual' condition in configuration and switch during control manipulation in Design via the toolbar.
Credits:
Indexed Copy was suggested by Merv McKee. Editing The Window:
Resize the Design Window in Properties by altering it's attributes or by using the Design window resize arrows. Scroll bars are removed when not necessary. When the Design window completely fills the Form Design window (less the scrollbars), only Properties Width and Height fields may be used to further expand the Design window. A future enhancement will address this issue.Saving the Design:
Closing IDE, opening another Project file, starting a new Project may generate a PRJ file via a window's dialog. A backup file filename.bak will be automatically created when project is saved. User may elect not to do this by unchecking in Menu/Configure IDE on General Information tab 'Backup Before Save' option. When opening project, user may not select Backup Files from the files type dropdown.Keyboard support
F5 initiates menu 'Run'.
F6 initiates menu 'Temporary Run'.
Delete key deletes selected control.
Ctrl+S will save project unless Code Editor has focus in which case the data in editor is saved.
F12 provides the SaveAS Dialog.
Ctrl+O provides the Open Dialog for 'prj' unless Code Editor has focus in which case Open Dialog for files is provided.
Ctrl+T opens Tool Box or changes to Top Most status if already open.
Ctrl+P opens Properties or changes to Top Most status if already open and undocked.
Ctrl+J opens Project View or changes to Top Most status if already open and undocked.
Ctrl+L opens Initial Values for List and Combo controls.
Ctrl+M opens Menu Editor if not already open.
Ctrl+U opens Popup Editor if not already open.
Ctrl+E opens Code Editor or changes to Top Most status if already open.
Ctrl+W opens Timer Editor if not already open.
Ctrl+Z performs Undo either control or Code Editor depending upon which has focus.
Ctrl+A opens Manage Include Statements or select all Code Editor statements depending upon which has focus.
Keyboard arrow keys may be used to move and resize a selected control by Grid Pixel Size positions. Using arrow keys with Shift will adjust CX and CY and using Ctrl will adjust both CX and CY.
F1, F2 and F3 switch button icons for FlatToolBar. However if Code Editor's Find/Replace has focus, F3 will find again.
Shift+S after clicking a control selects it for multiple processing. Multiple processing is terminated with Shift+A.
Shift+A terminates or aborts multiple control processing control.
Form Locking
The X, Y, CX and CY values of controls on the Form may be locked to prevent accidental movement with the mouse. This is a menu item under Menu Edit.Undo Last Action
One level of Undo is provided. This action is found under Menu Edit and right click in Design or on IDE Tool Bar. Undo is disabled when selecting Code Editor and upon return to Design is not available until the next control action. Code Editor has its own Undo.Controls may be designed that reside at the same location or overlap in a window. Controls may also be designed that do not reside or overlay other controls but that are needed or not due to specific user actions. "Layering" is a visual tool for the user to design such controls and via generated routines manipulate whether they show on the Window or not. The set of controls which are not in an extra layer are in the base layer, labeled Layer 0, in the first tabitem above the Design Window. Most of the controls for a Window are in the base level, Level 0. Controls which might overlay, replace or supplement some of the controls in the base layer are in extra layers which the user adds. Usually the intent is one set or the other is viewable by the program's user at any time. There is no limit to the number of extra layers associated with a Window. User may add and remove Layer Tabs and change the Layer Tab captions. Controls may be added to the active layer by selecting from Tool Box and dropping on Form Design in the normal way. Or user may move a control from layer to layer via "Layer" in Properties.Select Menu Edit/New Control Layer to add a new layer which is positioned after the active layer tab. IDE will add a new tabitem and show an empty Design Window. Add controls as desired. User should probably uncheck Visible in Properties for all controls in additional layers and set Visible or Enabled as desired from within the exw or use canned functions setLayerVisible or setLayerEnable. Layers may be deleted via Menu Edit which will remove not only the layer tab but controls that were added for that layer or moved to that layer. Menu Edit/Change Layer Caption allows user to change a particular, or all/any, captions at one time.
Child controls of ToolBar, FlatToolBar, ReBar, ReBarBand, TabControl, TabItem and Table added to a different layer than the parent control may not work correctly. When a Table control is checked to use setLayer, then the individual cells are not evaluated.
A layer is not a new window so all controls in all layers for a window will show in Properties and Project View. Clicking a control that is in a separate layer will shift the view to that layer and then display the selected control and other controls in the layer.
Additional Window controls in the project may also use layering. Information regarding background layers for the current window is not retained when switching or adding a new Window.
Showing multiple layers is possible provided a layer (other than Layer 0) is currently active. If there is one additional layer, Layer 1 will display over Layer 0 from right click Popup selection "Show Multiple Layers." To remove Layer 0, from right click Popup select "Show Foreground Layer." User may also compare additional layers to one another. When there are more layers than Layer 0 and layer 1 and "Show Multiple Layers" is selected from Popup, user may specify the background layer. Multiple background layers may be specified by holding down the Ctrl key when selecting from the List. The active layer is always the foreground layer.
Specifying background layers for the active layer may also be achieved via right click on a non-active layer tab. When Layer 0 is the active layer other layers may not be background layers. Multiple background layers may be specified by holding down the Ctrl key when right clicking. To remove background layers, right click the active layer tab.
When a layer is specified as a background layer, the controls in that layer will be grided (if grid is not hidden) so user may easily distinguish those controls in the active layer. When grided, controls with icon or bitmap images will not draw with them since the grid would be masked. If a control from background layer is completely behind a foreground controls it will be drawn with a red border and no caption.
Control Layer may be changed to another valid layer in Properties. From "Layer" dropdown list select the Layer Caption to which the control should be assigned. If there is a parent already for the control, it is not altered. If there is not a parent and the control falls within another control after switching layers, the parent is not changed to the control it falls within unless the control is subsequently moved.
Assigning Parent for controls in layers, except for layer 0, is permitted. When the selected control is part of an additional layer and Parent in Properties is clicked, a combo of valid parents from layer 0 and the active layer is prepared. Be careful to assign Parent when positioning of the controls in layers are satisfactory because any movement of a control will reassign parenting based on the current layer. In other words if Parent is a control from layer 0 that Parent is removed and replaced with the Parent in the current layer, if applicable. Child controls in the same layer as the Parent retain their Parent.
Layer Tab captions may be changed via Edit Menu. New captions will be remembered for next load of the project provided the project is saved.
An example of Layering would be a window which has a group control containing different adio, checkbox, etc under certain conditions. User would place the group control in the base layer, first set of controls for the group in one layer and the extra set in another and manually set the correct Visible/Enable as directed by some action of the program user. User may use setLayerVisible and/or setLayerEnable and every control in the indicated layer which has "may use setLayer" in Properties checked would be set True or False. A Menu Item in Edit Menu may be used to change all controls in the active layer True/False in "may use setLayer." This MenuItem is also checked when controls are added/moved to/in Design. If the MenuItem is checked then controls added/moved into the active layer will automatically have "may use setLayer" checked. If the MenuItem is not checked, new controls will not be checked and controls moved into the layer will retain their checked state.
The user might also design the project such that the group is not in the base layer at all but is in one of the extra layers with the initial set of controls for that group. Upon program user's action, another group from another layer might be set Visible and the first group set not Visible.Note that older project files (prior to v0.18.9) with Layering did not have the 'May use setLayer' and user will need to check this Property. IDE will auto check this property for controls in layers other than the base layer. Once project is saved these values are remembered upon reload.
Parameters to functions setLayerVisible and setLayerEnable are (integer windowName, sequence "layerName" and integer state) where windowName is the Name of the Window in Properties, layerName is the exact layer tab caption in quotes and state is either True or False. These functions return 0 for success or 1 for failure to find layer name. If window name is not found, a syntax error will occur. Associated with these routines is a sequence sorted by windowName, layerName and controlName. User may find other uses for this sequence. The sequence and setLayer routines are found in the generated exw after all project Window createEx statements.
Credits:
Layering was suggested by Dan Moyer and Derek Parnell. Dan Moyer provided detailed logic for Layer Tab Right Clicking as well as sample code. Tony Steward suggested griding background layers and allowing switching a control between layers which is useful when working with an existing project. Tony Steward suggested ability to rename layer tabitem captions. Andy Drummond suggested routines setLayerVisible and setLayerEnable. Return to Table of Contents
Properties and Project View may be expanded or contacted in height and width by using the window resize arrows. When either one is changed in width, the other changes as well. When either one is changed in height, the other contracts accordingly. These windows, when undocked, stay on top of the IDE except when openFileName dialog, color Dialog, message boxes, etc appear. When expanding over the Design Window it is the users responsibility to resize them out of the way when necessary to work with controls.Properties and Project View may be undocked and moved anywhere on the Screen. It is not a requirement that they stay within IDE. If they are both redocked they return to their original position but retain the latest width provided that width is at least as wide as the width when IDE opens. If only one is redocked, it returns to the upper portion of the original position but occupies the entire length.
Properties displays the following attributes for controls other than Menu, PopUp or Timer:
Label Meaning Control DropDown Contains a list of all controls in a Window with the exception of Menu, Popup, Timer and their subs. Name The identifier given to the control by Win32lib Class * Type of control. Has a drop down list if there are associated classes. Caption** Title displayed in the control. If longer than the control width it is truncated when drawn. Show in EXW If False the Caption does not show in the output EXW. Title Widths ListView column widths. Non editable. Col X coordinate of control in window. If WINDOW class the default value is 'Default'. Any numeric, including zero, may be entered. When negative, controls is considered Off Screen and will only show on Off Screen Window accessed by right click in Design Row Y coordinate of control in window. If WINDOW class the default value is 'Default'. Any positive numeric, including zero, may be entered. Width Width (cx) of control Height Height (cy) of control Alternate Positions Click This property to obtain alternate Row, Col, Width and Height. Note that these properties are not actually used in IDE for positioning and only apply to the output EXW. They might be used for percentage values or for variables previously defined. Row Enter whatever you wish to override the normal Row value and establish Y coordinate in EXW output of control. IDE does not edit this property. Col Enter whatever you wish to override the normal Col value and establish X coordinate in EXW output of control. IDE does not edit this property. Width Enter whatever you wish to override the normal Width value and establish CX coordinate in EXW output of control. IDE does not edit this property. Height Enter whatever you wish to override the normal Height value and establish CY coordinate in EXW output of control. IDE does not edit this property. Row Height Height of a ToolBar and FlatToolBar 'row'. Bar Height will be multiple of this value. Layer DropDown List of Layer Captions to which control may be assigned. Not shown for Window class control. setLayerOK/TD> Toggles True/False whether or not control can use setLayerVisible and setLayerEnable Comment/Code Enter whatever you wish as a comment( enter -- ) or a one line of code to preceed the control in EXW output. IDE does not edit this property. SysTray Check this property to indicate Window should show in Window Task Bar and be transferred to a window to enter supplemental data.Also accessible via Menu Edit. You must have systray.ew on your system in Euphoria\include or in a EuInc folder. Use In WinMain Checked for window that is used in WinMain statement. First window in project is the default. WinMainOpen select Normal, Minimize or Maximize from drop down list. For first Window in project. Cursor At Allows user to indicate the control to receive cursor via WinMain statement. For First Window in project. Win Position select an initial position for a Window in project from 9 commonly used positions. Selecting None will remove a prior selection. Reduce by TaskBar Companion property to Win Position. When selecting Center or Bottom Win Position choices, this Property indicates that the available Screen area be reduced by the Task Bar such that output EXW will not cover it. Control Order EXW control order. Not offered for Window, ToolBar, StatusBar, Menu and Popup Classes. Key into attribute or right click for transfer to Change Control Order Modal Window. <LIST> DropDownList of initial values for List/Combo controls. Right click for transfer to Initial Values Modal Window. Default Indexes Allows pre-selection of List indexes. Enter 1 for the first index. Enter 1,3,5 for the first, third and fifth item. Enter All (Case does not matter) to select all indexes. 0 will be treated as no selection. Create With Determines whether control statement uses 'constant' create or 'integer'. Select from constant/integer. Local Select flag True if EXW create statement is to eliminate 'global'. Toggle On and Off Ex Style Is used for providing Extended Flags when create. Default value is zero. Extended Style ListView Extended styles. Non editable. Parent Parent of control (Group, Table, Status Bar, Tool Bar, Tab Control, Tab Item or CWindow). Non editable except for Window Class and controls on layers 1-n. User may edit secondary Windows from drop down list of valid parents. When Window is for an .EW program, the primary window may be edited to any Window name, within the current PRJ or not. To make this work user must select from 'File Information' under Menu/Run and indicate .EW file type, at which time the 'parent' property is opened for input. Returning to .EXW file type will automatically remove the primary parent. When control is in layers other than layer 0, Parent contains a combo user may select an appropriate control as parent. Entries in the combo are selected from layer 0 and the active layer and enclose the selected control.
Style (if Class is Window) Attribute indicating the style for window. If more than one, separate with comma. From Right Click user may select Style and ExStyle from various window styles shown in another window. The Style, exStyle and classDefault may be viewed by clicking Generate button and passed back to Properties when OK button is clicked. Style Type (if Class is Window,CWindow) Indicates how style param is to be formatted. Has a drop down list. ClassDefaults Used by Window Styles Explorer and Child Window. User may also indicate style changes in this property, particularily if the Child Window has removed a style that the next window needs. CCWinStyle Generates classDefaults statement for CCwinstyle param only. Currently used by Visual Styles Explorer. Visible Toggle On or Off if control is visible. Enabled Toggle On and Off if control is enabled. Limit Text Number of characters to limit a text field. Min Value**** Minimum Scroll Value for UpDown, Scroll, Track and Progress bar controls. Max Value**** Maximum Scroll Value for UpDown, Scroll, Track and Progress bar controls. Line Change Small Scroll Change for Scroll and Track bar controls. Page Change Large Scroll Change for Scroll and Track bar controls. Buddy [Name] Name of Buddy control associated with UpDown Control. Add To Bottom List View Rows are build from top to bottom in the order added. Suppress Cell This cell in a Table Control, while showing in Design, is not passed to the generated EXW. Styles This attributes works like TreeView, Click to expand and contract to view various control styles below:. Upper Case Toggle On and Off. For edit controls. Lower Case Toggle On and Off. For edit controls. Read Only Toggle On and Off. For edit controls. Password Char Toggle On and Off. For edit controls. Numeric Toggle On and Off.For edit controls. MultiLine Toggle On and Off. For PushButton, ToggleButton, CheckBox and Radio. Checked Toggle On and Off. For CheckBox and Radio control. H Scroll Toggle On and Off for RichEdit and MleText control. Multiple Sel Add LBS_MULTIPLESEL to List Control Style if checked. Toggle On and Off. Extend Sel Add LBS_EXTENDEDSEL to List Control Style if checked. Toggle On and Off. RBBS_BREAK Toggle On and Off if add to ReBarBand. Default is Checked. Clickable Toggle On and Off if add to xText. Default is unchecked. Flat Toggle On and Off if PushButton is to have BS_FLAT appearance. Multiline Toggle On and Off if TabControl is to show all TabItem captions. Smooth Toggle On and Off if ProgressBar is to have PBS_SMOOTH. MultiSelect Toggle On and Off if MonthCalendar is to have MCS_MULTISELECT. No Integral Height Toggle On and Off if List or SortedList is to have LBS_NOINTEGRALHEIGHT. Other Flags Attribute indicating extra flags not yet supplied above. If more than one separate with comma. Back Color setWindowbackColor in RGB. Enter value directly or click Button. Suppress drawing window and controls with color by unchecking Menu Item Options/Draw window and controls with color System Color Select from drop down list of all COLOR_ defined within Win32lib. When selected, the choice will generate getSysColor(COLOR_choice) statements in EXW. BTNFACE is the default value and does not override any hard coded value input by User. Icon FileName setIcon file name. Enter file name or click BUTTON to select from Open Dialog. For Window and Icon Classes only except when adding Default ico File Name for FlatToolBar button. Pressing F1 will show the icon. Suppress drawing controls with ico by unchecking MenuItem Options/Draw controls with bitmap and ico. Icon FileNames ListView Ico File Names. Shows drop down list of ico files. Non Editable. Right click to transfer to ListView Explorer window. Hot Icon FName Enter file name or click BUTTON for Open Dialog to select hot ico file for FlatToolBar button. Pressing F2 will show this ico. Suppress drawing controls with ico by unchecking MenuItem Options/Draw controls with bitmap and ico. Dis Icon FName Enter file name or click BUTTON for Open Dialog to select disable ico file for FlatToolBar button. Pressing F3 will show this ico. Suppress drawing controls with ico by unchecking MenuItem Options/Draw controls with bitmap and ico. Bitmap FileName Enter file name or click BUTTON to select from Open Dialog. For Bitmap, TogglePicture and PictureButton Classes only. Suppress drawing controls with ico by unchecking MenuItem Options/Draw controls with bitmap and ico. XPM FileName xpm file name or emulated xpm include file name. Enter file name or click BUTTON to select from Open Dialog. For Toggle Picture and Picture Button Classes only. Suppress drawing controls with ico by unchecking MenuItem Options/Draw controls with bitmap and ico. XPM Member when XPM FileName is an include file, enter the member name of the emulated xpm. Hint Text Text for Hint. Note: Win32lib does not show separate hints for Tab Items. Not for ReBarBand control. Hint Font*** Font name for Hints. Enter file name or click BUTTON to select from Font Dialog. For Window Class only. When user has not entered a font, this field will be <Default> for the system default. Hint Font applies to Hints for all controls on the Window. Hint Font Points Points for Hint font above. When using Font Dialog this field is auto filled. Hint Font Italic Toggle True or False if Italic Font. When using Font Dialog and selected, this field is auto filled. Hint Font Bold Toggle True or False if Bold Font. When using Font Dialog and selected, this field is auto filled. Hint Font Underline Toggle True or False if Font Underline. When using Font Dialog and selected, this field is auto filled. Hint Font Stike Toggle True or False if Font Stikeout. When using Font Dialog and selected, this field is auto filled. Font*** Use Font to change CX and CY of MonthCalendar.Font name for control fonts. Enter file name or click BUTTON to select from Font Dialog. When user has not entered a font, this field will be <Default> for the system default. Not for ReBarBand control. Apparently Win32lib will apply font to all TabItems. If more than one TabItem has a font specified, and they are different, the right most specified font will be used. IDE does not try to draw this correctly. Suppress drawing controls with font by unchecking MenuItem Options/Draw controls with Font. Font Points Points for font above. When using Font Dialog this field is auto filled. Font Italic Toggle True or False if Italic Font. When using Font Dialog and selected, this field is auto filled. Font Bold Toggle True or False if Bold Font. When using Font Dialog and selected, this field is auto filled. Font Underline Toggle True or False if Font Underline. When using Font Dialog and selected, this field is auto filled. Font Strike Toggle True or False if Font Strikeout. When using Font Dialog and selected, this field is auto filled. Font Color For RichEdit Control only. Enter RGB value. May be supplied using Font Dialog or click BUTTON for Color Dialog. Indexed To This control was created using Indexed Copy. The control in this property is the primary Copied From. Transparency Allows user to add transparency to Windows on operating systems except Win95 and Win98. If User elects to use this feature user must have alphablend.ew (also known as alpha.ew) by Thomas Parslow on their system and must add to Manage Include Statements before Menu Run or Menu Temp Run. Transparency may be tested from Properties via right click. This Property will be disabled for Win98 and Win95. EuGrid Specific Refer to EuGrid documentation from Phil Russell's EuGrid distribution obtained from Euphoria's Recent Contributions Page. * Use Class drop down to change the class associated with the Tool Box icon to another associated class. See 'Using the Tool Box Icons' section above.** It is recommended that user generate all cells of a Table Control prior to changing individual cell Captions.
*** To return to system font, use the Delete or Backspace key to remove the font name and <Default> will be returned.
(Name), Caption, CX, and CY are derived from a Control List. User may change these values via Menu Options/Configure IDE/Values Used to Create A New Control. The change may be temporary for several controls, the IDE session or Saved for future runs of IDE.
Changing any attribute affects the Design window immediately and is not recoverable except by re-entering. A future release may offer an UnDo feature.
Changing every attribute may not be allowed for some controls.
Some controls default to a specific Style when added to the Design window. Note that the default Style does not contain or_all, parenthesis and brackets.
Style Type contains or_all({entry}), {entry} and entry. Specify which way to format the Style in the EXW or EW output file. Select one of the following: or_all({entry}), {entry} or entry, where entry will be the value coded into the style field. If Style Type is not selected for a Window, {entry} is the default.
Upper Case, Lower Case, Password Char, Read Only and Numeric are only for edit controls. Not all fields are applicable for MleText or RichEdit. MultiLine is for PushButton and ToggleButton only. For RichEdit, H Scroll may be selected. When this flag is selected, WS_HSCROLL is automatically supplied. These styles will be or_all'd with any entries in Other Style.
Limit Text is only for edit controls.
UpDown has an edit control as Buddy. The Buddy is the field that shows the numerical changes as the UpDown is clicked. The Buddy may be identified to Win32Lib via UDS_AUTOBUDDY or setBuddy(). Either method may be used with IDE but to simplify problems using UpDown the default is setBuddy. To facilitate identification of the control that is the Buddy, enter the control's (Name) in Buddy (Name) attribute. When the EXW is generated, the setBuddy statement will be automatically generated for those UpDown controls having supplied "Buddy (Name)" otherwise the user must add UDS_AUTOBUDDY to the UpDown control's " Other Flags." For the counter in the Buddy to increment when up arrow is clicked and decrement when down arrow is clicked, setScrollRange values must be provided. ****When both Min Value and Max Value are zero, the setScrollRange is not created in the output EXW.
Back Color has been added to Properties for window and other controls that support background color. Clicking BUTTON will access the Color Dialog. Otherwise the RGB color must be input by user. Default color is ButtonColor for Window class and 0 -- no color -- for controls. When the EXW and PRJ files are generated, if Back Color is the value of <Default> for a window, the setWindowBackColor statement will not be created and the value in the PRJ file will be 0. For Window Class, System Default property may also be used to further refine Window class. Selecting an entry from the drop down list will produce a getSysColor(COLOR_choice) statement in the EXW program. BTNFACE is the default and does not override any hard coded value input by User.
Caption may specify multiple column heading for ListView. The user must specify quote marks where needed. For example a List View Caption of two columns might be "the heading 1","the heading 2". Quotes may be imbedded within the column name and it would be formatted such: "the heading1 for "things"","the heading 2".
Caption may specify quote marks for PushButton. But no other controls or window should contain quote marks in Caption.If the .ico file, .bmp file or .xpm file is in the same folder as the resulting EXW program, user may wish to edit Icon FileName and Bitmap FileName to remove drive and parent folder such as C:\euphoria........\xyz.ico to xyz.ico.
Properties supports XPM. There are two types of XPM that IDE can handle. One is a real XPM file such as Close.xpm which has an extension of .xpm and the other is the emulated XPMs such as seen in IDE_xpm.ew include file. (1) When using the real XPM, user adds the XPM file name whatever.xpm via Properties XPM FileName. When EXW is generated IDE adds a canned procedure to convert the XPM file and place onto the button. (2) When using the emulated XPM, user may add XPM include file name, e.g. IDE_xpm.ew, via Menu Generate Tools/Manage Include Statement and also in Properties enters the include file name in XPM FileName and indicates the XPM name within the include file in XPM Member. When EXW is generated IDE adds a canned procedure to convert the XPM names and place onto the buttons. If user does not add the include module to IDE, IDE will add it at Menu Generate Program time.
Multiple controls may be selected for changes in Properties. The controls must all be the same class. Click a control and press Shift+S, then select and press Shift+S for every control you wish to mass change. If you change your mind press Shift+A. The next changes made in Properties will apply to all the selected controls. When completed with changes for these controls, press Shift+A to terminate multiple processing. Not for X, Y, Name, Caption (when TabItem) Properties or Window Class.
Credits:
Aku suggested multiple control updates for Properties. Various additions to the Properties list have been suggested by Aku, Bryan Broker, Martin Stachon and Yuugure Chiisana. There are others who have suggested additions to Properties who are not recorded in my notes. I wish to give everyone credit for helping improve IDE so please notify me of your missing name. Return to Table of Contents
Associated with Code Editor is a dialog window for selecting the syntax colorization colors, number of columns for tab, number of UnDo allowed and updates for the syntax words by category. Click the 'Tool' bitmap located at the bottom right next to intersection of scroll bars or Menu Item. User may add/remove words, series of words or the complete category.
Credits:
- Moving Options window contributed by Elliott S. de Andrade.
Included with IDE is a program Winlibscan.exw which updates OtherC.ini file, with a collection of Win32lib.ew keywords, to assist the user in upgrading to a new Win32lib.ew release.
Right mouse brings up a popup menu with 'undo/cut/copy/paste/select all' options.
Returning to a line of code when switching between modules and class modules
User may switch between modules and class modules and between themselves via the combos at top of editor as well as Project View. The line returned to is the last cursor position as shown in the status bar. Scrolling does not establish cursor position so if there were no changes made to the line to be returned to, user must click in the line with the mouse. The last cursor position is kept for the duration of the current IDE session unless ex.err intervenes.
Credits:
- Logic of returning to last cursor position was contributed by Andy Drummond.
Adding Code To Controls or Module:
Right click, double click a control in the Design window, press hot key, or select from Menu Editors, and the Code Editor Window will appear. If code already exists, selecting from Class Modules in Project View will also open the Code Editor. Clicking a node under Modules will open Code Editor with routines from the included module. To add code for a Menu Item, in Design select the Menu the Menu Item is under and move the mouse down to the Menu Item and release or use Menu Editor and right or double click on the menu item in the bottom box or select from Menu Editor Menu. If a Menu has ! anywhere in its caption, it also may transfer Code Editor but only for the onClick event. Code for PopUps and Timer are done in a similar manner from PopUp Editor and Timer Editor, respectively. Timer Editor will allow only the window control onTimer event.User may scroll to selected routines from Module or Control's (General),(Intro) and (Final) events via Menu Item List Routines. The list box item "All Routines" takes user to the top of the Module or control-event event.
The Code Editor Window has the following fields:
Control Function Control Determines the control for which code is being associated. Long, thin button Click button to hide Control List and resize the edit panel. Click again to restore. Event Lists all events that can be associated with the control. [At the moment, it simply displays all the events, even if they don't apply to the control.] Module All Included Modules for the Project and files opened during the current editor session.The include module name may also be selected from Project View or Project Module Open in Code Editor. When selected, code is associated with the module instead of control. Edit Displays the code associated with the control/event pair or include module. Code for Class Modules is temporarily saved internally within IDE when the Control or Event is changed, a different Module is selected, a Module is Opened from Menu Module File/Open, 'Run' or 'Temp Run' is requested from MenuGenerate Program or Tool bar or the Code Editor is closed. Module code is not associated with events. An event that has actual control code will be flagged in the event combo box with an asterisk. If code is subsequently removed, so is the asterisk. Events without code are not written to the project file or EXW or EW file. If the event is desired in these files, code a comment. When an event is first presented, a blank line with the cursor, will be inserted after 'procedure......'. Re-selection of the event code will show the cursor positioned at the first line 'procedure ......'.New code for control-event pairs will present a suggested procedure name and final statement. For control-event pairs the initial format will be for setHandler style. If user prefers onXXX style, uncheck the menu item 'Use setHandler' under Menu Options. These may be modified in any way desired except removal. User may replace onXXX with a setHandler statement on previously created control-event code. IDE will not verify accuracy of user modifications of these statements.
Code for Modules is not temporarily saved. It is saved via the Code Editor Menus Module File/Save or SaveAs selection or when switching to a Control or Event selection. NOTE: if a module has an associated PRJ file, modifying the module will not alter the PRJ file. This may present problems when reloading the PRJ file for modifications. A program written by Martin Stachon may facilitate reloading and may be found on Euphoria's Recent Contributions Page.
Menu Options/When SaveAs Mod