Author:admin

Date:2008-09-25T16:19:15.000000Z


git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@44 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
This commit is contained in:
jfiat
2008-09-25 16:19:15 +00:00
parent 7d4e6a18b3
commit 2780526eae
234 changed files with 374 additions and 382 deletions

View File

@@ -5,19 +5,19 @@ An EiffelBuild [[EiffelBuild Notation|object]] is a representation of a Vision2
To create a new instance of an object, [[EiffelBuild Notation|pick]] a type from the [[Type selector|type selector]] and [[EiffelBuild Notation|drop]] onto an existing [[EiffelBuild Notation|object]] (Accessible from the [[Layout constructor|layout constructor]] or [[Builder window|builder window]] ). You will only be able to complete the [[EiffelBuild Notation|drop]] if the targeted [[EiffelBuild Notation|object]] will accept a new object of the transported type.
{{note| '''Note''': Once an [[EiffelBuild Notation|object]] has been [[Create an object|created]] , it will always be contained in a parent [[EiffelBuild Notation|object]] until [[Delete an object|deleted]] . }}
{{note|Once an [[EiffelBuild Notation|object]] has been [[Create an object|created]] , it will always be contained in a parent [[EiffelBuild Notation|object]] until [[Delete an object|deleted]] . }}
==Creating Window and Dialog Objects==
Window and dialog objects are created by picking a type from the [[Type selector|type selector]] and dropping into the [[Widget selector|widget selector]] . If the target of the drop is a directory within the widget selector, the new object is created within that directory, otherwise in the root of the project location. Window and dialog objects are generated as individual classes by EiffelBuild.
{{note|'''Note''' If there are no other windows or directories in the project, the newly created object is set as the root window.}}
{{note|If there are no other windows or directories in the project, the newly created object is set as the root window.}}
==Creating objects for re-use==
If you wish to create an object that may be re-used in multiple locations within your EiffelBuild project, pick the type from the [[Type selector|type selector]] and drop into the [[Widget selector|widget selector]] . This ensures that at generation time, the object is generated as a seperate class (as with all objects in the [[Widget selector|widget selector]] ). Objects within the [[Widget selector|widget selector]] may be used in a client fashion within other object structures as required, and any changes made to these objects are reflected at all locations in which they are used.
{{seealso| '''See Also''' <br/>
{{seealso|<br/>
[[Type selector|Type selector]] <br/>
[[Reparent an Object|Reparent an object]] <br/>
[[Delete an object|Delete an object]] }}

View File

@@ -5,9 +5,9 @@ To remove an [[EiffelBuild Notation|object]] from your EiffelBuild system, [[Ei
You may also delete via the keyboard by pressing the delete key while the tool containing the objects representation has the focus. Whichever [[EiffelBuild Notation|object]] has the selection is deleted.
{{note| '''Note''': To restore a deleted object, you may use the [[History|History]] }}
{{note|To restore a deleted object, you may use the [[History|History]] }}
{{seealso| '''See Also''' <br/>
{{seealso|<br/>
[[History|History]] <br/>
[[Type selector|Type selector]] }}

View File

@@ -15,7 +15,7 @@ Selecting 'Ok' will create a new project, overwriting the existing project, and
Selecting 'Cancel' will return you to the directory selection dialog, from which you can select the directory in which you wish to create the new Build project.
{{seealso| '''See Also''' <br/>
{{seealso|<br/>
[[Retrieving a project from a Build project file|Retrieving a project from a Build project file]] <br/>
}}

View File

@@ -13,7 +13,7 @@ You may also open a recent EiffelBuild project via the 'Recent Projects' entry o
This list contains the most recent projects that have been used within EiffelBuild, and if none are available, this list is empty and the menu option disabled.
{{seealso| '''See Also''' <br/>
{{seealso|<br/>
[[EiffelBuild: Creating a new project|Creating a new project]] }}

View File

@@ -14,7 +14,7 @@ Upon completion of the import, there are two possible outcomes:
* One or more name clashes occurred: One or more objects or constants from the imported project had names that matched that of objects in the open project. As the names are used directly in the generated code, they must be unique within their scope (accessible within the code), and therefore EiffelBuild must resolve these clashes. A dialog is displayed on screen showing all the names that were resolved by EiffelBuild:
[[Image:import-project-clashes]]
{{note| '''Note''': If a name clash occurs, the names of the imported project are modified, not the open project. }}
{{note|If a name clash occurs, the names of the imported project are modified, not the open project. }}

View File

@@ -7,11 +7,11 @@ When an [[EiffelBuild Notation|object]] is inserted into a parent, it is always
You can access [[EiffelBuild Notation|objects]] from both the [[Builder window|builder window]] and [[Layout constructor|layout constructor]] .
{{note|'''Note''' Although window and dialog objects may be accessed within the [[Widget selector|widget selector]] , it is not possible to build into these objects, you should use the [[Layout constructor|layout constructor]] or [[Builder window|builder window]] directly in this situation. }}
{{note|Although window and dialog objects may be accessed within the [[Widget selector|widget selector]] , it is not possible to build into these objects, you should use the [[Layout constructor|layout constructor]] or [[Builder window|builder window]] directly in this situation. }}
For more information about an [[EiffelBuild Notation|objects]] capacity and permitted children, see the [[EiffelVision Introduction|EiffelVision2]] documentation.
{{seealso| '''See Also''' <br/>
{{seealso|<br/>
[[Create an object|Create an object]] <br/>
[[Delete an object|Delete an object]] <br/>
[[Builder window|Builder window]] <br/>

View File

@@ -5,9 +5,9 @@ To save the project that is currently open, select '''Save''' from the '''File''
Alternatively, you may use the keyboard shortcut - '''Ctrl+S'''
{{note| '''Note''': If no changes have been made to the system, the save command will be disabled. }}
{{note|If no changes have been made to the system, the save command will be disabled. }}
{{seealso| '''See Also''' <br/>
{{seealso|<br/>
[[EiffelBuild: Key shortcuts|Key shortcuts]] }}

View File

@@ -10,7 +10,7 @@ This window may either be shown or hidden (default). To change between these two
The content of this window is a representation of the [[EiffelBuild Notation|objects]] you have defined in your project. Each [[EiffelBuild Notation|object]] is represented by the [[EiffelVision Introduction|EiffelVision2]] control matching its type. For example, an [[EiffelBuild Notation|object]] representing an <eiffel>EV_BUTTON</eiffel> will be displayed in here using an <eiffel>EV_BUTTON</eiffel>. As this view provides direct access to the objects ( [[EiffelBuild Notation|Pick]] any of the controls in this window), it enables you to build your interface within a view which provides rich visual feedback.
Because this window is just a view of the [[EiffelBuild Notation|objects]] , it will be always synchronized with the [[Layout constructor| layout constructor]] . This means you can [[Reparent an Object| re-parent objects]] , using the [[EiffelBuild Notation|pick and drop]] transport method, seamlessly between the two views. <br/>
{{note|'''Note:''' Holding Ctrl while right clicking on an [[EiffelBuild Notation|object]] in the Builder Window creates a new [[Object editor|object editor]] targeted to the [[EiffelBuild Notation|object]] . Holding Ctrl and Shift while right clicking on an [[EiffelBuild Notation|object]] , highlights it within the [[Layout constructor|layout constructor]] .}}
{{note|Holding Ctrl while right clicking on an [[EiffelBuild Notation|object]] in the Builder Window creates a new [[Object editor|object editor]] targeted to the [[EiffelBuild Notation|object]] . Holding Ctrl and Shift while right clicking on an [[EiffelBuild Notation|object]] , highlights it within the [[Layout constructor|layout constructor]] .}}
==Visual Differences==
@@ -24,7 +24,7 @@ The properties of the [[EiffelBuild Notation|objects]] in you system are always
* 'user_can_resize', 'maximum_width', 'maximum_height' and 'title_string' are not reflected in this window.
* 'minimum_width' and `minimum_height' are not reflected in any of the controls representing [[EiffelBuild Notation|objects]] within this window.
{{seealso| '''See also''' <br/>
{{seealso|<br/>
[[Display window|Display window]] <br/>
[[Layout constructor| Layout constructor]] }}

View File

@@ -24,13 +24,13 @@ If the [[EiffelBuild Notation|pick and drop]] completed successfully, then you
To remove a [[EiffelBuild Notation|component]] from your EiffelBuild system, [[EiffelBuild Notation|pick]] it, and then [[EiffelBuild Notation|drop]] it on [[Image:icon-delete-small-color]] in the [[Main toolbar| main toolbar]] .
{{note| '''Note''': The deletion of a [[EiffelBuild Notation|component]] cannot be undone. }}
{{note|The deletion of a [[EiffelBuild Notation|component]] cannot be undone. }}
==Viewing a component==
To view an existing component, use the [[Component viewer|component_viewer]] .
{{seealso| '''See also''' <br/>
{{seealso|<br/>
[[Component viewer|Component_viewer]] <br/>
[[Builder window|Builder window]] <br/>
[[Layout constructor| Layout Constructor]] }}

View File

@@ -19,9 +19,9 @@ Looking at the left-hand screenshot above, you can see that the [[Image:icon-co
* '''Builder view''' - This view is similar to the view used by the [[Display window|display window]] . i.e. the [[EiffelVision Introduction|EiffelVision2]] controls are displayed exactly as is defined in the [[EiffelBuild Notation|component]] .
* '''Display view''' - This view is similar to the view used by the [[Builder window|builder window]] . i.e. all [[EiffelVision Introduction|EiffelVision2]] containers are represented by frames so they are immediately visible. This makes the actual structure represented by the [[EiffelBuild Notation|component]] completely visible.
{{note| '''Note''': The type of the "root_object" within the component is displayed in the toolbar of the component viewer. }}
{{note|The type of the "root_object" within the component is displayed in the toolbar of the component viewer. }}
{{seealso| '''See also''' <br/>
{{seealso|<br/>
[[Builder window|Builder window]] <br/>
[[Layout constructor| Layout constructor]] }}

View File

@@ -30,7 +30,7 @@ To add a new constant to your project, select the type of the constant that you
* '''Font''' - Enter a name in the "Name" field, and then select "New" which displays a font dialog. Selecting a font from this dialog and pressing "OK" adds the new font constant to the project.
* '''Color''' - Enter a name in the "Name" field, and then select "New" which displays a color dialog. Selecting a color from this dialog and pressing "OK" adds the new color constant to the project.
{{note| '''Note''': After adding a new constant, it is immediately displayed with all constants in the dialog. }}
{{note|After adding a new constant, it is immediately displayed with all constants in the dialog. }}
===Modifying an existing constant===
@@ -50,7 +50,7 @@ To remove a constant from the project, select it in the multi column list, and s
As objects are reliant on the constant you are removing, you must confirm that you really wish to remove it from the system. If you select "OK", the constant is removed, and the object property relying on that constant is converted to a manifest value. For example, if you are using an Integer constant with a value of 100, and you remove the constant, the property no longer references the constant, but is set explicitly to 100.
{{note| '''Note''': You may sort the constants displayed in the dialog, by clicking the associated column header. }}
{{note|You may sort the constants displayed in the dialog, by clicking the associated column header. }}
==String constant==
@@ -148,7 +148,7 @@ The Pixmap Constant dialog is used to select pixmaps for addition to an EiffelBu
[[Image:pixmap-selection-dialog]]
An individual pixmap may be selected, or a whole directory of pixmaps may be selected from this dialog for addition. In the screenshot above, a directory containing two pixmaps was selected. The "Build from" option at the bottom of the dialog permits you to select if you wish to add an absolute or relative pixmap, and if multiple pixmaps are being added, the currently selected pixmap from the list above is active. The relative "DIRECTORY" for relative pixmaps is filled in automatically if EiffelBuild finds a directory constant in the system that matches the path chosen. If not, you may enter a name in this field to create a new directory matching the required path. If you do not enter a directory name for one or more relative pixmaps, upon closing the dialog, you will be prompted to enter a name for a directory constant used for these pixmaps.
{{note| '''Note''': If you are selecting new pixmaps, and they appear in the dialog as unchecked, it means that an equivalent pixmap already exists in the project. }}
{{note|If you are selecting new pixmaps, and they appear in the dialog as unchecked, it means that an equivalent pixmap already exists in the project. }}
==Loading constants==
@@ -162,9 +162,9 @@ By default, all constant values are hard coded into the implementation class, bu
Constants may be associated to properties of your [[EiffelBuild Notation|objects]] via an [[Object editor|object editor]] targeted to that [[EiffelBuild Notation|object]] . The [[Image:icon-format-onces-color]] button denotes the use of a constant value. For more information regarding using constants, in [[Object editor|object editors]] , see [[Object editor|object editor]] .
When an EiffelBuild project is generated, all constants are added to a class, inherited by each window class. There is an "_IMP" and interface versions of these classes as with each window. For more information regarding the generation of constants, see [[EiffelBuild: Code Generation|code generation]] .
{{note| '''Note''': To modify pixmap constants based on the current installation of an EiffelBuild generated interface, simply redefine the Directory constant used to access the pixmaps within the interface constants class (not "_IMP"), which is not re-generated if it already exists. }}
{{note|To modify pixmap constants based on the current installation of an EiffelBuild generated interface, simply redefine the Directory constant used to access the pixmaps within the interface constants class (not "_IMP"), which is not re-generated if it already exists. }}
{{seealso| '''See also''': <br/>
{{seealso|<br/>
[[EiffelBuild: Code Generation|Code generation]] <br/>
[[Object editor|Object editor]] <br/>
[[EiffelBuild: Project settings window|Project settings]] }}

View File

@@ -11,7 +11,7 @@ This view is provided so that you can really see what your project will look lik
All properties that have been set on the [[EiffelBuild Notation|objects]] in your project are set in the [[EiffelVision Introduction|EiffelVision2]] control matching its type.
{{seealso| '''See Also''' <br/>
{{seealso|<br/>
[[Builder window|Builder window]] <br/>
[[Layout constructor|Layout constructor]] }}

View File

@@ -21,7 +21,7 @@ If the "generate as client" option is selected for a particular object (changeab
[[Image:class-project-diagram-client]]
{{note| '''Note''': All other diagrams on this page show only the non client version of the settings, where the generated widget inherits from the EiffelVision class. }}
{{note|All other diagrams on this page show only the non client version of the settings, where the generated widget inherits from the EiffelVision class. }}
==Project build type==
@@ -40,11 +40,11 @@ The choice to generate an interface and an implementation class for the windows
Using this mechanism, you can generate your initial system using EiffelBuild, and implement any event features that have been generated (in the interface) by EiffelBuild. If you then decide that you wish to modify the look and the feel of the interface, you can return to EiffelBuild, make the necessary adjustments and then re-generate the system.
{{note| '''Note''': When returning to EiffelBuild to modify the interface, if you delete or rename controls, then it is quite possible that you will break your existing code. Care should be taken with all changes of this type. }}
{{note|When returning to EiffelBuild to modify the interface, if you delete or rename controls, then it is quite possible that you will break your existing code. Care should be taken with all changes of this type. }}
Looking at a generated system, you will see that the [[Object editor|events]] connected to your controls are defined as deferred in the implementation and actually implemented in the interface class. This means that if you return to EiffelBuild with a previously generated system, and add a new event to a control, then you will have to implement the definition in the interface class yourself (as the class interface class is not re-generated).
{{seealso| '''See also''': <br/>
{{seealso|<br/>
[[EiffelBuild: Project settings window|Project settings]] }}

View File

@@ -16,7 +16,7 @@ The tool may now be freely moved to any location on screen, in the same fashion
** '''Closing the window''' - Clicking the cross displayed to the right hand side of the windows title bar causes the window to be destroyed, and the tool contained to be restored back to its original position within the main window.
{{note| '''Note''': The position of tools that have been docked, is maintained automatically between EiffelBuild sessions. When a new project is opened, they are restored to the positions that they had during the last use. }}
{{note|The position of tools that have been docked, is maintained automatically between EiffelBuild sessions. When a new project is opened, they are restored to the positions that they had during the last use. }}
==Main window with externally docked tools==
@@ -24,7 +24,7 @@ The following screenshot illustrates the appearance of the main window with all
[[Image:main-window-with-docked-tools]]
{{seealso| '''See Also''' <br/>
{{seealso|<br/>
[[EiffelBuild: General interface description|General interface description]] }}

View File

@@ -38,7 +38,7 @@ This page gathers all the keyboard shortcuts available in the environment.
'''Note''': These shortcuts are not always available and are dependent on the state of EiffelBuild. For example, Ctrl+S does nothing if there is no modified project open.
{{seealso| '''See Also''' <br/>
{{seealso|<br/>
[[EiffelBuild: General interface description|General interface description]] }}

View File

@@ -16,7 +16,7 @@ The window contains several different tools, highlighted below:
The [[Type selector|type selector]] , [[Component selector|component selector]] and [[Widget selector|widget selector]] may all be docked from their original position, permitting re-ordering and customization of the main window. Each of these may be docked external to the main window, permitting each to be displayed in their own movable window. For more information regarding the docking mechanism, see [[Docking|docking]] .
{{seealso| '''See Also''' <br/>
{{seealso|<br/>
[[Main toolbar| Main toolbar]] <br/>
[[Layout constructor| Layout constructor]] <br/>
[[Type selector|Type selector]] <br/>

View File

@@ -13,9 +13,9 @@ The button marked "Restore Defaults" in the lower left hand corner of the dialog
When you have finished modifying the preferences, select the "Close" button to close the dialog.
{{note| '''Note''': The preferences are saved automatically by EiffelBuild, even if the open project is not saved, the preferences are saved whenever a property changes. }}
{{note|The preferences are saved automatically by EiffelBuild, even if the open project is not saved, the preferences are saved whenever a property changes. }}
{{seealso| '''See also''': <br/>
{{seealso|<br/>
[[EiffelBuild: General interface description|General interface description]] <br/>
[[EiffelBuild Reference|EiffelBuild reference]] }}

View File

@@ -31,7 +31,7 @@ This entry is used as the name of the constants class generated by EiffelBuild t
{{seealso| '''See Also''' <br/>
{{seealso|<br/>
[[EiffelBuild: Code Generation|Code generation]] <br/>
[[EiffelBuild: Project settings window|Project settings window]] <br/>
[[Generation Tab|Generation tab]] <br/>

View File

@@ -15,7 +15,7 @@ The window is organized as two tabs:
All options are enabled and saved into the project settings file, 'build_project.bpr' as soon as the window is closed.
{{seealso| '''See Also''' <br/>
{{seealso|<br/>
[[EiffelBuild: Code Generation|Code generation]] }}

View File

@@ -25,9 +25,9 @@ Looking at the screenshot above, you will see that the last action in the histor
If you execute an action which will be added to the history while the history is not at the final position, all history events after this current position will be removed, and the history will be up to date again.
{{note| '''Note''': If you use the history list to move through many recorded actions at once, there may be a slight delay dependent on the systems complexity and steps moved. }}
{{note|If you use the history list to move through many recorded actions at once, there may be a slight delay dependent on the systems complexity and steps moved. }}
{{seealso| '''See also''' <br/>
{{seealso|<br/>
[[Builder window|Builder window]] <br/>
[[Layout constructor| Layout constructor]] }}

View File

@@ -41,7 +41,7 @@ You may convert an existing widget structure into a locked instance of a widget
{{note|Double clicking on a locked object within the Layout Constructor, targets the object of which it is an instance to the Layout Constructor. }}
{{seealso| '''See Also''' <br/>
{{seealso|<br/>
[[Builder window|Builder window]] <br/>
[[Object editor|Object editor]] <br/>
[[Display window|Layout window]] }}

View File

@@ -19,7 +19,7 @@ These object editors appear in their own window, and you may open as many of the
To open a new floating object editor, [[EiffelBuild Notation|drop]] an [[EiffelBuild Notation|object]] on [[Image:icon-object-editor-color]] , displayed in the [[Main toolbar| main toolbar]] and also in each existing object editor. The new object editor will then be targeted to the [[EiffelBuild Notation|object]] that was [[EiffelBuild Notation|dropped]] .
{{note| '''Note''': If the [[EiffelBuild Notation|object]] targeted to floating object editor is deleted, then the editor will be destroyed. This helps stop the screen becoming cluttered with empty editors. }}
{{note|If the [[EiffelBuild Notation|object]] targeted to floating object editor is deleted, then the editor will be destroyed. This helps stop the screen becoming cluttered with empty editors. }}
As a shortcut to a complete [[EiffelBuild Notation|pick and drop]] transport, you may hold down the Ctrl key while starting the [[EiffelBuild Notation|pick]] , which will immediately open a new floating object editor targeted to the [[EiffelBuild Notation|object]] you clicked.
@@ -33,7 +33,7 @@ When an object editor is targeted to an [[EiffelBuild Notation|object]] , you wi
All properties that may be manipulated in an object editor correspond directly to a property of the [[EiffelVision Introduction|EiffelVision2]] control that is represented by the [[EiffelBuild Notation|object]] (Displayed in an object editor as '''type'''). There is one exception to that rule though, and that is the '''Name''' field which is specific to EiffelBuild. This field is used for your identification of the [[EiffelBuild Notation|object]] and as the attribute name in the generated code. For example, when EiffelBuild generates code corresponding to the [[EiffelBuild Notation|object]] targeted in the editor shown above, it would declare the vision2 component as - button1: EV_BUTTON
{{note| '''Note''': You may have as many object editors targeted to the same [[EiffelBuild Notation|object]] as you wish. Whenever a change is made to the [[EiffelBuild Notation|object]] through one of the editors, all other editors targeted to that [[EiffelBuild Notation|object]] are synchronized. }}
{{note|You may have as many object editors targeted to the same [[EiffelBuild Notation|object]] as you wish. Whenever a change is made to the [[EiffelBuild Notation|object]] through one of the editors, all other editors targeted to that [[EiffelBuild Notation|object]] are synchronized. }}
==Using Constants==
@@ -52,7 +52,7 @@ For all "top level" objects (those contained within the [[Widget selector|widget
As well as being able to manipulate the standard properties of an [[EiffelBuild Notation|object]] , facilities are provided for connecting to the events of an [[EiffelBuild Notation|object]] . Looking at the object editor screenshot above, you will see that there is a button marked '''Select events''' which is also available in all targeted editors.
{{note| '''Note''': The button will be marked '''Modify events''' when one or more events are already selected for the current [[EiffelBuild Notation|object]] . }}
{{note|The button will be marked '''Modify events''' when one or more events are already selected for the current [[EiffelBuild Notation|object]] . }}
Clicking this button will cause the following dialog to be displayed:
@@ -62,9 +62,9 @@ Looking at the screenshot above, you will see that this dialog contains all the
If you check a button connected with one of the action sequences, you will be then able to enter the name of a feature that you wish to connect to the action sequence. The screenshot above shows the user has connected a feature named `button_pressed' to the `select_actions'. When [[EiffelBuild: Code Generation|code is generated]] , this will cause EiffelBuild to generate an empty feature named `button_pressed' already connected to the `select_actions' of the button.
{{note| '''Note''': You will only be allowed to enter valid and unique Eiffel feature names. If a name is invalid, it will be highlighted in red, and a dialog will warn you when you attempt to close the dialog. }}
{{note|You will only be allowed to enter valid and unique Eiffel feature names. If a name is invalid, it will be highlighted in red, and a dialog will warn you when you attempt to close the dialog. }}
{{seealso| '''See Also''' <br/>
{{seealso|<br/>
[[Create an object|Create an object]] <br/>
[[Delete an object|Delete an object]] }}

View File

@@ -10,7 +10,7 @@ With this control, you can merge two or more instances of <eiffel>EV_CONTAINER</
==Merging==
To create a new merge, [[EiffelBuild Notation|pick]] an [[EiffelBuild Notation|object]] of type <eiffel>EV_CONTAINER</eiffel>, and [[EiffelBuild Notation|drop]] it anywhere on the control. This will merge the radio button group of the <eiffel>EV_CONTAINER</eiffel> referenced in the object editor, to the transported one. Each merge, will show up as a new item in the control.
{{note| '''Note''': Container objects may only be grouped once, and as such, you will not be permitted to add an [[EiffelBuild Notation|object]] that is already contained in the list. }}
{{note|Container objects may only be grouped once, and as such, you will not be permitted to add an [[EiffelBuild Notation|object]] that is already contained in the list. }}
==Unmerging==

View File

@@ -7,7 +7,7 @@ If the current [[EiffelBuild Notation|object]] in the object editor is of type
* '''Moving''' - Press and hold the left mouse button within the selected child, and move the mouse.
* '''Resizing''' - Move the mouse over the border of the child, until the cursor changes to a resize cursor, then press and hold the left mouse button to re-size the child.
{{note| '''Note''': As placing a child in an <eiffel>EV_FIXED</eiffel> does not modify the size of the child, it is possible that some children have a size of 0x0 pixels, and hence do not show up in the diagram. In this case, there will be the following displayed in the status bar "Widget is 0x0 pixels, click HERE to enlarge". If you subsequently click on the status bar, then the widget will be enlarged to a more useful size. }}
{{note|As placing a child in an <eiffel>EV_FIXED</eiffel> does not modify the size of the child, it is possible that some children have a size of 0x0 pixels, and hence do not show up in the diagram. In this case, there will be the following displayed in the status bar "Widget is 0x0 pixels, click HERE to enlarge". If you subsequently click on the status bar, then the widget will be enlarged to a more useful size. }}
==Grid Properties==

View File

@@ -9,7 +9,7 @@ Each of the children are displayed on a grid representing the table cells that e
* '''Moving''' - Press and hold the left mouse button within the selected child, and move the mouse.
* '''Resizing''' - Move the mouse over the border of the child, until the cursor changes to a resize cursor, then press and hold the left mouse button to re-size the child.
{{note| '''Note''': Each child, may only occupy a unique set of cells within the table, and if you attempt to move or re-size a child to an invalid position, it will be displayed in gray. }}
{{note|Each child, may only occupy a unique set of cells within the table, and if you attempt to move or re-size a child to an invalid position, it will be displayed in gray. }}
When you have finished manipulating the children of the table, click the button marked "Done" to close the dialog.

View File

@@ -7,7 +7,7 @@ The type selector contains all the available Vision2 types supported by EiffelBu
The types are organized into three groups - Primitives, Containers and Items. All types that may be used in EiffelBuild have a text in uppercase, corresponding to their type in [[EiffelVision Introduction|EiffelVision2]] . For example, looking at the screenshot above, the <eiffel>BUTTON</eiffel> item represents an <eiffel>EV_BUTTON</eiffel>, and the <eiffel>EV_COMBO_BOX</eiffel> item represents <eiffel>EV_COMBO_BOX</eiffel>.
{{note| '''Note''': The types available in the type selector are fixed, and cannot be modified. Almost all [[EiffelVision Introduction|EiffelVision2]] components are available. }}
{{note|The types available in the type selector are fixed, and cannot be modified. Almost all [[EiffelVision Introduction|EiffelVision2]] components are available. }}
==Creating a new object==
[[EiffelBuild Notation|Objects]] are the building blocks used in EiffelBuild to construct your interface. To create a new [[EiffelBuild Notation|object]] for use in your system, [[EiffelBuild Notation|pick]] the type corresponding to the type of object you wish to create,and [[EiffelBuild Notation|drop]] onto an [[EiffelBuild Notation|object]] representation. If an object is full, or does not allow other objects of the new type to be contained, then you will not be able to [[EiffelBuild Notation|drop]] on it. <br/>
@@ -18,7 +18,7 @@ This shows how simple it is to Build new [[EiffelBuild Notation|objects]] in Ei
You may drop an object directly from the Type Selector into the [[Widget selector|widget selector]] which creates the object as a "top level object" ensuring that upon generation, it is represented by an individual set of classes. These top level objects may then be re-used within your interface as desired.
{{note| '''Note''': To understand the types accepted, and the capacity of objects, you should consult the [[EiffelVision Introduction|EiffelVision2]] library reference. }}
{{note|To understand the types accepted, and the capacity of objects, you should consult the [[EiffelVision Introduction|EiffelVision2]] library reference. }}
==Changing the type of an existing object==
@@ -32,7 +32,7 @@ The following rules govern if the type of an existing object may be changed to a
* The parent of the existing [[EiffelBuild Notation|object]] must accept children of type corresponding to the new type.
* The new type must be able to accept all of the existing [[EiffelBuild Notation|objects]] children.
{{seealso| '''See Also''' <br/>
{{seealso|<br/>
[[Layout constructor|Layout constructor]] <br/>
}}

View File

@@ -11,7 +11,7 @@ To add an Object to your project, [[EiffelBuild Notation|pick]] the object type
* '''The Widget Selector itself''' - The newly created object is added to the root directory of the project.
* '''A Directory node''' - The newly created object is added to the directory that was the target of the drop.
Both of these outcomes create a new object in your project that is to be generated as an individual class during code generation.
{{note| '''Note''': The selected object in the Widget Selector is automatically targeted as the root window of the [[Layout constructor|layout constructor]] , permitting building. You may not build directly into the representation of an object within the Widget Selector, as this must be performed within the [[Layout constructor|layout constructor]] or [[Builder window|builder window]] . }}
{{note|The selected object in the Widget Selector is automatically targeted as the root window of the [[Layout constructor|layout constructor]] , permitting building. You may not build directly into the representation of an object within the Widget Selector, as this must be performed within the [[Layout constructor|layout constructor]] or [[Builder window|builder window]] . }}
==Root Window==
@@ -27,10 +27,10 @@ The ability to add directories to your project permit organization of objects in
Enter a unique name that is not already in use, and select "OK" to add the directory to your project. The newly added directory is then visible, as a node in the Widget Selector.
{{note| '''Note''': Creating a new directory in the Widget Selector causes the actual directory on the disk to be created immediately. }}
{{note|Creating a new directory in the Widget Selector causes the actual directory on the disk to be created immediately. }}
You may insert objects into a directory, or move an object between directories by [[EiffelBuild Notation|picking]] the object from its representation in the Widget Selector, and [[EiffelBuild Notation|dropping]] on the desired directory. Each object contained in the Widget Selector is generated as a seperate class and the parent directory is used as the generated location on disk.
{{note| '''Note''': If you move an object between directories within an EiffelBuild project that has already generated the Eiffel code for that object, the code files are moved immediately on the disk. }}
{{note|If you move an object between directories within an EiffelBuild project that has already generated the Eiffel code for that object, the code files are moved immediately on the disk. }}
Directories may be nested as deeply as required, and the following buttons are available to help with directory nesting:
* [[Image:directory-search-small]] Selecting this button recursively adds all directories from the current project location to the project.
@@ -50,7 +50,7 @@ The OK_CANCEL_BUTTONS object is used is used in two different places within the
To use an instance of a widget contained within the Widget Selector as a client, simply pick the representation of the object and drop into the desired parent object within the [[Type selector|type selector]]
{{seealso| '''See also''': <br/>
{{seealso|<br/>
[[Layout constructor|Layout constructor]] }}

View File

@@ -22,7 +22,7 @@ This sample contains the following class:
* ACCELERATOR
{{seealso| '''See Also''' <br/>
{{seealso|<br/>
[[ref:/libraries/vision2/reference/ev_accelerator_chart|EV_ACCELERATOR]] <br/>
[[ref:/libraries/vision2/reference/ev_key_chart|EV_KEY]] <br/>
}}

View File

@@ -26,7 +26,7 @@ This sample contains the following class:
* GAUGES
{{seealso| '''See Also''' <br/>
{{seealso|<br/>
EV_GAUGE <br/>
EV_SCROLL_BAR <br/>
EV_RANGE <br/>

View File

@@ -26,7 +26,7 @@ This sample contains the following class:
* VIEWPORT
{{seealso| '''See Also''' <br/>
{{seealso|<br/>
EV_VIEWPORT <br/>
EV_SPIN_BUTTON <br/>
[[ref:/libraries/vision2/reference/ev_button_chart|EV_BUTTON]] <br/>

View File

@@ -7,7 +7,7 @@ The kernel cluster contains classes that provide functionality that are common t
[[ref:libraries/vision2/reference/ev_application_chart|EV_APPLICATION]] is the basis for every Vision2 application and is considered the most important class in the library. It is responsible for initializing the underlying toolkit that is driving the windowing system on the platform that you decide to compile your system on. It also also where the main event loop that drives your application is executed.
{{note| '''Note:''' It is ''' not''' possible to create a Vision2 component unless an application exists (query [[ref:/libraries/vision2/reference/ev_environment_chart|EV_ENVIRONMENT]] ). }}
{{note|It is ''' not''' possible to create a Vision2 component unless an application exists (query [[ref:/libraries/vision2/reference/ev_environment_chart|EV_ENVIRONMENT]] ). }}
You may inherit [[ref:libraries/vision2/reference/ev_application_chart|EV_APPLICATION]] or use it as a client in order to create your vision2 application. A simple method of using EV_APPLICATION is as follows:
# Create an instance of EV_APPLICATION.
# Create one or more windows for your application.
@@ -71,7 +71,7 @@ This is the same Vision2 application but instead using <eiffel>[/libraries/visio
==What does Launch actually do?==
In Vision2, to launch an application means to pass control to the underlying graphical toolkit. Simply creating an application does not launch it. An explicit call to launch is required for the event processing to begin.
{{note| '''Note: '''A Vision2 system is event based. This means that you do not have control of the execution within a Vision2 system, but must respond appropriately to [[Events|events]] as they occur. Therefore, if you call launch on an [[ref:libraries/vision2/reference/ev_application_chart|EV_APPLICATION]] , the processing for the application will continue indefinitely unless you have provided a way to exit the application. It is essential to initialize your components correctly, so your application can be exited (call <eiffel>destroy</eiffel> on the application). }}
{{note|A Vision2 system is event based. This means that you do not have control of the execution within a Vision2 system, but must respond appropriately to [[Events|events]] as they occur. Therefore, if you call launch on an [[ref:libraries/vision2/reference/ev_application_chart|EV_APPLICATION]] , the processing for the application will continue indefinitely unless you have provided a way to exit the application. It is essential to initialize your components correctly, so your application can be exited (call <eiffel>destroy</eiffel> on the application). }}
==Building your application skeleton==

View File

@@ -19,7 +19,7 @@ A simple example of this is demonstrated here:
As print takes an argument of type [[ref:/libraries/base/reference/string_8_chart|STRING_8]] , button2 becomes a valid target for the pebble contained in button1. Right clicking the mouse pointer over the '''source''' will start the transport, and right clicking with the mouse pointer over a valid '''target''' will end the transport. The transport can be canceled anytime with a simple left click, just as you would do in EiffelStudio.
{{note| '''Note''': When a transport completes, the '''pebble''' that was transported is passed as an argument to all features in the '''targets'''drop_actions whose argument type matches the '''pebble''' }}
{{note|When a transport completes, the '''pebble''' that was transported is passed as an argument to all features in the '''targets'''drop_actions whose argument type matches the '''pebble''' }}
==Three different modes of transport==

View File

@@ -30,7 +30,7 @@ Use <eiffel>minimum_width</eiffel> and <eiffel>minimum_height</eiffel> to find i
{{note| '''Note:''' [[ref:libraries/vision2/reference/ev_containable_chart|EV_CONTAINABLE]] has no features for setting the parent. In Vision2, a child has no features for setting its parent, while a parent such as ev_container contains routines for adding children (one example is <eiffel>extend</eiffel>). }}
{{note|[[ref:libraries/vision2/reference/ev_containable_chart|EV_CONTAINABLE]] has no features for setting the parent. In Vision2, a child has no features for setting its parent, while a parent such as ev_container contains routines for adding children (one example is <eiffel>extend</eiffel>). }}
The following properties are also used within Vision2:
* [[ref:libraries/vision2/reference/ev_deselectable_chart|EV_DESELECTABLE]]

View File

@@ -7,7 +7,7 @@ All Vision2 containers inherit [[ref:libraries/vision2/reference/ev_container_ch
A container is a Vision2 widget that may contain other widgets. Some containers such as [[ref:libraries/vision2/reference/ev_cell_chart|EV_CELL]] may only hold one widget while containers such as [[ref:libraries/vision2/reference/ev_box_chart|EV_BOX]] may hold multiple widgets. As a container is of type [[ref:libraries/vision2/reference/ev_widget_chart|EV_WIDGET]] , this means that a container may be placed within a container. Windows inherit from [[ref:libraries/vision2/reference/ev_cell_chart|EV_CELL]] and are therefore classed as containers also.
{{note| '''Note: '''Containers may only contain other widgets. Items may only be placed in certain primitives. For example, an [[ref:libraries/vision2/reference/ev_list_item_chart| EV_LIST_ITEM]] may be contained in an [[ref:libraries/vision2/reference/ev_list_chart| EV_LIST]] . }}
{{note|Containers may only contain other widgets. Items may only be placed in certain primitives. For example, an [[ref:libraries/vision2/reference/ev_list_item_chart| EV_LIST_ITEM]] may be contained in an [[ref:libraries/vision2/reference/ev_list_chart| EV_LIST]] . }}
==Inheritance from Base==
@@ -47,7 +47,7 @@ The mapping of a Vision2 container interface is very close to that of containers
* To empty a container call `wipe_out'.
* To traverse the container, you can use features such as start, forth, item and off.
{{note| '''Note''': When a widget is added to a container, the container is the parent of the widget. }}
{{note|When a widget is added to a container, the container is the parent of the widget. }}
==Size of widget within a container==
@@ -55,7 +55,7 @@ The size of a widget in a container is always at least its minimum size. By defa
==Sizing of containers==
As [[ref:libraries/vision2/reference/ev_container_chart|EV_CONTAINER]] is of type [[ref:libraries/vision2/reference/ev_widget_chart|EV_WIDGET]] , the following facilities are provided for setting the minimum size: set_minimum_width, set_minimum_height and set_minimum_size. It is important to remember that as a general rule, '''the current size of a container is always at least the minimum size of all its contents.'''
{{note| '''Note: '''The exception to this is: [[ref:libraries/vision2/reference/ev_fixed_chart|EV_FIXED]] , [[ref:libraries/vision2/reference/ev_viewport_chart|EV_VIEWPORT]] and [[ref:libraries/vision2/reference/ev_scrollable_area_chart|EV_SCROLLABLE_AREA]] which do actually allow their contents to be larger than their current size. <br/>
{{note|The exception to this is: [[ref:libraries/vision2/reference/ev_fixed_chart|EV_FIXED]] , [[ref:libraries/vision2/reference/ev_viewport_chart|EV_VIEWPORT]] and [[ref:libraries/vision2/reference/ev_scrollable_area_chart|EV_SCROLLABLE_AREA]] which do actually allow their contents to be larger than their current size. <br/>
}}

View File

@@ -30,7 +30,7 @@ This would be in place of
a_button.set_text ("Click Me")
</code>
{{note|Note: When a widget is created no extra initialization has to be performed. '''The only exception is for a window where you have to call show in order for it to be displayed on screen'''. }}
{{note|When a widget is created no extra initialization has to be performed. '''The only exception is for a window where you have to call show in order for it to be displayed on screen'''. }}
==Sizing==
@@ -38,7 +38,7 @@ As [[ref:libraries/vision2/reference/ev_primitive_chart|EV_PRIMITIVE]] is of ty
The minimum size of a widget is the smallest possible size that it can possibly be inside its parent container. If an [[ref:libraries/vision2/reference/ev_button_chart|EV_BUTTON]] was created and set with a minimum_size of width/height (100, 100), if this button was inserted in to an [[ref:libraries/vision2/reference/ev_horizontal_box_chart| EV_HORIZONTAL_BOX]] , then the box's size could never be below (100, 100) or it would break the minimum size of the button. '''The size of a container must always be greater or equal to the minimum sizes of its children.'''
{{note| '''Note: '''In Vision2, there is no way to set the current size of the primitive. The current size is dependent on the size of the parent or the minimum_size. }}
{{note|In Vision2, there is no way to set the current size of the primitive. The current size is dependent on the size of the parent or the minimum_size. }}
==Now what do I do?==
Now that you can create a widget, you will need to actually make it usable to your intended user. This will usually involve these three steps. <br/>