diff --git a/documentation/trunk/eiffel/Language_reference/void-safe-programming-eiffel/converting-existing-software-void-safety/changes-eiffel-libraries-support-void-safety.wiki b/documentation/trunk/eiffel/Language_reference/void-safe-programming-eiffel/converting-existing-software-void-safety/changes-eiffel-libraries-support-void-safety.wiki index 62b5565d..7e1fe6c4 100644 --- a/documentation/trunk/eiffel/Language_reference/void-safe-programming-eiffel/converting-existing-software-void-safety/changes-eiffel-libraries-support-void-safety.wiki +++ b/documentation/trunk/eiffel/Language_reference/void-safe-programming-eiffel/converting-existing-software-void-safety/changes-eiffel-libraries-support-void-safety.wiki @@ -28,7 +28,7 @@ Current signature: make_from_special (a: SPECIAL [G]) Previous signature: make_from_special (a: SPECIAL [G]; min_index, max_index: INTEGER) -Using the current version will create an array with a range from 1 to the number of elements in the argument `a'. +Using the current version will create an array with a range from 1 to the number of elements in the argument `a`. ====Feature auto_resize==== diff --git a/documentation/trunk/eiffel/Overview/why-your-next-project-should-use-eiffel.wiki b/documentation/trunk/eiffel/Overview/why-your-next-project-should-use-eiffel.wiki index f03a2747..753efc42 100644 --- a/documentation/trunk/eiffel/Overview/why-your-next-project-should-use-eiffel.wiki +++ b/documentation/trunk/eiffel/Overview/why-your-next-project-should-use-eiffel.wiki @@ -163,7 +163,7 @@ To have one's cake and eat it also means not to have to choose between run-time Steve Bilow provides further explanations:
-''Based on the observation that software development is an iterative process which is usually focused on constructing systems from code modifications, the folks at Eiffel Software have developed something that they call "Melting Ice Technology". Essentially, this means that when you make a [change] and you want to try it out, you simply "melt" it into the system. You don't need to regenerate a bunch of C code, so your changes are integrated into the system proportionally to the amount of code changed. Even in C and C++, `make' still has to relink. '' +''Based on the observation that software development is an iterative process which is usually focused on constructing systems from code modifications, the folks at Eiffel Software have developed something that they call "Melting Ice Technology". Essentially, this means that when you make a [change] and you want to try it out, you simply "melt" it into the system. You don't need to regenerate a bunch of C code, so your changes are integrated into the system proportionally to the amount of code changed. Even in C and C++, `make` still has to relink. ''
What this also indicates in passing is the technology choice made by Eiffel Software's implementation and all current implementations: using C as the portable implementation vehicle. By going through C, the compilers gain efficiency and portability. This also makes Eiffel one of the most open environments around; in contrast to the self-centered view that predominates in Smalltalk, Eiffel software is born with a sociable attitude, ready to interface with all kinds of other software written in C or other languages. This, needless to say, is a key to the success of realistic applications. diff --git a/documentation/trunk/eiffelstudio/Tutorials/using-autotest/create-manual-test.wiki b/documentation/trunk/eiffelstudio/Tutorials/using-autotest/create-manual-test.wiki index b2fbc16b..ff00d6bc 100644 --- a/documentation/trunk/eiffelstudio/Tutorials/using-autotest/create-manual-test.wiki +++ b/documentation/trunk/eiffelstudio/Tutorials/using-autotest/create-manual-test.wiki @@ -121,7 +121,7 @@ After the compile completes, then the first pane of the New Eiffel Test Wizard a Here we will name our test. Let's say that we plan to write this test against the feature {BANK_ACCOUNT}.deposit. We'll give this test the name test_deposit_01. The name uses an ad hoc naming convention for tests. You can use this, or develop your own. The prefix test_ comes before the feature name it will test, and the suffix _01 follows, so that we have a framework for adding more tests against deposit. Again, you can choose any naming scheme that makes sense to you. You may want to try to describe the test in its name. For example, test_deposit_very_large_amount. -We're ready to click '''Next''', but before we do, let's look at the check boxes on this wizard pane. The two check boxes labeled '''Redefine `on_prepare'''' and '''Redefine `on_clean'''' have to do with the way that tests are run. +We're ready to click '''Next''', but before we do, let's look at the check boxes on this wizard pane. The two check boxes labeled '''Redefine `on_prepare`''' and '''Redefine `on_clean`''' have to do with the way that tests are run. AutoTest runs each test as a three step process: # Preparation diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-how-tos/designing-project/altering-system/refactoring/rename-feature.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-how-tos/designing-project/altering-system/refactoring/rename-feature.wiki index 18b3cd4e..12767f94 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-how-tos/designing-project/altering-system/refactoring/rename-feature.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-how-tos/designing-project/altering-system/refactoring/rename-feature.wiki @@ -6,8 +6,8 @@ ## Picking the feature and dropping its pebble into the '''Rename''' hole ([[Image:refactor-rename-icon]]) on the [[Main toolbars|refactoring toolbar]]. # After a compilation the '''Refactoring: Feature Rename''' dialog appears. You can enter a new name. # You can choose between these options: -#* '''Replace Name in Comments''': replace usage of the feature name in comments that follow the '''`featurename'''' syntax. -#* '''Replace Name in Strings''': replace usage of the feature name in strings that follow the '''`featurename'''' syntax. +#* '''Replace Name in Comments''': replace usage of the feature name in comments that follow the '''`featurename`''' syntax. +#* '''Replace Name in Strings''': replace usage of the feature name in strings that follow the '''`featurename`''' syntax. #* '''Reuse existing name''': allow two or more features to have the same name during refactoring (note: the compiler will still report an error, if there are two or more features with same name, but this option could be use to merge two features). # Click '''OK'''. diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/command-line/batch-compilation.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/command-line/batch-compilation.wiki index dab612e1..5c335277 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/command-line/batch-compilation.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/command-line/batch-compilation.wiki @@ -4,7 +4,7 @@ In order to launch a compilation without user intervention you need to specify the `-batch` switch in the '''ec''' command line, otherwise the Eiffel compilation will be blocked. We will present below a typical example of batch processing on both Unix and Windows platforms where we want to compile a project in both frozen and finalized mode, then to launch the C compilations. At the same time we want to save the output of '''ec''' and the C compilations. ===Unix=== -In a file called `launch_ec' you can have the following: +In a file called `launch_ec` you can have the following: #!/bin/sh output_file="/output_path/OUTPUT" @@ -26,7 +26,7 @@ It will go the directory where your project is located and compile your Eiffel c {{note|All output from '''ec''' are going to the error output, so do not forget to redirect the error output when you want to see the result. }} ===Windows=== -In a file called `launched_ec.bat' you can have the following: +In a file called `launched_ec.bat` you can have the following: rem Launch Eiffel compilation ec -batch -config config.ecf -finalize -c_compile > c:\output_path\OUTPUT diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/Major-changes-between-ISE-Eiffel-15.01-and-ISE-Eiffel-15.08.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/Major-changes-between-ISE-Eiffel-15.01-and-ISE-Eiffel-15.08.wiki index 28c0dc2b..a44f23f3 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/Major-changes-between-ISE-Eiffel-15.01-and-ISE-Eiffel-15.08.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/Major-changes-between-ISE-Eiffel-15.01-and-ISE-Eiffel-15.08.wiki @@ -23,18 +23,18 @@ A side effect is that all calls on passive regions are synchronous. ==Improvements== * runtime: Improved memory management by performing O(log N) lookups when looking for a large block of memory instead of O(N). This would occur after allocating many large objects whose size is greater than 512 bytes (on 32-bit platform) and 1024 bytes on 64-bit platform and then freeing all those objects. Next time you look for a large object it might have to go through all those large objects without finding one that is large enough. * code generation: Made code slightly more compact (2 to 6% size reduction on some platform). -* Optimized `expr and False' and `expr and then False' to just False if `expr' is a local, a argument, Result, Current, an attribute access or if it is the `and' boolean op. +* Optimized `expr and False` and `expr and then False` to just False if `expr` is a local, a argument, Result, Current, an attribute access or if it is the `and` boolean op. ==Changes== ==Bug fixes== ===Compiler issues=== -* Fixed eweasel test#final122 and bug#19028 where we would incorrectly optimize `expr and False' or `expr and then False' into just `expr' which is wrong if `expr' is True (as the whole expression would be True and not False). +* Fixed eweasel test#final122 and bug#19028 where we would incorrectly optimize `expr and False` or `expr and then False` into just `expr` which is wrong if `expr` is True (as the whole expression would be True and not False). ===SCOOP issues=== * The SCOOP runtime is now fully written in C to avoid portability issues. * Corrected access to tuple fields in SCOOP mode that now follow the validity rules and the semantics of ordinary attributes of a class. * test#scoop034 - Fixed a code generation bug in finalized mode for a generic derivation with an actual generic of a basic type. * test#term216 - Fixed a crash when processing conversion queries defined as constant attributes. -* Changed agent creation rules for separate targets. This change makes it possible to introduce library features that help users to avoid writing small little wrapper features in SCOOP to control an object. It is now possible to create agents on separate, uncontrolled target. The newly created agent object is placed on the same processor as the target, and it inherits the 'is_controlled' status. \ No newline at end of file +* Changed agent creation rules for separate targets. This change makes it possible to introduce library features that help users to avoid writing small little wrapper features in SCOOP to control an object. It is now possible to create agents on separate, uncontrolled target. The newly created agent object is placed on the same processor as the target, and it inherits the 'is_controlled' status. diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-5-compiler-history/major-changes-between-ise-eiffel-45-and-ise-eiffel-50/compiler-differences-45-50.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-5-compiler-history/major-changes-between-ise-eiffel-45-and-ise-eiffel-50/compiler-differences-45-50.wiki index 4d4b3f1c..69313839 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-5-compiler-history/major-changes-between-ise-eiffel-45-and-ise-eiffel-50/compiler-differences-45-50.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-5-compiler-history/major-changes-between-ise-eiffel-45-and-ise-eiffel-50/compiler-differences-45-50.wiki @@ -5,11 +5,11 @@ * Implementation of new external syntax. * Implementation of verbatim strings. * Implementation of agents. -* Implementation of agent creations on `Result' and `Current' object. +* Implementation of agent creations on `Result` and `Current` object. * Improved incrementality of the C compilation: fewer directories will have their C files changed after a freeze. * New MSIL generation. * Introduction of 4 new basic classes: INTEGER_8, INTEGER_16, INTEGER_64, WIDE_CHARACTER. -* Changed the storable mechanism so that we do not store POINTER objects with their value, instead we store a NULL value. As a consequence it is safe to store on disk objects that have references to C objects. Upon retrieval those references will be equal to `default_pointer'. This is now the default behavior, if someone wants to have the previous behavior, simply call `set_keep_pointer_value' from STORABLE. +* Changed the storable mechanism so that we do not store POINTER objects with their value, instead we store a NULL value. As a consequence it is safe to store on disk objects that have references to C objects. Upon retrieval those references will be equal to `default_pointer`. This is now the default behavior, if someone wants to have the previous behavior, simply call `set_keep_pointer_value` from STORABLE. ==Improvements== * New run-time speed improvement (between 30 to 100% faster than the 4.5 release). @@ -24,7 +24,7 @@ * CHARACTER has been extended to support the extended ASCII which means that the following expressions are now True instead of being False as it was in our previous version: ** '%/127/' < '%/128/' ** '%/127/' < '%/128/' -** When using `independent_store', in case of retrieval error due to a name change in one of the class attributes we will display the original attribute name that was used to make the storable file. This will help when managing many storable files. +** When using `independent_store`, in case of retrieval error due to a name change in one of the class attributes we will display the original attribute name that was used to make the storable file. This will help when managing many storable files. diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-5-compiler-history/major-changes-between-ise-eiffel-51-and-ise-eiffel-52.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-5-compiler-history/major-changes-between-ise-eiffel-51-and-ise-eiffel-52.wiki index 08c686b9..bf2fda3a 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-5-compiler-history/major-changes-between-ise-eiffel-51-and-ise-eiffel-52.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-5-compiler-history/major-changes-between-ise-eiffel-51-and-ise-eiffel-52.wiki @@ -13,12 +13,12 @@ And the following limitations: ** Eiffel classes cannot inherit from non-Eiffel .NET classes (but they can be clients). -** No support for `expanded' keyword. +** No support for `expanded` keyword. * .NET generation now supports assembly signing in enterprise edition. * .NET generation now supports precompiled libraries. -* Supports for manifest integer constants of different sizes, i.e. you can now assign for example the value `8` to a location of type INTEGER_8, INTEGER_16, INTEGER or INTEGER_64, however you can only assign the value `254' to a location of type INTEGER_16, INTEGER or INTEGER_64. +* Supports for manifest integer constants of different sizes, i.e. you can now assign for example the value `8` to a location of type INTEGER_8, INTEGER_16, INTEGER or INTEGER_64, however you can only assign the value `254` to a location of type INTEGER_16, INTEGER or INTEGER_64. ==Improvements== * Compiler that is about 20% faster than 5.1. diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-5-compiler-history/major-changes-between-ise-eiffel-53-and-ise-eiffel-54.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-5-compiler-history/major-changes-between-ise-eiffel-53-and-ise-eiffel-54.wiki index f1f57131..5ad09450 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-5-compiler-history/major-changes-between-ise-eiffel-53-and-ise-eiffel-54.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-5-compiler-history/major-changes-between-ise-eiffel-53-and-ise-eiffel-54.wiki @@ -9,7 +9,7 @@ * For .NET, allow calling of overloaded features for a .NET classes to be called without using disambiguated names. Disambiguated names are still needed when redefining inherited features from .NET classes. * Support for inclusion of .NET resources within Eiffel assemblies. * Launch C compilation when needed if "-c_compile" option is specified on the "ec" command line. -* Added ability to define custom attributes on assembly. One as to define custom attributes under the new `assembly_metadata' index clause of the root class. +* Added ability to define custom attributes on assembly. One as to define custom attributes under the new `assembly_metadata` index clause of the root class. * Limited support for new convert keyword (only on argument passing and assignments. Not supported when used with infix routines). ==Improvements== @@ -22,7 +22,7 @@ ==Changes== * Changed the way we generate calls to C/C++ external routines. It is possible that because of this change, code that used to C compile, will not compile anymore. This happens mostly when mixing C and C++ code and the C call being made is incorrect but was not previously checked against the C header files if provided. -* In multithreaded mode, all C externals that could potentially block the execution of the system should be marked `blocking' as in:
+* In multithreaded mode, all C externals that could potentially block the execution of the system should be marked `blocking` as in:
sleep (m: INTEGER) is external "C blocking" @@ -36,7 +36,7 @@ ti: TUPLE [INTEGER] td := ti The warning will help you correct code using this pattern, because in the next release this will be rejected in order to conform to the Eiffel programming language specification. * Now we do not generate by default the .NET attribute ComVisibleAttribute with a False value. If needed it has to be done through the new compiler functionality to add custom attributes on assembly. -* Changed indexing clause tag for specifying custom attributes for .NET systems. Now `attribute' is replaced by `metadata'. Now you can have: +* Changed indexing clause tag for specifying custom attributes for .NET systems. Now `attribute` is replaced by `metadata`. Now you can have: ** metadata: generated for both interface and implementation classes ** assembly_metadata: generated for assembly only when specified in root class of system ** class_metadata: generated only for implementation class diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-5-compiler-history/major-changes-between-ise-eiffel-54-and-ise-eiffel-55.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-5-compiler-history/major-changes-between-ise-eiffel-54-and-ise-eiffel-55.wiki index cbaa36d0..97781d27 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-5-compiler-history/major-changes-between-ise-eiffel-54-and-ise-eiffel-55.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-5-compiler-history/major-changes-between-ise-eiffel-54-and-ise-eiffel-55.wiki @@ -21,7 +21,7 @@ to say that the valid actual generic parameters for A are alway ==Changes== * Compiler is now checking that you cannot redeclare a formal generic parameter into a reference type unless the formal generic parameter is being constraint to be always a reference type (See the '''What's new''' section above). * Removed obsolete eifcid, eif_expand and eifexpfrom the CECIL interface, one has to use eif_type_idinstead. -* In .NET, changed the naming conventions of resources included in an assembly. The extension `.resources' is appended for resources that are originally provided as `.resx' or `.txt' files. Other files are embedded as is in the assembly and the name of the resource is the name of the file. +* In .NET, changed the naming conventions of resources included in an assembly. The extension `.resources` is appended for resources that are originally provided as `.resx` or `.txt` files. Other files are embedded as is in the assembly and the name of the resource is the name of the file. * In .NET, now all classes inherit from ANY. Before all classes inherited from SYSTEM_OBJECT. The consequences are: ** You can write an Eiffel generic classes where the actual generic parameter is a .NET class. ** If you used to inherit from .NET classes and Eiffel classes you can replace the inheritance clause below: @@ -139,7 +139,7 @@ instead of ===.NET issues=== * Fixed incorrect code generation of native arrays which would cause the code to be rejected in newer version of the .NET Framework. -* Fixed incorrect computation of `max_stack' for a routine body which could make the generated code not verifiable. +* Fixed incorrect computation of `max_stack` for a routine body which could make the generated code not verifiable. ===Store/Retrieve issues=== * Fix some issues related to the use of recoverable storable when manipulating generic types. diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-5-compiler-history/major-changes-between-ise-eiffel-56-and-ise-eiffel-57.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-5-compiler-history/major-changes-between-ise-eiffel-56-and-ise-eiffel-57.wiki index a5d3e0d5..0f903586 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-5-compiler-history/major-changes-between-ise-eiffel-56-and-ise-eiffel-57.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-5-compiler-history/major-changes-between-ise-eiffel-56-and-ise-eiffel-57.wiki @@ -28,7 +28,7 @@ * No freeze is required when adding an agent, saving you time since C compilation can be long for very large project. * Reduced the required disk space for a workbench compilation in classic mode (went from 1.8 GB to 1GB for a very large project). * Improved speed of agent calls in classic mode. -* Support use of IL enumerations with underlying integer types different from System.Int32. In particular, the built-in features `to_integer' and `from_integer' now use the underlying type rather than System.Int32. +* Support use of IL enumerations with underlying integer types different from System.Int32. In particular, the built-in features `to_integer` and `from_integer` now use the underlying type rather than System.Int32. * Support generation of IL properties as well as custom attributes for them. * Support the new syntax without the is keyword in the feature declaration. * Allowed bracket expressions to be used as a target of a qualified feature call (this is an extension to ECMA standard that does not permit this syntax at the moment). diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-6-compiler-history/major-changes-between-ise-eiffel-61-and-ise-eiffel-62.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-6-compiler-history/major-changes-between-ise-eiffel-61-and-ise-eiffel-62.wiki index 5861f93b..083c40be 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-6-compiler-history/major-changes-between-ise-eiffel-61-and-ise-eiffel-62.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-6-compiler-history/major-changes-between-ise-eiffel-61-and-ise-eiffel-62.wiki @@ -8,8 +8,8 @@ * Exceptions as objects are now implemented. * Added support for new ~ operator which can compare 2 objects safely regardless of their type. * Added detection of harmful catcall at runtime (harmless ones are currently ignored). -* Added support for `note' keyword with a migration path in case `note' is being used as an identifier in your code. -* Added `-gc_stats' option to get some information on how much CPU time is spent in GC during an Eiffel compilation. +* Added support for `note` keyword with a migration path in case `note` is being used as an identifier in your code. +* Added `-gc_stats` option to get some information on how much CPU time is spent in GC during an Eiffel compilation. * Introduced several new much more powerful CAPs that now can be applied not only to read-only entities, but also to local variables (including Result), and can take into account execution paths as well as some obvious void-safe patterns. ==Improvements== @@ -21,7 +21,7 @@ * Removed VUOT(2) that required that the type of an object test local is attached. ==Changes== -* Protected several calls to `eif_wean' on the same EIF_OBJECT. This will prevent a memory corruption for people using it incorrectly with a minor slow down since in a typical application there should not be too many protected objects. +* Protected several calls to `eif_wean` on the same EIF_OBJECT. This will prevent a memory corruption for people using it incorrectly with a minor slow down since in a typical application there should not be too many protected objects. * Removed VFAV(4) validity error that is no longer specified in the standard. * Due to new meaning of ~, the old syntax for agents is not being supported anymore. If you still have some code using the old agent syntax, compile it with 6.1 with syntax warning enabled to fix your code before upgrading to 6.2. @@ -35,7 +35,7 @@ ===Compiler issues=== * Fixed eweasel test#final046 by avoiding useless creation of temporary objects during dynamic dispatch. It can also dramatically speed up certain kinds of code; on the compiler itself, the speed up is about 8-10%. In the worst case scenario it is 400% or more. Note this bug was introduced in version 6.0. Compared to 5.7, in 6.2 the worst case scenario is still about 10% slower. -* Fixed an incorrect code generation for `is_equal' in ANY when exception trace is off which could cause a memory corruption. +* Fixed an incorrect code generation for `is_equal` in ANY when exception trace is off which could cause a memory corruption. * Fixed various issues with compiler when inlining is enabled. * Fixed compiler crash when compiling a class where a type used in a signature of a feature has the wrong number of generic parameters. Fixed eweasel test#incr285. * Fixed an incorrect code generation for the dynamic binding of routines defined in generic classes and attribute access in general. Fixed eweasel test#exec272 and test#final039. @@ -43,7 +43,7 @@ * Various bug fixes with respect of handling of expanded generic classes used in generic classes. ===Runtime/code generation issues=== -* Changed the usage of `eif_adopt', `eif_protect', `eif_wean', `eif_freeze' and `eif_unfreeze' so that they can be used in concurrent thread, meaning that it is safe to use them as long as the argument is different in various threads. +* Changed the usage of `eif_adopt`, `eif_protect`, `eif_wean`, `eif_freeze` and `eif_unfreeze` so that they can be used in concurrent thread, meaning that it is safe to use them as long as the argument is different in various threads. ===Store/Retrieve issues=== * Fixed some issues with the storing or retrieving of generic expanded types. diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-6-compiler-history/major-changes-between-ise-eiffel-62-and-ise-eiffel-63.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-6-compiler-history/major-changes-between-ise-eiffel-62-and-ise-eiffel-63.wiki index 297c36e9..9f87d26d 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-6-compiler-history/major-changes-between-ise-eiffel-62-and-ise-eiffel-63.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-6-compiler-history/major-changes-between-ise-eiffel-62-and-ise-eiffel-63.wiki @@ -27,15 +27,15 @@ * Fixed compiler issues with handling of attached types. ===Compiler issues=== -* Renamed `eif_com.h' from the compiler delivery into `eif_com_exception.h' as it conflicts with `eif_com.h' from the EiffelCOM library. +* Renamed `eif_com.h` from the compiler delivery into `eif_com_exception.h` as it conflicts with `eif_com.h` from the EiffelCOM library. * Fixed eweasel test#final061 and test#final063 where some kind of code could cause a crash of the compiler during degree -3 with inlining enabled. * Fixed eweasel test#final063 which caused a C compiler error when your code uses an inline agent in an assertion and the routine in which it is defined is deferred. * Fixed Makefile code generation issue on machine with many cores which could cause a C compilation error because some dependencies are missing in the Makefile targets. * Fixed bug#13881 where if you have a VKCN error when using a routine whose return type is a like argument then it would crash instead of reporting the VKCN error. Improved VKCN error reporting by providing the instruction or expression which causes the problem. * Fixed eweasel test#rdtp001 and test#term158 where if TUPLE is not written using upper case characters, then the compiler will crash when trying to analyze the type. -* Fixed the issue found with GCC 4.x series where an assignment of the form *(a + x) = f() would first evaluate (a+x) and then `f' which could cause a memory corruption if `f' triggers a GC cycle. As far as we could tell, this kind of code generation was only done when `f' would return a basic type. See eweasel test#runtime007. -* Fixed eweasel test#ccomp076 where C/C++ inlines did not get the protected object if any, but only the unprotected one which could cause some issue if the C/C++ inline code uses `eif_access' or `eif_adopt'. -* Fixed various issues with the `full class checking' option that would not work for inherited code involving conversion or labeled tuples (see eweasel test#svalid001, test#svalid007, test#svalid009 and test#svalid010). +* Fixed the issue found with GCC 4.x series where an assignment of the form *(a + x) = f() would first evaluate (a+x) and then `f` which could cause a memory corruption if `f` triggers a GC cycle. As far as we could tell, this kind of code generation was only done when `f` would return a basic type. See eweasel test#runtime007. +* Fixed eweasel test#ccomp076 where C/C++ inlines did not get the protected object if any, but only the unprotected one which could cause some issue if the C/C++ inline code uses `eif_access` or `eif_adopt`. +* Fixed various issues with the `full class checking` option that would not work for inherited code involving conversion or labeled tuples (see eweasel test#svalid001, test#svalid007, test#svalid009 and test#svalid010). * Fixed bug#14856 and test#final064 where if before generating the agent call/item routine we generated a call to a deferred routine without implementation we would not generate the arguments of the agent causing a C compilation error in finalized mode. * Fixed improper runtime semantics for creation of manifest tuples, arrays and agents (see eweasel test#tuple011, test#tuple014 and test#agent006) * Fixed eweasel test#term159 where the compiler would crash if there is a conversion for one of the closed argument of an agent creation. @@ -50,7 +50,7 @@ * When registering externally created threads, make sure that the runtime does not exit them when no more Eiffel code needs to be run as it must be done by the code that created it. Also made sure that the runtime per thread data are reset to 0 to ensure that we can register/unregister the external thread as many times as needed. * Fixed a buffer overflow that would occur on some Unix platforms when a signal was received by the application. * Fixed eweasel test#thread006 where if many threads allocate small objects which are quickly dying then we could break the runtime synchronization and cause a crash. -* Added a cast to ensure that `eif_globals' can compile properly in C++ mode. +* Added a cast to ensure that `eif_globals` can compile properly in C++ mode. * Fixed eweasel test#runtime008 where we have a leak on each created thread if invariants are monitored. * Fixed eweasel test#runtime009 where a reallocation of a SPECIAL object could cause a memory corruption. * Fixed various issues with exceptions (performance, failure when reporting invariant, added I/O reason to exception object, extended stack traces up to the root class, rather than stopping at the first rescue clause). diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-6-compiler-history/major-changes-between-ise-eiffel-63-and-ise-eiffel-64.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-6-compiler-history/major-changes-between-ise-eiffel-63-and-ise-eiffel-64.wiki index c96a1a90..a739a54a 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-6-compiler-history/major-changes-between-ise-eiffel-63-and-ise-eiffel-64.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-6-compiler-history/major-changes-between-ise-eiffel-63-and-ise-eiffel-64.wiki @@ -28,7 +28,7 @@ a: detachable MY_TYPE note option: stable attribute end * Removed usage of infix/prefix in most of the libraries. To ease transition, added a compatibility option that allows existing code using the infix/prefix notation to continue to compile. * Attachment status of formal generic constraints are now taken into account when checking conformance and detecting VUTA errors when target type is a formal generic. '''Important''': default attachment status of the constraints follows the "attached-by-default" setting, so the code might need to be updated by adding a detachable mark in front of the formal generic constraints if the actual generic parameters can be detachable types. * The compiler does not produce the class progress output in batch mode. The old behavior is available by using the '''-verbose''' option. -* Fixed incorrect display of NATURAL_32 attributes when calling `out' (fixes eweasel test#exec298 and bug#13862.) +* Fixed incorrect display of NATURAL_32 attributes when calling `out` (fixes eweasel test#exec298 and bug#13862.) ==Bug fixes== @@ -50,13 +50,13 @@ a: detachable MY_TYPE note option: stable attribute end * Fixed eweasel test#melt085 and test#melt086 where using Precursor in a manifest array, manifest tuple or expression of an object test would cause a crash at runtime. * Fixed multiple issues with validity checks involving multi-constraint formal generics and "like Current" types. * Fixed system validity errors which were not previously detected or on the other hand rejected when it was correct. Fixes eweasel tests test#svalid019, test#svalid020 and test#multicon051. -* Fixed eweasel test#exec310 and bug#14477 where if you have a class name that is longer than 512 bytes or an attribute name longer than 512 bytes and you call `out' it would cause a buffer overflow. +* Fixed eweasel test#exec310 and bug#14477 where if you have a class name that is longer than 512 bytes or an attribute name longer than 512 bytes and you call `out` it would cause a buffer overflow. ===Runtime/code generation issues=== * Fixed broken generation of single threaded DLL. * Fixed a bug on Windows where including some Eiffel multithreaded code in a DLL would cause a crash. This was due to the way we compiled our Thread Local Storage using a Microsoft optimization that only works for normal binaries, not DLLs. * Fixed some interpreter crashes when handling manifest strings or agent expressions. -* Fixed eweasel test#final077 where the arguments passed to a creation expression where not properly processed when analyzing expressions. This caused the following instruction: "l_x := x.y.z (create .make (l_x))" to override the value of `l_x' with the value of `x.y' which is wrong. +* Fixed eweasel test#final077 where the arguments passed to a creation expression where not properly processed when analyzing expressions. This caused the following instruction: "l_x := x.y.z (create .make (l_x))" to override the value of `l_x` with the value of `x.y` which is wrong. * Fixed eweasel test#incr321 when if you finalize after removing a class from the system, then execution of workbench code fails. * Fixed eweasel test#attach047 where type of array of string passed as argument to the creation procedure of the root class should have an attached actual argument type. * Fixed eweasel test#expanded008 and bug#15693 where if you had an expanded with references attributes then the garbage collector would not update the internal references of the expanded and cause some memory corruption. diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-6-compiler-history/major-changes-between-ise-eiffel-64-and-ise-eiffel-65.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-6-compiler-history/major-changes-between-ise-eiffel-64-and-ise-eiffel-65.wiki index f2cf7fa6..7a4f4199 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-6-compiler-history/major-changes-between-ise-eiffel-64-and-ise-eiffel-65.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/eiffelstudio-6-compiler-history/major-changes-between-ise-eiffel-64-and-ise-eiffel-65.wiki @@ -23,7 +23,7 @@ No major improvements in 6.5 as this release was mostly focused on quality impro ===Compiler issues=== * Fixed eweasel test#incr313, test#incr317 and test#incr318 where removal of a convert clause was not taken into account by the compiler. * Fixed eweasel test#svalid022 where conversion to a target of a detachable type was not accepted, and also now the compiler will verify that the source of the conversion is always attached. Ensured that the source or the target type mentioned in a convert clause is attached. -* Fixed eweasel test#svalid024 where using an inspect clause with static constant access would failed to compile in a descendant class when `full class checking' is enabled. +* Fixed eweasel test#svalid024 where using an inspect clause with static constant access would failed to compile in a descendant class when `full class checking` is enabled. * Fixed eweasel test#term156 and test#svalid025 where compiler would crash while compiling code that needs to be regenerated in descendant classes (e.g. code from precondition) involving anchors or formal generic parameters. * Supported tracking changes made to a shared library definition file to trigger freeze automatically when there are any modifications to this file. * Fixed bug on Unix platforms where spaces in project/installation paths failed to create the necessary symbolic links, when using precompiles. @@ -44,6 +44,6 @@ No major improvements in 6.5 as this release was mostly focused on quality impro ===Store/Retrieve issues=== -* Fixed bug#16395 and eweasel test#store026 to avoid mismatch if the metadata stored in `eskelet' is simplified or not (i.e. for class A[G] feature g: B[G], and then having A [INTEGER] could either describe `g' as either `B[G]' or `B[INTEGER]', even though different they are the same type and should not yield a mismatch). +* Fixed bug#16395 and eweasel test#store026 to avoid mismatch if the metadata stored in `eskelet` is simplified or not (i.e. for class A[G] feature g: B[G], and then having A [INTEGER] could either describe `g` as either `B[G]` or `B[INTEGER]`, even though different they are the same type and should not yield a mismatch). * Fixed eweasel test#store028 where retrieving an object whose type involves a TUPLE type without a TUPLE instance could corrupt the retrieval system. diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/major-changes-between-ise-eiffel-70-and-ise-eiffel-71.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/major-changes-between-ise-eiffel-70-and-ise-eiffel-71.wiki index 729042c6..64133660 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/major-changes-between-ise-eiffel-70-and-ise-eiffel-71.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/major-changes-between-ise-eiffel-70-and-ise-eiffel-71.wiki @@ -10,14 +10,14 @@ * The Eiffel Configuration Files accept C compiler and linker flags. Former ECFs using a workaround to specify those flags as part of the external includes or external objects sections are automatically updated to the new specification. * Report invalid Unicode code point for STRING_8 manifest. * Ensured you can switch C compilers after compiling with one on Windows. -* Speed up C compilation with Visual Studio by using `#pragma once' on our header files (bug#17092). +* Speed up C compilation with Visual Studio by using `#pragma once` on our header files (bug#17092). * Speed up execution of expanded comparison using ~ when types are known to be different at compile time. * Optimized code generation of {CHARACTER_32}.is_character_8. * Optimized code generation of boolean expressions that are known to be False or True at compile time in both workbench and finalized mode. ==Changes== * Breaking change of generating Unicode code point for STRING_8 manifest written in UTF-8 source code. (Written UTF-8 bytes was generated). Unlike previous versions, what you see will be what you get at runtime, i.e. the character codes are the same. -* In the `on-demand' void-safety mode, the compiler will not report a VD88 error when you are using a non-void safe library. This should help migrating existing code to full void-safety. +* In the `on-demand` void-safety mode, the compiler will not report a VD88 error when you are using a non-void safe library. This should help migrating existing code to full void-safety. * Removed support for type qualifier for strings used in obsolete messages. * Removed type qualifiers from manifest constants to follow the changes in the language rules that now prevent from using them in constant attribute declarations. * VWEQ warnings will only be triggered for immediate code, not inherited code. @@ -48,10 +48,10 @@ ===Runtime/code generation issues=== * Fixed code generation in melted mode when you declare a CHARACTER_32 constant feature such as x: CHARACTER_32 = '%/027/'. -* Prevented a deadlock situation after a fork is performed on Unix platforms when using the `eif_thread_fork' (bug#18094). +* Prevented a deadlock situation after a fork is performed on Unix platforms when using the `eif_thread_fork` (bug#18094). * Fixed a traitor situation where a multi-dot chain involving a separate target are treated as separate calls rather than normal calls (test#scoop024). * Fixed code generation of object test on basic types that was failing on .NET (test#dotnet113). -* Fixed some definitions conflicts with `complex.h' which occurs on some platforms. +* Fixed some definitions conflicts with `complex.h` which occurs on some platforms. * Ensured that on Windows using any Microsoft C++ compiler only 2 digits are displayed for exponents that can be represented on 2 digits and three otherwise. * Fixed a potential memory leak of thread context when a parent and a child are exiting at about the same time. * Fixed an incorrect handling of detachable NONE at runtime (test#melt088, test#valid154). diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/major-changes-between-ise-eiffel-72-and-ise-eiffel-73.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/major-changes-between-ise-eiffel-72-and-ise-eiffel-73.wiki index a32ca80e..5c289caf 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/major-changes-between-ise-eiffel-72-and-ise-eiffel-73.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/compiler-history/major-changes-between-ise-eiffel-72-and-ise-eiffel-73.wiki @@ -31,6 +31,6 @@ N/A * Fixed a bug where the TYPE instance of a new generic derivation in the running system would be corrupted. ===Store/Retrieve issues=== -* Fixed a bug in .NET where using the Eiffel serialization or marking objects would trigger computation of `hash_code' on Eiffel objects and thus changing their state. +* Fixed a bug in .NET where using the Eiffel serialization or marking objects would trigger computation of `hash_code` on Eiffel objects and thus changing their state. diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/differences-between-etl-2nd-printing-and-eiffel-software-implementation.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/differences-between-etl-2nd-printing-and-eiffel-software-implementation.wiki index 3557c828..244c600e 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/differences-between-etl-2nd-printing-and-eiffel-software-implementation.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/differences-between-etl-2nd-printing-and-eiffel-software-implementation.wiki @@ -88,7 +88,7 @@ The previous call is valid, if and only if: ==Added external support== -Look at the page for [[C externals|C]] and [[C++ Externals|C++]] with the introduction of `struct' and C++ external features encapsulation. +Look at the page for [[C externals|C]] and [[C++ Externals|C++]] with the introduction of `struct` and C++ external features encapsulation. diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/supported-c-compilers.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/supported-c-compilers.wiki index 466a52eb..1bd3a2ca 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/supported-c-compilers.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/compiler/supported-c-compilers.wiki @@ -3,8 +3,7 @@ [[Property:uuid|4d4a70fa-b6da-cecb-83e0-dcc18d6ed54a]] ==Unix/Linux Users:== -EiffelStudio supports `gcc' on most platforms and the native`cc' compiler if it is an ANSI C compiler. - +EiffelStudio supports `gcc` on most platforms and the native`cc' compiler if it is an ANSI C compiler. ==Microsoft Windows Users== @@ -13,7 +12,7 @@ EiffelStudio supports Microsoft and MinGW compilers on Microsoft Windows. ===Microsoft Visual C++ Users=== -By default the installation program will set in the registry keys the ISE_C_COMPILER key to `msc'. +By default the installation program will set in the registry keys the ISE_C_COMPILER key to `msc`. EiffelStudio supports only version 14.0 and higher of the Microsoft Visual C++ environment. This is available in Visual Studio 2005 or higher revision, or in version of the Windows SDK 6.1 or higher. @@ -21,7 +20,7 @@ EiffelStudio will automatically detect the location of the C compiler. ===MinGW Users:=== -By default the installation program will set in the registry keys the ISE_C_COMPILER key to `mingw'. +By default the installation program will set in the registry keys the ISE_C_COMPILER key to `mingw`. In versions as late as 6.6, there is a [[EiffelCOM Wizard Guided Tour|restriction]] that prevents the use of EiffelCOM with the MinGW compiler. @@ -29,9 +28,9 @@ In versions as late as 6.6, there is a [[EiffelCOM Wizard Guided Tour|restrictio You can do it in either of two different ways. -You can manually edit the registry key HKLM\Software\ISE\Eiffel''nn'' and change the value of the ISE_C_COMPILER string key to either `msc' or `mingw' depending upon the effect you desire. +You can manually edit the registry key HKLM\Software\ISE\Eiffel''nn'' and change the value of the ISE_C_COMPILER string key to either `msc` or `mingw` depending upon the effect you desire. -Alternatively, you can set the environment variable ISE_C_COMPILER to either `msc' or `mingw'. +Alternatively, you can set the environment variable ISE_C_COMPILER to either `msc` or `mingw`. diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/contract-editor-tool.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/contract-editor-tool.wiki index ff8e16bd..a1538859 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/contract-editor-tool.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/contract-editor-tool.wiki @@ -101,7 +101,7 @@ Choosing "Add Custom..." produces a freeform dialog, much like the editing dialo my_routine (a_string: STRING) - -- Do something with `a_string'. + -- Do something with `a_string`. do end diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/debugger/call-stack-tool/supported-exceptions.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/debugger/call-stack-tool/supported-exceptions.wiki index 7c8a2c52..4271ae3d 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/debugger/call-stack-tool/supported-exceptions.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/debugger/call-stack-tool/supported-exceptions.wiki @@ -21,7 +21,7 @@ Here is a list of exceptions that may appear in the [[Call stack tool: Interface '''Floating point exception''' (signal SIGFPE): An error occurred while processing floating point numbers. This may be for example a FPU overflow, a division by zero, or an invalid operation. -'''Unmatched inspect value''': An inspect clause couldn't find the value it was passed among the `when' clauses. If any value maybe passed to the `when' clause, adding an `else' clause will solve this problem. +'''Unmatched inspect value''': An inspect clause couldn't find the value it was passed among the `when` clauses. If any value maybe passed to the `when` clause, adding an `else` clause will solve this problem. '''I/O error''': An error occurred while accessing a stream. Examples of this are a missing file, or insufficient rights. @@ -37,9 +37,9 @@ Here is a list of exceptions that may appear in the [[Call stack tool: Interface '''Run-time I/O error''': Exception raised by the run-time when encountering a I/O error internally. -'''External event''': On Unix, this happens when an operating system error occurs and does not set the `errno' variable. +'''External event''': On Unix, this happens when an operating system error occurs and does not set the `errno` variable. -'''Operating system error''': On Unix, this happens when an operating system error occurs and sets the `errno' variable. +'''Operating system error''': On Unix, this happens when an operating system error occurs and sets the `errno` variable. '''COM error''': Raised when EiffelCOM encounters an error. diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffel-inspector/eiffel-inspector-rules/ca004-command-query-separation.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffel-inspector/eiffel-inspector-rules/ca004-command-query-separation.wiki index 8369ce36..4943b136 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffel-inspector/eiffel-inspector-rules/ca004-command-query-separation.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffel-inspector/eiffel-inspector-rules/ca004-command-query-separation.wiki @@ -28,7 +28,7 @@ There are rather exceptional but sometimes useful class designs in which the ext =Example of violation= - + height: INTEGER -- Height in pixel of Current. @@ -37,19 +37,19 @@ width: INTEGER do height := height + 10 Result := 100 - height - end + end =Recommendation= Ensures that no query changes the state of the current object. -In the example, one could replace the routine width by an attribute and calling update_width before querying width where update_width would be: -update_width +In the example, one could replace the routine `width` by an attribute and calling `update_width` before querying `width` where `update_width` would be: +update_width -- Update `height' and `width' with .... do height := height + 10 width := 100 - height - end + end -Or you can remove the line height := height + 10 from the body of width. +Or you can remove the line `height := height + 10` from the body of `width`. diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-preferences/preferences-reference/editor-preferences/keyboard-shortcuts-preferences.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-preferences/preferences-reference/editor-preferences/keyboard-shortcuts-preferences.wiki index fba3a897..1866becd 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-preferences/preferences-reference/editor-preferences/keyboard-shortcuts-preferences.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-preferences/preferences-reference/editor-preferences/keyboard-shortcuts-preferences.wiki @@ -14,7 +14,7 @@ Some of the keyboard shortcuts used in the editor can be customized. A subfolder {{note|You should avoid using key combinations made of only ALT and another key as they are reserved for menu shortcuts. }} -{{Tip|You may use combinations made of only one key to create very fast shortcuts, for example with the function keys. To know what string corresponds to a given key, you can look up in the EV_KEY_CONSTANTS of EiffelVision2.The `key_strings' table links keys with a string representation. }} +{{Tip|You may use combinations made of only one key to create very fast shortcuts, for example with the function keys. To know what string corresponds to a given key, you can look up in the EV_KEY_CONSTANTS of EiffelVision2.The `key_strings` table links keys with a string representation. }} There are three other categories in the shortcut preferences. These can be used to automatically insert a user-defined string in the editor. If you find yourself typing some strings very often, these preferences can be handy. diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-preferences/preferences-reference/eiffelstudio-tools-preferences/context-tools.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-preferences/preferences-reference/eiffelstudio-tools-preferences/context-tools.wiki index 33626f45..8ca20cc3 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-preferences/preferences-reference/eiffelstudio-tools-preferences/context-tools.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-preferences/preferences-reference/eiffelstudio-tools-preferences/context-tools.wiki @@ -20,7 +20,7 @@ This category gathers the preferences related to context tools. | Number of cached formatted text in history. |- | Show all callers -| Show all callers (as opposed to local callers) in `callers' form. +| Show all callers (as opposed to local callers) in `callers` form. |} diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/Release-notes-for-EiffelStudio-15.12.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/Release-notes-for-EiffelStudio-15.12.wiki index f11fedfa..f07f9b53 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/Release-notes-for-EiffelStudio-15.12.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/Release-notes-for-EiffelStudio-15.12.wiki @@ -9,7 +9,7 @@ * EiffelStudio is now integrated with the new support site entirely rewritten using EWF and in beta until now. ===Improvements=== -* When displaying the flat of code involving conversions of manifest constants such as assigning 1 to an INTEGER_8 variable, we will simply show 1 and not `1.to_integer_8' which is not valid Eiffel code. +* When displaying the flat of code involving conversions of manifest constants such as assigning 1 to an INTEGER_8 variable, we will simply show 1 and not `1.to_integer_8` which is not valid Eiffel code. ===Bug fixes=== * Fixed display of flat form involving a procedure agent. @@ -23,10 +23,10 @@ All libraries have been updated to the latest syntax for the agent's type. ===Base=== -* Exported `read_to_string' from FILE to allow user side buffering. +* Exported `read_to_string` from FILE to allow user side buffering. ===Preferences=== -* Added a precondition to `add_parent_structure_preference_row' and `formatted_name' that a preference name cannot be empty (this might be the case when preference names get erroneously converted from non-ASCII strings, e.g. as it was with incorrect implementation of code analysis preferences). +* Added a precondition to `add_parent_structure_preference_row` and `formatted_name` that a preference name cannot be empty (this might be the case when preference names get erroneously converted from non-ASCII strings, e.g. as it was with incorrect implementation of code analysis preferences). * Avoided automatic formatting of a preference name if it has whitespace to allow for preference names with underscore characters or those that are pre-formatted. * Added a creation procedure to pass a preference grid control explicitly in case some fine-tuning is needed. * Changed type of preference values to READABLE_STRING_32 to avoid conversion when the values are loaded from XML where values are returned as READABLE_STRING_32. diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-5-release-notes/release-notes-eiffelstudio-50.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-5-release-notes/release-notes-eiffelstudio-50.wiki index 05cd2e03..09cb5680 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-5-release-notes/release-notes-eiffelstudio-50.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-5-release-notes/release-notes-eiffelstudio-50.wiki @@ -13,9 +13,9 @@ ** block indent and exdent. ** infinite level of Undo/Redo -* When edition of a class text which has been successfully compiled, the class will be fully `pick-and-droppable'. +* When edition of a class text which has been successfully compiled, the class will be fully `pick-and-droppable`. * Faster rendering for Clickable, Flat, Contract (previously known as Short) and Flat Contract views. -* System tool has been replaced by a `project settings' window. The underlying mechanism of the configuration file is kept, but all changes are done through a nice GUI making it simpler for beginners to create their first configuration file. +* System tool has been replaced by a `project settings` window. The underlying mechanism of the configuration file is kept, but all changes are done through a nice GUI making it simpler for beginners to create their first configuration file. * Toolbars are now customizable * EiffelCase has been merged within EiffelStudio to provide a true reverse engineering using the BON notation. @@ -47,9 +47,9 @@ The compiler has been improved in many ways and some functionality have been add * New ROUTINE classes which perform better type checking on argument passing. * Introduction of binary operations on INTEGER types: infix "&",infix "|", bit_xor, bit_not, bit_shift, infix "|>>", infix "|<<"and bit_text. * Removed infix "^" from NUMERIC. It does not break any inheritance, but break clients that were using this operator on an entity declared of type NUMERIC. This is due to the different return type of this operator depending the NUMERIC type you are handling. -* Changed the signature of pruned in BINARY_SEARCH_TREE to take an extra argument. This was necessary to fix a problem that caused the `parent' attributes to become inconsistent under certain conditions when calling pruned. +* Changed the signature of pruned in BINARY_SEARCH_TREE to take an extra argument. This was necessary to fix a problem that caused the `parent` attributes to become inconsistent under certain conditions when calling pruned. * Re-implemented the features disjoint and symdif of SUBSET. These features caused problems under certain conditions and were also quite inefficient. The new implementation of these features uses the strategy pattern to choose among different versions of these calculations depending on the properties of the elements contained in the set. -* All features on SUBSET that take another subset as an argument(e.g. intersect) now accept any other subset type as an argument, independent of its underlying implementation, and not only subsets of type `like Current'. +* All features on SUBSET that take another subset as an argument(e.g. intersect) now accept any other subset type as an argument, independent of its underlying implementation, and not only subsets of type `like Current`. * Many smaller bug fixes for bugs that were reported by our customers or that have been discovered during our development andtesting. ===WEL:=== diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-5-release-notes/release-notes-eiffelstudio-51.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-5-release-notes/release-notes-eiffelstudio-51.wiki index 4ff2191e..e2bec516 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-5-release-notes/release-notes-eiffelstudio-51.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-5-release-notes/release-notes-eiffelstudio-51.wiki @@ -9,7 +9,7 @@ * Editor now supports drag-and-drop of the selection. * When debugging a project from EiffelStudio, the current directory will be your project directory. It is a change from previous version where: ** on Windows, it used to be launched in the W_code subdirectory of your project directory -** on Unix, it used to be launched from the same directory where `estudio' (or `ebench') was launched. +** on Unix, it used to be launched from the same directory where `estudio` (or `ebench`) was launched. * EiffelStudio GUI now also available on Unix platforms and Windows 9x/Me diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-5-release-notes/release-notes-eiffelstudio-52.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-5-release-notes/release-notes-eiffelstudio-52.wiki index 720cf28e..1a4d8571 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-5-release-notes/release-notes-eiffelstudio-52.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-5-release-notes/release-notes-eiffelstudio-52.wiki @@ -15,7 +15,7 @@ * Click [[Major changes between ISE Eiffel 5.1 and ISE Eiffel 5.2|here]] for more details on compiler improvements and full Eiffel support on .NET ==Debugger== -* Right-clicking on one of the run buttons will pop up a dialog enabling you to choose the command line argument (it is a shortcut for `Project Settings'-> Debug tab). +* Right-clicking on one of the run buttons will pop up a dialog enabling you to choose the command line argument (it is a shortcut for `Project Settings`-> Debug tab). * Expressions can now be dynamically evaluated in the debugger. ( [[Expression evaluation|info]] ) * Conditional breakpoints. ( [[Breakpoints|info]] ) * Classes can now define debug_output , a feature inherited from DEBUG_OUTPUT , whose string result is automatically displayed in the debugger for all objects of that type. ( [[Debug output|info]] ) @@ -31,7 +31,7 @@ ** Fixed is_integer to return False for strings of the form "(-|+)[a-zA-Z]+[0-9]*)" ** Improved speed of to_lower and to_upper . ** Updated for ELKS 2001 conformance: -*** Changed signature of out and replace_substring to use STRING instead of `like Current'. +*** Changed signature of out and replace_substring to use STRING instead of `like Current`. *** Added keep_tail , keep_head , remove_tail , remove_head and make head and tail obsolete. *** Added string , same_string , has_substring , fill_with , insert_string , insert_character , as_lower , as_upper . *** Modified make_from_string so that no sharing of internal string is done. @@ -58,14 +58,14 @@ * Put Windows and Unix version to the same version number. * Fixed EiffelWeb documentation and example. * Fixed minor issues found with EiffelVision2 on Unix and Windows which were affecting EiffelBuild. -* Fixed incorrect configuration file specification for EiffelVision2 examples and wizards on Unix platforms where application could be linked dynamically with `libpng' but should not. +* Fixed incorrect configuration file specification for EiffelVision2 examples and wizards on Unix platforms where application could be linked dynamically with `libpng` but should not. * Fixed EiffelStore handle for Oracle so that it works fine when compiled with the Borland C compiler. * Fixed incorrect version number in VERSION file on Unix platforms. ===Version 5.2.1313:=== * Fixed resource leak on Windows 98 and Windows Me. * Fixed incorrect implementation of area and substring for STRING in dotnet mode. -* Fixed issue with setting of arguments. After restarting EiffelStudio the command line argument contains an extra `]' character. +* Fixed issue with setting of arguments. After restarting EiffelStudio the command line argument contains an extra `]` character. * Fixed issue with working directories where only the first one ever set was used even if new ones have been set afterwards. * Fixed issue in IL code generation where having a class that inherits from a non-Eiffel .NET class. And the class has the following features:
diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-5-release-notes/release-notes-eiffelstudio-53.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-5-release-notes/release-notes-eiffelstudio-53.wiki index 3622b47c..78f08512 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-5-release-notes/release-notes-eiffelstudio-53.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-5-release-notes/release-notes-eiffelstudio-53.wiki @@ -11,15 +11,15 @@ * Recoverable storable (See [[Major changes between ISE Eiffel 5.2 and ISE Eiffel 5.3|compiler release notes]] for more info). ===Bug fixes=== -* Fixed issue with setting of arguments. After restarting EiffelStudio the command line argument contains an extra `]' character. +* Fixed issue with setting of arguments. After restarting EiffelStudio the command line argument contains an extra `]` character. * Fixed issue with working directories where only the first one ever set was used even if new ones have been set afterwards. * Fixed issue where generating documentation for all/library cluster would stop during generation without completing. * Fixed crash in diagram tool when moving label on client/supplier link between two classes. * Fixed resource leak on Windows 98 and Windows Me. * Fixed issue in projects where clusters are specified with relative path would not compile after adding a local assembly. * Fixed problem with cluster tool management where moving classes around or looking up a class will generate an error box instead of performing the requested operation. -* Fixed incorrect configuration file specification for EiffelVision2 examples and wizards on Unix platforms where application could be linked dynamically with `libpng' but should not. -* Fixed disappearance of EiffelStudio when debugging a routine `infix' or `prefix' in which an exception was raised. This issue was only occurring with melted code (usually noticeable when using a precompiled library). +* Fixed incorrect configuration file specification for EiffelVision2 examples and wizards on Unix platforms where application could be linked dynamically with `libpng` but should not. +* Fixed disappearance of EiffelStudio when debugging a routine `infix` or `prefix` in which an exception was raised. This issue was only occurring with melted code (usually noticeable when using a precompiled library). * Changing the project specific command line arguments will not touch the project settings configuration file (ace file). ==Compiler== @@ -65,7 +65,7 @@ make is end * Fixed .NET implementation of open_write and create_read_write in FILE . They were not resetting the file size to zero if file already existed. -* Added correct_mismatch on ANY used for `recoverable storable'. +* Added correct_mismatch on ANY used for `recoverable storable`. * Added correct_mismatch on HASH_TABLE to enable retrieval of the 5.1 and older version of HASH_TABLE. * Fixed bug in implementation of copy and is_equal for TREE and descendant classes. Now descendants of TREE that would like to compare additional attributes of their class needs to redefine node_is_equal whose default implementation will always result in a true value. * Changed default semantic of make and put_child from FIXED_TREE, to preserve existing semantic, you should use make_filled and replace_child instead. @@ -83,7 +83,7 @@ make is * Updated library so that it works both in classic and dotnet mode. * Fixed issue with oracle handle which did not work with the included Borland C compiler. * Removed nb_classes from EXT_INTERNAL . -* Removed need for additional object file (`support.lib' on Windows and `libsupport.a' on Unix platforms), so make sure to remove it from your project configurations. +* Removed need for additional object file (`support.lib' on Windows and `libsupport.a` on Unix platforms), so make sure to remove it from your project configurations. ===EiffelVision2=== * [[Revisions and Bug Fixes|Click here to see list of update and modification to Eiffel Vision2]] . diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-5-release-notes/release-notes-eiffelstudio-54.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-5-release-notes/release-notes-eiffelstudio-54.wiki index 5048fb6b..3a193447 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-5-release-notes/release-notes-eiffelstudio-54.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-5-release-notes/release-notes-eiffelstudio-54.wiki @@ -10,7 +10,7 @@ * All callers will not show empty entries. ===Bug fixes=== -* Fixed issue where setting the string background color to `auto' in the preferences will set it to a black color next time your relaunch EiffelStudio. +* Fixed issue where setting the string background color to `auto` in the preferences will set it to a black color next time your relaunch EiffelStudio. * Fixed issue where typing in an empty features tree will close down EiffelStudio. * Fixed issue with BON diagram where expanded client links were not properly displayed (the expanded bar was drawn on top of classes instead of on the link itself). @@ -43,7 +43,7 @@ * Fixed bug in generic_typecode from TUPLE in .NET implementation which fixed an issue with is_reference_item. * Made TUPLE a descendant of HASHABLE and defined hash_code (based on the hash_codes of the elements of a TUPLE). * Added default_create as creation procedure of TUPLE and made make obsolete. -* Added convenience features to TUPLE: put_XX_item where `XX' can be replaced by `character, boolean, integer, double,...'. +* Added convenience features to TUPLE: put_XX_item where `XX` can be replaced by `character, boolean, integer, double,...`. * Optimized ROUTINE, PROCEDURE and FUNCTION implementation to speed up agent calls by a factor of 2 to 3. Removed open_operand_type from ROUTINE as its specification was only used internally and specification was not precise enough to be used by clients of ROUTINE. * Fixed append from SEQUENCE to not perform a deep_clone when passed argument is the same reference as Current. This was a problem when the base class of the type of the elements inherited from MEMORY and redefined dispose. You could possibly end up freeing twice an external resource. * Changed implementation of INTERACTIVE_LIST to be based on ARRAYED_LIST rather than on LINKED_LIST. @@ -69,7 +69,7 @@ * Made OBJECT_OWNER obsolete * Added wait_with_timeout in CONDITION_VARIABLE * Added READ_WRITE_LOCK class to be used in a system where few writes are done compare to reads. A typical example of its use would be to have a thread safe lookup table where few insertions are done. -* Now a C externals that might block the execution of a system, should be marked `blocking'. [[Major changes between ISE Eiffel 5.3 and ISE Eiffel 5.4|See compiler changes for more details]] . +* Now a C externals that might block the execution of a system, should be marked `blocking`. [[Major changes between ISE Eiffel 5.3 and ISE Eiffel 5.4|See compiler changes for more details]] . ===EiffelVision2=== * [[Revisions and Bug Fixes|Click here to see list of update and modification to EiffelVision2]] . diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-5-release-notes/release-notes-eiffelstudio-56.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-5-release-notes/release-notes-eiffelstudio-56.wiki index 01ea3e68..2ea416ec 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-5-release-notes/release-notes-eiffelstudio-56.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-5-release-notes/release-notes-eiffelstudio-56.wiki @@ -47,7 +47,7 @@ * Various minor bug fixes and improvements regarding the interface ===Debugger engine=== -* Fixed a memory leak with the `estudio' process when conditional breakpoints are enabled. +* Fixed a memory leak with the `estudio` process when conditional breakpoints are enabled. * Improved speed of execution when conditional breakpoints are enabled (about 20 times faster). * Fixed a bug where after killing a debugged process, the debugger could not be launched anymore. * Improved speed regarding STRING and SPECIAL manipulation in the debugger diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-5-release-notes/release-notes-eiffelstudio-57.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-5-release-notes/release-notes-eiffelstudio-57.wiki index d532594e..e7ba2548 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-5-release-notes/release-notes-eiffelstudio-57.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-5-release-notes/release-notes-eiffelstudio-57.wiki @@ -110,7 +110,7 @@ ===EiffelNet=== * Added in SOCKET read_integer_XX, put_integer_XX, last_integer_xx and read_natural_XX, put_natural_XX, last_natural_XX where XX stands for 8, 16, 32, 64. * Modified put and read in NETWORK_RESOURCE, FTP_PROTOCOL, HTTP_PROTOCOL, FILE_PROTOCOL so that the error checking code is not using socket_ok which might triggers error when there are none. -* Improved handling of recipients and header_from in SMTP_PROTOCOL so that you can provide a nice `From' or `To' in the message since they are different from the addresses you have to pass from MAIL FROM and RCPT TO. +* Improved handling of recipients and header_from in SMTP_PROTOCOL so that you can provide a nice `From` or `To` in the message since they are different from the addresses you have to pass from MAIL FROM and RCPT TO. * Improved error handling in EiffelNet. Now each time an error occurs you get an exception and the operating system error code is preserved. * Added ability to get the number of bytes read for all the read operation through the bytes_read query. This is useful to detect graceful shutdown of sockets. diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-6-release-notes/release-notes-eiffelstudio-62.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-6-release-notes/release-notes-eiffelstudio-62.wiki index 3dbc75f6..ea428c18 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-6-release-notes/release-notes-eiffelstudio-62.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-6-release-notes/release-notes-eiffelstudio-62.wiki @@ -8,7 +8,7 @@ * Added new contract editor tool to ease edition of contracts on routines and classes. * Added Eiffel Information System which let you connect external documentation to your Eiffel code and vice versa. * Added ability to avoid comment duplication by using the in your descendant comment to reuse the parent one which is shown in all our formatter tools.. -* Added new light batch compiler `ecb'. It provides the same features as `ec' when using the batch mode. Currently projects compiled with `ec' are not compatible with those compiled with `ecb'. The main difference between the two is that `ec' is compiled with exception trace and multithreading support which could slow down the compiler by a factor of 20 to 40% depending on your platform. +* Added new light batch compiler `ecb`. It provides the same features as `ec` when using the batch mode. Currently projects compiled with `ec` are not compatible with those compiled with `ecb`. The main difference between the two is that `ec` is compiled with exception trace and multithreading support which could slow down the compiler by a factor of 20 to 40% depending on your platform. * Added experimental unit testing tool. ===Improvements=== @@ -46,18 +46,18 @@ ==Libraries== ===EiffelBase=== -* Changed signature of {SPECIAL}.same_items and {SPECIAL}.all_default to take an extra argument. Our analysis shows that it was only used by ARRAY and that it should be harmless. If you have a compilation error, simply add `0' as first argument of your call. -* Changed physical_size in INTERNAL to return the real allocated size of an object along with its header size. -* Added deep_physical_size in INTERNAL to compute the size of an object and all its dependencies. -* Improved speed of read_stream in FILE so that it used underlying `fread' once rather than calling `getc' for each requested character. Our benchmarks show that you can save up to 2s for 1000 calls. -* Added an assigner routine for item in ARRAY2. This might break descendant classes of ARRAY2 redefining item. +* Changed signature of {`SPECIAL`}.`same_items` and {`SPECIAL`}.`all_default` to take an extra argument. Our analysis shows that it was only used by `ARRAY` and that it should be harmless. If you have a compilation error, simply add `0` as first argument of your call. +* Changed `physical_size` in `INTERNAL` to return the real allocated size of an object along with its header size. +* Added `deep_physical_size` in `INTERNAL` to compute the size of an object and all its dependencies. +* Improved speed of `read_stream` in `FILE` so that it used underlying `fread` once rather than calling `getc` for each requested character. Our benchmarks show that you can save up to 2s for 1000 calls. +* Added an assigner routine for `item` in `ARRAY2`. This might break descendant classes of `ARRAY2` redefining `item`. * Updated code toward Void-safety. ===EiffelNet=== -* Fixed bug in {SOCKET}.read_stream where if there was a socket error, then it would cause a precondition violation in C_STRING. +* Fixed bug in {`SOCKET`}.`read_stream` where if there was a socket error, then it would cause a precondition violation in `C_STRING`. ===EiffelTime=== -* Added support for DEBUG_OUTPUT for DATE, TIME and DATE_TIME objects making it easier to debug code based on them. +* Added support for `DEBUG_OUTPUT` for `DATE`, `TIME` and `DATE_TIME` objects making it easier to debug code based on them. * Fixed bug where duration in days between two dates overlapping a leap year would yield a result off by +1 or -1. * 10% speed improvement on certain date operations (can be seen on eweasel test#time002). @@ -65,7 +65,7 @@ * [[Revisions and Bug Fixes|Click here for EiffelVision2 release notes.]] ===EiffelVision2=== -* Fixed a bug in {WEL_REGISTRY}.enumerate_key where the routine would go in an infinite loop if the key name was larger than 64 characters. +* Fixed a bug in {`WEL_REGISTRY`}.`enumerate_key` where the routine would go in an infinite loop if the key name was larger than 64 characters. [[EiffelStudio release notes|Click here to check out what was new in other versions]] diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-6-release-notes/release-notes-eiffelstudio-65.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-6-release-notes/release-notes-eiffelstudio-65.wiki index 8151330a..53574c2f 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-6-release-notes/release-notes-eiffelstudio-65.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-6-release-notes/release-notes-eiffelstudio-65.wiki @@ -62,7 +62,7 @@ No changes in this release. ==Libraries== ===EiffelBase=== -* In experimental mode, we have changed the signature of generating_type to return an instance of TYPE rather than an instance of STRING. Existing code should still compile out of the box since we have equipped TYPE with conversions and new features similar to those of STRING. In the few cases where it would still not compile, use `generating_type.out' to ensure that the code will compile fine regardless of the compiler mode chosen (i.e. experimental or non-experimental). +* In experimental mode, we have changed the signature of generating_type to return an instance of TYPE rather than an instance of STRING. Existing code should still compile out of the box since we have equipped TYPE with conversions and new features similar to those of STRING. In the few cases where it would still not compile, use `generating_type.out` to ensure that the code will compile fine regardless of the compiler mode chosen (i.e. experimental or non-experimental). * Fixed an issue in copy from HEAP_PRIORITY_QUEUE which would not do anything because it was simply copying itself, not the other queue. * Fixed a bug in remove from HEAP_PRIORITY_QUEUE which caused the internal structure to be referenced beyond its bounds. * Made clear_all in STRING_8, STRING_32 and HASH_TABLE obsolete. One has to use wipe_outinstead. @@ -80,7 +80,7 @@ No changes in this release. ===EiffelNet=== * Fixed an issue with {NETWORK_STREAM_SOCKET}.make_server_by_port (0) which would not automatically get a port assigned. * Fixed obsolete warnings in the library. -* Prevented a socket to change its blocking mode when connecting with a timeout (it would end up always being blocking even if requested otherwise before the call to `connect'. +* Prevented a socket to change its blocking mode when connecting with a timeout (it would end up always being blocking even if requested otherwise before the call to `connect`. * Ensured that a socket is indeed connected when successfully connecting to it while the socket is in non-blocking mode. ===EiffelVision2=== diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-6-release-notes/release-notes-eiffelstudio-66.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-6-release-notes/release-notes-eiffelstudio-66.wiki index 67b28c22..529964e7 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-6-release-notes/release-notes-eiffelstudio-66.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-6-release-notes/release-notes-eiffelstudio-66.wiki @@ -70,7 +70,7 @@ ** ARRAYED_LIST does not conform to ARRAY. One has to use {ARRAYED_LIST}.to_array to convert it to an ARRAY. ** HASH_TABLE internals have been changed so that order of traversal will be different from what it used to be. ** The non-void safe routine {SPECIAL}.make has been removed. Instead one has to use either {SPECIAL}.make_empty (which is not available in compatible mode) or {SPECIAL}.make_filled (which is available in both) -** To reflect the change in SPECIAL, TO_SPECIAL was also modified and `make_area' was replaced by `make_empty_area'. Again to have compatible code between both mode use `make_filled_area' instead. +** To reflect the change in SPECIAL, TO_SPECIAL was also modified and `make_area` was replaced by `make_empty_area`. Again to have compatible code between both mode use `make_filled_area` instead. ===EiffelThread=== * Made the THREAD class thread-safe which prevents using the same object to launch a new thread. Now there is a precondition is_launchable and a status report is_last_launch_successful to help in determining whether a thread was actually launched. diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-6-release-notes/release-notes-eiffelstudio-67.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-6-release-notes/release-notes-eiffelstudio-67.wiki index c28567da..5ad4bd0e 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-6-release-notes/release-notes-eiffelstudio-67.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-6-release-notes/release-notes-eiffelstudio-67.wiki @@ -17,7 +17,7 @@ * Fixed some formatting issues when using the new loop form using across. * Fixed the saving of the diagrams to PNG. * Fixed bug#16831: Picking and dropping class from Features window into Editor tab clears Features window. -* Fixed issue with `libraries.cfg' files used to know where to look for libraries (the trouble was only on Windows) +* Fixed issue with `libraries.cfg` files used to know where to look for libraries (the trouble was only on Windows) ==Compiler== * Click [[Major changes between ISE Eiffel 6.6 and ISE Eiffel 6.7|here]] for the compiler release notes. @@ -32,7 +32,7 @@ ===Debugger engine=== *Now handle correctly manifest string and string_32 in debugger (expression evaluation) *Improved stepping in MT debugging session. Now the debugger stays in the same thread (instead of jumping from a thread to another without any coherence). -*Fixed void-safety issue, when trying to evaluate `Result' in watch tool (previously, it was reporting VEVI ...) +*Fixed void-safety issue, when trying to evaluate `Result` in watch tool (previously, it was reporting VEVI ...) ==EiffelBuild== * Click [[EiffelBuild Version History|here]] for the EiffelBuild release notes. @@ -42,14 +42,14 @@ ===EiffelBase=== * ARRAY: ** Made {ARRAY}.make and {ARRAY}.conservative_resize obsolete as they are not void safe. Alternative recommendation is to use {ARRAY}.make_empty, {ARRAY}.make_filled or {ARRAY}.conservative_resize_with_default. -** Added {ARRAY}.rebase that would help creating an empty array with a given `lower'. -** BOUNDED_QUEUE and BOUNDED_STACK have been rewritten to use the same implementation of ARRAYED_QUEUE and ARRAYED_STACK, the only difference is that `extendible' is defined to be False. The `correct_mismatch' feature has been updated to ensure retrieval. +** Added {ARRAY}.rebase that would help creating an empty array with a given `lower`. +** BOUNDED_QUEUE and BOUNDED_STACK have been rewritten to use the same implementation of ARRAYED_QUEUE and ARRAYED_STACK, the only difference is that `extendible` is defined to be False. The `correct_mismatch` feature has been updated to ensure retrieval. * FORMAT_DOUBLE: -** Fixed eweasel test#lib036 in FORMAT_DOUBLE where `pad_fraction' did not process properly when one decided to not show the trailing zeros and there were only zeros after the decimal point. -** Fixed the post-condition of {FORMAT_DOUBLE}.pad_fraction to reflect that the count is set to `decimals' but only when one shows the trailing zeros. +** Fixed eweasel test#lib036 in FORMAT_DOUBLE where `pad_fraction` did not process properly when one decided to not show the trailing zeros and there were only zeros after the decimal point. +** Fixed the post-condition of {FORMAT_DOUBLE}.pad_fraction to reflect that the count is set to `decimals` but only when one shows the trailing zeros. * Added WEAK_REFERENCE to allow weak references in an Eiffel system. This supersedes the IDENTIFIED class which made it necessary to change one's code to allow weak referencing. Currently the class is only implemented for classic Eiffel; it is not available when compiling for .NET. * Added new Eiffel tracing facility classes TRACING_HANDLER and TRACING_SETTING which let you capture some information about the current execution via callbacks. -* Fixed eweasel test#list010 with twinning and deep_twinning of a FIXED_LIST that would reset `capacity' to `count'. +* Fixed eweasel test#list010 with twinning and deep_twinning of a FIXED_LIST that would reset `capacity` to `count`. * Added {TYPE}.is_expanded to find out if a type is expanded or not. ===EiffelVision2=== diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-7-release-notes/release-notes-eiffelstudio-70.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-7-release-notes/release-notes-eiffelstudio-70.wiki index 8977e064..8d5c3490 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-7-release-notes/release-notes-eiffelstudio-70.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-7-release-notes/release-notes-eiffelstudio-70.wiki @@ -55,7 +55,7 @@ * Prevented creation of instances of PROCEDURE, FUNCTION, and PREDICATE using a creation instruction. An agent has to be created via the agent expression provided at the language level. * Fixed a potential reporting of version mismatch when there is a mismatch but actually no version changes. * Added TABLE_ITERATOR and TABLE_ITERATION_CURSOR to provide a common way for TABLE like datastructure to iterate over using the new across loop. -* Improved speed of `replace_substring_all' when replacing a smaller string by a larger one. +* Improved speed of `replace_substring_all` when replacing a smaller string by a larger one. * Added support for string searches of a STRING_32 string (previously it was limited to STRING_8). * Fixed {IMMUTABLE_STRING_XX}.shared_substring which would not be properly processed by many string operations (e.g. item, item_code, code, ...). * Changed the behavior of {STRING_XX}.twin to create a new string where the capacity is set to the count of the twinned strings and not to its capacity. In scenarios where a large buffer is used but a frequent twin is used it has a big impact on speed and memory usage. diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-7-release-notes/release-notes-eiffelstudio-71.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-7-release-notes/release-notes-eiffelstudio-71.wiki index 2f9026f0..d81693bc 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-7-release-notes/release-notes-eiffelstudio-71.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-7-release-notes/release-notes-eiffelstudio-71.wiki @@ -29,7 +29,7 @@ * Better copy/paste of code to avoid useless reformatting after copying and pasting a block of text. The smart behavior is available via Ctrl+V or Shift+Ins. If the new behavior is not adequate, Ctrl+Shift+V will paste as is. * Better formatting of Eiffel source code when using the pretty printer. * Better performance of SCOOP runtime for certain types of concurrent calls. -* Printing in postscript mode now allowed on Unix (previously, printing always defaulted to RTF); added `use_postscript' preference. +* Printing in postscript mode now allowed on Unix (previously, printing always defaulted to RTF); added `use_postscript` preference. * Take into account mice with high resolution wheels. * Avoid flashing when completion window is updated at each keystroke. * Avoid resizing the grid all the time in Info tool when grid items are recreated for sorting, or other operations. @@ -71,8 +71,8 @@ * Added ability to create a local string using a separate string. * Moved most of the queries of strings descendants (e.g. is_real, is_integer, ...) to class READABLE_STRING_GENERAL to make it easier to handle all the various kinds of strings. * Added {HASH_TABLE}.disjoint to find out if 2 tables have some common elements or not based on the key comparison criteria. -* Made explicit that the `area' is shared between an ARRAY and an ARRAYED_LIST created via conversion. -* Fixed improper implementation of `copy' for UNIX_FILE_INFO and BOOL_STRING which caused for the former a sharing of some FILE specific information. +* Made explicit that the `area` is shared between an ARRAY and an ARRAYED_LIST created via conversion. +* Fixed improper implementation of `copy` for UNIX_FILE_INFO and BOOL_STRING which caused for the former a sharing of some FILE specific information. * Fixed {STRING_32}.left_adjust that did not work properly when the string contained only white spaces. * Fixed an issue with {FILE}.exists on Windows 32-bit when files are larger than 2GB. It only occurs with the latest version of the Microsoft C++ compiler (VS2010 or later). diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-7-release-notes/release-notes-eiffelstudio-73.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-7-release-notes/release-notes-eiffelstudio-73.wiki index 91e3f1df..63b60957 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-7-release-notes/release-notes-eiffelstudio-73.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/eiffelstudio-7-release-notes/release-notes-eiffelstudio-73.wiki @@ -38,7 +38,7 @@ * Made INTERNAL obsolete. It is now replaced by two sets of classes: a static introspection class and a dynamic one. The class that lets you examine the static content is REFLECTOR; most references to INTERNAL can easily be replaced by REFLECTOR. To inspect objects, you have a new set of classes starting with REFLECTED_OBJECT. This lets you inspect objects with copy semantics without actually causing a copy each time you access it, unlike what was happening before with INTERNAL. * Fixed a reallocation bug in SED_MEMORY_READER_WRITER where if you retrieve a large chunk, we would not allocate enough memory. * Added ability to store/retrieve expanded objects and objects with copy semantics with SED. -* Storables made using SED from version 6.6 or earlier of EiffelStudio not using the `is_for_fast_retrieval' setting won't be recoverable. +* Storables made using SED from version 6.6 or earlier of EiffelStudio not using the `is_for_fast_retrieval` setting won't be recoverable. ===EiffelStore=== * Do not remove trailing spaces for string content. diff --git a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/release-notes-eiffelstudio-1311.wiki b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/release-notes-eiffelstudio-1311.wiki index adff661c..ca606cee 100644 --- a/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/release-notes-eiffelstudio-1311.wiki +++ b/documentation/trunk/eiffelstudio/eiffelstudio-reference/eiffelstudio-release-notes/release-notes-eiffelstudio-1311.wiki @@ -51,7 +51,7 @@ N/A * Added functions {TUPLE}.new_tuple_from_special and {TUPLE}.new_tuple_from_tuple to create a tuple of a specified type filled with given values (rev#92917). * Added features {ROUTINE}.flexible_call and {FUNCTION}.flexible_item that accept argument tuples whose type should not exactly match the type of the routine as soon as the types of arguments match (rev#92918). * Marked {ROUTINE}.empty_operands as obsolete to be ready for removal in the future as non-void-safe (rev#92918). -* In HASH_TABLE, in the event of a mismatch, it is possible that the value of `control' was invalid (see bug#18670) so we reset it to 0. +* In HASH_TABLE, in the event of a mismatch, it is possible that the value of `control` was invalid (see bug#18670) so we reset it to 0. * Introspection changes in OBJECT_GRAPH_TRAVERSABLE: **Rewrote traverse to fix an issue with objects with expanded fields where we would not recurse into them. Added support for SPECIAL of expanded as well. We still have restrictions for TUPLE with expanded for which a copy be done. ** Added new callbacks on_processing_object_action and on_processing_reference_action each time a new object is traversed, that help building a graph of objects. @@ -70,7 +70,7 @@ N/A * Simplified compilation of unix side of the library to load the webkit shared library at runtime without requiring it at compile time. ===XML=== -* Fixed XML cases where we have or ... take into account the attribute `att' but report missing value for attribute `att'. +* Fixed XML cases where we have or ... take into account the attribute `att` but report missing value for attribute `att`. * Add report_unsupported_bom_value routine to report unsupported BOM value error. [[EiffelStudio release notes|Click here to check out what was new in other versions]] diff --git a/documentation/trunk/solutions/concurrent-computing/eiffelthread/eiffelthread-tutorial/compilation-multithreaded-systems.wiki b/documentation/trunk/solutions/concurrent-computing/eiffelthread/eiffelthread-tutorial/compilation-multithreaded-systems.wiki index ddc758fb..1b38b0d2 100644 --- a/documentation/trunk/solutions/concurrent-computing/eiffelthread/eiffelthread-tutorial/compilation-multithreaded-systems.wiki +++ b/documentation/trunk/solutions/concurrent-computing/eiffelthread/eiffelthread-tutorial/compilation-multithreaded-systems.wiki @@ -11,7 +11,7 @@ * Set the Concurrency option to EiffelThread in the project settings under Advanced. * Do not use a non-multi-threaded precompiled library. The corresponding multi-threaded libraries of base, WEL and Vision2 should be located in $ISE_EIFFEL/precomp/spec/$PLATFORM/ with the mt prefix. * You may want to include the thread library (located at "$ISE_EIFFEL/library/thread") in your project. This setting can be done in [[Group Options| the groups section of the project settings window]] . -* When using external C libraries, be sure that they are MT-safe on the platforms where the Eiffel Threads are available. For example [[WEL]] and [[EiffelNet]] multi-threaded libraries can be recognized by the `mt' prefix. +* When using external C libraries, be sure that they are MT-safe on the platforms where the Eiffel Threads are available. For example [[WEL]] and [[EiffelNet]] multi-threaded libraries can be recognized by the `mt` prefix. ==Compilation== diff --git a/documentation/trunk/solutions/database-access/eiffelstore/eiffelstore-tutorial/eiffelstore-dataview-cluster.wiki b/documentation/trunk/solutions/database-access/eiffelstore/eiffelstore-tutorial/eiffelstore-dataview-cluster.wiki index d455c56a..f08e3d57 100644 --- a/documentation/trunk/solutions/database-access/eiffelstore/eiffelstore-tutorial/eiffelstore-dataview-cluster.wiki +++ b/documentation/trunk/solutions/database-access/eiffelstore/eiffelstore-tutorial/eiffelstore-dataview-cluster.wiki @@ -147,13 +147,13 @@ The component can then be used on an interface: Output handlers are specific to the [[ref:libraries/store/reference/dv_tablerows_component_chart|DV_TABLE_COMPONENT]] object, that is, you can output messages in a different way within your GUI. However, the same handlers will be used for subcomponents. 3 handlers can be set: -* `status_handler' to display status information -* `warning_handler' to display warning information. Warnings usually correspond to database errors, they are called warnings because the database error is "caught" and the message should enable the user to round the problem. -* `confirmation_handler' to ask for confirmation before an action. +* `status_handler` to display status information +* `warning_handler` to display warning information. Warnings usually correspond to database errors, they are called warnings because the database error is "caught" and the message should enable the user to round the problem. +* `confirmation_handler` to ask for confirmation before an action. These handlers have default values, which are: -* For `status_handler' and `warning_handler', messages are displayed on standard output (with {ANY}.io.put_string) -* For `confirmation_handler', action is executed without confirmation. +* For `status_handler` and `warning_handler`, messages are displayed on standard output (with {ANY}.io.put_string) +* For `confirmation_handler`, action is executed without confirmation. ====4.1.2. Database handler==== @@ -204,8 +204,8 @@ Finally, notice that by default slave components have the same output handlers a [[Image:component-search-relation]] Basic relationship between table component class and search class -* `display' assigns a set of table rows to the table component. -* `refresh' asks to refresh the table rows from the same database query. +* `display` assigns a set of table rows to the table component. +* `refresh` asks to refresh the table rows from the same database query. [[ref:libraries/store/reference/dv_searcher_chart|DV_SEARCHER]] component does not afford an extended interface. This interface is defined in its descendants. The implemented [[ref:libraries/store/reference/dv_searcher_chart|DV_SEARCHER]] descendants are: * [[ref:libraries/store/reference/dv_typed_searcher_chart|DV_TYPED_SEARCHER]] performs different [[#dv_typed_searcher|basic searches]] used by the cluster. @@ -294,8 +294,8 @@ This class enables to create database table rows. Basic relationship between table component class and navigation class [[ref:libraries/store/reference/dv_creator_chart|DV_CREATOR]] class contains minimum information to interact with [[ref:libraries/store/reference/dv_tablerows_component_chart|DV_TABLE_COMPONENT]] : when a table row is created, a creator component may display it on the table component. In this case, when the table component needs to refresh the table rows set, this refreshing action need to be managed by the creator component: -* `set_just_created' informs a table component that displayed table row set comes from the creator component. -* `refresh' lets the creation component refresh table component display. +* `set_just_created` informs a table component that displayed table row set comes from the creator component. +* `refresh` lets the creation component refresh table component display. Much of the work, that is row creation, is totally abstracted in DV_CREATOR.DV_CHOICE_CREATOR implements DV_CREATOR and thus affords a creation procedure. @@ -328,11 +328,11 @@ Creation process and [[ref:libraries/store/reference/dv_choice_creator_chart|DV_ Table row creation process is: # Table row creation is triggered by a [[#dv_s_control| controller]] ("create") # DV_CHOICE_CREATOR creates a table row object -# DV_CHOICE_CREATOR requests a first foreign key value to [[ref:libraries/store/reference/dv_tablerow_id_provider_chart|DV_TABLEROW_ID_PROVIDER]] (through `select_from_table') +# DV_CHOICE_CREATOR requests a first foreign key value to [[ref:libraries/store/reference/dv_tablerow_id_provider_chart|DV_TABLEROW_ID_PROVIDER]] (through `select_from_table`) # DV_TABLEROW_ID_PROVIDER loads the available table rows that can be referenced # DV_TABLEROW_ID_PROVIDER assigns the table rows to DV_TABLEROWS_NAVIGATOR and pops up the interface with the table rows # Table row selection is triggered by a [[#dv_s_control| controller]] ("ok") -# DV_TABLEROW_ID_PROVIDER retrieves the selected table row ID and gives it back to DV_CHOICE_CREATOR (through `add_foreign_key_value') +# DV_TABLEROW_ID_PROVIDER retrieves the selected table row ID and gives it back to DV_CHOICE_CREATOR (through `add_foreign_key_value`) # DV_CHOICE_CREATOR requests other foreign key values to DV_TABLEROW_ID_PROVIDER # DV_CHOICE_CREATOR creates the database row with a new ID through the database handle diff --git a/documentation/trunk/solutions/gui-building/eiffelbuild/eiffelbuild-reference/builder-window.wiki b/documentation/trunk/solutions/gui-building/eiffelbuild/eiffelbuild-reference/builder-window.wiki index 798d9253..33887ab8 100644 --- a/documentation/trunk/solutions/gui-building/eiffelbuild/eiffelbuild-reference/builder-window.wiki +++ b/documentation/trunk/solutions/gui-building/eiffelbuild/eiffelbuild-reference/builder-window.wiki @@ -21,8 +21,8 @@ Imagine that this was not the case, and each container [[EiffelBuild Notation|ob In the screenshot above, you can see that there are two [[EiffelBuild Notation|objects]] representing containers in your project, an EV_VERTICAL_BOX, and an EV_HORIZONTAL_BOX (Excluding the EV_TITLED_WINDOW [[EiffelBuild Notation|object]] represented by this window). The properties of the [[EiffelBuild Notation|objects]] in you system are always reflected in this window, with a few exceptions: -* '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. +* `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|
[[Display window|Display window]]
diff --git a/documentation/trunk/solutions/gui-building/eiffelbuild/eiffelbuild-reference/constants.wiki b/documentation/trunk/solutions/gui-building/eiffelbuild/eiffelbuild-reference/constants.wiki index 0c15fc41..296e2cd3 100644 --- a/documentation/trunk/solutions/gui-building/eiffelbuild/eiffelbuild-reference/constants.wiki +++ b/documentation/trunk/solutions/gui-building/eiffelbuild/eiffelbuild-reference/constants.wiki @@ -54,7 +54,7 @@ As objects are reliant on the constant you are removing, you must confirm that y ==String constant== -A String constant represents an Eiffel STRING, and may be any valid STRING. For example, in the generated constants file, for a String constant named `modify_button_text', the following code is generated: +A String constant represents an Eiffel STRING, and may be any valid STRING. For example, in the generated constants file, for a String constant named `modify_button_text`, the following code is generated: modify_button_text: STRING -- `Result' is STRING constant named modify_button_text. @@ -66,7 +66,7 @@ A String constant represents an Eiffel STRING, and may be any valid STRING. For ==Integer constant== -A Integer constant represents an Eiffel INTEGER, and may be any valid INTEGER value. For example, in the generated constants file, for an Integer constant named `medium_padding', the following code is generated: +A Integer constant represents an Eiffel INTEGER, and may be any valid INTEGER value. For example, in the generated constants file, for an Integer constant named `medium_padding`, the following code is generated: medium_padding: INTEGER -- `Result' is INTEGER constant named medium_padding. @@ -76,7 +76,7 @@ A Integer constant represents an Eiffel INTEGER, and may be any valid INTEGER va ==Directory constant== -A Directory constant is an Eiffel representation of a directory, as a STRING value. For example, in the generated constants file, for a Directory constant named `pixmap_location', the following code is generated: +A Directory constant is an Eiffel representation of a directory, as a STRING value. For example, in the generated constants file, for a Directory constant named `pixmap_location`, the following code is generated: pixmap_location: STRING -- `Result' is DIRECTORY constant named pixmap_location. @@ -115,12 +115,12 @@ A pixmap constant is a representation of a pixmap image, and two types are avail set_with_named_file(Result, a_file_name) end -Where `pixmap_location' is the name of the Directory constant to which the pixmap is relative. +Where `pixmap_location` is the name of the Directory constant to which the pixmap is relative. ==Font constant== -A Font constant represents an EV_FONT. For example, in the generated constants file, for a font constant named `times_new_roman', the following code is generated: +A Font constant represents an EV_FONT. For example, in the generated constants file, for a font constant named `times_new_roman`, the following code is generated: times_new_roman: EV_FONT -- `Result' is EV_FONT constant named `times_new_roman'. @@ -135,7 +135,7 @@ A Font constant represents an EV_FONT. For example, in the generated constants f ==Color constant== -A Color constant represents an EV_COLOR. For example, in the generated constants file, for a color constant named `red', the following code is generated: +A Color constant represents an EV_COLOR. For example, in the generated constants file, for a color constant named `red`, the following code is generated: red: EV_COLOR -- `Result' is EV_COLOR constant named `red'. diff --git a/documentation/trunk/solutions/gui-building/eiffelbuild/eiffelbuild-reference/eiffelbuild-project-settings-window/build-tab.wiki b/documentation/trunk/solutions/gui-building/eiffelbuild/eiffelbuild-reference/eiffelbuild-project-settings-window/build-tab.wiki index 4ee1dd04..decb15fd 100644 --- a/documentation/trunk/solutions/gui-building/eiffelbuild/eiffelbuild-reference/eiffelbuild-project-settings-window/build-tab.wiki +++ b/documentation/trunk/solutions/gui-building/eiffelbuild/eiffelbuild-reference/eiffelbuild-project-settings-window/build-tab.wiki @@ -15,7 +15,7 @@ The options available in this tab are as follows: * '''Build type''' Select 'Project' if you wish to generate a complete project including an ace file, and an application class, which will launch the GUI you are developing. -Select `Class' if you wish to generate a single class that represents the GUI you are developing. This option is useful if you wish to incorporate your current project into an existing EiffelVision 2 system. +Select `Class` if you wish to generate a single class that represents the GUI you are developing. This option is useful if you wish to incorporate your current project into an existing EiffelVision 2 system. * '''Always rebuild ace''' This option causes the ace file to be completely re-generated every time you generate your project. If you do not wish the ace file to be re-generated, then disable this option. This check box is only available if 'build type' is set to 'project'. diff --git a/documentation/trunk/solutions/gui-building/eiffelbuild/eiffelbuild-reference/object-editor/index.wiki b/documentation/trunk/solutions/gui-building/eiffelbuild/eiffelbuild-reference/object-editor/index.wiki index a1759a75..e6415692 100644 --- a/documentation/trunk/solutions/gui-building/eiffelbuild/eiffelbuild-reference/object-editor/index.wiki +++ b/documentation/trunk/solutions/gui-building/eiffelbuild/eiffelbuild-reference/object-editor/index.wiki @@ -60,7 +60,7 @@ Clicking this button will cause the following dialog to be displayed: Looking at the screenshot above, you will see that this dialog contains all the action_sequences available for the EV_BUTTON to which the object editor is targeted. -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. +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|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. }} diff --git a/documentation/trunk/solutions/gui-building/eiffelbuild/eiffelbuild-version-history.wiki b/documentation/trunk/solutions/gui-building/eiffelbuild/eiffelbuild-version-history.wiki index c82969ed..02473688 100644 --- a/documentation/trunk/solutions/gui-building/eiffelbuild/eiffelbuild-version-history.wiki +++ b/documentation/trunk/solutions/gui-building/eiffelbuild/eiffelbuild-version-history.wiki @@ -32,7 +32,7 @@ Updated the generated code to the latest Eiffel syntax as specified by ECMA. * Fixed positioning bug when moving items within their current parent by dropping on another item in that parent with the shift key held down. * Fixed bug where modifying the "User can resize" property of a window while the tools were always shown on top stopped the tools from being shown on top. * Added support for multi-line tooltips. -* Added support for `is_item_expanded' from EV_SPLIT_AREA. +* Added support for `is_item_expanded` from EV_SPLIT_AREA. * Added the ability to specify a directory for generation, into which location all files are to be generated. * Event selection dialogs now contain the name of the object to which they refer in their title for cases where multiple dialogs are open simultaneously * The project settings dialog is now completely navigatable via the keyboard on Windows platforms. diff --git a/documentation/trunk/solutions/gui-building/eiffelvision-2/eiffelvision-introduction.wiki b/documentation/trunk/solutions/gui-building/eiffelvision-2/eiffelvision-introduction.wiki index 93555d4a..66e77b30 100644 --- a/documentation/trunk/solutions/gui-building/eiffelvision-2/eiffelvision-introduction.wiki +++ b/documentation/trunk/solutions/gui-building/eiffelvision-2/eiffelvision-introduction.wiki @@ -40,14 +40,14 @@ As stated before, the library has undergone some drastic changes since the previ EiffelVision 2 provides programmers with high-level classes that provide all mechanisms and data structures needed to build advanced user interfaces for deployment on almost all platforms without having to worry about detailed requirements of of those platforms (toolkits). -The abstract design has been derived from an analysis of user interfaces. Therefore we have classes with names like MENU, WINDOW, BUTTON, LINE or POLYGON. The features of these classes are simple, clearly defined properties or commands, like the feature `minimize' (a command) on WINDOW or `text' (a property of type STRING) on BUTTON. +The abstract design has been derived from an analysis of user interfaces. Therefore we have classes with names like MENU, WINDOW, BUTTON, LINE or POLYGON. The features of these classes are simple, clearly defined properties or commands, like the feature `minimize` (a command) on WINDOW or `text` (a property of type STRING) on BUTTON. {{note| All class names in EiffelVision 2 are pre-pended with EV_ to avoid name clashes with existing classes. Thus, BUTTON becomes EV_BUTTON, etc. }} ==Properties== -When talking about a property of a class, like `text', in fact we are talking about multiple features. One is a query of the state of the property, in this case simply the query `text'. The other is the set-routine, which is by convention named `set_text' taking exactly one argument of the type of the property. A property can be read-only, which means that it cannot be set by clients of the class. +When talking about a property of a class, like `text`, in fact we are talking about multiple features. One is a query of the state of the property, in this case simply the query `text`. The other is the set-routine, which is by convention named `set_text` taking exactly one argument of the type of the property. A property can be read-only, which means that it cannot be set by clients of the class. text: STRING @@ -58,7 +58,7 @@ When talking about a property of a class, like `text', in fact we are talking ab end -Boolean properties have a different convention. Instead of one set-routine, it has one enable-routine and one disable-routine. The first one sets the property to true, and the second to false. This has been done this way because sometimes these enable/disable features have trivial equivalents, for example for feature `enable_visible' a clearer name is `show'. +Boolean properties have a different convention. Instead of one set-routine, it has one enable-routine and one disable-routine. The first one sets the property to true, and the second to false. This has been done this way because sometimes these enable/disable features have trivial equivalents, for example for feature `enable_visible` a clearer name is `show`. is_sensitive: BOOLEAN diff --git a/documentation/trunk/solutions/gui-building/eiffelvision-2/eiffelvision-library-reference-manual/index.wiki b/documentation/trunk/solutions/gui-building/eiffelvision-2/eiffelvision-library-reference-manual/index.wiki index decfe3bc..636b8aa7 100644 --- a/documentation/trunk/solutions/gui-building/eiffelvision-2/eiffelvision-library-reference-manual/index.wiki +++ b/documentation/trunk/solutions/gui-building/eiffelvision-2/eiffelvision-library-reference-manual/index.wiki @@ -11,7 +11,7 @@ The EiffelVision 2 library includes the following interface clusters: * The [[Items| items]] cluster includes the classes needed to create items. Items are widgets that can only be contained within a certain type of widget. Example: [[ref:libraries/vision2/reference/ev_list_chart| EV_LIST]] widgets may only contain objects of type [[ref:libraries/vision2/reference/ev_list_item_chart|EV_LIST_ITEM]] . Items provide an abstract way of dealing with an item-widget's internal data structures and provide, in many cases, the same functionality that a widget does. -* The [[Events| events]] cluster contains classes that allow for user-initiated events, such as the clicking of a button to be dealt with via the use of a linked list of agents ([[ref:libraries/vision2/reference/ev_action_sequence_chart|EV_ACTION_SEQUENCE]]). An Agent can be thought of as an object that encapsulates a certain procedure. When a user clicks a button on the screen, the corresponding [[ref:libraries/vision2/reference/ev_button_chart| EV_BUTTON]] object has its `pointer_button_press_actions' fired, and this, in turn, fires all of the agents held within this list, thus calling all of the procedures represented by the agents. Every widget and item has a number of [[ref:libraries/base/reference/action_sequence_chart|ACTION_SEQUENCE]] objects, each of which are linked to a certain type of event. To link any number of different procedure calls with an event, it is only necessary to `extend' the action-sequence list associated with that event, with agents representing those calls. +* The [[Events| events]] cluster contains classes that allow for user-initiated events, such as the clicking of a button to be dealt with via the use of a linked list of agents ([[ref:libraries/vision2/reference/ev_action_sequence_chart|EV_ACTION_SEQUENCE]]). An Agent can be thought of as an object that encapsulates a certain procedure. When a user clicks a button on the screen, the corresponding [[ref:libraries/vision2/reference/ev_button_chart| EV_BUTTON]] object has its pointer_button_press_actions fired, and this, in turn, fires all of the agents held within this list, thus calling all of the procedures represented by the agents. Every widget and item has a number of [[ref:libraries/base/reference/action_sequence_chart|ACTION_SEQUENCE]] objects, each of which are linked to a certain type of event. To link any number of different procedure calls with an event, it is only necessary to extend the action-sequence list associated with that event, with agents representing those calls. * The [[Properties| properties]] cluster contains classes that allow for the customization of Vision 2 widgets and items. Classes such as [[ref:libraries/vision2/reference/ev_colorizable_chart|EV_COLORIZABLE]] and [[ref:libraries/vision2/reference/ev_fontable_chart|EV_FONTABLE]] contain routines that allow for (respectively) color and font to be altered for a widget. diff --git a/documentation/trunk/solutions/gui-building/eiffelvision-2/eiffelvision-library-reference-manual/kernel.wiki b/documentation/trunk/solutions/gui-building/eiffelvision-2/eiffelvision-library-reference-manual/kernel.wiki index 9b1e7869..adb1d56a 100644 --- a/documentation/trunk/solutions/gui-building/eiffelvision-2/eiffelvision-library-reference-manual/kernel.wiki +++ b/documentation/trunk/solutions/gui-building/eiffelvision-2/eiffelvision-library-reference-manual/kernel.wiki @@ -77,9 +77,9 @@ end ==What Does Launch Actually Do?== -In EiffelVision 2, 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. +In EiffelVision 2, 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|An EiffelVision 2 system is event based. This means that the way you control the execution within an EiffelVision 2 system is by responding 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 (i.e. call `destroy' on the application object). }} +{{note|An EiffelVision 2 system is event based. This means that the way you control the execution within an EiffelVision 2 system is by responding 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 (i.e. call destroy on the application object). }} ==Building Your Application Skeleton== diff --git a/documentation/trunk/solutions/gui-building/eiffelvision-2/eiffelvision-library-reference-manual/widgets/containers.wiki b/documentation/trunk/solutions/gui-building/eiffelvision-2/eiffelvision-library-reference-manual/widgets/containers.wiki index 12d647b8..7d8102c9 100644 --- a/documentation/trunk/solutions/gui-building/eiffelvision-2/eiffelvision-library-reference-manual/widgets/containers.wiki +++ b/documentation/trunk/solutions/gui-building/eiffelvision-2/eiffelvision-library-reference-manual/widgets/containers.wiki @@ -41,9 +41,9 @@ A code example of adding widgets to a container is as follows: The mapping of a EiffelVision 2 container interface is very close to that of containers in [[EiffelBase]], such as a linked list. -* To add a widget to a container call `extend'. -* To remove a widget from the container call `prune'. -* To empty a container call `wipe_out'. +* To add a widget to a container call extend. +* To remove a widget from the container call prune. +* To empty a container call wipe_out. * To traverse the container, you can use features such as start, forth, item, and off. {{note|When a widget is added to a container, the container is the parent of the widget. }} diff --git a/documentation/trunk/solutions/gui-building/eiffelvision-2/revisions-and-bug-fixes.wiki b/documentation/trunk/solutions/gui-building/eiffelvision-2/revisions-and-bug-fixes.wiki index 7e25401c..478fbbf4 100644 --- a/documentation/trunk/solutions/gui-building/eiffelvision-2/revisions-and-bug-fixes.wiki +++ b/documentation/trunk/solutions/gui-building/eiffelvision-2/revisions-and-bug-fixes.wiki @@ -36,7 +36,7 @@ This document contains details of modifications and bug fixes to the EiffelVisio *'''Platform Independent''' ** Fixed a drawing issue in EV_GRID causing some invalid drawing. ** Fixed a crash with retrieving a RTF file containing a color or a font whose index is not starting at 1, or that it is referring to a non-defined index. -** Fixed a bug introduced at rev#90517 with `new_line_string' that became TN instead of %N. +** Fixed a bug introduced at rev#90517 with `new_line_string` that became TN instead of %N. ** Fixed a bug retrieving font in a font table to allow spaces between the components of a font entry in the table.  ** Added code protection to find out about paragraphs as we would get an out of bound acess if the last character was a %N. This solved the case where copy/pasting some text from Word would save incorrectly, and thus the RTF being created was invalid and was losing some formatting info. @@ -98,7 +98,7 @@ This document contains details of modifications and bug fixes to the EiffelVisio ** Fixed rendering of activate button in dialogs when theming is enabled. *'''GTK''' -** Fixed bug in `set_item_size' for EV_FIXED and EV_VIEWPORT where sometimes item would not shrink if set when displayed. +** Fixed bug in `set_item_size` for EV_FIXED and EV_VIEWPORT where sometimes item would not shrink if set when displayed. ==EiffelStudio 6.8== '''Improvements''' @@ -143,7 +143,7 @@ This document contains details of modifications and bug fixes to the EiffelVisio ==EiffelStudio 6.5== '''Improvements''' -* Improved the pick and drop mechanism on Windows platforms to not use the `wel_hook.dll'. The visible change is that when the cursor is outside the vision2 application its shape changes depending on what is beneath. +* Improved the pick and drop mechanism on Windows platforms to not use the `wel_hook.dll`. The visible change is that when the cursor is outside the vision2 application its shape changes depending on what is beneath. '''Bug fixes''' *'''Platform Independent''' @@ -248,13 +248,13 @@ As part of the void-safety conversion for EiffelStudio 6.4, EiffelVision 2 was c * '''EV_APPLICATION''' ** Added 'transport_in_progress' for querying if a pebble transport is currently taking place. ** Added caps_lock_on for querying if the caps lock key is currently toggled -** `process_events' will now call idle actions when no more events are left in the pending queue +** `process_events` will now call idle actions when no more events are left in the pending queue * '''EV_FONT''' - Added 'line_height' to retrieve an appropriate text editor line height in pixels for a font. * '''EV_PIXEL_BUFFER''' - Added conversion to/from EV_PIXMAP and added 'save_to_named_file' for saving buffer to disk. * '''EV_POINTER_STYLE_CONSTANTS''' - Added header_sizewe cursor * '''EV_FIXED''' - Added extend_with_size_and_position and set_with_size_and_position for flicker free update of fixed children. -* '''EV_GRID''' - Added `visible_row_count' for querying the number of currently visible rows. +* '''EV_GRID''' - Added `visible_row_count` for querying the number of currently visible rows. * '''EV_TEXT_FIELD''' - Added inheritance from EV_TEXT_ALIGNABLE * '''EV_POPUP_WINDOW''' - Added 'make_with_shadow' creation procedure to create a popup window with an alpha shadow (on platforms that support it). @@ -300,48 +300,48 @@ As part of the void-safety conversion for EiffelStudio 6.4, EiffelVision 2 was c ** Added ability to ignore the default key action on widgets. * '''EV_GRID''' -** Changed semantic of `move_row' and `move_rows' so that destination position is now an insertion index before a row instead of placing as the row index itself. This allows for easier insertion of rows. Any code using these features will need to be rechecked as this is a breaking change for rows that are moved down the grid -** Altered `move_rows' so that it will now unparent the top level nodes from the first row being moved whilst keeping any subtree structure -** Added `move_rows_to_parent' that allows moving a block of parented rows from one parent to another -** Added `insert_new_rows' and `insert_new_rows_parented' which permit you to add insert multiple rows at once. This is far quicker than adding rows individually. -** Added `remove_rows' which permits you to remove multiple rows at once. This is far quicker than removing each row individually. -** Fixed `enable_capture' and disable_capture' which previously captured an internally hidden component of the grid, so no events were ever received during capture. -** Previously, `set_default_colors' did not work. -** Fixed bug in `pointer_enter_actions' and `pointer_leave_actions' of EV_GRID_ITEM which were not always fired when the mouse pointer entered or left the grid. -** Corrected `not_row_height_variable_and_vertical_scrolling_per_pixel' precondition of `enable_partial_dynamic_content'. -** Fixed bug which caused an internal exception within the grid when `is_tree_enabled' and `is_content_partially_dynamic'. -** Strengthened preconditions of `insert_new_row_parented' to prevent you inserting a new row at an index within a subtree structure of one of the existing subrows, as in that case, it is impossible for the parent to be the desired row. +** Changed semantic of `move_row` and `move_rows` so that destination position is now an insertion index before a row instead of placing as the row index itself. This allows for easier insertion of rows. Any code using these features will need to be rechecked as this is a breaking change for rows that are moved down the grid +** Altered `move_rows` so that it will now unparent the top level nodes from the first row being moved whilst keeping any subtree structure +** Added `move_rows_to_parent` that allows moving a block of parented rows from one parent to another +** Added `insert_new_rows` and `insert_new_rows_parented` which permit you to add insert multiple rows at once. This is far quicker than adding rows individually. +** Added `remove_rows` which permits you to remove multiple rows at once. This is far quicker than removing each row individually. +** Fixed `enable_capture` and disable_capture' which previously captured an internally hidden component of the grid, so no events were ever received during capture. +** Previously, `set_default_colors` did not work. +** Fixed bug in `pointer_enter_actions` and `pointer_leave_actions` of EV_GRID_ITEM which were not always fired when the mouse pointer entered or left the grid. +** Corrected `not_row_height_variable_and_vertical_scrolling_per_pixel` precondition of `enable_partial_dynamic_content`. +** Fixed bug which caused an internal exception within the grid when `is_tree_enabled` and `is_content_partially_dynamic`. +** Strengthened preconditions of `insert_new_row_parented` to prevent you inserting a new row at an index within a subtree structure of one of the existing subrows, as in that case, it is impossible for the parent to be the desired row. ** Added capability to hide rows in the grid ** Added ability for locking the position of rows and columns in the grid -* '''EV_GRID_ROW''' - Added `insert_subrows' for the quick addition of multiple subrows at once. -* '''EV_WINDOW''' - Added `is_border_enabled', `enable_border' and `disable_border'. This lets you turn on/off the border as required. -* '''EV_HEADER_ITEM''' - Added `user_can_resize' which enables you to prevent a user from resizing the item. Also added `minimum_width' and `maximum_width' which permit you to restrict the resizing of the item within a particular range. +* '''EV_GRID_ROW''' - Added `insert_subrows` for the quick addition of multiple subrows at once. +* '''EV_WINDOW''' - Added `is_border_enabled`, `enable_border` and `disable_border`. This lets you turn on/off the border as required. +* '''EV_HEADER_ITEM''' - Added `user_can_resize` which enables you to prevent a user from resizing the item. Also added `minimum_width` and `maximum_width` which permit you to restrict the resizing of the item within a particular range. * '''EV_MESSAGE_DIALOG''' - All message dialogs now use their associated message icon as the icon pixmap displayed in the title bar, instead of the standard EiffelVision 2 icon. -* '''EV_DYNAMIC_TREE_ITEM''' - The `subtree_function' is now only executed when you expand the item. In the previous version, querying the contents of the item caused the subtree function to be executed, filling the children. -* '''EV_COMBO_BOX''' - Added `is_list_shown', `list_hidden_actions' and renamed `drop_down_actions' to `list_shown_actions'. -* '''EV_APPLICATION''' - Added `pointer_motion_actions', `pointer_button_press_actions', `pointer_button_release_actions', `pointer_double_press_actions', `mouse_wheel_actions', `key_press_actions', `key_press_string_actions' and `key_release_actions'. Each of these action sequences pass the applicable widget as part of the event data. +* '''EV_DYNAMIC_TREE_ITEM''' - The `subtree_function` is now only executed when you expand the item. In the previous version, querying the contents of the item caused the subtree function to be executed, filling the children. +* '''EV_COMBO_BOX''' - Added `is_list_shown`, `list_hidden_actions` and renamed `drop_down_actions` to `list_shown_actions`. +* '''EV_APPLICATION''' - Added `pointer_motion_actions`, `pointer_button_press_actions`, `pointer_button_release_actions`, `pointer_double_press_actions`, `mouse_wheel_actions`, `key_press_actions`, `key_press_string_actions` and `key_release_actions`. Each of these action sequences pass the applicable widget as part of the event data. '''Bug fixes''' * '''Platform independent''' ** '''EV_GRID''' - Fixed refresh issues and certain crashes when removing items from grid * '''Windows''' -** '''EV_WINDOW''' - The default state is now `user_can_resize'. Although this was previously specified within `is_in_default_state', the window was not actually resizeable. +** '''EV_WINDOW''' - The default state is now `user_can_resize`. Although this was previously specified within `is_in_default_state`, the window was not actually resizeable. ** '''EV_DIALOG''' -*** Calling `enable_user_resize' or `disable_user_resize' on a dialog that is shown relative to another window no longer looses the relative state of the dialog. -*** Fixed failure of a "check" statement within EiffelVision when showing a dialog with a `default_cancel_button' relative or modal to another window. +*** Calling `enable_user_resize` or `disable_user_resize` on a dialog that is shown relative to another window no longer looses the relative state of the dialog. +*** Fixed failure of a "check" statement within EiffelVision when showing a dialog with a `default_cancel_button` relative or modal to another window. -** '''EV_FONT_DIALOG''' - Fixed issue where displayed font did not take into account font specified through call to `set_font'. -** '''EV_RICH_TEXT''' - Fixed calling of `change_actions' which were never called in the previous version. +** '''EV_FONT_DIALOG''' - Fixed issue where displayed font did not take into account font specified through call to `set_font`. +** '''EV_RICH_TEXT''' - Fixed calling of `change_actions` which were never called in the previous version. ** '''EV_PIXMAP''' - If a pixmap was parented directly within a container and Windows XP themes were enabled, the background theme of the parent container was not applied to the pixmap. This was especially noticeable when using EV_NOTEBOOK as a parent container. ** '''EV_WIDGET''' - Fixed bug in theme handling on Windows XP. Previously, any widgets that were created before the first window was created did not draw correctly when displayed. -** '''EV_COMBO_BOX''' - Fixed bug in `key_press_actions' which were called twice when you pressed the up or down arrow keys. +** '''EV_COMBO_BOX''' - Fixed bug in `key_press_actions` which were called twice when you pressed the up or down arrow keys. ** '''EV_TITLED_WINDOW''' -*** `title' was returning `Void' if you had not explicitly set a `title'. +*** `title` was returning `Void` if you had not explicitly set a `title`. *** Fixed raise to work when process is not in the foreground, the window will now flash in the window selector -** '''EV_MENU''' - A menu with an ampersand (i.e. menu.set_text ("Test && Verify")) could be truncated when displayed (i.e. the `y' could be missing). +** '''EV_MENU''' - A menu with an ampersand (i.e. menu.set_text ("Test && Verify")) could be truncated when displayed (i.e. the `y` could be missing). ** '''EV_PIXMAP''' - Fixed a memory corruption while loading PNG images. ** Fixed resizing issue which would happen if too many widgets are nested in each other, those nested widgets would not resize properly. @@ -365,22 +365,22 @@ As part of the void-safety conversion for EiffelStudio 6.4, EiffelVision 2 was c * '''EV_CLIPBOARD''' - Added 'has_text' so that the clipboard can be queried without retrieving the entire contents. * '''EV_CHECKABLE_TREE''' - A new widget that inherits EV_TREE, providing similar functionality but for each item contained a check box is displayed. * '''EV_NOTEBOOK''' -** Added `pointed_tab_index' which returns the index of the tab beneath the mouse pointer or 0 if none. -** Added EV_NOTEBOOK_TAB which may be queried via the new query `item_tab'. The object represented by this new class provides the ability to set both the text and a pixmap for the tab item. +** Added `pointed_tab_index` which returns the index of the tab beneath the mouse pointer or 0 if none. +** Added EV_NOTEBOOK_TAB which may be queried via the new query `item_tab`. The object represented by this new class provides the ability to set both the text and a pixmap for the tab item. ** Now inherits EV_ITEM_PIXMAP_SCALER as the tabs support pixmaps through the use of EV_NOTEBOOK_TAB. -* '''EV_COMBO_BOX''' - Added `drop_down_actions', fired as the list is dropped down which permits dynamic filling of the combo box as its contents are displayed. -* '''EV_WIDGET''' - Removed postcondition `has_focus' from `set_focus' since in most cases it does not hold. Indeed between the time you set the focus and the time you check if you still have the focus something could have happen that would remove the focus. -* '''EV_PIXMAP''' - Added `sub_pixmap', this allows a pixmap to be created from a region of another -* '''EV_RICH_TEXT''' - Corrected postcondition of `buffered_format' which restricted the end position to `text_length' instead of `text_length' + 1. -* '''EV_FILE_OPEN_DIALOG''' - Added features for retrieving multiple file names. The following additional features are now available: 'enable_multiple_selection', `disable_multiple_selection', `multiple_selection_enabled' and `file_names'. -* '''EV_TEXT_COMPONENT''' - Removed `is_editable' precondition of `set_caret_position'. +* '''EV_COMBO_BOX''' - Added `drop_down_actions`, fired as the list is dropped down which permits dynamic filling of the combo box as its contents are displayed. +* '''EV_WIDGET''' - Removed postcondition `has_focus` from `set_focus` since in most cases it does not hold. Indeed between the time you set the focus and the time you check if you still have the focus something could have happen that would remove the focus. +* '''EV_PIXMAP''' - Added `sub_pixmap`, this allows a pixmap to be created from a region of another +* '''EV_RICH_TEXT''' - Corrected postcondition of `buffered_format` which restricted the end position to `text_length` instead of `text_length` + 1. +* '''EV_FILE_OPEN_DIALOG''' - Added features for retrieving multiple file names. The following additional features are now available: 'enable_multiple_selection', `disable_multiple_selection`, `multiple_selection_enabled` and `file_names`. +* '''EV_TEXT_COMPONENT''' - Removed `is_editable` precondition of `set_caret_position`. '''Bug fixes''' * '''Platform independent''' -** '''EV_DIALOG_I''' - Fixed consistency of `default_push_button', before we could get some assertions violations from the implementation classes. -** '''EV_ANY''' - Added protection for multiple calls of `destroy' which previously caused crashes in some situations, now `destroy' calls a `safe_destroy' intermediary which checks if the implementation has not already been destroyed -** '''EV_GAUGE''' - Fixed bug in `make_with_value_range' which did not adjust `value' to `lower', thereby putting the gauge in an invalid state. +** '''EV_DIALOG_I''' - Fixed consistency of `default_push_button`, before we could get some assertions violations from the implementation classes. +** '''EV_ANY''' - Added protection for multiple calls of `destroy` which previously caused crashes in some situations, now `destroy` calls a `safe_destroy` intermediary which checks if the implementation has not already been destroyed +** '''EV_GAUGE''' - Fixed bug in `make_with_value_range` which did not adjust `value` to `lower`, thereby putting the gauge in an invalid state. * '''Windows''' ** Fixed resizing issue: when a widget is inserted in a hidden window and that the minimum size of the window does not change, the widget would not appear on the window when shown. One had to manually resize the window to make it appear. Now it will appear properly. @@ -392,62 +392,62 @@ As part of the void-safety conversion for EiffelStudio 6.4, EiffelVision 2 was c *** Fixed bug which restricted the maximum values permitted to approx. 16,000. Attempting to manipulate the spin button with values greater than this caused precondition violations internally. ** '''EV_SCREEN''' -*** `widget_at_position' returns an instance of EV_COMBO_BOX when cursor is on top of the text part of the combo box, before it would return Void. -*** `set_pointer_position' was not setting the position accurately and it may have actually been set to one of the adjacent positions. +*** `widget_at_position` returns an instance of EV_COMBO_BOX when cursor is on top of the text part of the combo box, before it would return Void. +*** `set_pointer_position` was not setting the position accurately and it may have actually been set to one of the adjacent positions. ** '''EV_COMBO_BOX''' -*** `focus_out_actions' are only called once when loosing focus. Before they would be called twice and even called when the combo box was getting the focus. -*** Fixed `has_focus' to return True when either the combo or the text field when it exists has the focus. -*** Fixed call on Void target when calling `set_foreground_color' on a displayed combo box which is not editable. +*** `focus_out_actions` are only called once when loosing focus. Before they would be called twice and even called when the combo box was getting the focus. +*** Fixed `has_focus` to return True when either the combo or the text field when it exists has the focus. +*** Fixed call on Void target when calling `set_foreground_color` on a displayed combo box which is not editable. *** Fixed invariant violation with a non editable combo box. -*** Fixed `caret_position' which was failing if you attempted to set a caret position to a value greater than approx 65,000. -*** Fixed `set_focus' which failed if the combo box was non-editable. +*** Fixed `caret_position` which was failing if you attempted to set a caret position to a value greater than approx 65,000. +*** Fixed `set_focus` which failed if the combo box was non-editable. *** Fixed handling of escape and enter keys while list was dropped down. If the combo box was contained within a dialog, the default cancel and default push button actions were fired as a result of pressing these keys. These keys are no longer propagated to the dialog in this fashion. -** '''EV_MULTI_COLUMN_LIST''' - Calling `column_width' after calling `resize_column_to_content' did not return the correct result but instead the previously set column width. +** '''EV_MULTI_COLUMN_LIST''' - Calling `column_width` after calling `resize_column_to_content` did not return the correct result but instead the previously set column width. ** '''EV_NOTEBOOK''' *** Fixed resizing issue of notebook when it is included in a hidden pane of another notebook, resulting in an assertion violation in the resizing code. -*** Fixed class invariant which failed when calling `destroy'. +*** Fixed class invariant which failed when calling `destroy`. ** '''EV_WINDOW''' -*** Fixed `screen_x' and `screen_y' so that they return the same value as `x_position' and `y_position'. -*** Fixed issue where `move_actions' were called with incorrect positions (before the given positions were the one from the child of the window, not the window itself). +*** Fixed `screen_x` and `screen_y` so that they return the same value as `x_position` and `y_position`. +*** Fixed issue where `move_actions` were called with incorrect positions (before the given positions were the one from the child of the window, not the window itself). ** '''EV_DIALOG''' -*** Calling `show', moving the window and then subsequently calling `show_relative_to_window' or `show_modal_to_window' caused the dialog to move from its current position. Now the window no longer moves which mirrors the behavior in the opposite case where `show_relative_to_window' or `show_modal_to_window' is called before `show'. -*** Fixed bug which caused processing of particular keys in widgets contained within the dialog to be processed by the dialog preventing the `key_press_actions' from being fired and causing miscellaneous keyboard navigational issues. -*** Proper handling of `remove_default_push_button' and `set_default_push_button'. Before the internal state would be messed up, resulting in calling the `select_actions' of the the `default_push_button' even though the `default_push_button' did not have focus. +*** Calling `show`, moving the window and then subsequently calling `show_relative_to_window` or `show_modal_to_window` caused the dialog to move from its current position. Now the window no longer moves which mirrors the behavior in the opposite case where `show_relative_to_window` or `show_modal_to_window` is called before `show`. +*** Fixed bug which caused processing of particular keys in widgets contained within the dialog to be processed by the dialog preventing the `key_press_actions` from being fired and causing miscellaneous keyboard navigational issues. +*** Proper handling of `remove_default_push_button` and `set_default_push_button`. Before the internal state would be messed up, resulting in calling the `select_actions` of the the `default_push_button` even though the `default_push_button` did not have focus. *** Better navigation using keys *** Fixed bug where modal and modeless dialogs were not centered to parent ** '''EV_TREE_NODE''' - Fixed bug which caused a crash if you performed the following: pruned a node from it's parent, pruned an empty node from this just pruned node and then attempted to insert a node within the empty node. ** '''EV_DIRECTORY_DIALOG''' - Fixed bug in which the dialog always reported that "ok" has been selected even if the "cancel" button had been selected. This occurred if the dialog had been shown more than once with "ok" already selected. ** '''EV_PIXMAP''' -*** Fixed color displayed around a pixmap while parented in a container. Previously, gray was always displayed but now we use the `background_color' of the `parent'. +*** Fixed color displayed around a pixmap while parented in a container. Previously, gray was always displayed but now we use the `background_color` of the `parent`. *** Fixed masking blitting in draw_sub_pixmap. Previously the mask wasn't being blitted correctly discoloring the source image *** Fixed mask handling with PNG loading. Previously if the source image pixels under the mask were not black then masking for icons and cursors didnt work correctly, now any color can be used underneath the mask and it will still be masked correctly ** '''EV_TOOL_BAR''' -*** Fixed `is_show_requested' which was still returning `True' after a call to `hide'. +*** Fixed `is_show_requested` which was still returning `True` after a call to `hide`. *** Improved resizing of tool bar buttons. A tool bar button with a text and no associated pixmap used to display an empty area where the pixmap would be displayed if set. Now, in this case, the button is just large enough to display its text. -** '''EV_FONT''' - Fixed bug in `is_equal' which occasionally failed due to rounding errors between `height' and `height_in_points'. Now, `is_equal' compares `height_in_points' for the font which is more accurate and prevents this issue. -** '''EV_APPLICATION''' - `cancel_actions' were not always called when they should have been. If you cancelled a pick and drop by right clicking on a target that does not accept the `pebble', the `cancel_actions' were not fired. +** '''EV_FONT''' - Fixed bug in `is_equal` which occasionally failed due to rounding errors between `height` and `height_in_points`. Now, `is_equal` compares `height_in_points` for the font which is more accurate and prevents this issue. +** '''EV_APPLICATION''' - `cancel_actions` were not always called when they should have been. If you cancelled a pick and drop by right clicking on a target that does not accept the `pebble`, the `cancel_actions` were not fired. ** '''EV_RICH_TEXT''' -*** Fixed bug in `buffered_format' which corrupted the current text upon calling `flush_buffer' if the text contained any RTF reserved characters such as '/', '{' or '}'. -*** Fixed `set_background_color' which was not changing the background color -*** Fixed bug in `disable_word_wrapping' which had a side effect that limited the maximum number of characters to 64000. +*** Fixed bug in `buffered_format` which corrupted the current text upon calling `flush_buffer` if the text contained any RTF reserved characters such as '/', '{' or '}'. +*** Fixed `set_background_color` which was not changing the background color +*** Fixed bug in `disable_word_wrapping` which had a side effect that limited the maximum number of characters to 64000. -** '''EV_TOOL_BAR_BUTTON''' - Fixed bug in handling of enabled/disabled state during a pick and drop transport. The pick and drop mechanism disables tool bar buttons automatically that are not valid targets. If you called `enable_sensitive' or `disable_sensitive' during a pick and drop, this state was not reflected at the end of the pick and drop and the buttons were always restored to their original state. Now the buttons are restored to their last set state. -** '''EV_TITLED_WINDOW''' - Fixed issue with `raise' where in addition of bringing the window to the front it was changing the previously focused widget within that window. Now it preserves the previously focused widget. -** '''EV_PRIMITIVE''' - Fixed bug which affected all primitives that hold items. Calling `destroy' on the primitive and then calling `destroy' on one of the items caused precondition violations internally. The bug was that the call to `destroy' on the primitive did not call `wipe_out' to remove all of the contents and the item was still attempting to access its `parent' which should have been `Void'. +** '''EV_TOOL_BAR_BUTTON''' - Fixed bug in handling of enabled/disabled state during a pick and drop transport. The pick and drop mechanism disables tool bar buttons automatically that are not valid targets. If you called `enable_sensitive` or `disable_sensitive` during a pick and drop, this state was not reflected at the end of the pick and drop and the buttons were always restored to their original state. Now the buttons are restored to their last set state. +** '''EV_TITLED_WINDOW''' - Fixed issue with `raise` where in addition of bringing the window to the front it was changing the previously focused widget within that window. Now it preserves the previously focused widget. +** '''EV_PRIMITIVE''' - Fixed bug which affected all primitives that hold items. Calling `destroy` on the primitive and then calling `destroy` on one of the items caused precondition violations internally. The bug was that the call to `destroy` on the primitive did not call `wipe_out` to remove all of the contents and the item was still attempting to access its `parent` which should have been `Void`. ** '''EV_WIDGET''' -*** Fixed two bugs with `key_press_string_actions'. The first was that the action sequence was fired when Escape or Backspace was pressed. As these are not displayable characters, the `key_press_string_actions' are no longer fired for these keys. The second is that pressing Enter was passing the the string "%R" which is the Windows specific newline character. We now pass "%N" when the Enter key is pressed. -*** Fixed bug in `pointer_motion_actions'. In some uncommon situations, it was possible to receive the motion event multiple times with the same position. -*** The `key_press_string_actions' are no longer fired by the "delete" key ( ASCII 127). +*** Fixed two bugs with `key_press_string_actions`. The first was that the action sequence was fired when Escape or Backspace was pressed. As these are not displayable characters, the `key_press_string_actions` are no longer fired for these keys. The second is that pressing Enter was passing the the string "%R" which is the Windows specific newline character. We now pass "%N" when the Enter key is pressed. +*** Fixed bug in `pointer_motion_actions`. In some uncommon situations, it was possible to receive the motion event multiple times with the same position. +*** The `key_press_string_actions` are no longer fired by the "delete" key ( ASCII 127). -** '''EV_TEXT''' - Fixed bug where `caret_position' was returning an incorrect value if it the text had word wrapping enabled and one or more lines in the text were currently word wrapped. -** '''EV_FONT_DIALOG''' - Fixed bug where `name' of `font' returned was incorrect. +** '''EV_TEXT''' - Fixed bug where `caret_position` was returning an incorrect value if it the text had word wrapping enabled and one or more lines in the text were currently word wrapped. +** '''EV_FONT_DIALOG''' - Fixed bug where `name` of `font` returned was incorrect. ** '''EV_SPLIT_AREA''' - Split areas now have a completely flat appearance. * '''Gtk''' @@ -456,31 +456,31 @@ As part of the void-safety conversion for EiffelStudio 6.4, EiffelVision 2 was c ** '''EV_TEXTABLE''' - Now UTF8 strings from different language locales are displayed correctly and not cut-off ** '''EV_CLIPBOARD''' - Now UTF8 strings from different language locales are handled correctly for copying and pasting ** '''EV_DRAWING_AREA''' - -*** Fixed `flush' to instantly call any pending expose events +*** Fixed `flush` to instantly call any pending expose events *** Fixed issue where drawing area was not being focused when clicked upon by default ** '''EV_FONT''' *** Fixed memory leaks in font lookup *** Now all resources get freed on disposal of font -*** Now precalculating `ascent' and `descent' to improve drawing performance +*** Now precalculating `ascent` and `descent` to improve drawing performance *** Added better default font handling, now if the default font gets passed in, it will be treated as such by the Gtk theme engine -** '''EV_TOOL_BAR_BUTTON''' - Improve appearance of text and pixmap when `disable_vertical_button_style' is called +** '''EV_TOOL_BAR_BUTTON''' - Improve appearance of text and pixmap when `disable_vertical_button_style` is called ** '''EV_FONTABLE''' - Improved font handling with theme manager, all default fonts now relate to the Application font chosen from the Gtk theme manager ** '''EV_DRAWABLE''' -*** Corrected font placement with `draw_text' using fonts of the same height that have varying ascent values -*** Corrected `draw_arc' to handle all radian angles for both start_angle and aperture values -*** Fixed mask handling for `draw_sub_pixmap' to work with non-zero 'area' coordinates +*** Corrected font placement with `draw_text` using fonts of the same height that have varying ascent values +*** Corrected `draw_arc` to handle all radian angles for both start_angle and aperture values +*** Fixed mask handling for `draw_sub_pixmap` to work with non-zero 'area' coordinates ** '''EV_MULTI_COLUMN_LIST''' - Fixed memory leak when setting string values ** '''EV_TREE_NODE''' -*** Fixed `remove_pixmap' to remove pixmap from tree model +*** Fixed `remove_pixmap` to remove pixmap from tree model *** Fixed crash when removing nodes from parent nodes not present in a tree widget ** '''EV_RICH_TEXT''' -*** Now `paste' uses the EiffelVision 2 clipboard directly and so all clipboard assertions are fulfilled -*** Fixed `buffered_format' to not wipe out the text buffer of the widget and therefore stop other EV_TEXT features from functioning correctly -*** Now `buffered_append' doesn't wipe out the screen contents of the rich text control +*** Now `paste` uses the EiffelVision 2 clipboard directly and so all clipboard assertions are fulfilled +*** Fixed `buffered_format` to not wipe out the text buffer of the widget and therefore stop other EV_TEXT features from functioning correctly +*** Now `buffered_append` doesn't wipe out the screen contents of the rich text control ** '''EV_ACCELERATOR''' - Now the key accelerator is checked if valid before proceeding, in some circumstances when a key is not present in the key mapping table adding an accelerator would crash the system, now if the accelerator is not valid for the current key mapping then nothing is done ** '''EV_WINDOW''' @@ -502,48 +502,48 @@ As part of the void-safety conversion for EiffelStudio 6.4, EiffelVision 2 was c '''Interface modifications''' * '''EV_TEXT''' -** Weakened a number of preconditions that required a non empty final line, which was unnecessary. Removed the obsolete feature `put_new_line' and made `last_line_not_empty' obsolete as it is unnecessary and can be queried via `line'. -** Added `line_number_from_position' which returns the line on which a particular caret position resides. +** Weakened a number of preconditions that required a non empty final line, which was unnecessary. Removed the obsolete feature `put_new_line` and made `last_line_not_empty` obsolete as it is unnecessary and can be queried via `line`. +** Added `line_number_from_position` which returns the line on which a particular caret position resides. * '''EV_ACTIVE_LIST''' - New class added which replaces all occurrences of ACTIVE_LIST within the interface. This prevents the EiffelVision implementation from being "unhooked" by user modification through the interface. The class is completely backwards compatible, and does not require any modifications to your code. Classes such as EV_ACCELERATOR_LIST and EV_FONT incorporate this change. -* '''EV_DOCKABLE_SOURCE''' - Added features `is_external_docking_relative', `enable_external_docking_relative' and `disable_external_docking_relative'. This permits you to dock a source to an EV_DOCKABLE_DIALOG that is not displayed relative to the original top window. +* '''EV_DOCKABLE_SOURCE''' - Added features `is_external_docking_relative`, `enable_external_docking_relative` and `disable_external_docking_relative`. This permits you to dock a source to an EV_DOCKABLE_DIALOG that is not displayed relative to the original top window. * '''EV_RICH_TEXT''' - New class, providing a text control with support for character formatting and colors on a character by character basis. The following supporting classes have been added for use with EV_RICH_TEXT: EV_CHARACTER_FORMAT, EV_CHARACTER_FORMAT_EFFECTS, EV_PARAGRAPH_FORMAT, EV_CHARACTER_FORMAT_RANGE_INFORMATION, EV_PARAGRAPH_FORMAT_RANGE_INFORMATION and EV_PARAGRAPH_CONSTANTS. -* '''EV_ENVIRONMENT''' - Added `fonts' which returns a list of all fonts available on the system. -* '''EV_APPLICATION''' - Added `captured_widget' which returns the EV_WIDGET currently captured in the system, or `Void' if none. -* '''EV_SPLIT_AREA''' - Added `splitter_width' which returns the width of the splitter in pixels. -* '''EV_ANY_HANDLER''' - This is the only class to which `default_create' from EV_ANY is supposed to be exported. However, particular descendents were exporting `default_create' to ANY instead. This has now been fixed. -* '''EV_MESSAGE_DIALOG''' - `make_with_text_and_actions' has now been added to the list of creation procedures. -* '''EV_SCREEN''' - Added `horizontal_resolution' and `vertical_resolution' which return the number of pixels per inch. -* '''EV_FILE_DIALOG''' - Added support for multiple file extensions through the addition of `filters' which provides support for setting both a filter and an associated comment. The existing features `filter' and `set_filter' have been made obsolete. +* '''EV_ENVIRONMENT''' - Added `fonts` which returns a list of all fonts available on the system. +* '''EV_APPLICATION''' - Added `captured_widget` which returns the EV_WIDGET currently captured in the system, or `Void` if none. +* '''EV_SPLIT_AREA''' - Added `splitter_width` which returns the width of the splitter in pixels. +* '''EV_ANY_HANDLER''' - This is the only class to which `default_create` from EV_ANY is supposed to be exported. However, particular descendents were exporting `default_create` to ANY instead. This has now been fixed. +* '''EV_MESSAGE_DIALOG''' - `make_with_text_and_actions` has now been added to the list of creation procedures. +* '''EV_SCREEN''' - Added `horizontal_resolution` and `vertical_resolution` which return the number of pixels per inch. +* '''EV_FILE_DIALOG''' - Added support for multiple file extensions through the addition of `filters` which provides support for setting both a filter and an associated comment. The existing features `filter` and `set_filter` have been made obsolete. * '''EV_FONT''' -** Modified return type of `string_size' from TUPLE [INTEGER, INTEGER] to TUPLE [INTEGER, INTEGER, INTEGER, INTEGER]. This does not break any existing code, but provides additional `left_offset' and `right_offset' queries (items 3, 4). Items 1, 2 still return the width and height of the string, but this is only the dimensions to be used when placing multiple strings next to each other. Some characters on more exotic fonts may still extend past this boundary, and the rectangle that fully encloses the string is given by adding the left and right offsets to the width. -** Added `height_in_points' and `set_height_in_points' for setting the height of a font in points (1/72 of an inch). This may be used to ensure that your fonts occupy the same height on screens with varying resolutions. +** Modified return type of `string_size` from TUPLE [INTEGER, INTEGER] to TUPLE [INTEGER, INTEGER, INTEGER, INTEGER]. This does not break any existing code, but provides additional `left_offset` and `right_offset` queries (items 3, 4). Items 1, 2 still return the width and height of the string, but this is only the dimensions to be used when placing multiple strings next to each other. Some characters on more exotic fonts may still extend past this boundary, and the rectangle that fully encloses the string is given by adding the left and right offsets to the width. +** Added `height_in_points` and `set_height_in_points` for setting the height of a font in points (1/72 of an inch). This may be used to ensure that your fonts occupy the same height on screens with varying resolutions. '''Bug fixes''' * '''Platform independent''' -** '''EV_DRAWABLE''' - `draw_text' and `draw_text_top_left' now both support text containing new line characters. -** '''EV_APPLICATION''' - `focused_widget' had a side effect which may modify the index of some containers. -** '''EV_DYNAMIC_TREE_ITEM''' - fixed `count' which was not executing the subtree function as necessary when called. -** '''EV_TREE''' - Fixed bug in `has_recursively' which failed if there were one or more dynamic tree items contained. -** '''EV_MULTI_COLUMN_LIST''' - Fixed bug in `set_column_alignments' which crashed if you called it with an empty list after having previously called it with a non empty list. -** '''EV_FIGURE_TEXT''' - Fixed bounding size issues which would cause the `width' and `height' to be returned incorrectly, causing them to be not correctly cleared when moved in a figure world. -** '''EV_FIGURE_GROUP''' - Fixed both `append' and `make_from_array' which were not setting the `group' of each item inserted. +** '''EV_DRAWABLE''' - `draw_text` and `draw_text_top_left` now both support text containing new line characters. +** '''EV_APPLICATION''' - `focused_widget` had a side effect which may modify the index of some containers. +** '''EV_DYNAMIC_TREE_ITEM''' - fixed `count` which was not executing the subtree function as necessary when called. +** '''EV_TREE''' - Fixed bug in `has_recursively` which failed if there were one or more dynamic tree items contained. +** '''EV_MULTI_COLUMN_LIST''' - Fixed bug in `set_column_alignments` which crashed if you called it with an empty list after having previously called it with a non empty list. +** '''EV_FIGURE_TEXT''' - Fixed bounding size issues which would cause the `width` and `height` to be returned incorrectly, causing them to be not correctly cleared when moved in a figure world. +** '''EV_FIGURE_GROUP''' - Fixed both `append` and `make_from_array` which were not setting the `group` of each item inserted. * '''Windows''' ** '''EV_WINDOW''' -*** `move_actions' was always passing positive values for the x and y coordinates of the window, even if they should have been negative. +*** `move_actions` was always passing positive values for the x and y coordinates of the window, even if they should have been negative. *** Showing two or more dialogs relative to a window and then hiding the focused relative dialog could cause the window to move being the next window in the Z order. This has now been fixed. ** '''EV_FONT''' -*** Fixed bug when using `preferred_families' after creating a font via `make_with_values'. The family that was specified was previously ignored. -*** Fixed bug in `copy' which in certain cases could lead to a copied font not exhibiting the typeface as the original, even though no assertions were violated. +*** Fixed bug when using `preferred_families` after creating a font via `make_with_values`. The family that was specified was previously ignored. +*** Fixed bug in `copy` which in certain cases could lead to a copied font not exhibiting the typeface as the original, even though no assertions were violated. -** '''EV_SCROLL_BAR''' - Fixed handling of scroll bars with upper values greater than 32,000. Previously, dragging the bar of a scroll bar past this limit, corrupted the position of the bar and the `value'. +** '''EV_SCROLL_BAR''' - Fixed handling of scroll bars with upper values greater than 32,000. Previously, dragging the bar of a scroll bar past this limit, corrupted the position of the bar and the `value`. ** '''EV_TEXT''' -*** Corrected `last_position_from_line_number' which was returning an incorrect position when there were multiple lines of text contained, and you queried the final line. -*** Modified `insert_text' so that the control is no longer scrolled to the top as a result. The original position is now maintained wherever possible. -*** Corrected handling of selection for caret positions greater than 64,000 characters. The following features were broken when using caret positions greater than 64,000: `caret_position', `has_selection', `selection_start' and `selection_end' +*** Corrected `last_position_from_line_number` which was returning an incorrect position when there were multiple lines of text contained, and you queried the final line. +*** Modified `insert_text` so that the control is no longer scrolled to the top as a result. The original position is now maintained wherever possible. +*** Corrected handling of selection for caret positions greater than 64,000 characters. The following features were broken when using caret positions greater than 64,000: `caret_position`, `has_selection`, `selection_start` and `selection_end` ** '''EV_SPIN_BUTTON''' *** Corrected positioning in parent container. In many situations, the spin button mis-behaved and would be moved to the 0x0 pixel position in the parent. @@ -553,7 +553,7 @@ As part of the void-safety conversion for EiffelStudio 6.4, EiffelVision 2 was c ** '''EV_COMBO_BOX''' - Fixed tooltips which were never displayed. ** '''EV_TOOL_BAR''' - Fixed a number of serious GDI leaks, the worst of which occurred when items that had a pixmap were removed from a tool bar. ** '''EV_PROGRESS_BAR''' - Fixed bug which was limiting values in the range 0 to 65535. -** '''EV_TEXT_FIELD''' - calling `set_font' now updates the `minimum_height' of the text field so that it is large enough to completely display the font. +** '''EV_TEXT_FIELD''' - calling `set_font` now updates the `minimum_height` of the text field so that it is large enough to completely display the font. * '''Gtk''' ** '''GTK 2.4''' EiffelVision 2 has been completely upgraded from gtk 1.2 to version 2.4 and provides completely new implementations for EV_LIST, EV_COMBO_BOX, EV_FILE_DIALOG, EV_MULTI_COLUMN_LIST, EV_CLIPBOARD, EV_MENU, EV_TREE, EV_FONT, EV_PIXMAP using the latest gtk widget set @@ -566,84 +566,84 @@ As part of the void-safety conversion for EiffelStudio 6.4, EiffelVision 2 was c ==EiffelStudio 5.4== '''Interface modifications''' -* '''EV_ITEM_PIXMAP_SCALER''' - New class added which provides no new functionality, but is a clean abstraction of `pixmaps_width', `pixmaps_height' and `set_pixmaps_size' which were all defined independently in EV_TREE, EV_LIST, EV_MULTI_COLUMN_LIST and EV_COMBO_BOX. Your code will not be affected by this change. -* '''EV_TOOL_BAR''' - Added three new features `has_vertical_button_style', `enable_vertical_button_style' and `disable_vertical_button_style'. The default style for buttons is vertical and was the only style previously available, in which the `pixmap' is displayed above `text'. When vertical style is disabled, the `pixmap' of a button will be displayed to the left of its `text'. -* '''EV_TREE ''' - No longer inherits EV_TREE_NODE_CONTAINER which is now obsolete. Made `selected' obsolete, use selected_item /= Void instead. -* '''EV_TREE_NODE''' - Now inherits EV_TREE_NODE_LIST instead of EV_TREE_NODE_CONTAINER. This provides more functionality at the level of the node, but does not change the features available in non deferred descendents, as they all previously inherited EV_TREE_NODE_LIST. Changed type of `parent' to EV_TREE_NODE_LIST from EV_TREE_NODE_CONTAINER. Removed three obsolete features - `align_text_left', align_text_center' and `align_text_right'. -* '''EV_TREE_ITEM''' - Strengthened `is_expandable' so that it checks `parent_tree' is not Void, this brings it into line with the preconditions of `expand'. -* '''EV_DYNAMIC_TREE_ITEM''' - Strengthened `is_expandable' to check `parent_tree', in line with preconditions of `expand'. Added "valid_operands" precondition to `set_subtree_function' which ensures that you only pass a function with valid operands. +* '''EV_ITEM_PIXMAP_SCALER''' - New class added which provides no new functionality, but is a clean abstraction of `pixmaps_width`, `pixmaps_height` and `set_pixmaps_size` which were all defined independently in EV_TREE, EV_LIST, EV_MULTI_COLUMN_LIST and EV_COMBO_BOX. Your code will not be affected by this change. +* '''EV_TOOL_BAR''' - Added three new features `has_vertical_button_style`, `enable_vertical_button_style` and `disable_vertical_button_style`. The default style for buttons is vertical and was the only style previously available, in which the `pixmap` is displayed above `text`. When vertical style is disabled, the `pixmap` of a button will be displayed to the left of its `text`. +* '''EV_TREE ''' - No longer inherits EV_TREE_NODE_CONTAINER which is now obsolete. Made `selected` obsolete, use selected_item /= Void instead. +* '''EV_TREE_NODE''' - Now inherits EV_TREE_NODE_LIST instead of EV_TREE_NODE_CONTAINER. This provides more functionality at the level of the node, but does not change the features available in non deferred descendents, as they all previously inherited EV_TREE_NODE_LIST. Changed type of `parent` to EV_TREE_NODE_LIST from EV_TREE_NODE_CONTAINER. Removed three obsolete features - `align_text_left`, align_text_center' and `align_text_right`. +* '''EV_TREE_ITEM''' - Strengthened `is_expandable` so that it checks `parent_tree` is not Void, this brings it into line with the preconditions of `expand`. +* '''EV_DYNAMIC_TREE_ITEM''' - Strengthened `is_expandable` to check `parent_tree`, in line with preconditions of `expand`. Added "valid_operands" precondition to `set_subtree_function` which ensures that you only pass a function with valid operands. * '''EV_TREE_NODE_CONTAINER''' - Now obsolete, you should use EV_TREE_NODE_LIST instead. -* '''EV_MULTI_COLUMN_LIST''' - Added missing postconditions to `align_text_left', `align_text_right', `align_text_center' and other miscellaneous features that were missing relevant postconditions. -* '''EV_MENU''' - Tightened preconditions of `show' and `show_at' to ensure that the menu is not parented. -* '''EV_TEXT''' Added `has_word_wrapping', `enable_word_wrapping' and `disable_word_wrapping'. These features allow you to switch between horizontal word wrapping, in which lines too long to be displayed will be wrapped, and no word wrapping, in which horizontal scroll bars will be displayed, allowing you to view the complete contents of each line. Previously EV_TEXT would always wrap lines, and the default behavior is `has_word_wrapping' as it was before these changes. -* '''EV_TEXT_COMPONENT''' - Added `has_selection' precondition to `selected_text' which requires that `has_selection' must be True for you to call `selected_text'. -* '''EV_FILE_DIALOG''' - Added `valid_file_title' for validation of a file name excluding the path. -* '''EV_STANDARD_DIALOG''' - Corrected postcondition of `make_with_text' which was checking that `text' was the same object as the STRING passed as an argument. This was incorrect, as `text' is cloned during the creation. -* '''EV_WIDGET''' - Added `remove_real_target' which ensures that `real_target' is Void. -* '''EV_WIDGET_ACTION_SEQUENCES''' - Added `mouse_wheel_actions', fired each time that the mouse wheel is scrolled. +* '''EV_MULTI_COLUMN_LIST''' - Added missing postconditions to `align_text_left`, `align_text_right`, `align_text_center` and other miscellaneous features that were missing relevant postconditions. +* '''EV_MENU''' - Tightened preconditions of `show` and `show_at` to ensure that the menu is not parented. +* '''EV_TEXT''' Added `has_word_wrapping`, `enable_word_wrapping` and `disable_word_wrapping`. These features allow you to switch between horizontal word wrapping, in which lines too long to be displayed will be wrapped, and no word wrapping, in which horizontal scroll bars will be displayed, allowing you to view the complete contents of each line. Previously EV_TEXT would always wrap lines, and the default behavior is `has_word_wrapping` as it was before these changes. +* '''EV_TEXT_COMPONENT''' - Added `has_selection` precondition to `selected_text` which requires that `has_selection` must be True for you to call `selected_text`. +* '''EV_FILE_DIALOG''' - Added `valid_file_title` for validation of a file name excluding the path. +* '''EV_STANDARD_DIALOG''' - Corrected postcondition of `make_with_text` which was checking that `text` was the same object as the STRING passed as an argument. This was incorrect, as `text` is cloned during the creation. +* '''EV_WIDGET''' - Added `remove_real_target` which ensures that `real_target` is Void. +* '''EV_WIDGET_ACTION_SEQUENCES''' - Added `mouse_wheel_actions`, fired each time that the mouse wheel is scrolled. * '''EV_NOTEBOOK''' - Now inherits EV_FONTABLE permitting a font to be applied to the item texts. * '''EV_ENVIRONMENT''' -** Added `mouse_wheel_scroll_lines' which returns an INTEGER corresponding to the number of lines that should be scrolled in response to each mouse wheel scroll event received. -** Added `has_printer' which returns `True' if at least one printer is installed. +** Added `mouse_wheel_scroll_lines` which returns an INTEGER corresponding to the number of lines that should be scrolled in response to each mouse wheel scroll event received. +** Added `has_printer` which returns `True` if at least one printer is installed. -* '''EV_PRINT_CONTEXT''' - Added `horizontal_resolution' and `vertical_resolution' which return the page size in pixels of the page type selected from an EV_PRINT_DIALOG. This permits you to adjust the figure world you are printing to an EV_PRINT_PROJECTOR based on the limits of the page, as determined by `horizontal_resolution' and `vertical_resolution' in pixels. -* '''EV_APPLICATION''' - Added `process_events_until_stopped' and `stop_processing', similar to `process_events', except the processing is executed until `stop_processing' is called. -* '''EV_PRINT_PROJECTOR''' - Added `has_printer' check to `make_with_context', ensuring that if you are to print to a printer, at least one printer is available. -* '''EV_PRINT_CONTEXT''' - `default_create' now initializes a set of standard values, permitting the printing to the default printer, using US letter size. -* '''EV_RELATIVE_POINT''' - The features `set_x_abs', `set_y_abs', `set_angle_abs', `set_scale_x_abs' and `set_scale_y_abs' now all have a precondition ensuring that you may only call them while `being_positioned' is True, which is only the case during execution of a custom positioning agent. Previously, if they were called at other times, the values set would be overridden. -* '''EV_FIGURE''' - `accept_cursor' and `deny_cursor' are now available as queries. -* '''EV_ABSTRACT_PICK_AND_DROPABLE''' - `set_accept_cursor' and `set_deny_cursor' no longer accept `Void' arguments. +* '''EV_PRINT_CONTEXT''' - Added `horizontal_resolution` and `vertical_resolution` which return the page size in pixels of the page type selected from an EV_PRINT_DIALOG. This permits you to adjust the figure world you are printing to an EV_PRINT_PROJECTOR based on the limits of the page, as determined by `horizontal_resolution` and `vertical_resolution` in pixels. +* '''EV_APPLICATION''' - Added `process_events_until_stopped` and `stop_processing`, similar to `process_events`, except the processing is executed until `stop_processing` is called. +* '''EV_PRINT_PROJECTOR''' - Added `has_printer` check to `make_with_context`, ensuring that if you are to print to a printer, at least one printer is available. +* '''EV_PRINT_CONTEXT''' - `default_create` now initializes a set of standard values, permitting the printing to the default printer, using US letter size. +* '''EV_RELATIVE_POINT''' - The features `set_x_abs`, `set_y_abs`, `set_angle_abs`, `set_scale_x_abs` and `set_scale_y_abs` now all have a precondition ensuring that you may only call them while `being_positioned` is True, which is only the case during execution of a custom positioning agent. Previously, if they were called at other times, the values set would be overridden. +* '''EV_FIGURE''' - `accept_cursor` and `deny_cursor` are now available as queries. +* '''EV_ABSTRACT_PICK_AND_DROPABLE''' - `set_accept_cursor` and `set_deny_cursor` no longer accept `Void` arguments. * '''EV_FIGURE_MATH ''' - 'line_angle' now correctly returns the angle in radians relative to world. * '''EV_ARROWED_FIGURE''' - 'start_angle' and 'end_angle' now work in all circumstances * '''EV_FIGURE_STAR''' - First line generated is now created from 'point_b' * '''EV_FIGURE_EQUILATERAL''' - First point generated is now based upon 'point_b' '''Breaking changes''' -* '''EV_TREE_NODE_CONTAINER''' - This class is no longer used in EiffelVision 2, and if you were relying on it, you should use EV_TREE_NODE_LIST instead. The type of `parent' for tree nodes has been changed from EV_TREE_NODE_CONTAINER to EV_TREE_NODE_LIST, so if you retrieve the `parent' and then attempt to iterate, you may have declared an instance of EV_TREE_NODE_CONTAINER. In this situation, you should simply change the definition to EV_TREE_NODE_LIST instead. +* '''EV_TREE_NODE_CONTAINER''' - This class is no longer used in EiffelVision 2, and if you were relying on it, you should use EV_TREE_NODE_LIST instead. The type of `parent` for tree nodes has been changed from EV_TREE_NODE_CONTAINER to EV_TREE_NODE_LIST, so if you retrieve the `parent` and then attempt to iterate, you may have declared an instance of EV_TREE_NODE_CONTAINER. In this situation, you should simply change the definition to EV_TREE_NODE_LIST instead. '''Bug fixes''' * '''Platform independent''' -** '''EV_DYNAMIC_TREE_ITEM''' - No longer crashes if your `subtree_function' returns Void. In this situation, it will now behave as if the `Result' was empty. +** '''EV_DYNAMIC_TREE_ITEM''' - No longer crashes if your `subtree_function` returns Void. In this situation, it will now behave as if the `Result` was empty. ** '''EV_BOX''' - Attempting to dock from an EV_DOCKABLE_SOURCE while the box was empty would not work. This has now been fixed. -** '''EV_TEXT_COMPONENT''' - Calling `append_text', `prepend_text' or `insert_text' while `is_editable' is False caused a precondition failure in the implementation which is now fixed. +** '''EV_TEXT_COMPONENT''' - Calling `append_text`, `prepend_text` or `insert_text` while `is_editable` is False caused a precondition failure in the implementation which is now fixed. ** '''EV_DOCKABLE_SOURCE''' *** It was previously not possible to dock to an empty window, as the target was ignored in error. *** Fixed bug which caused a crash if a dock was attempted to an empty box. -** '''EV_CHECKABLE_LIST''' - Corrected postcondition of `checked_items' which was checking `selected_items' in error, and therefore almost always failing. -** '''EV_APPLICATION''' - Querying `focused_widget' if the window with the focus was empty caused a crash. This has now been fixed, and in this situation, the window itself is returned. -** '''EV_FIGURE_TEXT''' - Fixed handling of `preferred_fonts' from the `font', which was not taken into account. Previously, the default font was always used. -** '''EV_DYNAMIC_LIST''' - Fixed `retrieve_item_by_data' and `retrieve_items_by_data' which were always performing object comparison, even when reference comparison was selected by passing `False' as the second argument. -** '''EV_TREE_NODE_LIST''' - Fixed `retrieve_item_recursively_by_data' and `retrieve_items_recursively_by_data' which were always performing object comparison, even when reference comparison was selected by passing `False' as the second argument. -** '''EV_CONTAINER''' - Fixed bug in `unmerge_radio_button_groups' which would crash if the container had no radio buttons. +** '''EV_CHECKABLE_LIST''' - Corrected postcondition of `checked_items` which was checking `selected_items` in error, and therefore almost always failing. +** '''EV_APPLICATION''' - Querying `focused_widget` if the window with the focus was empty caused a crash. This has now been fixed, and in this situation, the window itself is returned. +** '''EV_FIGURE_TEXT''' - Fixed handling of `preferred_fonts` from the `font`, which was not taken into account. Previously, the default font was always used. +** '''EV_DYNAMIC_LIST''' - Fixed `retrieve_item_by_data` and `retrieve_items_by_data` which were always performing object comparison, even when reference comparison was selected by passing `False` as the second argument. +** '''EV_TREE_NODE_LIST''' - Fixed `retrieve_item_recursively_by_data` and `retrieve_items_recursively_by_data` which were always performing object comparison, even when reference comparison was selected by passing `False` as the second argument. +** '''EV_CONTAINER''' - Fixed bug in `unmerge_radio_button_groups` which would crash if the container had no radio buttons. * '''Windows''' -** '''EV_TEXT_COMPONENT''' - fixed bug in `select_region' which would fail if `start_pos' was greater than `end_pos'. +** '''EV_TEXT_COMPONENT''' - fixed bug in `select_region` which would fail if `start_pos` was greater than `end_pos`. ** '''EV_PIXMAP''' -*** `expose_actions' previously had a feature contained related to the implementation, and calling `wipe_out' on `expose_actions' would stop the image from being redrawn. There are now no side effects related to `expose_actions'. -*** Calling `copy' on a pixmap that was parented in an EV_CONTAINER, and therefore displayed on screen had no visual effect until the window was re-painted. The image is now updated immediately. Also, using `copy' on a pixmap in a similar situation that was originally set with a masked icon, and passing a pixmap created from a bitmap file would cause a crash. -*** Fixed display error in handling of pixmaps created from a PNG with a transparent color, using `set_with_named_file'. The background would be garbled and partially black. +*** `expose_actions` previously had a feature contained related to the implementation, and calling `wipe_out` on `expose_actions` would stop the image from being redrawn. There are now no side effects related to `expose_actions`. +*** Calling `copy` on a pixmap that was parented in an EV_CONTAINER, and therefore displayed on screen had no visual effect until the window was re-painted. The image is now updated immediately. Also, using `copy` on a pixmap in a similar situation that was originally set with a masked icon, and passing a pixmap created from a bitmap file would cause a crash. +*** Fixed display error in handling of pixmaps created from a PNG with a transparent color, using `set_with_named_file`. The background would be garbled and partially black. ** '''EV_LIST''' -*** Calling `disable_sensitive' when already non sensitive would loose the original selection, and calling `enable_sensitive' when already sensitive would alter the selected item. The features will no longer alter the selection if called twice. -*** Fixed result of `background_color' which was returning gray instead of white before a color was assigned +*** Calling `disable_sensitive` when already non sensitive would loose the original selection, and calling `enable_sensitive` when already sensitive would alter the selected item. The features will no longer alter the selection if called twice. +*** Fixed result of `background_color` which was returning gray instead of white before a color was assigned '''EV_CELL''' - If you removed the item, the minimum size was not updated to reflect this, thereby retaining the minimum size as constrained by the minimum size of the now removed item. -** '''EV_TREE_ITEM'''/ '''EV_TREE''' - A call to `disable_select' on an EV_TREE_ITEM will now actually remove the selection from the tree. Previously, the style of the item was changed, but a call to `selected_item' on the tree would still return the item. -** '''EV_FILE_DIALOG''' - Fixed precondition violation when you calling `set_file_name' which was rejecting directory separators. -** '''EV_DIALOG''' - Fixed a bug when you had two dialogs displayed modally, with the second modal to the first. If you had a text field within the second dialog whose `return_actions' contained an agent which would destroy the second dialog, the `select_actions' of the `default_push_button' in the lower dialog would be subsequently fired. +** '''EV_TREE_ITEM'''/ '''EV_TREE''' - A call to `disable_select` on an EV_TREE_ITEM will now actually remove the selection from the tree. Previously, the style of the item was changed, but a call to `selected_item` on the tree would still return the item. +** '''EV_FILE_DIALOG''' - Fixed precondition violation when you calling `set_file_name` which was rejecting directory separators. +** '''EV_DIALOG''' - Fixed a bug when you had two dialogs displayed modally, with the second modal to the first. If you had a text field within the second dialog whose `return_actions` contained an agent which would destroy the second dialog, the `select_actions` of the `default_push_button` in the lower dialog would be subsequently fired. ** '''EV_LABEL''' - If a label was disabled through the disabling of a container in which it was contained, it would sometimes not be grayed out. This has now been fixed. ** '''EV_PICK_AND_DROPABLE''' -*** `mode_is_target_menu' did not work for a pick and drop source whose `pebble' was generated by a `pebble_function'. +*** `mode_is_target_menu` did not work for a pick and drop source whose `pebble` was generated by a `pebble_function`. *** Fixed bug where drag and drop was not working as it was attempting to perform docking instead. If both are enabled, docking has priority. ** '''EV_COMBO_BOX_IMP''' -*** Fixed `set_foreground_color' and `set_background_color' which previously did nothing. -*** Fixed bug in selection. If during execution of the `select_actions' of an item contained, you called `enable_select' on another item within the combo box, subsequently selecting the originally selected item would no longer fire its `select_actions'. -*** `enable_edit' and `disable_edit' were both causing the pixmaps of any items contained to be no longer displayed. +*** Fixed `set_foreground_color` and `set_background_color` which previously did nothing. +*** Fixed bug in selection. If during execution of the `select_actions` of an item contained, you called `enable_select` on another item within the combo box, subsequently selecting the originally selected item would no longer fire its `select_actions`. +*** `enable_edit` and `disable_edit` were both causing the pixmaps of any items contained to be no longer displayed. -** '''EV_PRINT_DIALOG''' - Querying `print_context' from a print dialog if a user selected "Cancel" would previously crash. -** '''EV_TREE''' and '''EV_MULTI_COLUMN_LIST''' - Fixed result of `background_color' which was returning gray instead of white before a color was assigned -** '''EV_SCREEN''' - `widget_at_pointer_position' now returns the combo box if the mouse pointer is held above the drop down list button of a combo box. Previously, `Void' was returned. +** '''EV_PRINT_DIALOG''' - Querying `print_context` from a print dialog if a user selected "Cancel" would previously crash. +** '''EV_TREE''' and '''EV_MULTI_COLUMN_LIST''' - Fixed result of `background_color` which was returning gray instead of white before a color was assigned +** '''EV_SCREEN''' - `widget_at_pointer_position` now returns the combo box if the mouse pointer is held above the drop down list button of a combo box. Previously, `Void` was returned. * '''Gtk''' ** '''EV_TREE_NODE''' - Now expansion state remains the same when 'set_pixmap' is called. @@ -654,7 +654,7 @@ As part of the void-safety conversion for EiffelStudio 6.4, EiffelVision 2 was c *** Now first item remains selected when items are added. ** '''EV_WINDOW''' - Fixed querying of positioning which never changes if previously set by user. -** '''EV_APPLICATION''' - Priority of `idle_actions' has been changed so that gtk will recalculate widgets sizes before calling its idle handler, this means that all resizing is done before idle actions are called. +** '''EV_APPLICATION''' - Priority of `idle_actions` has been changed so that gtk will recalculate widgets sizes before calling its idle handler, this means that all resizing is done before idle actions are called. ** '''EV_WINDOW ''' - Now windows correctly shrink when requested size is smaller than current size ** '''EV_PICK_AND_DROPABLE''' - Fixed bug where if both drag and drop and docking were enabled, both would be executed, now docking overrides drag and drop if both are enabled. ** '''EV_TIMEOUT ''' - Now timeouts correctly unregister themselves on dispose preventing segmentation violation. @@ -673,73 +673,73 @@ As part of the void-safety conversion for EiffelStudio 6.4, EiffelVision 2 was c ==EiffelStudio 5.3== '''Interface modifications''' -* '''EV_TITLED_WINDOW_ACTION_SEQUENCES''' added which is inherited only by EV_TITLED_WINDOW and provides three new action sequences :- `minimize_actions', `maximize_actions' and `restore_actions'. +* '''EV_TITLED_WINDOW_ACTION_SEQUENCES''' added which is inherited only by EV_TITLED_WINDOW and provides three new action sequences :- `minimize_actions`, `maximize_actions` and `restore_actions`. * '''EV_TITLED_WINDOW''' -** You may now only call `maximize' and `minimize' if `is_show_requested'. -** When minimized, `is_displayed' now returns False. +** You may now only call `maximize` and `minimize` if `is_show_requested`. +** When minimized, `is_displayed` now returns False. * '''EV_BUTTON''' now inherits EV_FONTABLE, allowing you to modify the font displayed. -* '''EV_DYNAMIC_LIST_ITEM''' - Corrected `off' which was using the version inherited from EV_TREE_NODE when it should have been using the version from EV_TREE_NODE_LIST instead. -* '''EV_RECTANGLE''' - Added precondition to `intersects' which stops a Void rectangle being passed as an argument. -* '''EV_TOOL_BAR_SEPARATOR''' - Now export many inherited features to {ANY} instead of {NONE}, including `parent'. -* '''EV_ENVIRONMENT''' - Added `supported_image_formats' which returns a LINEAR [STRING] containing all valid formats by their three letter extension. +* '''EV_DYNAMIC_LIST_ITEM''' - Corrected `off` which was using the version inherited from EV_TREE_NODE when it should have been using the version from EV_TREE_NODE_LIST instead. +* '''EV_RECTANGLE''' - Added precondition to `intersects` which stops a Void rectangle being passed as an argument. +* '''EV_TOOL_BAR_SEPARATOR''' - Now export many inherited features to {ANY} instead of {NONE}, including `parent`. +* '''EV_ENVIRONMENT''' - Added `supported_image_formats` which returns a LINEAR [STRING] containing all valid formats by their three letter extension. * '''EV_CHECKABLE_LIST''' - New class added which behaves as an EV_LIST, except that for each EV_LIST_ITEM contained, an associated check box is displayed. -* '''EV_MESSAGE_DIALOG''' - No longer deferred, and has two creation procedures `default_create' and `make_with_text'. -* '''EV_STANDARD_DIALOG''' - All descendents now have `make_with_text' as a creation procedure'. -* '''EV_TABLE''' - Now inherits CHAIN instead of ARRAY. This is a breaking change, and may require some modification to your code. The inheritance from ARRAY was seriously flawed. For example, if you were to call `extend' on an EV_CONTAINER object that was currently referencing an EV_TABLE, then this would fail. Now that we inherit CHAIN, this problem, among others of a similar nature are fixed. Another advantage of inheriting CHAIN, is that the table may now be iterated which allows for greater flexibility.
+* '''EV_MESSAGE_DIALOG''' - No longer deferred, and has two creation procedures `default_create` and `make_with_text`. +* '''EV_STANDARD_DIALOG''' - All descendents now have `make_with_text` as a creation procedure'. +* '''EV_TABLE''' - Now inherits CHAIN instead of ARRAY. This is a breaking change, and may require some modification to your code. The inheritance from ARRAY was seriously flawed. For example, if you were to call `extend` on an EV_CONTAINER object that was currently referencing an EV_TABLE, then this would fail. Now that we inherit CHAIN, this problem, among others of a similar nature are fixed. Another advantage of inheriting CHAIN, is that the table may now be iterated which allows for greater flexibility.

The following list details some of the breaking changes, and how to fix them: -** '''item''' - If you were using `item', you should change this to `item_at_position'. A call to `item' will now return the current item. -** '''put''' - If you were using `put', you must now replace this with `put_at_position'. +** '''item''' - If you were using `item`, you should change this to `item_at_position`. A call to `item` will now return the current item. +** '''put''' - If you were using `put`, you must now replace this with `put_at_position`. ** '''extend''' and '''replace''' - These are now both exported, as before, they were exported to {NONE}. -** features inherited from '''ARRAY''' - These are no longer available but you may use the feature `to_array', which returns the contents of the table represented as an ARRAY [EV_WIDGET]. This feature is marked as obsolete, as it is temporary, to simplify the transition to the new inheritance structure of EV_TABLE. -** '''count''' - The previous version of `count' was the one from ARRAY, which returned the number of available (not empty) cells in the table. We now use the version of `count' inherited from EV_CONTAINER which returns the number of widgets currently contained. Previously, the feature `widget_count' was used to return the number of items, but this feature has now been made obsolete. Therefore, if you were previously using `count', replace this with `rows' * `columns', and if you were using `widget_count', replace this with a call to `count'. -** '''item_list''' - This is now obsolete. You may use `linear_representation' to retrieve the contents of the table, or simply traverse the table. +** features inherited from '''ARRAY''' - These are no longer available but you may use the feature `to_array`, which returns the contents of the table represented as an ARRAY [EV_WIDGET]. This feature is marked as obsolete, as it is temporary, to simplify the transition to the new inheritance structure of EV_TABLE. +** '''count''' - The previous version of `count` was the one from ARRAY, which returned the number of available (not empty) cells in the table. We now use the version of `count` inherited from EV_CONTAINER which returns the number of widgets currently contained. Previously, the feature `widget_count` was used to return the number of items, but this feature has now been made obsolete. Therefore, if you were previously using `count`, replace this with `rows` * `columns`, and if you were using `widget_count`, replace this with a call to `count`. +** '''item_list''' - This is now obsolete. You may use `linear_representation` to retrieve the contents of the table, or simply traverse the table. * '''EV_FIXED''' - No longer inherits DOUBLE_MATH. * '''EV_VIEWPORT''' - No longer inherits DOUBLE_MATH. -* '''EV_TEXT''' - `line_count' now returns the number of lines actually displayed, and not just the newline characters, as an EV_TEXT will wrap the text when necessary. The postcondition of `linecount' has been updated to reflect this change. -* '''EV_FILE_DIALOG''' Added "valid_file_name" precondition to `set_file_name' and a new feature `valid_file_name' which checks that a file name is valid on the current platform. +* '''EV_TEXT''' - `line_count` now returns the number of lines actually displayed, and not just the newline characters, as an EV_TEXT will wrap the text when necessary. The postcondition of `linecount` has been updated to reflect this change. +* '''EV_FILE_DIALOG''' Added "valid_file_name" precondition to `set_file_name` and a new feature `valid_file_name` which checks that a file name is valid on the current platform. '''Bug fixes''' * '''Platform independent''' -** '''EV_WIDGET''' - `pointer_style' now correctly returns the Ibeam cursor for textable widgets. +** '''EV_WIDGET''' - `pointer_style` now correctly returns the Ibeam cursor for textable widgets. ** '''EV_FIGURE_RECTANGLE''' -*** Corrected `bounding_box' which was previously computed incorrectly when the rectangle was rotated. -*** Fixed `width' and `height' which were always returning one less pixel than they should have. +*** Corrected `bounding_box` which was previously computed incorrectly when the rectangle was rotated. +*** Fixed `width` and `height` which were always returning one less pixel than they should have. * '''Windows''' -** '''EV_PIXMAP''' - Setting a tile with `set_tile' followed by a call to a fill routine would crash the implementation. +** '''EV_PIXMAP''' - Setting a tile with `set_tile` followed by a call to a fill routine would crash the implementation. ** '''EV_COMBO_BOX''' - Implemented pick and drop. ** '''EV_TEXT_FIELD''' - Implemented pick and drop. ** '''EV_PASSWORD_FIELD''' - Implemented pick and drop. ** '''EV_TEXT''' *** Implemented pick and drop. -*** If not `is_editable' and a `background_color' had been set, it was only used on lines containing text. The `background_color' is now correctly displayed throughout the whole control when not `is_editable'. -*** Fixed `select_region' which was selecting an incorrect region starting on any line except the first, when the `text' spanned multiple lines. -*** Fixed `selection_start' and `selection_end' which were incorrect when the selection was not completely contained on the first line. -*** Fixed `first_position_from_line_number' and `last_position_from_line_number' which were returning incorrect values when the text was wrapped. -*** Fixed `caret_position' and `set_caret_position' which were incorrect when the text spanned multiple lines, and the caret was not on the first line. -*** `line_count' now returns the number of lines actually displayed, and not simply the number of newline characters. To query the number of new line characters do :- text.occurrences ('%N') -*** Fixed bug in `search' which was returning -1 instead of 0 when the text was not found. +*** If not `is_editable` and a `background_color` had been set, it was only used on lines containing text. The `background_color` is now correctly displayed throughout the whole control when not `is_editable`. +*** Fixed `select_region` which was selecting an incorrect region starting on any line except the first, when the `text` spanned multiple lines. +*** Fixed `selection_start` and `selection_end` which were incorrect when the selection was not completely contained on the first line. +*** Fixed `first_position_from_line_number` and `last_position_from_line_number` which were returning incorrect values when the text was wrapped. +*** Fixed `caret_position` and `set_caret_position` which were incorrect when the text spanned multiple lines, and the caret was not on the first line. +*** `line_count` now returns the number of lines actually displayed, and not simply the number of newline characters. To query the number of new line characters do :- text.occurrences ('%N') +*** Fixed bug in `search` which was returning -1 instead of 0 when the text was not found. -** '''EV_DRAWABLE''' - Fixed bug when you performed the following: drew a filled shape, called `set_tile' and then drew another filled shape. The tile would not be used on the second fill. -** '''EV_COLOR_DIALOG''' - Querying `color' after a user had canceled the dialog would previously crash a system, if `set_color' had never been called. -** '''EV_COLOR''' - Fixed `set_rgb_with_24_bit' which would fail when called. +** '''EV_DRAWABLE''' - Fixed bug when you performed the following: drew a filled shape, called `set_tile` and then drew another filled shape. The tile would not be used on the second fill. +** '''EV_COLOR_DIALOG''' - Querying `color` after a user had canceled the dialog would previously crash a system, if `set_color` had never been called. +** '''EV_COLOR''' - Fixed `set_rgb_with_24_bit` which would fail when called. ** '''EV_BUTTON, EV_TOGGLE_BUTTON''' - The buttons now correctly display a text, pixmap and background color simultaneously. Previously, the background color was never displayed, and either the pixmap or text would be displayed, not both. -** '''EV_PRINT_DIALOG''' - Fixed `set_from_page' and `set_to_page' which were previously not implemented. +** '''EV_PRINT_DIALOG''' - Fixed `set_from_page` and `set_to_page` which were previously not implemented. ** '''EV_LIST''' -*** Fixed a graphical glitch when using `wipe_out' when items were contained that required the horizontal scroll bar to be visible. The scroll bar was not hidden, even though there were no longer any items in the list. +*** Fixed a graphical glitch when using `wipe_out` when items were contained that required the horizontal scroll bar to be visible. The scroll bar was not hidden, even though there were no longer any items in the list. *** Changing the selection behavior between multiple and single selection would cause the scroll bars to become hidden, even if they were necessary. Changing this status will no longer hide the scroll bars if they are required. ** '''EV_TOOL_BAR''' *** Items that were disabled would sometimes become enabled when other properties of the item were set. For example, performing "my_tool_bar_button.disable_sensitive" followed by "my_tool_bar_button.set_text ("Disabled")" while the button was parented, would result in a sensitive tool bar button. This is now fixed. -*** If you changed the `text' of a tool bar toggle button during the firing of the `select_actions' of the toggle button, the button would become unchecked as a result. This is now fixed, and changing the text will not stop the button from becoming selected. +*** If you changed the `text` of a tool bar toggle button during the firing of the `select_actions` of the toggle button, the button would become unchecked as a result. This is now fixed, and changing the text will not stop the button from becoming selected. ** '''EV_MULTI_COLUMN_LIST''' - Changing the selection behavior between multiple and single selection would cause the scroll bars to become hidden, even if they were necessary. Changing this status will no longer hide the scroll bars if they are required. -** '''EV_DYNAMIC_TREE_ITEM''' - Calling `set_tooltip' failed and has now been fixed. -** '''EV_TIMEOUT''' - Calling `destroy' more than once on a timeout, caused the implementation to crash, and has now been fixed. +** '''EV_DYNAMIC_TREE_ITEM''' - Calling `set_tooltip` failed and has now been fixed. +** '''EV_TIMEOUT''' - Calling `destroy` more than once on a timeout, caused the implementation to crash, and has now been fixed. ** '''EV_TOOLTIPABLE''' - Tooltips on primitives were not supporting multiple lines and this has now been fixed. Use %N for a line break. * '''Gtk''' @@ -756,15 +756,15 @@ The following list details some of the breaking changes, and how to fix them: *** Default row height is now slightly larger to be more aesthetically pleasing with smaller fonts sizes. ** '''EV_CONTAINER''' -*** `set_background_pixmap' now works with repeated parenting. +*** `set_background_pixmap` now works with repeated parenting. *** Radio group unmerging is now handled correctly. ** '''EV_TEXT_FIELD ''' - Now vertical alignment is identical to that on Windows, including that for text field descendants. ** '''EV_RANGE ''' - Now motions events are passing consistent pointer values instead of sometimes skewed ones. -** '''EV_DRAWING_AREA''' - Now `focus_in_actions' are called in all circumstances. +** '''EV_DRAWING_AREA''' - Now `focus_in_actions` are called in all circumstances. ** '''EV_TEXT''' -*** `scroll_to_line' is now implemented. -*** `line_count' and `current_line_number' now handle lines in text widget and not the text itself. +*** `scroll_to_line` is now implemented. +*** `line_count` and `current_line_number` now handle lines in text widget and not the text itself. ** '''EV_FIXED''' - Now item sizing is correctly handled in all circumstances. ** '''EV_NOTEBOOK''' - Now tabs are more aesthetically pleasing. @@ -777,93 +777,93 @@ The following list details some of the breaking changes, and how to fix them: ==EiffelStudio 5.2== '''Interface modifications''' -* '''EV_TEXTABLE''' - `align_text_left', `align_text_right' and `align_text_center' have been extracted into a new class, EV_TEXT_ALIGNABLE which inherits EV_TEXTABLE. All previous descendents of EV_TEXTABLE now inherit EV_TEXT_ALIGNABLE, except EV_TREE_NODE, EV_MENU_ITEM, EV_LIST_ITEM and EV_TOOL_BAR_BUTTON +* '''EV_TEXTABLE''' - `align_text_left`, `align_text_right` and `align_text_center` have been extracted into a new class, EV_TEXT_ALIGNABLE which inherits EV_TEXTABLE. All previous descendents of EV_TEXTABLE now inherit EV_TEXT_ALIGNABLE, except EV_TREE_NODE, EV_MENU_ITEM, EV_LIST_ITEM and EV_TOOL_BAR_BUTTON * '''EV_TEXT_COMPONENT''' - Now inherits EV_TEXTABLE. * '''EV_TEXT_ALIGNMENT_CONSTANTS''' - New class added to support EV_TEXT_ALIGNABLE. -* '''EV_MENU_ITEM_LIST''' - `parent' is now of type EV_ANY, instead of EV_MENU_ITEM_LIST as it did not hold for EV_MENU_BAR. The renaming of `parent' to `old_parent' in EV_MENU_BAR has now been removed. -* '''EV_VIEWPORT''' - added `set_item_width', `set_item_height' and `set_item_size'. +* '''EV_MENU_ITEM_LIST''' - `parent` is now of type EV_ANY, instead of EV_MENU_ITEM_LIST as it did not hold for EV_MENU_BAR. The renaming of `parent` to `old_parent` in EV_MENU_BAR has now been removed. +* '''EV_VIEWPORT''' - added `set_item_width`, `set_item_height` and `set_item_size`. * '''EV_TABLE''' -** redefined `prunable' to `True' and implemented `prune'. -** Added the following features - `set_item_span', `set_item_position', `set_item_span_and_position', `area_clear_excluding_widget', `item_row_span', `item_column_span', `item_row_position' and `item_column_position'. +** redefined `prunable` to `True` and implemented `prune`. +** Added the following features - `set_item_span`, `set_item_position`, `set_item_span_and_position`, `area_clear_excluding_widget`, `item_row_span`, `item_column_span`, `item_row_position` and `item_column_position`. -* '''EV_WIDGET''' - Changed type of `focus_in_actions' and `focus_out_actions' from EV_FOCUS_ACTION_SEQUENCE to EV_NOTIFY_ACTION_SEQUENCE. `is_parent_recursive' is no longer available. It has been moved to EV_CONTAINER. This was necessary to fix a catcall encountered using EiffelVision 2 under .NET. The problem manifested with widgets that held items. -* '''EV_FIGURE''' - `proximity_in_actions' and `proximity_out_actions' are now obsolete. -* '''EV_FONTABLE''' - `set_font' now sets a copy of the font internally. -* '''EV_TREE''' - `ensure_item_visible' and `has_recursively' now take an EV_TREE_NODE as arguments, instead of an EV_TREE_ITEM. -* '''EV_TEXT''' - `put_new_line' is now obsolete. Use `set_text ("%N") instead." -* '''EV_APPLICATION_ACTION_SEQUENCES''' - Added `cancel_actions', fired when a pick and drop is canceled, and `pnd_motion_actions' fired while the pointer moves during a pick and drop. +* '''EV_WIDGET''' - Changed type of `focus_in_actions` and `focus_out_actions` from EV_FOCUS_ACTION_SEQUENCE to EV_NOTIFY_ACTION_SEQUENCE. `is_parent_recursive` is no longer available. It has been moved to EV_CONTAINER. This was necessary to fix a catcall encountered using EiffelVision 2 under .NET. The problem manifested with widgets that held items. +* '''EV_FIGURE''' - `proximity_in_actions` and `proximity_out_actions` are now obsolete. +* '''EV_FONTABLE''' - `set_font` now sets a copy of the font internally. +* '''EV_TREE''' - `ensure_item_visible` and `has_recursively` now take an EV_TREE_NODE as arguments, instead of an EV_TREE_ITEM. +* '''EV_TEXT''' - `put_new_line` is now obsolete. Use `set_text ("%N") instead." +* '''EV_APPLICATION_ACTION_SEQUENCES''' - Added `cancel_actions`, fired when a pick and drop is canceled, and `pnd_motion_actions` fired while the pointer moves during a pick and drop. * '''EV_TREE_NODE_LIST''' -** `find_item_recursively_by_data', `has_recursively' and `recursive_do_all' are now implemented in this class, instead of both EV_TREE and EV_TREE_NODE which are descendents. -** Added `retrive_items_recursively_by_data' and `retrieve_item_recursively_by_data' which allow you to specify a comparison criterion, and due to this addition, `find_item_recursively_by_data' has now been made obsolete. +** `find_item_recursively_by_data`, `has_recursively` and `recursive_do_all` are now implemented in this class, instead of both EV_TREE and EV_TREE_NODE which are descendents. +** Added `retrive_items_recursively_by_data` and `retrieve_item_recursively_by_data` which allow you to specify a comparison criterion, and due to this addition, `find_item_recursively_by_data` has now been made obsolete. -* '''EV_DYNAMIC_LIST''' - Added `retrieve_item_by_data' and `retrieve_items_by_data'. -* '''EV_ITEM_LIST''' - Made `item_by_data' obsolete, as you should now use `retrieve_item_by_data' added in EV_DYNAMIC_LIST. -* '''EV_DIALOG''' - Added `is_relative' and defined `is_modal' in this class, instead of inheriting it from EV_WINDOW. +* '''EV_DYNAMIC_LIST''' - Added `retrieve_item_by_data` and `retrieve_items_by_data`. +* '''EV_ITEM_LIST''' - Made `item_by_data` obsolete, as you should now use `retrieve_item_by_data` added in EV_DYNAMIC_LIST. +* '''EV_DIALOG''' - Added `is_relative` and defined `is_modal` in this class, instead of inheriting it from EV_WINDOW. '''Bug fixes''' * '''Platform independent''' -** '''EV_FIGURE_POLYLINE''' - Fixed `start_angle' and `end_angle' so that they are computed relative to the first and last polyline segments. This also fixes the start and end arrows, so that when displayed, they now actually point in the direction of their respective line segments. -** '''EV_TREE and EV_TREE_NODE''' - Fixed `find_item_recursively_by_data' which failed on the `index_not_changed' postcondition. Note that these features are now defined in EV_TREE_NODE_LIST. -** '''EV_DYNAMIC_TREE_ITEM''' - Fixed invariant violation from EV_ITEM_LIST, when created with `default_create'. +** '''EV_FIGURE_POLYLINE''' - Fixed `start_angle` and `end_angle` so that they are computed relative to the first and last polyline segments. This also fixes the start and end arrows, so that when displayed, they now actually point in the direction of their respective line segments. +** '''EV_TREE and EV_TREE_NODE''' - Fixed `find_item_recursively_by_data` which failed on the `index_not_changed` postcondition. Note that these features are now defined in EV_TREE_NODE_LIST. +** '''EV_DYNAMIC_TREE_ITEM''' - Fixed invariant violation from EV_ITEM_LIST, when created with `default_create`. * '''Windows''' -** '''EV_RADIO_BUTTON''' - The default minimum height after `default_create' is now enough to display the widget correctly. -** '''EV_CHECK_BUTTON''' - The default minimum height after `default_create' is now enough to display the widget correctly. +** '''EV_RADIO_BUTTON''' - The default minimum height after `default_create` is now enough to display the widget correctly. +** '''EV_CHECK_BUTTON''' - The default minimum height after `default_create` is now enough to display the widget correctly. ** '''EV_NOTEBOOK''' - When removing a widget from a notebook, it is now visible. Previously, the widget would be hidden. -** '''EV_LIST, EV_MULTI_COLUMN_LIST, EV_TREE''' - Fixed `set_foreground_color' and `set_background_color'. Previously, calling these features did nothing. -** '''EV_BOX''' - If a widget was not`is_item_expanded', then adding a new widget to the box before that widget would sometimes cause a different widget to become `is_item_expanded'. -** '''EV_TOOL_BAR_RADIO_BUTTON''' - The currently selected button in `peers' was unselected when the button was pressed, and not when it was really selected. This bug made it possible to make `selected_peer' Void, which caused an invariant to fail. -** '''EV_LIST_ITEM''' - Calling `enable_select' when parented in an EV_LIST now also sets the item as focused in the parent. This corrects bugs in keyboard navigation when selecting an item programatically. +** '''EV_LIST, EV_MULTI_COLUMN_LIST, EV_TREE''' - Fixed `set_foreground_color` and `set_background_color`. Previously, calling these features did nothing. +** '''EV_BOX''' - If a widget was not`is_item_expanded', then adding a new widget to the box before that widget would sometimes cause a different widget to become `is_item_expanded`. +** '''EV_TOOL_BAR_RADIO_BUTTON''' - The currently selected button in `peers` was unselected when the button was pressed, and not when it was really selected. This bug made it possible to make `selected_peer` Void, which caused an invariant to fail. +** '''EV_LIST_ITEM''' - Calling `enable_select` when parented in an EV_LIST now also sets the item as focused in the parent. This corrects bugs in keyboard navigation when selecting an item programatically. ** '''EV_FIXED''' - The minimum size is constrained by the positions and sizes of the children (They must be completely displayed), although when the positions of the children were reduced, the minimum allowable size was not recomputed. This meant that the widget would be enlarged when the positions of the children increased, but could never be reduced in size when the positions of the children were decreased. -** '''EV_MENU and EV_MENU_ITEM''' - `set_pixmap' has been implemented as previously, it did nothing. +** '''EV_MENU and EV_MENU_ITEM''' - `set_pixmap` has been implemented as previously, it did nothing. ** '''EV_TABLE''' - re-implemented resizing calculations to fix numerous problems when children had minimum sizes. The minimum size now also includes the border width when empty. -** '''EV_NOTEBOOK''' - `selection_actions' were called when you selected an item through `select_item', even if the item was already selected. `selection_actions' are now only fired when the selection changes. -** '''EV_TREE_ITEM''' - calling `set_pixmap' twice successively with the same EV_PIXMAP caused a postcondition failure. -** '''EV_TEXT''' - Fixed `put_new_line', although it has been made obsolete, as you should just use `append_text ("%N") instead. +** '''EV_NOTEBOOK''' - `selection_actions` were called when you selected an item through `select_item`, even if the item was already selected. `selection_actions` are now only fired when the selection changes. +** '''EV_TREE_ITEM''' - calling `set_pixmap` twice successively with the same EV_PIXMAP caused a postcondition failure. +** '''EV_TEXT''' - Fixed `put_new_line`, although it has been made obsolete, as you should just use `append_text ("%N") instead. ** '''EV_SPLIT_AREA''' - Fixed crash reproducable by inserting an EV_PIXMAP directly into the split area. -** '''EV_CONTAINER''' - Fixed `propagate_foreground_color' and `propagate_background_color' which failed when one of the children was a descendent of EV_CELL. -** '''EV_APPLICATION_ACTION_SEQUENCES''' - `drop_actions' was being fired even when the pick and drop was canceled. +** '''EV_CONTAINER''' - Fixed `propagate_foreground_color` and `propagate_background_color` which failed when one of the children was a descendent of EV_CELL. +** '''EV_APPLICATION_ACTION_SEQUENCES''' - `drop_actions` was being fired even when the pick and drop was canceled. ** '''EV_PIXMAP''' - Previously, if you were to add an agent to an action sequence of the pixmap, before it was parented, the agent would be removed during the parenting. ** '''EV_MENU''' *** Pruning an EV_MENU_SEPARATOR when one or more EV_RADIO_MENU_ITEM were still contained in the menu would cause occasional crashes. *** Previously, when adding an EV_MENU_SEPARATOR, followed by multiple EV_RADIO_MENU_ITEMS, all the items were being selected. -*** Fixed bug in `destroy' which was causing postcondition failures. +*** Fixed bug in `destroy` which was causing postcondition failures. ** '''EV_TITLED_WINDOW''' - Fixed a GDI leak, manifesting when a window was destroyed. ** '''EV_DIALOG''' -*** Fixed `is_modal' which was previously always returned `False'. -*** Fixed bug with `background_color' and `foreground_color' which was not taken into account if the dialog was shown relative or modally to another window. -*** If a dialog with a default cancel button was displayed using `show', then minimizing the dialog would cause the system to fail internally. -*** Fix bug in `show_relative_to_window' which would cause any associated menus to be removed. -*** Fixed bug in `show', as if the dialog had already been shown modelessly to a window, then calling `show' did not show it independently, but still modelessly. -*** Fixed bug with `show_actions' which would be wiped out if you called `show_modal_to_window' and then `hide'. -*** `set_pixmap' will now actually display the pixmap, whereas before, no pixmap was displayed. +*** Fixed `is_modal` which was previously always returned `False`. +*** Fixed bug with `background_color` and `foreground_color` which was not taken into account if the dialog was shown relative or modally to another window. +*** If a dialog with a default cancel button was displayed using `show`, then minimizing the dialog would cause the system to fail internally. +*** Fix bug in `show_relative_to_window` which would cause any associated menus to be removed. +*** Fixed bug in `show`, as if the dialog had already been shown modelessly to a window, then calling `show` did not show it independently, but still modelessly. +*** Fixed bug with `show_actions` which would be wiped out if you called `show_modal_to_window` and then `hide`. +*** `set_pixmap` will now actually display the pixmap, whereas before, no pixmap was displayed. -** '''EV_TEXT_COMPONENT''' - Fixed `text_length' which was returning incorrect value for all descendents. -** '''EV_TEXT''' - Fixed `line_count' which was previously returning the correct result + 1. -** '''EV_SCROLLABLE_AREA''' - Fixed crash which occurred when you attempted to use `set_x_offset' or `set_y_offset' before the area had been parented or displayed. -** '''EV_FONTABLE''' - Fixed bug when `font' was queried, `preferred_families' was not returned correctly, and would always be empty. -** '''EV_CONTAINER''' - `set_background_pixmap' was not correctly cloning the image of the pixmap, and the displayed image could then be modified after setting, by changing the image of the original pixmap. +** '''EV_TEXT_COMPONENT''' - Fixed `text_length` which was returning incorrect value for all descendents. +** '''EV_TEXT''' - Fixed `line_count` which was previously returning the correct result + 1. +** '''EV_SCROLLABLE_AREA''' - Fixed crash which occurred when you attempted to use `set_x_offset` or `set_y_offset` before the area had been parented or displayed. +** '''EV_FONTABLE''' - Fixed bug when `font` was queried, `preferred_families` was not returned correctly, and would always be empty. +** '''EV_CONTAINER''' - `set_background_pixmap` was not correctly cloning the image of the pixmap, and the displayed image could then be modified after setting, by changing the image of the original pixmap. * '''Gtk''' ** Remaining EV_WIDGET memory leaks have been fixed. ** '''EV_WIDGET'''- Focus in/out actions are now correctly called for widgets that do not occupy their entire space allocation such as EV_TEXT_FIELD. ** '''EV_DRAWABLE_IMP''' - Polylines now display correctly on big-endian machines (Sparc, PowerPC). ** '''EV_KEY''' -*** `out' is now correct for all keys (previously Quote and Backquote were incorrect). +*** `out` is now correct for all keys (previously Quote and Backquote were incorrect). *** The events for all keys are now fired when Shift is held down. ** '''EV_STOCK_PIXMAPS''' - Warning and error pixmaps have been updated. -** '''EV_WINDOW''' - `remove_title now' works will all Window Managers. +** '''EV_WINDOW''' - `remove_title now` works will all Window Managers. ** '''EV_TITLED_WINDOW''' -*** `propagate_foreground_color' is now fixed in use with pixmaps as children. -*** `set_maximum_size' now works as expected -*** `set_minimum_width' now has no effect on Window height. -*** calls on `minimize' before `launch' now satisfies all assertions -*** calling `destroy' twice now doesn't fail on precondition. -*** `set_position' now satisfies post-condition in all situations. -*** `resize_actions' are now passed the correct values. -*** `move_actions' are now called correctly. +*** `propagate_foreground_color` is now fixed in use with pixmaps as children. +*** `set_maximum_size` now works as expected +*** `set_minimum_width` now has no effect on Window height. +*** calls on `minimize` before `launch` now satisfies all assertions +*** calling `destroy` twice now doesn't fail on precondition. +*** `set_position` now satisfies post-condition in all situations. +*** `resize_actions` are now passed the correct values. +*** `move_actions` are now called correctly. ** '''EV_NOTEBOOK''' - now satisfies invariants when empty. ** '''EV_DIALOG''' @@ -872,7 +872,7 @@ The following list details some of the breaking changes, and how to fix them: ** '''EV_LABEL''' - Size is now taken from default gtk style size instead of hard coded 10 ** '''EV_FONT''' - Font caching is now vastly improved in terms of speed. -** '''EV_DRAWABLE''' - Calls to `set_font' are now also vastly speeded up. +** '''EV_DRAWABLE''' - Calls to `set_font` are now also vastly speeded up. ** '''EV_TABLE''' *** Memory management is now correct on item removal. *** Now setting child's parent correctly @@ -881,63 +881,63 @@ The following list details some of the breaking changes, and how to fix them: *** Fixed all reported issues regarding item insertion and removal. ** '''EV_CONTAINER''' - Fixed remaining issues with radio grouping and merging. -** '''EV_PICK_AND_DROPABLE''' - Now drop_actions may destroy `Current' without crash. +** '''EV_PICK_AND_DROPABLE''' - Now drop_actions may destroy `Current` without crash. ** '''EV_TEXT_FIELD''' -*** Now default `minimum_width' is reasonable (before 148, now same as Windows being 4 characters wide) -*** Fixed `caret_position' when queried in change actions +*** Now default `minimum_width` is reasonable (before 148, now same as Windows being 4 characters wide) +*** Fixed `caret_position` when queried in change actions ==EiffelStudio 5.1== '''Interface modifications''' -* '''EV_TEXTABLE and EV_TEXT_COMPONENT''' - `text' no longer returns Void when empty. -* '''EV_WINDOW''' - `title' no longer returns `Void' when empty. -* '''EV_TOOLTIPABLE''' - `tooltip' no longer returns `Void' when empty. If empty, no tooltip is displayed. -* '''EV_TITLED_WINDOW''' - `icon_name' no longer returns `Void' when empty. -* '''EV_CLIPBOARD''' - `text' no longer returns `Void' when empty. -* '''EV_MESSAGE_DIALOG''' - `text' no longer returns `Void' when empty. -* '''EV_FILE_DIALOG''' - `file_name' no longer returns `Void' when the "Cancel" button was pressed, `Result' is empty instead. -* '''EV_DIRECTORY_DIALOG''' - `directory' no longer returns `Void when the "Cancel" button was pressed, `Result' is empty instead. -* '''EV_CONTAINER''' - has three new features `set_background_pixmap', `background_pixmap' and `remove_background_pixmap'. `background_pixmap' will be tessellated to cover complete background area. -* '''EV_TREE and EV_TREE_NODE''' - Added `recursively_do_all'. +* '''EV_TEXTABLE and EV_TEXT_COMPONENT''' - `text` no longer returns Void when empty. +* '''EV_WINDOW''' - `title` no longer returns `Void` when empty. +* '''EV_TOOLTIPABLE''' - `tooltip` no longer returns `Void` when empty. If empty, no tooltip is displayed. +* '''EV_TITLED_WINDOW''' - `icon_name` no longer returns `Void` when empty. +* '''EV_CLIPBOARD''' - `text` no longer returns `Void` when empty. +* '''EV_MESSAGE_DIALOG''' - `text` no longer returns `Void` when empty. +* '''EV_FILE_DIALOG''' - `file_name` no longer returns `Void` when the "Cancel" button was pressed, `Result` is empty instead. +* '''EV_DIRECTORY_DIALOG''' - `directory` no longer returns `Void when the "Cancel" button was pressed, `Result` is empty instead. +* '''EV_CONTAINER''' - has three new features `set_background_pixmap`, `background_pixmap` and `remove_background_pixmap`. `background_pixmap` will be tessellated to cover complete background area. +* '''EV_TREE and EV_TREE_NODE''' - Added `recursively_do_all`. * '''EV_STANDARD_DIALOGS''' -** `ok_actions' have been renamed in descendents where appropriate. e.g. in EV_PRINT_DIALOG, they are renamed to `print_actions' to match the texts of the associated buttons. Where renamed, `ok_actions' are still available but obsolete. +** `ok_actions` have been renamed in descendents where appropriate. e.g. in EV_PRINT_DIALOG, they are renamed to `print_actions` to match the texts of the associated buttons. Where renamed, `ok_actions` are still available but obsolete. ** Selected button now also returns the correct text of the button (Previously it was always "Ok"). * '''EV_DIALOG_CONSTANTS''' - Added new constants required for the above change to EV_STANDARD_DIALOGS. -* '''EV_DRAWABLE''' - `draw_straight_line' now has a precondition to ensure the points are not identical. -* '''EV_SPLIT_AREA''' - separated `put' from `extend'. They were defined as synonyms, but have different behavior. -* '''EV_DYNAMIC_TREE_ITEM''' - Added `remove_subtree_function'. Item now only shows as expandable if there is a subtree function. -* '''EV_WINDOW''' - Added `maximum_dimension' which is the greatest value allowed for `width' and `height'. This is also the default value for `width' and `height'. +* '''EV_DRAWABLE''' - `draw_straight_line` now has a precondition to ensure the points are not identical. +* '''EV_SPLIT_AREA''' - separated `put` from `extend`. They were defined as synonyms, but have different behavior. +* '''EV_DYNAMIC_TREE_ITEM''' - Added `remove_subtree_function`. Item now only shows as expandable if there is a subtree function. +* '''EV_WINDOW''' - Added `maximum_dimension` which is the greatest value allowed for `width` and `height`. This is also the default value for `width` and `height`. * '''EV_OPTION_BUTTON''' - This class has been made obsolete. It will be removed at the next release. -* '''EV_PICK_AND_DROPABLE_ACTION_SEQUENCES''' - Added `pick_ended_actions' which are called when a pick ends. -* '''EV_WIDGET''' - `set_minimum_height', `set_minimum_width' and `set_minimum_size' now all allow 0 as an argument. Previously, 1 was the minimum valid dimension. -* '''EV_MULTI_COLUMN_LIST''' - `clear_selection' is now obsolete. Use `remove_selection' instead. +* '''EV_PICK_AND_DROPABLE_ACTION_SEQUENCES''' - Added `pick_ended_actions` which are called when a pick ends. +* '''EV_WIDGET''' - `set_minimum_height`, `set_minimum_width` and `set_minimum_size` now all allow 0 as an argument. Previously, 1 was the minimum valid dimension. +* '''EV_MULTI_COLUMN_LIST''' - `clear_selection` is now obsolete. Use `remove_selection` instead. '''Bug fixes''' * '''Platform independent''' -** '''EV_FIXED''' - Corrected `set_item_height', which was failing. -** '''EV_SELECTABLE''' - Corrected postcondition of `is_selected'. -** '''EV_PND_ACTION_SEQUENCE''' -- `veto_pebble_function' is now only called when its argument conforms to the transported pebble. +** '''EV_FIXED''' - Corrected `set_item_height`, which was failing. +** '''EV_SELECTABLE''' - Corrected postcondition of `is_selected`. +** '''EV_PND_ACTION_SEQUENCE''' -- `veto_pebble_function` is now only called when its argument conforms to the transported pebble. * '''Windows''' -** '''EV_RANGE''' - The `maximum_value' could not be set greater than 32,000. The full range of an INTEGER may now be set. -** '''`focused_widget' from `EV_APPLICATION'''' - was incorrect if an EV_CONTAINER had just received the focus. +** '''EV_RANGE''' - The `maximum_value` could not be set greater than 32,000. The full range of an INTEGER may now be set. +** '''`focused_widget' from `EV_APPLICATION`''' - was incorrect if an EV_CONTAINER had just received the focus. ** '''EV_PICK_AND_DROPABLE''' -*** Ending a pick and drop on an EV_TOOL_BAR_BUTTON which has a non `void' pebble no longer starts a transport from the button. +*** Ending a pick and drop on an EV_TOOL_BAR_BUTTON which has a non `void` pebble no longer starts a transport from the button. *** Reduced flicker on cursor when picking from an EV_TREE_ITEM or EV_LIST_ITEM. -*** `pebble_function' would previously be called twice during a pick and drop. +*** `pebble_function` would previously be called twice during a pick and drop. ** '''EV_FIXED''' - Items contained are now drawn correctly dependent on their z order. ** '''EV_DRAWABLE''' -*** `Remove_clip_area' did not remove the clip_area correctly, but set it to the current size. This meant that if you then enlarged the widget, clipping would be applied. +*** `Remove_clip_area` did not remove the clip_area correctly, but set it to the current size. This meant that if you then enlarged the widget, clipping would be applied. *** Fixed problems with ordering of calls to certain features which would cause postcondition violations in the implementation. -*** `draw_pie_slice', `fill_pie_slice' and `draw_arc' now have divide by 0 protection in the implementation. +*** `draw_pie_slice`, `fill_pie_slice` and `draw_arc` now have divide by 0 protection in the implementation. -** '''EV_TEXT''' - `set_background_color' now correctly sets the color of the whole background. Previously only the area containing text was modified. -** '''EV_CLIPBOARD''' - Our implementation would sometimes query `text' when not allowed by Windows, thus causing postcondition failures. -** '''EV_BUTTON''' - The result of `text_alignment' after default_create was incorrect. +** '''EV_TEXT''' - `set_background_color` now correctly sets the color of the whole background. Previously only the area containing text was modified. +** '''EV_CLIPBOARD''' - Our implementation would sometimes query `text` when not allowed by Windows, thus causing postcondition failures. +** '''EV_BUTTON''' - The result of `text_alignment` after default_create was incorrect. * '''Gtk''' ** Gtk version of Studio released (including EiffelVision 2), so no fixes from 5.0 diff --git a/documentation/trunk/solutions/networking/eiffelnet/eiffelnet-tutorial/introduction-examples.wiki b/documentation/trunk/solutions/networking/eiffelnet/eiffelnet-tutorial/introduction-examples.wiki index c8e506f1..fa73d4b2 100644 --- a/documentation/trunk/solutions/networking/eiffelnet/eiffelnet-tutorial/introduction-examples.wiki +++ b/documentation/trunk/solutions/networking/eiffelnet/eiffelnet-tutorial/introduction-examples.wiki @@ -33,7 +33,7 @@ Note that to make use of the storage and retrieval facilities the objects to be -{{caution|On Windows, the examples `advanced' and the `same_mach' are nonfunctional. This is because these examples use code specific to Unix Operating systems. }} +{{caution|On Windows, the examples `advanced` and the `same_mach` are nonfunctional. This is because these examples use code specific to Unix Operating systems. }} diff --git a/documentation/trunk/solutions/other-languages/cecil/cecil-interface-overview.wiki b/documentation/trunk/solutions/other-languages/cecil/cecil-interface-overview.wiki index 58cf75c3..856715d5 100644 --- a/documentation/trunk/solutions/other-languages/cecil/cecil-interface-overview.wiki +++ b/documentation/trunk/solutions/other-languages/cecil/cecil-interface-overview.wiki @@ -16,7 +16,7 @@ Generally, you should use these types when implementing external C functions bou {{note|In the following code samples, the class OBJECT is a placeholder for one of your type that you wish to use via CECIL.}} -{{sample|Calling C external `foo' from Eiffel, which takes a pointer and an eiffel object of type OBJECT as arguments and returns an INTEGER. }} +{{sample|Calling C external `foo` from Eiffel, which takes a pointer and an eiffel object of type OBJECT as arguments and returns an INTEGER. }}
c_foo (ptr: POINTER; obj: OBJECT): INTEGER @@ -28,7 +28,7 @@ Generally, you should use these types when implementing external C functions bou -In the C side, The C function `foo' is defined as follow: +In the C side, The C function `foo` is defined as follow: EIF_INTEGER foo (EIF_POINTER ptr, EIF_OBJECT obj) @@ -121,7 +121,7 @@ EIF_INTEGER foo (EIF_POINTER ptr, EIF_OBJECT obj); '''Important rules when using eif_access:''' -{{note|The first argument of ''(ep)'' is the target of the function (the eiffel object to which you want to apply the Eiffel feature ''(ep)'') and the second argument corresponds to the first argument of ` ''print'''. Any Eiffel object could have been the 1st argument of ''(ep)'' since all of them inherit ''ANY''. }} +{{note|The first argument of ''(ep)'' is the target of the function (the eiffel object to which you want to apply the Eiffel feature ''(ep)'') and the second argument corresponds to the first argument of `print`. Any Eiffel object could have been the 1st argument of ''(ep)'' since all of them inherit ''ANY''. }} * '''Never pre compute the value returned by eif_access. '''
@@ -148,7 +148,7 @@ because e_ref is the direct reference to the Eiffel object when calling ''eif_ac * which corresponds to the C string passed as its argument. */
-Nothing guarantees that the direct reference returned by `eif_access (a)' will be still valid when executing (ep): it may be obsolete after the Eiffel call eif_string ("Hello world"), which may invoke a collection cycle. +Nothing guarantees that the direct reference returned by `eif_access (a)` will be still valid when executing (ep): it may be obsolete after the Eiffel call eif_string ("Hello world"), which may invoke a collection cycle. The correct code is @@ -160,7 +160,7 @@ my_string = eif_string ("Hello world");
-In this case, you do not need to protect `my_string' since the GC is not likely to be triggered after the call to ''eif_string'' and before `my_string' is given as argument in ''(ep). '' A collection is triggered only during Eiffel calls. If an Eiffel call had been performed, you would have had to use ''eif_protect'' (see paragraph 3. 2): +In this case, you do not need to protect `my_string` since the GC is not likely to be triggered after the call to ''eif_string'' and before `my_string` is given as argument in ''(ep). '' A collection is triggered only during Eiffel calls. If an Eiffel call had been performed, you would have had to use ''eif_protect'' (see paragraph 3. 2): EIF_REFERENCE my_string; diff --git a/documentation/trunk/solutions/other-languages/cecil/cecil-samples/cecil-basic-sample.wiki b/documentation/trunk/solutions/other-languages/cecil/cecil-samples/cecil-basic-sample.wiki index 44c9a88c..3ce6d43a 100644 --- a/documentation/trunk/solutions/other-languages/cecil/cecil-samples/cecil-basic-sample.wiki +++ b/documentation/trunk/solutions/other-languages/cecil/cecil-samples/cecil-basic-sample.wiki @@ -3,7 +3,7 @@ [[Property:uuid|ed699d37-f480-0cef-817f-9f4a857c1691]] ==cecil-test== -After you have done the appropriate steps to compile the example, you will get a `cecil.exe' on windows, or `cecil' on Unix. +After you have done the appropriate steps to compile the example, you will get a `cecil.exe` on windows, or `cecil` on Unix. This example performs some basic tests of CECIL from C to Eiffel and Eiffel to C. You can: * choose to raise an exception when a routine is not visible diff --git a/documentation/trunk/solutions/other-languages/cecil/cecil-samples/cecil-c-eiffel.wiki b/documentation/trunk/solutions/other-languages/cecil/cecil-samples/cecil-c-eiffel.wiki index 59212b10..075b365a 100644 --- a/documentation/trunk/solutions/other-languages/cecil/cecil-samples/cecil-c-eiffel.wiki +++ b/documentation/trunk/solutions/other-languages/cecil/cecil-samples/cecil-c-eiffel.wiki @@ -2,7 +2,7 @@ [[Property:weight|0]] [[Property:uuid|c3b64ef2-28b2-920e-44fb-4cff2320c099]] ==array== -This example shows how to create an Eiffel array from an existing C array. After you have done the appropriate steps to compile the example, you will get a `cecil.exe' on windows, or `cecil' on Unix. Launch the program and you will be prompted for 10 integers that will be inserted in a C array, it will then initialize the Eiffel array and calls display from the MY_ARRAY class. A typical output will be: +This example shows how to create an Eiffel array from an existing C array. After you have done the appropriate steps to compile the example, you will get a `cecil.exe` on windows, or `cecil` on Unix. Launch the program and you will be prompted for 10 integers that will be inserted in a C array, it will then initialize the Eiffel array and calls display from the MY_ARRAY class. A typical output will be: $ ./cecil Enter 10 integers: @@ -31,7 +31,7 @@ Display an Eiffel Array: ==string== -This example shows how to create an Eiffel string from an existing C string. After you have done the appropriate steps to compile the example, you will get a `cecil.exe' on windows, or `cecil' on Unix. Launch the program and you will be prompted for a string, it will then initialize the Eiffel string and calls io. put_string from the STD_FILES class. A typical output will be: +This example shows how to create an Eiffel string from an existing C string. After you have done the appropriate steps to compile the example, you will get a `cecil.exe` on windows, or `cecil` on Unix. Launch the program and you will be prompted for a string, it will then initialize the Eiffel string and calls io. put_string from the STD_FILES class. A typical output will be: $ ./cecil Enter a string to convert in Eiffel string: diff --git a/documentation/trunk/solutions/other-languages/cecil/cecil-samples/cecil-eiffel-c.wiki b/documentation/trunk/solutions/other-languages/cecil/cecil-samples/cecil-eiffel-c.wiki index ef029b83..6a310b95 100644 --- a/documentation/trunk/solutions/other-languages/cecil/cecil-samples/cecil-eiffel-c.wiki +++ b/documentation/trunk/solutions/other-languages/cecil/cecil-samples/cecil-eiffel-c.wiki @@ -5,7 +5,7 @@ This example shows how to create a C array from an existing Eiffel array. -After you have done the appropriate steps to compile the example, you will get a `cecil.exe' on windows, or `cecil' on Unix. +After you have done the appropriate steps to compile the example, you will get a `cecil.exe` on windows, or `cecil` on Unix. Launch the program and you will be prompted for 10 integers that will be inserted in an Eiffel array, it will then initialize the C array and display it. @@ -39,7 +39,7 @@ Displaying from C ==object== -This example shows the Eiffel memory management and all issues when passing an Eiffel object reference to C. In the example, you can edit the file `root_class.e' to modify the example: +This example shows the Eiffel memory management and all issues when passing an Eiffel object reference to C. In the example, you can edit the file `root_class.e` to modify the example: --give_to_c (o1) give_to_c_by_pointer ($o1) -- Choose the way you pass it @@ -81,7 +81,7 @@ An Eiffel object of type OBJECT is collected ==string== -This example shows how to create a C string from an existing Eiffel string. After you have done the appropriate steps to compile the example, you will get a `cecil.exe' on windows, or `cecil' on Unix. Launch the program and you will be prompted for a string from Eiffel and a C string will be created and display. A typical output will be: +This example shows how to create a C string from an existing Eiffel string. After you have done the appropriate steps to compile the example, you will get a `cecil.exe` on windows, or `cecil` on Unix. Launch the program and you will be prompted for a string from Eiffel and a C string will be created and display. A typical output will be: $ cecil Enter a string to convert into a C string: diff --git a/documentation/trunk/solutions/other-languages/cecil/cecil-samples/cecil-threads.wiki b/documentation/trunk/solutions/other-languages/cecil/cecil-samples/cecil-threads.wiki index 6be748aa..dd22abe7 100644 --- a/documentation/trunk/solutions/other-languages/cecil/cecil-samples/cecil-threads.wiki +++ b/documentation/trunk/solutions/other-languages/cecil/cecil-samples/cecil-threads.wiki @@ -3,7 +3,7 @@ [[Property:uuid|44f2ee31-8634-6e54-f45a-8b36f780f888]] ==bank_account== -After you have done the appropriate steps to compile the example, you will get a `bank_account.exe' on windows, or `bank_account' on Unix. +After you have done the appropriate steps to compile the example, you will get a `bank_account.exe` on windows, or `bank_account` on Unix. This program launches two types of threads: * the spenders withdraw some money from a shared bank account diff --git a/documentation/trunk/solutions/other-languages/eiffel-external-mechanism/obsolete-external-interfaces/c-externals.wiki b/documentation/trunk/solutions/other-languages/eiffel-external-mechanism/obsolete-external-interfaces/c-externals.wiki index 4f54a696..43ed03ad 100644 --- a/documentation/trunk/solutions/other-languages/eiffel-external-mechanism/obsolete-external-interfaces/c-externals.wiki +++ b/documentation/trunk/solutions/other-languages/eiffel-external-mechanism/obsolete-external-interfaces/c-externals.wiki @@ -13,7 +13,7 @@ The sections concerning [[#macros|Macros]] and [[#structs|Structs]] are also a You can encapsulate routines that are defined in a C header file. We will take some examples and will show you how to write wrappers in Eiffel. -If in a header file called `my_header.h', you have the following declaration: +If in a header file called `my_header.h`, you have the following declaration: /* Routine with no parameter */ extern void no_param(void); @@ -68,7 +68,7 @@ Here is the corresponding Eiffel code: ==Macros== -If in a header file called `my_header.h', you have the following declaration: +If in a header file called `my_header.h`, you have the following declaration: /* Predefined constants */ #define ID_MENU 128 @@ -112,7 +112,7 @@ Then, the corresponding Eiffel code will look like: The struct encapsulation enables you to wrap C/C++ structures easily without having to write any additional code in a C header file as it was the case until Eiffel Software introduced this new keyword in the external specification with the 4.5 release of the Eiffel Software environment. With the struct encapsulation you can set and retrieve the value of a certain field of a struct. -If in a header file called `my_header.h', you have the following declaration of the `Point' structure whose `x' and `y' fields we want to access and set: +If in a header file called `my_header.h`, you have the following declaration of the `Point` structure whose `x` and `y` fields we want to access and set: @@ -167,7 +167,7 @@ With EiffelStudio you now have two different ways to call C routines exported in * _cdecl: referred to as the standard way * __stdcall referred to as the Pascal way -Therefore if you want to call an external routine defined in a DLL supposed to be called using the `_cdecl' method, you have to use the '''dll32''' sub-language option. For `__stdcall' you need to use the '''dllwin32''' sub-language option. Here is an example: +Therefore if you want to call an external routine defined in a DLL supposed to be called using the `_cdecl` method, you have to use the '''dll32''' sub-language option. For `__stdcall` you need to use the '''dllwin32''' sub-language option. Here is an example: @@ -189,9 +189,9 @@ Therefore if you want to call an external routine defined in a DLL supposed to b ===Windows API=== -As described in the previous section concerning routines exported in a DLL, the Windows API is using the `__stdcall' convention. As a consequence, you cannot use the standard external mechanism to wrap them because it is using the `_cdecl' convention. However, you can easily wrap those function by using the '''macro''' sub-language. +As described in the previous section concerning routines exported in a DLL, the Windows API is using the `__stdcall` convention. As a consequence, you cannot use the standard external mechanism to wrap them because it is using the `_cdecl` convention. However, you can easily wrap those function by using the '''macro''' sub-language. -Here is an example that has been taken from WEL, the Windows Eiffel Library, to encapsulate the Windows `SendMessage' function: +Here is an example that has been taken from WEL, the Windows Eiffel Library, to encapsulate the Windows `SendMessage` function: Windows defined SendMessage as: diff --git a/documentation/trunk/solutions/other-languages/eiffel2java/eiffel2java-sample.wiki b/documentation/trunk/solutions/other-languages/eiffel2java/eiffel2java-sample.wiki index 158e9d38..da840240 100644 --- a/documentation/trunk/solutions/other-languages/eiffel2java/eiffel2java-sample.wiki +++ b/documentation/trunk/solutions/other-languages/eiffel2java/eiffel2java-sample.wiki @@ -26,7 +26,7 @@ In order to run properly you need to read [[Eiffel2Java|the library requirement] ===Compiling the example=== -Since the example is using the `test.java' class, the first step is to compile the java class using the `javac' command line utility from the JDK. Once it is done, copy the `test.class' either into $ISE_EIFFEL\examples\Eiffel2Java\EIFGENs\classic\W_code or else into $ISE_EIFFEL\examples\Eiffel2Java\EIFGENs\classic\F_code, depending on your compilation mode (freezing vs. finalizing). +Since the example is using the `test.java` class, the first step is to compile the java class using the `javac` command line utility from the JDK. Once it is done, copy the `test.class` either into $ISE_EIFFEL\examples\Eiffel2Java\EIFGENs\classic\W_code or else into $ISE_EIFFEL\examples\Eiffel2Java\EIFGENs\classic\F_code, depending on your compilation mode (freezing vs. finalizing). ===Running the example=== diff --git a/documentation/trunk/solutions/other-languages/eiffel2java/eiffel2java-tutorial.wiki b/documentation/trunk/solutions/other-languages/eiffel2java/eiffel2java-tutorial.wiki index 023fd94e..fd54efea 100644 --- a/documentation/trunk/solutions/other-languages/eiffel2java/eiffel2java-tutorial.wiki +++ b/documentation/trunk/solutions/other-languages/eiffel2java/eiffel2java-tutorial.wiki @@ -16,7 +16,7 @@ The Java interface allows you to call Java routines or attributes from your Eiff * In this version, you can only use one JNI environment. * Only one thread can interact with the Java Virtual Machine (JVM). * It is not possible to call Eiffel features from Java program. -* The Eiffel feature `destroy_vm' of `JAVA_VM' calls a C function of the Java NativeInterface that is not fully implemented in jdk 1.1.8. This function, called DestroyJavaVM, always returns -1 in jdk 1.1.8. For further information, go on the JNI pages at the address above. +* The Eiffel feature `destroy_vm` of `JAVA_VM` calls a C function of the Java NativeInterface that is not fully implemented in jdk 1.1.8. This function, called DestroyJavaVM, always returns -1 in jdk 1.1.8. For further information, go on the JNI pages at the address above. ==Interface classes== diff --git a/documentation/trunk/solutions/platform-specifics/microsoft-windows/net/eiffel-net-language/eiffel-net-integration.wiki b/documentation/trunk/solutions/platform-specifics/microsoft-windows/net/eiffel-net-language/eiffel-net-integration.wiki index d30e8009..71c963ef 100644 --- a/documentation/trunk/solutions/platform-specifics/microsoft-windows/net/eiffel-net-language/eiffel-net-integration.wiki +++ b/documentation/trunk/solutions/platform-specifics/microsoft-windows/net/eiffel-net-language/eiffel-net-integration.wiki @@ -47,7 +47,7 @@ Using the metadata tag is the most general way of applying a custom The CLR (Common Language Runtime) does not support [[ET: Inheritance#Covariance and anchored declarations|covariance]] due to a type safety issue that full covariance implies (known as a polymorphic [[ET: Inheritance#Catcalls|catcall]] in Eiffel). Although very rare, catcalls are not suitable to .NET where safety is one of the primary goals. -Eiffel for .NET implements a safe variant of covariance that will always perform a check on the types to avoid a catcall. So when a catcall is going to be performed a `Invalid Cast Exception' will be raised by the CLR instead of an unexpected behavior as is the default behavior in classic Eiffel (i.e., the behavior without catcall detection explicitly enabled). +Eiffel for .NET implements a safe variant of covariance that will always perform a check on the types to avoid a catcall. So when a catcall is going to be performed a `Invalid Cast Exception` will be raised by the CLR instead of an unexpected behavior as is the default behavior in classic Eiffel (i.e., the behavior without catcall detection explicitly enabled). Another advantage of Eiffel for .NET's implementation of covariance is that it can be easily understood by CLS compliant consumer tools. These tools will actually benefit from the Eiffel for .NET covariance. @@ -69,7 +69,7 @@ Eiffel for .NET supports .NET enum types implicitly. From the point of view of E ===ByRef=== -Eiffel does not have the notion of `byref' argument passing. At the moment, Eiffel for .NET cannot call nor can it redefine a feature that has a byref argument. +Eiffel does not have the notion of `byref` argument passing. At the moment, Eiffel for .NET cannot call nor can it redefine a feature that has a byref argument. diff --git a/documentation/trunk/solutions/platform-specifics/microsoft-windows/wel/wel-common-concepts/common-message-hooks.wiki b/documentation/trunk/solutions/platform-specifics/microsoft-windows/wel/wel-common-concepts/common-message-hooks.wiki index 5b8db3a0..81de24ae 100644 --- a/documentation/trunk/solutions/platform-specifics/microsoft-windows/wel/wel-common-concepts/common-message-hooks.wiki +++ b/documentation/trunk/solutions/platform-specifics/microsoft-windows/wel/wel-common-concepts/common-message-hooks.wiki @@ -1,7 +1,7 @@ [[Property:title|Common message hooks]] [[Property:weight|4]] [[Property:uuid|356b5211-f710-6509-3609-8d717ff425f7]] -Each WEL library component implements a set of routines for processing the most common messages that a component receives. For example, looking at [[ref:libraries/wel/reference/wel_frame_window_chart|WEL_FRAME_WINDOW]] , you will see that there are many features which begin `on_'. Each of these features enable the user to know when a specific event has occurred, and to perform the appropriate processing as a result of this event. Most of the time, you will only be interested in a small subset of these, necessary to your program. For example, below is the code for on_paint: +Each WEL library component implements a set of routines for processing the most common messages that a component receives. For example, looking at [[ref:libraries/wel/reference/wel_frame_window_chart|WEL_FRAME_WINDOW]] , you will see that there are many features which begin `on_`. Each of these features enable the user to know when a specific event has occurred, and to perform the appropriate processing as a result of this event. Most of the time, you will only be interested in a small subset of these, necessary to your program. For example, below is the code for on_paint: on_paint (paint_dc: WEL_PAINT_DC; invalid_rect: WEL_RECT) --Draw a centered text diff --git a/documentation/trunk/solutions/platform-specifics/microsoft-windows/wel/wel-samples/header-control.wiki b/documentation/trunk/solutions/platform-specifics/microsoft-windows/wel/wel-samples/header-control.wiki index caa28fb5..b6a3b73f 100644 --- a/documentation/trunk/solutions/platform-specifics/microsoft-windows/wel/wel-samples/header-control.wiki +++ b/documentation/trunk/solutions/platform-specifics/microsoft-windows/wel/wel-samples/header-control.wiki @@ -20,7 +20,7 @@ After launching the program, a window will be displayed as shown above. By manip ==Under the Hood== -HEADER_CONTROL inherits [[ref:libraries/wel/reference/wel_header_control_chart|WEL_HEADER_CONTROL]] and redefines many of the `on_' notification features to display the output. +HEADER_CONTROL inherits [[ref:libraries/wel/reference/wel_header_control_chart|WEL_HEADER_CONTROL]] and redefines many of the `on_` notification features to display the output. This sample contains the following classes: * APPLICATION_IDS diff --git a/documentation/trunk/solutions/platform-specifics/microsoft-windows/wel/wel-samples/list-view.wiki b/documentation/trunk/solutions/platform-specifics/microsoft-windows/wel/wel-samples/list-view.wiki index a64b8510..a1369569 100644 --- a/documentation/trunk/solutions/platform-specifics/microsoft-windows/wel/wel-samples/list-view.wiki +++ b/documentation/trunk/solutions/platform-specifics/microsoft-windows/wel/wel-samples/list-view.wiki @@ -20,7 +20,7 @@ After launching the program, a window will be displayed containing a pair of [[r LISTVIEW_DEMO redefines init_application in order to load the [[ref:libraries/wel/reference/wel_common_controls_dll_chart|WEL_COMMON_CONTROLS_DLL]] and the [[ref:libraries/wel/reference/wel_rich_edit_dll_chart|WEL_RICH_EDIT_DLL]] . -LISTVIEW redefines many of the `on_' features inherited from [[ref:libraries/wel/reference/wel_list_view_chart|WEL_LIST_VIEW]] in order to generate output for the user. +LISTVIEW redefines many of the `on_` features inherited from [[ref:libraries/wel/reference/wel_list_view_chart|WEL_LIST_VIEW]] in order to generate output for the user. The style of the LISTVIEW_DEMO is changed by calling set_style with the required new style. diff --git a/documentation/trunk/solutions/platform-specifics/microsoft-windows/wel/wel-samples/split-area.wiki b/documentation/trunk/solutions/platform-specifics/microsoft-windows/wel/wel-samples/split-area.wiki index 2604a4f9..b646cf3c 100644 --- a/documentation/trunk/solutions/platform-specifics/microsoft-windows/wel/wel-samples/split-area.wiki +++ b/documentation/trunk/solutions/platform-specifics/microsoft-windows/wel/wel-samples/split-area.wiki @@ -18,7 +18,7 @@ To compile the example: After launching the program, a window will be displayed containing a pair of [[ref:libraries/wel/reference/wel_rich_edit_chart|WEL_RICH_EDIT]] in a split area. Clicking the mouse on the split area (between the two rich edits) and dragging the mouse, will adjust the split area and its content accordingly. ==Under the Hood== -There is no split area class provided with WEL, but WEL_SPLIT_AREA was created for this sample to illustrate how new controls can be built when required. Redefining some of the `on_' features inherited from [[ref:libraries/wel/reference/wel_window_chart|WEL_WINDOW]] in WEL_SPLIT_AREA shows how the control over the contents of the split area is achieved. +There is no split area class provided with WEL, but WEL_SPLIT_AREA was created for this sample to illustrate how new controls can be built when required. Redefining some of the `on_` features inherited from [[ref:libraries/wel/reference/wel_window_chart|WEL_WINDOW]] in WEL_SPLIT_AREA shows how the control over the contents of the split area is achieved. This sample contains the following classes: * APPLICATION diff --git a/documentation/trunk/solutions/preferences/eiffelpreferences/eiffelpreferences-tutorial/initialization.wiki b/documentation/trunk/solutions/preferences/eiffelpreferences/eiffelpreferences-tutorial/initialization.wiki index 8cf7739f..d9989a71 100644 --- a/documentation/trunk/solutions/preferences/eiffelpreferences/eiffelpreferences-tutorial/initialization.wiki +++ b/documentation/trunk/solutions/preferences/eiffelpreferences/eiffelpreferences-tutorial/initialization.wiki @@ -19,7 +19,7 @@ The current supported underlying storages are ''XML file'' (PREFERENCES_ ''Note:'' that you can build your own custom storage, by implementing the class PREFERENCES_STORAGE_I, and use such object as storage in the associated creation routine. -The option make_with_defaults_and_storage is similar to make_with_storage except an additional parameter is given to retrieve one or more default file locations. This will be one or more XML files on disk containing the default values to use for some or all of your preferences. It is a convenient way to initialize your application with all the default values required `out of the box' for correct or preferred functioning. Those files also contain additional attributes for preference configuration such as more detailed descriptions of the preference. If two files list the same preference, the last one to mention it takes precedence. +The option make_with_defaults_and_storage is similar to make_with_storage except an additional parameter is given to retrieve one or more default file locations. This will be one or more XML files on disk containing the default values to use for some or all of your preferences. It is a convenient way to initialize your application with all the default values required `out of the box` for correct or preferred functioning. Those files also contain additional attributes for preference configuration such as more detailed descriptions of the preference. If two files list the same preference, the last one to mention it takes precedence. The format of the XML default file is very simple: diff --git a/documentation/trunk/solutions/preferences/eiffelpreferences/eiffelpreferences-tutorial/overview.wiki b/documentation/trunk/solutions/preferences/eiffelpreferences/eiffelpreferences-tutorial/overview.wiki index 3c6d49bc..a3bb15cb 100644 --- a/documentation/trunk/solutions/preferences/eiffelpreferences/eiffelpreferences-tutorial/overview.wiki +++ b/documentation/trunk/solutions/preferences/eiffelpreferences/eiffelpreferences-tutorial/overview.wiki @@ -5,7 +5,7 @@ This document gives a brief overview of the EiffelPreferences library. ==Introduction== -Simply, preferences are name-value pairs. All preferences are descendants of the deferred class PREFERENCE, and therefore all inherit the common properties of name, value, default values and string representations. Common to all PREFERENCE objects is the notion of `manager'. All preferences belong to a manager, which is a helper class used for organizational and hierarchical management of your applications preferences. +Simply, preferences are name-value pairs. All preferences are descendants of the deferred class PREFERENCE, and therefore all inherit the common properties of name, value, default values and string representations. Common to all PREFERENCE objects is the notion of `manager`. All preferences belong to a manager, which is a helper class used for organizational and hierarchical management of your applications preferences. So, all preferences belong to a PREFERENCE_MANAGER. The manager itself belongs to a set of related PREFERENCES. In fact, when you create a new manager for a group of preferences you must provide a PREFERENCES object to the creation routine to indicate which set of preferences the new manager will be associated: