/[eiffelstudio]/trunk/Delivery/xmldoc/libraries/vision2/content/0-_revisions/index.xml
ViewVC logotype

Contents of /trunk/Delivery/xmldoc/libraries/vision2/content/0-_revisions/index.xml

Parent Directory Parent Directory | Revision Log Revision Log


Revision 48155 - (show annotations)
Mon Jan 31 19:50:21 2005 UTC (15 years ago) by rogers
File MIME type: text/xml
File size: 71414 byte(s)
Added details of a few fixes for Windows.

1 <document title="Revisions and Bug Fixes">
2 <meta_data>
3 <help>
4 <toc>
5 <envision_location>Class Libraries\EiffelVision 2\EiffelVision Interface Content</envision_location>
6 </toc>
7 </help>
8 </meta_data>
9 <paragraph>
10 <paragraph>This document contains details of modifications and bug fixes to the vision2 library listed by the release version of EiffelStudio. All bug fixes and modifications are relative to the previously released version.</paragraph>
11 <heading>
12 <size>2</size> EiffelStudio 5.6
13 </heading>
14 <paragraph>
15 <bold>Interface modifications</bold>
16 </paragraph>
17 <list ordered="false">
18 <item>
19 <bold>EV_CHECKABLE_TREE</bold> - A new widget that inherits EV_TREE, providing similar functionality but for each item contained a check box is displayed.
20 </item>
21 <item>
22 <bold>EV_NOTEBOOK</bold>
23 <list ordered="false">
24 <item>Added `pointed_tab_index' which returns the index of the tab beneath the mouse pointer or 0 if none.</item>
25 <item>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.</item>
26 <item>Now inherits EV_ITEM_PIXMAP_SCALER as the tabs support pixmaps through the use of EV_NOTEBOOK_TAB.</item>
27 </list>
28 </item>
29 <item>
30 <bold>EV_COMBO_BOX</bold> - Added `drop_down_actions', fired as the list is dropped down which permits dynamic filling of the combo box as its contents are displayed.
31 </item>
32 <item>
33 <bold>EV_WIDGET</bold> - 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.
34 </item>
35 <item>
36 <bold>EV_PIXMAP</bold> - Added `sub_pixmap', this allows a pixmap to be created from a region of another
37 </item>
38 <item>
39 <bold>EV_RICH_TEXT</bold> - corrected postcondition of `buffered_format' which restricted the end position to `text_length' instead of `text_length' + 1.
40 </item>
41 </list>
42 <paragraph>
43 <bold>Bug fixes</bold>
44 </paragraph>
45 <list ordered="false">
46 <item>
47 <bold>Platform independent</bold>
48 <list ordered="false">
49 <item>
50 <bold>EV_DIALOG_I</bold> - Fixed consistency of `default_push_button', before we could get some assertions violations from the implementation classes.
51 </item>
52 <item>
53 <bold>EV_ANY</bold> - 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
54 </item>
55 </list>
56 </item>
57 <item>
58 <bold>Windows</bold>
59 <list ordered="false">
60 <item>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.</item>
61 <item>Fixed a crash which could occur when using the tab or arrows keys to navigate between the primitive of a window. It would happen when trying to set the focus on a widget which was previously parented but is not anymore.</item>
62 <item>Improved appearance of applications running on Windows XP with manifest files.</item>
63 <item>
64 <bold>EV_RADIO_BUTTON</bold> - Enabled better navigation between radio buttons of a group using the arrow keys.
65 </item>
66 <item>
67 <bold>EV_SPIN_BUTTON</bold> - When it gets the focus, we set the focus to the associated text field. Before one would loose the focus until one use the mouse to set it to the text field part.
68 </item>
69 <item>
70 <bold>EV_SCREEN</bold> - `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.
71 </item>
72 <item>
73 <bold>EV_COMBO_BOX</bold>
74 <list ordered="false">
75 <item>`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.</item>
76 <item>Fixed `has_focus' to return True when either the combo or the text field when it exists has the focus.</item>
77 <item>Fixed call on Void target when calling `set_foreground_color' on a displayed combo box which is not editable.</item>
78 <item>Fixed invariant violation with a non editable combo box.</item>
79 </list>
80 </item>
81 <item>
82 <bold>EV_MULTI_COLUMN_LIST</bold> - Calling `column_width' after calling `resize_column_to_content' did not return the correct result but instead the previously set column width.
83 </item>
84 <item>
85 <bold>EV_NOTEBOOK</bold>
86 <list ordered="false">
87 <item>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.</item>
88 <item>Fixed class invariant which failed when calling `destroy'.</item>
89 </list>
90 </item>
91 <item>
92 <bold>EV_DIALOG</bold>
93 <list ordered="false">
94 <item>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'.</item>
95 <item>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.</item>
96 <item>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.</item>
97 <item>Better navigation using keys</item>
98 </list>
99 </item>
100 <item>
101 <bold>EV_TREE_NODE</bold> - 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.
102 </item>
103 <item>
104 <bold>EV_DIRECTORY_DIALOG</bold> - 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.
105 </item>
106 <item>
107 <bold>EV_PIXMAP</bold>
108 <list ordered="false">
109 <item>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'.</item>
110 <item>Fixed masking blitting in draw_sub_pixmap. Previously the mask wasn't being blitted correctly discoloring the source image</item>
111 <item>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</item>
112 </list>
113 </item>
114 <item>
115 <bold>EV_TOOL_BAR</bold>
116 <list ordered="false">
117 <item>Fixed `is_show_requested' which was still returning `True' after a call to `hide'.</item>
118 <item>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.</item>
119 </list>
120 </item>
121 <item>
122 <bold>EV_FONT</bold> - 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.
123 </item>
124 <item>
125 <bold>EV_APPLICATION</bold> - `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.
126 </item>
127 <item>
128 <bold>EV_RICH_TEXT</bold> - 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 '}'.
129 </item>
130 <item>
131 <bold>EV_TOOL_BAR_BUTTON</bold> - 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.
132 </item>
133 <item>
134 <bold>EV_TITLED_WINDOW</bold> - 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.
135 </item>
136 </list>
137 </item>
138 <item>
139 <bold>Gtk</bold>
140 <list ordered="false">
141 <item>
142 <bold>EV_FONT</bold>
143 <list ordered="false">
144 <item> Fixed memory leaks in font lookup</item>
145 <item>Now all resources get freed on disposal of font</item>
146 <item>Now precalculating `ascent' and `descent' to improve drawing performance</item>
147 <item>Added better default font handling, now if the default font gets passed in, it will be treated as such by the Gtk theme engine</item>
148 </list>
149 </item>
150 <item>
151 <bold>EV_TOOL_BAR_BUTTON</bold> - Improve appearance of text and pixmap when `disable_vertical_button_style' is called
152 </item>
153 <item>
154 <bold>EV_FONTABLE</bold> - Improved font handling with theme manager, all default fonts now relate to the Application font chosen from the Gtk theme manager
155 </item>
156 <item>
157 <bold>EV_DRAWABLE</bold> - Corrected font placement with `draw_text' using fonts of the same height that have varying ascent values
158 </item>
159 <item>
160 <bold>EV_MULTI_COLUMN_LIST</bold> - Fixed memory leak when setting string values
161 </item>
162 <item>
163 <bold>EV_TREE_NODE</bold>
164 <list ordered="false">
165 <item>Fixed `remove_pixmap' to remove pixmap from tree model</item>
166 <item>Fixed crash when removing nodes from parent nodes not present in a tree widget</item>
167 </list>
168 </item>
169 <item>
170 <bold>EV_RICH_TEXT</bold>
171 <list ordered="false">
172 <item> Now `paste' uses the Vision2 clipboard directly and so all clipboard assertions are fulfilled</item>
173 <item>Fixed `buffered_format' to not wipe out the text buffer of the widget and therefore stop other EV_TEXT features from functioning correctly</item>
174 <item>Now `buffered_append' doesn't wipe out the screen contents of the rich text control</item>
175 </list>
176 </item>
177 <item>
178 <bold>EV_ACCELERATOR</bold> - 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
179 </item>
180 <item>
181 <bold>EV_WINDOW</bold> - Now setting and querying focus works in all circumstances with all window types
182 </item>
183 <item>
184 <bold>EV_DRAWABLE</bold> - Fixed mask handling for draw_sub_pixmap to work with non-zero 'area' coordinates
185 </item>
186 <item>
187 <bold>EV_PIXMAP</bold> - Improved pixmap 'stretch' for smaller images
188 </item>
189 </list>
190 </item>
191 </list>
192 <heading>
193 <size>2</size> EiffelStudio 5.5
194 </heading>
195 <paragraph>
196 <bold>Interface modifications</bold>
197 </paragraph>
198 <list ordered="false">
199 <item>
200 <bold>EV_TEXT</bold>
201 <list ordered="false">
202 <item>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'.</item>
203 <item>Added `line_number_from_position' which returns the line on which a particular caret position resides.</item>
204 </list>
205 </item>
206 <item>
207 <bold>EV_ACTIVE_LIST</bold> - 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.
208 </item>
209 <item>
210 <bold>EV_DOCKABLE_SOURCE</bold> - 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.
211 </item>
212 <item>
213 <bold>EV_RICH_TEXT</bold> - 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.
214 </item>
215 <item>
216 <bold>EV_ENVIRONMENT</bold> - Added `fonts' which returns a list of all fonts available on the system.
217 </item>
218 <item>
219 <bold>EV_APPLICATION</bold> - Added `captured_widget' which returns the EV_WIDGET currently captured in the system, or `Void' if none.
220 </item>
221 <item>
222 <bold>EV_SPLIT_AREA</bold> - Added `splitter_width' which returns the width of the splitter in pixels.
223 </item>
224 <item>
225 <bold>EV_ANY_HANDLER</bold> - 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.
226 </item>
227 <item>
228 <bold>EV_MESSAGE_DIALOG</bold> - `make_with_text_and_actions' has now been added to the list of creation procedures.
229 </item>
230 <item>
231 <bold>EV_SCREEN</bold> - Added `horizontal_resolution' and `vertical_resolution' which return the number of pixels per inch.
232 </item>
233 <item>
234 <bold>EV_FILE_DIALOG</bold> - 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.
235 </item>
236 <item>
237 <bold>EV_FONT</bold>
238 <list ordered="false">
239 <item>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.</item>
240 <item>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.</item>
241 </list>
242 </item>
243 </list>
244 <paragraph>
245 <bold>Bug fixes</bold>
246 </paragraph>
247 <list ordered="false">
248 <item>
249 <bold>Platform independent</bold>
250 <list ordered="false">
251 <item>
252 <bold>EV_DRAWABLE</bold> - `draw_text' and `draw_text_top_left' now both support text containing new line characters.
253 </item>
254 <item>
255 <bold>EV_APPLICATION</bold> - `focused_widget' had a side effect which may modify the index of some containers.
256 </item>
257 <item>
258 <bold>EV_DYNAMIC_TREE_ITEM</bold> - fixed `count' which was not executing the subtree function as necessary when called.
259 </item>
260 <item>
261 <bold>EV_TREE</bold> - Fixed bug in `has_recursively' which failed if there were one or more dynamic tree items contained.
262 </item>
263 <item>
264 <bold>EV_MULTI_COLUMN_LIST</bold> - 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.
265 </item>
266 <item>
267 <bold>EV_FIGURE_TEXT</bold> - 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.
268 </item>
269 <item>
270 <bold>EV_FIGURE_GROUP</bold> - Fixed both `append' and `make_from_array' which were not setting the `group' of each item inserted.
271 </item>
272 </list>
273 </item>
274 <item>
275 <bold>Windows</bold>
276 <list ordered="false">
277 <item>
278 <bold>EV_WINDOW</bold>
279 <list ordered="false">
280 <item>`move_actions' was always passing positive values for the x and y coordinates of the window, even if they should have been negative.</item>
281 <item>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.</item>
282 </list>
283 </item>
284 <item>
285 <bold>EV_FONT</bold>
286 <list ordered="false">
287 <item>Fixed bug when using `preferred_families' after creating a font via `make_with_values'. The family that was specified was previously ignored.</item>
288 <item>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.</item>
289 </list>
290 </item>
291 <item>
292 <bold>EV_SCROLL_BAR</bold> - 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'.
293 </item>
294 <item>
295 <bold>EV_TEXT</bold>
296 <list ordered="false">
297 <item>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.</item>
298 <item>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.</item>
299 <item>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'</item>
300 </list>
301 </item>
302 <item>
303 <bold>EV_SPIN_BUTTON</bold>
304 <list ordered="false">
305 <item>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.</item>
306 <item>Fixed tooltips which were never displayed.</item>
307 </list>
308 </item>
309 <item>
310 <bold>EV_LIST_ITEM</bold> - Setting a pixmap to an item that was already displayed in a list and had a text would cause the end of the text to be cut off. This is now fixed.
311 </item>
312 <item>
313 <bold>EV_COMBO_BOX</bold> - Fixed tooltips which were never displayed.
314 </item>
315 <item>
316 <bold>EV_TOOL_BAR</bold> - Fixed a number of serious GDI leaks, the worst of which occurred when items that had a pixmap were removed from a tool bar.
317 </item>
318 <item>
319 <bold>EV_PROGRESS_BAR</bold> - Fixed bug which was limiting values in the range 0 to 65535.
320 </item>
321 <item>
322 <bold>EV_TEXT_FIELD</bold> - calling `set_font' now updates the `minimum_height' of the text field so that it is large enough to completely display the font.
323 </item>
324 </list>
325 </item>
326 <item>
327 <bold>Gtk</bold>
328 <list ordered="false">
329 <item>
330 <bold>GTK 2.4</bold> 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
331 </item>
332 <item>
333 <bold>EV_WIDGET</bold> Fixed a screen positioning for all widgets
334 </item>
335 <item>
336 <bold>EV_GAUGE</bold> Fixed bounds setting
337 </item>
338 <item>
339 <bold>EV_DIALOG</bold> Now key presses work whilst in Pick and Drop
340 </item>
341 <item>
342 <bold>EV_WIDGET</bold> Now motion events pass x and y coordinates relative to the captured widget
343 </item>
344 </list>
345 </item>
346 </list>
347 <heading>
348 <size>2</size> EiffelStudio 5.4
349 </heading>
350 <paragraph>
351 <bold>Interface modifications</bold>
352 </paragraph>
353 <list ordered="false">
354 <item>
355 <bold>EV_ITEM_PIXMAP_SCALER</bold> - 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.
356 </item>
357 <item>
358 <bold>EV_TOOL_BAR</bold> - 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'.
359 </item>
360 <item>
361 <bold>EV_TREE </bold> - No longer inherits EV_TREE_NODE_CONTAINER which is now obsolete. Made `selected' obsolete, use selected_item /= Void instead.
362 </item>
363 <item>
364 <bold>EV_TREE_NODE</bold> - 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'.
365 </item>
366 <item>
367 <bold>EV_TREE_ITEM</bold> - Strengthened `is_expandable' so that it checks `parent_tree' is not Void, this brings it into line with the preconditions of `expand'.
368 </item>
369 <item>
370 <bold>EV_DYNAMIC_TREE_ITEM</bold> - 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.
371 </item>
372 <item>
373 <bold>EV_TREE_NODE_CONTAINER</bold> - Now obsolete, you should use EV_TREE_NODE_LIST instead.
374 </item>
375 <item>
376 <bold>EV_MULTI_COLUMN_LIST</bold> - Added missing postconditions to `align_text_left', `align_text_right', `align_text_center' and other miscellaneous features that were missing relevant postconditions.
377 </item>
378 <item>
379 <bold>EV_MENU</bold> - Tightened preconditions of `show' and `show_at' to ensure that the menu is not parented.
380 </item>
381 <item>
382 <bold>EV_TEXT</bold> 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.
383 </item>
384 <item>
385 <bold>EV_TEXT_COMPONENT</bold> - Added `has_selection' precondition to `selected_text' which requires that `has_selection' must be True for you to call `selected_text'.
386 </item>
387 <item>
388 <bold>EV_FILE_DIALOG</bold> - Added `valid_file_title' for validation of a file name excluding the path.
389 </item>
390 <item>
391 <bold>EV_STANDARD_DIALOG</bold> - 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.
392 </item>
393 <item>
394 <bold>EV_WIDGET</bold> - Added `remove_real_target' which ensures that `real_target' is Void.
395 </item>
396 <item>
397 <bold>EV_WIDGET_ACTION_SEQUENCES</bold> - Added `mouse_wheel_actions', fired each time that the mouse wheel is scrolled.
398 </item>
399 <item>
400 <bold>EV_NOTEBOOK</bold> - Now inherits EV_FONTABLE permitting a font to be applied to the item texts.
401 </item>
402 <item>
403 <bold>EV_ENVIRONMENT</bold>
404 <list ordered="false">
405 <item> 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.</item>
406 <item> Added `has_printer' which returns `True' if at least one printer is installed.</item>
407 </list>
408 </item>
409 <item>
410 <bold>EV_PRINT_CONTEXT</bold> - 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.
411 </item>
412 <item>
413 <bold>EV_APPLICATION</bold> - Added `process_events_until_stopped' and `stop_processing', similar to `process_events', except the processing is executed until `stop_processing' is called.
414 </item>
415 <item>
416 <bold>EV_PRINT_PROJECTOR</bold> - Added `has_printer' check to `make_with_context', ensuring that if you are to print to a printer, at least one printer is available.
417 </item>
418 <item>
419 <bold>EV_PRINT_CONTEXT</bold> - `default_create' now initializes a set of standard values, permitting the printing to the default printer, using US letter size.
420 </item>
421 <item>
422 <bold>EV_RELATIVE_POINT</bold> - 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.
423 </item>
424 <item>
425 <bold>EV_FIGURE</bold> - `accept_cursor' and `deny_cursor' are now available as queries.
426 </item>
427 <item>
428 <bold>EV_ABSTRACT_PICK_AND_DROPABLE</bold> - `set_accept_cursor' and `set_deny_cursor' no longer accept `Void' arguments.
429 </item>
430 <item>
431 <bold>EV_FIGURE_MATH </bold> - 'line_angle' now correctly returns the angle in radians relative to world.
432 </item>
433 <item>
434 <bold>EV_ARROWED_FIGURE</bold> - 'start_angle' and 'end_angle' now work in all circumstances
435 </item>
436 <item>
437 <bold>EV_FIGURE_STAR</bold> - First line generated is now created from 'point_b'
438 </item>
439 <item>
440 <bold>EV_FIGURE_EQUILATERAL</bold> - First point generated is now based upon 'point_b'
441 </item>
442 </list>
443 <paragraph>
444 <bold>Breaking changes</bold>
445 </paragraph>
446 <list ordered="false">
447 <item>
448 <bold>EV_TREE_NODE_CONTAINER</bold> - This class is no longer used in EiffelVision2, 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.
449 </item>
450 </list>
451 <paragraph>
452 <bold>Bug fixes</bold>
453 </paragraph>
454 <list ordered="false">
455 <item>
456 <bold>Platform independent</bold>
457 <list ordered="false">
458 <item>
459 <bold>EV_DYNAMIC_TREE_ITEM</bold> - No longer crashes if your `subtree_function' returns Void. In this situation, it will now behave as if the `Result' was empty.
460 </item>
461 <item>
462 <bold>EV_BOX</bold> - Attempting to dock from an EV_DOCKABLE_SOURCE while the box was empty would not work. This has now been fixed.
463 </item>
464 <item>
465 <bold>EV_TEXT_COMPONENT</bold> - Calling `append_text', `prepend_text' or `insert_text' while `is_editable' is False caused a precondition failure in the implementation which is now fixed.
466 </item>
467 <item>
468 <bold>EV_DOCKABLE_SOURCE</bold>
469 <list ordered="false">
470 <item> It was previously not possible to dock to an empty window, as the target was ignored in error.</item>
471 <item> Fixed bug which caused a crash if a dock was attempted to an empty box.</item>
472 </list>
473 </item>
474 <item>
475 <bold>EV_CHECKABLE_LIST</bold> - Corrected postcondition of `checked_items' which was checking `selected_items' in error, and therefore almost always failing.
476 </item>
477 <item>
478 <bold>EV_APPLICATION</bold> - 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.
479 </item>
480 <item>
481 <bold>EV_FIGURE_TEXT</bold> - Fixed handling of `preferred_fonts' from the `font', which was not taken into account. Previously, the default font was always used.
482 </item>
483 <item>
484 <bold>EV_DYNAMIC_LIST</bold> - 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.
485 </item>
486 <item>
487 <bold>EV_TREE_NODE_LIST</bold> - 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.
488 </item>
489 <item>
490 <bold>EV_CONTAINER</bold> - Fixed bug in `unmerge_radio_button_groups' which would crash if the container had no radio buttons.
491 </item>
492 </list>
493 </item>
494 <item>
495 <bold>Windows</bold>
496 <list ordered="false">
497 <item>
498 <bold>EV_TEXT_COMPONENT</bold> - fixed bug in `select_region' which would fail if `start_pos' was greater than `end_pos'.
499 </item>
500 <item>
501 <bold>EV_PIXMAP</bold>
502 <list ordered="false">
503 <item> `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'.</item>
504 <item> 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.</item>
505 <item> 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.</item>
506 </list>
507 </item>
508 <item>
509 <bold>EV_LIST</bold>
510 <list ordered="false">
511 <item> 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.</item>
512 <item> Fixed result of `background_color' which was returning gray instead of white before a color was assigned</item>
513 </list>
514 <bold>EV_CELL</bold> - 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.
515 </item>
516 <item>
517 <bold>EV_TREE_ITEM</bold>/
518 <bold>EV_TREE</bold> - 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.
519 </item>
520 <item>
521 <bold>EV_FILE_DIALOG</bold> - Fixed precondition violation when you calling `set_file_name' which was rejecting directory separators.
522 </item>
523 <item>
524 <bold>EV_DIALOG</bold> - 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.
525 </item>
526 <item>
527 <bold>EV_LABEL</bold> - 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.
528 </item>
529 <item>
530 <bold>EV_PICK_AND_DROPABLE</bold>
531 <list ordered="false">
532 <item> `mode_is_target_menu' did not work for a pick and drop source whose `pebble' was generated by a `pebble_function'.</item>
533 <item> Fixed bug where drag and drop was not working as it was attempting to perform docking instead. If both are enabled, docking has priority.</item>
534 </list>
535 </item>
536 <item>
537 <bold>EV_COMBO_BOX_IMP</bold>
538 <list ordered="false">
539 <item> Fixed `set_foreground_color' and `set_background_color' which previously did nothing.</item>
540 <item> 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'.</item>
541 <item> `enable_edit' and `disable_edit' were both causing the pixmaps of any items contained to be no longer displayed.</item>
542 </list>
543 </item>
544 <item>
545 <bold>EV_PRINT_DIALOG</bold> - Querying `print_context' from a print dialog if a user selected "Cancel" would previously crash.
546 </item>
547 <item>
548 <bold>EV_TREE</bold> and
549 <bold>EV_MULTI_COLUMN_LIST</bold> - Fixed result of `background_color' which was returning gray instead of white before a color was assigned
550 </item>
551 <item>
552 <bold>EV_SCREEN</bold> - `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.
553 </item>
554 </list>
555 </item>
556 <item>
557 <bold>Gtk</bold>
558 <list ordered="false">
559 <item>
560 <bold>EV_TREE_NODE</bold> - Now expansion state remains the same when 'set_pixmap' is called.
561 </item>
562 <item>
563 <bold>EV_DIALOG</bold> - Fixed bug where 100 percent of CPU time was being used when dialog was shown modally.
564 </item>
565 <item>
566 <bold>EV_WINDOW</bold> - Now sizing invariants are fulfilled when widget is destroyed, preventing segmentation violation.
567 </item>
568 <item>
569 <bold>EV_COMBO_BOX</bold>
570 <list ordered="false">
571 <item> Fixed bug where reselecting an item within the combo box list was in fact deselecting it.</item>
572 <item> Now first item remains selected when items are added.</item>
573 </list>
574 </item>
575 <item>
576 <bold>EV_WINDOW</bold> - Fixed querying of positioning which never changes if previously set by user.
577 </item>
578 <item>
579 <bold>EV_APPLICATION</bold> - 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.
580 </item>
581 <item>
582 <bold>EV_WINDOW </bold> - Now windows correctly shrink when requested size is smaller than current size
583 </item>
584 <item>
585 <bold>EV_PICK_AND_DROPABLE</bold> - 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.
586 </item>
587 <item>
588 <bold>EV_TIMEOUT </bold> - Now timeouts correctly unregister themselves on dispose preventing segmentation violation.
589 </item>
590 <item>
591 <bold>EV_PIXMAP </bold> - Pixmap stretching now works as expected.
592 </item>
593 <item>
594 <bold>EV_WINDOW</bold> - Now all window specific events work as expected
595 </item>
596 <item>
597 <bold>EV_TITLED_WINDOW</bold> - Now is_displayed returns false when window is minimized.
598 </item>
599 <item>
600 <bold>EV_TREE_NODE</bold> - Insertion of children at specific rows now displays as expected.
601 </item>
602 <item>
603 <bold>EV_WINDOW</bold> - Now windows have a border and are resizable to match Win32 behavior
604 </item>
605 <item>
606 <bold>EV_SPLIT_AREA</bold> - Now 'split position' honors request when widget resize is pending
607 </item>
608 <item>
609 <bold>EV_DRAWING_AREA </bold> - Fixed full size optimization so that all expose actions are handled correctly
610 </item>
611 <item>
612 <bold>EV_TEXT_COMPONENT - </bold> Fixed issue where up and down arrow keys caused widget to lose focus unnecessarily
613 </item>
614 <item>
615 <bold>EV_FONT</bold> - Now preferred families are taken in to account when no style is set
616 </item>
617 <item>
618 <bold>EV_STANDARD_DIALOG </bold>- Now all file handling dialogs are resizable
619 </item>
620 </list>
621 </item>
622 </list>
623 <heading>
624 <size>2</size>EiffelStudio 5.3
625 </heading>
626 <paragraph>
627 <bold>Interface modifications</bold>
628 </paragraph>
629 <list ordered="false">
630 <item>
631 <bold>EV_TITLED_WINDOW_ACTION_SEQUENCES</bold> added which is inherited only by EV_TITLED_WINDOW and provides three new action sequences :- `minimize_actions', `maximize_actions' and `restore_actions'.
632 </item>
633 <item>
634 <bold>EV_TITLED_WINDOW</bold>
635 <list ordered="false">
636 <item> You may now only call `maximize' and `minimize' if `is_show_requested'.</item>
637 <item> When minimized, `is_displayed' now returns False.</item>
638 </list>
639 </item>
640 <item>
641 <bold>EV_BUTTON</bold> now inherits EV_FONTABLE, allowing you to modify the font displayed.
642 </item>
643 <item>
644 <bold>EV_DYNAMIC_LIST_ITEM</bold> - 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.
645 </item>
646 <item>
647 <bold>EV_RECTANGLE</bold> - Added precondition to `intersects' which stops a Void rectangle being passed as an argument.
648 </item>
649 <item>
650 <bold>EV_TOOL_BAR_SEPARATOR</bold> - Now export many inherited features to {ANY} instead of {NONE}, including `parent'.
651 </item>
652 <item>
653 <bold>EV_ENVIRONMENT</bold> - Added `supported_image_formats' which returns a LINEAR [STRING] containing all valid formats by their three letter extension.
654 </item>
655 <item>
656 <bold>EV_CHECKABLE_LIST</bold> - New class added which behaves as an EV_LIST, except that for each EV_LIST_ITEM contained, an associated check box is displayed.
657 </item>
658 <item>
659 <bold>EV_MESSAGE_DIALOG</bold> - No longer deferred, and has two creation procedures `default_create' and `make_with_text'.
660 </item>
661 <item>
662 <bold>EV_STANDARD_DIALOG</bold> - All descendents now have `make_with_text' as a creation procedure'.
663 </item>
664 <item>
665 <bold>EV_TABLE</bold> - 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.
666 <line_break/>
667 <line_break/> The following list details some of the breaking changes, and how to fix them:
668 <list ordered="false">
669 <item>
670 <bold>item</bold> - If you were using `item', you should change this to `item_at_position'. A call to `item' will now return the current item.
671 </item>
672 <item>
673 <bold>put</bold> - If you were using `put', you must now replace this with `put_at_position'.
674 </item>
675 <item>
676 <bold>extend</bold> and
677 <bold>replace</bold> - These are now both exported, as before, they were exported to {NONE}.
678 </item>
679 <item> features inherited from
680 <bold>ARRAY</bold> - 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.
681 </item>
682 <item>
683 <bold>count</bold> - 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'.
684 </item>
685 <item>
686 <bold>item_list</bold> - This is now obsolete. You may use `linear_representation' to retrieve the contents of the table, or simply traverse the table.
687 </item>
688 </list>
689 </item>
690 <item>
691 <bold>EV_FIXED</bold> - No longer inherits DOUBLE_MATH.
692 </item>
693 <item>
694 <bold>EV_VIEWPORT</bold> - No longer inherits DOUBLE_MATH.
695 </item>
696 <item>
697 <bold>EV_TEXT</bold> - `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.
698 </item>
699 <item>
700 <bold>EV_FILE_DIALOG</bold> 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.
701 </item>
702 </list>
703 <paragraph>
704 <bold>Bug fixes</bold>
705 </paragraph>
706 <list ordered="false">
707 <item>
708 <bold>Platform independent</bold>
709 <list ordered="false">
710 <item>
711 <bold>EV_WIDGET</bold> - `pointer_style' now correctly returns the Ibeam cursor for textable widgets.
712 </item>
713 <item>
714 <bold>EV_FIGURE_RECTANGLE</bold>
715 <list ordered="false">
716 <item> Corrected `bounding_box' which was previously computed incorrectly when the rectangle was rotated.</item>
717 <item> Fixed `width' and `height' which were always returning one less pixel than they should have.</item>
718 </list>
719 </item>
720 </list>
721 </item>
722 <item>
723 <bold>Windows</bold>
724 <list ordered="false">
725 <item>
726 <bold>EV_PIXMAP</bold> - Setting a tile with `set_tile' followed by a call to a fill routine would crash the implementation.
727 </item>
728 <item>
729 <bold>EV_COMBO_BOX</bold> - Implemented pick and drop.
730 </item>
731 <item>
732 <bold>EV_TEXT_FIELD</bold> - Implemented pick and drop.
733 </item>
734 <item>
735 <bold>EV_PASSWORD_FIELD</bold> - Implemented pick and drop.
736 </item>
737 <item>
738 <bold>EV_TEXT</bold>
739 <list ordered="false">
740 <item> Implemented pick and drop.</item>
741 <item> 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'.</item>
742 <item> Fixed `select_region' which was selecting an incorrect region starting on any line except the first, when the `text' spanned multiple lines.</item>
743 <item> Fixed `selection_start' and `selection_end' which were incorrect when the selection was not completely contained on the first line.</item>
744 <item> Fixed `first_position_from_line_number' and `last_position_from_line_number' which were returning incorrect values when the text was wrapped.</item>
745 <item> 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.</item>
746 <item> `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')</item>
747 <item> Fixed bug in `search' which was returning -1 instead of 0 when the text was not found.</item>
748 </list>
749 </item>
750 <item>
751 <bold>EV_DRAWABLE</bold> - 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.
752 </item>
753 <item>
754 <bold>EV_COLOR_DIALOG</bold> - Querying `color' after a user had canceled the dialog would previously crash a system, if `set_color' had never been called.
755 </item>
756 <item>
757 <bold>EV_COLOR</bold> - Fixed `set_rgb_with_24_bit' which would fail when called.
758 </item>
759 <item>
760 <bold>EV_BUTTON, EV_TOGGLE_BUTTON</bold> - 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.
761 </item>
762 <item>
763 <bold>EV_PRINT_DIALOG</bold> - Fixed `set_from_page' and `set_to_page' which were previously not implemented.
764 </item>
765 <item>
766 <bold>EV_LIST</bold>
767 <list ordered="false">
768 <item> 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.</item>
769 <item> 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.</item>
770 </list>
771 </item>
772 <item>
773 <bold>EV_TOOL_BAR</bold>
774 <list ordered="false">
775 <item> 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.</item>
776 <item> 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.</item>
777 </list>
778 </item>
779 <item>
780 <bold>EV_MULTI_COLUMN_LIST</bold> - 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.
781 </item>
782 <item>
783 <bold>EV_DYNAMIC_TREE_ITEM</bold> - Calling `set_tooltip' failed and has now been fixed.
784 </item>
785 <item>
786 <bold>EV_TIMEOUT</bold> - Calling `destroy' more than once on a timeout, caused the implementation to crash, and has now been fixed.
787 </item>
788 <item>
789 <bold>EV_TOOLTIPABLE</bold> - Tooltips on primitives were not supporting multiple lines and this has now been fixed. Use %N for a line break.
790 </item>
791 </list>
792 </item>
793 <item>
794 <bold>Gtk</bold>
795 <list ordered="false">
796 <item>
797 <bold>EV_SCROLLABLE_AREA</bold> - Items smaller than the area are now positioned correctly.
798 </item>
799 <item>
800 <bold>EV_VIEWPORT</bold>
801 <list ordered="false">
802 <item> Widget now works correctly with negative offset values</item>
803 <item> Item position is now handled correctly on item resize.</item>
804 </list>
805 </item>
806 <item>
807 <bold>EV_PIXMAP</bold> - All drawing routines now flush immediately to screen.
808 </item>
809 <item>
810 <bold>EV_DIALOG</bold> - Canceling via Enter key is now handled correctly.
811 </item>
812 <item>
813 <bold>EV_LIST</bold> - Fixed selection of selected item when changing from multiple selection to single selection.
814 </item>
815 <item>
816 <bold>EV_MULTI_COLUMN_LIST</bold>
817 <list ordered="false">
818 <item> Row height now incorporates spacing pixel to match the implementation of Windows.</item>
819 <item> Default row height is now slightly larger to be more aesthetically pleasing with smaller fonts sizes.</item>
820 </list>
821 </item>
822 <item>
823 <bold>EV_CONTAINER</bold>
824 <list ordered="false">
825 <item> `set_background_pixmap' now works with repeated parenting.</item>
826 <item> Radio group unmerging is now handled correctly.</item>
827 </list>
828 </item>
829 <item>
830 <bold>EV_TEXT_FIELD </bold> - Now vertical alignment is identical to that on Windows, including that for text field descendants.
831 </item>
832 <item>
833 <bold>EV_RANGE </bold> - Now motions events are passing consistent pointer values instead of sometimes skewed ones.
834 </item>
835 <item>
836 <bold>EV_DRAWING_AREA</bold> - Now `focus_in_actions' are called in all circumstances.
837 </item>
838 <item>
839 <bold>EV_TEXT</bold>
840 <list ordered="false">
841 <item> `scroll_to_line' is now implemented.</item>
842 <item> `line_count' and `current_line_number' now handle lines in text widget and not the text itself.</item>
843 </list>
844 </item>
845 <item>
846 <bold>EV_FIXED</bold> - Now item sizing is correctly handled in all circumstances.
847 </item>
848 <item>
849 <bold>EV_NOTEBOOK</bold> - Now tabs are more aesthetically pleasing.
850 </item>
851 <item>
852 <bold>EV_MENU_SEPARATOR </bold> - Menu Separators are now more prominent.
853 </item>
854 <item>
855 <bold>EV_TOOLBAR_SEPARATOR - </bold>Toolbar Separators are now more prominent.
856 </item>
857 </list>
858 </item>
859 </list>
860 <paragraph>
861 <bold/>
862 </paragraph>
863 <heading>
864 <size>2</size>EiffelStudio 5.2
865 </heading>
866 <paragraph>
867 <bold>Interface modifications</bold>
868 </paragraph>
869 <list ordered="false">
870 <item>
871 <bold>EV_TEXTABLE</bold> - `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
872 </item>
873 <item>
874 <bold>EV_TEXT_COMPONENT</bold> - Now inherits EV_TEXTABLE.
875 </item>
876 <item>
877 <bold>EV_TEXT_ALIGNMENT_CONSTANTS</bold> - New class added to support EV_TEXT_ALIGNABLE.
878 </item>
879 <item>
880 <bold>EV_MENU_ITEM_LIST</bold> - `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.
881 </item>
882 <item>
883 <bold>EV_VIEWPORT</bold> - added `set_item_width', `set_item_height' and `set_item_size'.
884 </item>
885 <item>
886 <bold>EV_TABLE</bold>
887 <list ordered="false">
888 <item> redefined `prunable' to `True' and implemented `prune'.</item>
889 <item> 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'.</item>
890 </list>
891 </item>
892 <item>
893 <bold>EV_WIDGET</bold> - 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 vision2 under .NET. The problem manifested with widgets that held items.
894 </item>
895 <item>
896 <bold>EV_FIGURE</bold> - `proximity_in_actions' and `proximity_out_actions' are now obsolete.
897 </item>
898 <item>
899 <bold>EV_FONTABLE</bold> - `set_font' now sets a copy of the font internally.
900 </item>
901 <item>
902 <bold>EV_TREE</bold> - `ensure_item_visible' and `has_recursively' now take an EV_TREE_NODE as arguments, instead of an EV_TREE_ITEM.
903 </item>
904 <item>
905 <bold>EV_TEXT</bold> - `put_new_line' is now obsolete. Use `set_text ("%N") instead."
906 </item>
907 <item>
908 <bold>EV_APPLICATION_ACTION_SEQUENCES</bold> - 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.
909 </item>
910 <item>
911 <bold>EV_TREE_NODE_LIST</bold>
912 <list ordered="false">
913 <item> `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.</item>
914 <item> 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.</item>
915 </list>
916 </item>
917 <item>
918 <bold>EV_DYNAMIC_LIST</bold> - Added `retrieve_item_by_data' and `retrieve_items_by_data'.
919 </item>
920 <item>
921 <bold>EV_ITEM_LIST</bold> - Made `item_by_data' obsolete, as you should now use `retrieve_item_by_data' added in EV_DYNAMIC_LIST.
922 </item>
923 <item>
924 <bold>EV_DIALOG</bold> - Added `is_relative' and defined `is_modal' in this class, instead of inheriting it from EV_WINDOW.
925 </item>
926 </list>
927 <paragraph>
928 <bold>Bug fixes</bold>
929 <list ordered="false">
930 <item>
931 <bold>Platform independent</bold>
932 <list ordered="false">
933 <item>
934 <bold>EV_FIGURE_POLYLINE</bold> - 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.
935 </item>
936 <item>
937 <bold>EV_TREE and EV_TREE_NODE</bold> - 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.
938 </item>
939 <item>
940 <bold>EV_DYNAMIC_TREE_ITEM</bold> - Fixed invariant violation from EV_ITEM_LIST, when created with `default_create'.
941 </item>
942 </list>
943 </item>
944 <item>
945 <bold>Windows</bold>
946 <list ordered="false">
947 <item>
948 <bold>EV_RADIO_BUTTON</bold> - The default minimum height after `default_create' is now enough to display the widget correctly.
949 </item>
950 <item>
951 <bold>EV_CHECK_BUTTON</bold> - The default minimum height after `default_create' is now enough to display the widget correctly.
952 </item>
953 <item>
954 <bold>EV_NOTEBOOK</bold> - When removing a widget from a notebook, it is now visible. Previously, the widget would be hidden.
955 </item>
956 <item>
957 <bold>EV_LIST, EV_MULTI_COLUMN_LIST, EV_TREE</bold> - Fixed `set_foreground_color' and `set_background_color'. Previously, calling these features did nothing.
958 </item>
959 <item>
960 <bold>EV_BOX</bold> - 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'.
961 </item>
962 <item>
963 <bold>EV_TOOL_BAR_RADIO_BUTTON</bold> - 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.
964 </item>
965 <item>
966 <bold>EV_LIST_ITEM</bold> - 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.
967 </item>
968 <item>
969 <bold>EV_FIXED</bold> - 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.
970 </item>
971 <item>
972 <bold>EV_MENU and EV_MENU_ITEM</bold> - `set_pixmap' has been implemented as previously, it did nothing.
973 </item>
974 <item>
975 <bold>EV_TABLE</bold> - re-implemented resizing calculations to fix numerous problems when children had minimum sizes. The minimum size now also includes the border width when empty.
976 </item>
977 <item>
978 <bold>EV_NOTEBOOK</bold> - `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.
979 </item>
980 <item>
981 <bold>EV_TREE_ITEM</bold> - calling `set_pixmap' twice successively with the same EV_PIXMAP caused a postcondition failure.
982 </item>
983 <item>
984 <bold>EV_TEXT</bold> - Fixed `put_new_line', although it has been made obsolete, as you should just use `append_text ("%N") instead.
985 </item>
986 <item>
987 <bold>EV_SPLIT_AREA</bold> - Fixed crash reproducable by inserting an EV_PIXMAP directly into the split area.
988 </item>
989 <item>
990 <bold>EV_CONTAINER</bold> - Fixed `propagate_foreground_color' and `propagate_background_color' which failed when one of the children was a descendent of EV_CELL.
991 </item>
992 <item>
993 <bold>EV_APPLICATION_ACTION_SEQUENCES</bold> - `drop_actions' was being fired even when the pick and drop was canceled.
994 </item>
995 <item>
996 <bold>EV_PIXMAP</bold> - 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.
997 </item>
998 <item>
999 <bold>EV_MENU</bold>
1000 <list ordered="false">
1001 <item> Pruning an EV_MENU_SEPARATOR when one or more EV_RADIO_MENU_ITEM were still contained in the menu would cause occasional crashes.</item>
1002 <item> Previously, when adding an EV_MENU_SEPARATOR, followed by multiple EV_RADIO_MENU_ITEMS, all the items were being selected.</item>
1003 <item> Fixed bug in `destroy' which was causing postcondition failures.</item>
1004 </list>
1005 </item>
1006 <item>
1007 <bold>EV_TITLED_WINDOW</bold> - Fixed a GDI leak, manifesting when a window was destroyed.
1008 </item>
1009 <item>
1010 <bold>EV_DIALOG</bold>
1011 <list ordered="false">
1012 <item> Fixed `is_modal' which was previously always returned `False'.</item>
1013 <item> 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.</item>
1014 <item> If a dialog with a default cancel button was displayed using `show', then minimizing the dialog would cause the system to fail internally.</item>
1015 <item> Fix bug in `show_relative_to_window' which would cause any associated menus to be removed.</item>
1016 <item> 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.</item>
1017 <item> Fixed bug with `show_actions' which would be wiped out if you called `show_modal_to_window' and then `hide'.</item>
1018 <item> `set_pixmap' will now actually display the pixmap, whereas before, no pixmap was displayed.</item>
1019 </list>
1020 </item>
1021 <item>
1022 <bold>EV_TEXT_COMPONENT</bold> - Fixed `text_length' which was returning incorrect value for all descendents.
1023 </item>
1024 <item>
1025 <bold>EV_TEXT</bold> - Fixed `line_count' which was previously returning the correct result + 1.
1026 </item>
1027 <item>
1028 <bold>EV_SCROLLABLE_AREA</bold> - Fixed crash which occurred when you attempted to use `set_x_offset' or `set_y_offset' before the area had been parented or displayed.
1029 </item>
1030 <item>
1031 <bold>EV_FONTABLE</bold> - Fixed bug when `font' was queried, `preferred_families' was not returned correctly, and would always be empty.
1032 </item>
1033 <item>
1034 <bold>EV_CONTAINER</bold> - `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.
1035 </item>
1036 </list>
1037 </item>
1038 <item>
1039 <bold>Gtk</bold>
1040 <list ordered="false">
1041 <item> Remaining EV_WIDGET memory leaks have been fixed.</item>
1042 <item>
1043 <bold>EV_WIDGET</bold>- Focus in/out actions are now correctly called for widgets that do not occupy their entire space allocation such as EV_TEXT_FIELD.
1044 </item>
1045 <item>
1046 <bold>EV_DRAWABLE_IMP</bold> - Polylines now display correctly on big-endian machines (Sparc, PowerPC).
1047 </item>
1048 <item>
1049 <bold>EV_KEY</bold>
1050 <list ordered="false">
1051 <item> `out' is now correct for all keys (previously Quote and Backquote were incorrect).</item>
1052 <item> The events for all keys are now fired when Shift is held down.</item>
1053 </list>
1054 </item>
1055 <item>
1056 <bold>EV_STOCK_PIXMAPS</bold> - Warning and error pixmaps have been updated.
1057 </item>
1058 <item>
1059 <bold>EV_WINDOW</bold> - `remove_title now' works will all Window Managers.
1060 </item>
1061 <item>
1062 <bold>EV_TITLED_WINDOW</bold>
1063 <list ordered="false">
1064 <item> `propagate_foreground_color' is now fixed in use with pixmaps as children.</item>
1065 <item> `set_maximum_size' now works as expected</item>
1066 <item> `set_minimum_width' now has no effect on Window height.</item>
1067 <item> calls on `minimize' before `launch' now satisfies all assertions</item>
1068 <item> calling `destroy' twice now doesn't fail on precondition.</item>
1069 <item> `set_position' now satisfies post-condition in all situations.</item>
1070 <item> `resize_actions' are now passed the correct values.</item>
1071 <item> `move_actions' are now called correctly.</item>
1072 </list>
1073 </item>
1074 <item>
1075 <bold>EV_NOTEBOOK</bold> - now satisfies invariants when empty.
1076 </item>
1077 <item>
1078 <bold>EV_DIALOG</bold>
1079 <list ordered="false">
1080 <item> Destroy now satisfies all invariants.</item>
1081 <item> Reported memory leaks now fixed.</item>
1082 </list>
1083 </item>
1084 <item>
1085 <bold>EV_LABEL</bold> - Size is now taken from default gtk style size instead of hard coded 10
1086 </item>
1087 <item>
1088 <bold>EV_FONT</bold> - Font caching is now vastly improved in terms of speed.
1089 </item>
1090 <item>
1091 <bold>EV_DRAWABLE</bold> - Calls to `set_font' are now also vastly speeded up.
1092 </item>
1093 <item>
1094 <bold>EV_TABLE</bold>
1095 <list ordered="false">
1096 <item> Memory management is now correct on item removal.</item>
1097 <item> Now setting child's parent correctly</item>
1098 </list>
1099 </item>
1100 <item>
1101 <bold>EV_TREE_NODE</bold>
1102 <list ordered="false">
1103 <item> Fixed all reported issues regarding item insertion and removal.</item>
1104 </list>
1105 </item>
1106 <item>
1107 <bold>EV_CONTAINER</bold> - Fixed remaining issues with radio grouping and merging.
1108 </item>
1109 <item>
1110 <bold>EV_PICK_AND_DROPABLE</bold> - Now drop_actions may destroy `Current' without crash.
1111 </item>
1112 <item>
1113 <bold>EV_TEXT_FIELD</bold>
1114 <list ordered="false">
1115 <item> Now default `minimum_width' is reasonable (before 148, now same as Windows being 4 characters wide)</item>
1116 <item> Fixed `caret_position' when queried in change actions</item>
1117 </list>
1118 </item>
1119 </list>
1120 </item>
1121 </list>
1122 <heading>
1123 <size>2</size>EiffelStudio 5.1
1124 </heading>
1125 <paragraph>
1126 <bold>Interface modifications</bold>
1127 </paragraph>
1128 <list ordered="false">
1129 <item>
1130 <bold>EV_TEXTABLE and EV_TEXT_COMPONENT</bold> - `text' no longer returns Void when empty.
1131 </item>
1132 <item>
1133 <bold>EV_WINDOW</bold> - `title' no longer returns `Void' when empty.
1134 </item>
1135 <item>
1136 <bold>EV_TOOLTIPABLE</bold> - `tooltip' no longer returns `Void' when empty. If empty, no tooltip is displayed.
1137 </item>
1138 <item>
1139 <bold>EV_TITLED_WINDOW</bold> - `icon_name' no longer returns `Void' when empty.
1140 </item>
1141 <item>
1142 <bold>EV_CLIPBOARD</bold> - `text' no longer returns `Void' when empty.
1143 </item>
1144 <item>
1145 <bold>EV_MESSAGE_DIALOG</bold> - `text' no longer returns `Void' when empty.
1146 </item>
1147 <item>
1148 <bold>EV_FILE_DIALOG</bold> - `file_name' no longer returns `Void' when the "Cancel" button was pressed, `Result' is empty instead.
1149 </item>
1150 <item>
1151 <bold>EV_DIRECTORY_DIALOG</bold> - `directory' no longer returns `Void when the "Cancel" button was pressed, `Result' is empty instead.
1152 </item>
1153 <item>
1154 <bold>EV_CONTAINER</bold> - has three new features `set_background_pixmap', `background_pixmap' and `remove_background_pixmap'. `background_pixmap' will be tessellated to cover complete background area.
1155 </item>
1156 <item>
1157 <bold>EV_TREE and EV_TREE_NODE</bold> - Added `recursively_do_all'.
1158 </item>
1159 <item>
1160 <bold>EV_STANDARD_DIALOGS</bold>
1161 <list ordered="false">
1162 <item> `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.</item>
1163 <item> Selected button now also returns the correct text of the button (Previously it was always "Ok").</item>
1164 </list>
1165 </item>
1166 <item>
1167 <bold>EV_DIALOG_CONSTANTS</bold> - Added new constants required for the above change to EV_STANDARD_DIALOGS.
1168 </item>
1169 <item>
1170 <bold>EV_DRAWABLE</bold> - `draw_straight_line' now has a precondition to ensure the points are not identical.
1171 </item>
1172 <item>
1173 <bold>EV_SPLIT_AREA</bold> - separated `put' from `extend'. They were defined as synonyms, but have different behavior.
1174 </item>
1175 <item>
1176 <bold>EV_DYNAMIC_TREE_ITEM</bold> - Added `remove_subtree_function'. Item now only shows as expandable if there is a subtree function.
1177 </item>
1178 <item>
1179 <bold>EV_WINDOW</bold> - Added `maximum_dimension' which is the greatest value allowed for `width' and `height'. This is also the default value for `width' and `height'.
1180 </item>
1181 <item>
1182 <bold>EV_OPTION_BUTTON</bold> - This class has been made obsolete. It will be removed at the next release.
1183 </item>
1184 <item>
1185 <bold>EV_PICK_AND_DROPABLE_ACTION_SEQUENCES</bold> - Added `pick_ended_actions' which are called when a pick ends.
1186 </item>
1187 <item>
1188 <bold>EV_WIDGET</bold> - `set_minimum_height', `set_minimum_width' and `set_minimum_size' now all allow 0 as an argument. Previously, 1 was the minimum valid dimension.
1189 </item>
1190 <item>
1191 <bold>EV_MULTI_COLUMN_LIST</bold> - `clear_selection' is now obsolete. Use `remove_selection' instead.
1192 </item>
1193 </list>
1194 <paragraph>
1195 <bold>Bug fixes</bold>
1196 <list ordered="false">
1197 <item>
1198 <bold>Platform independent</bold>
1199 <list ordered="false">
1200 <item>
1201 <bold>EV_FIXED</bold> - Corrected `set_item_height', which was failing.
1202 </item>
1203 <item>
1204 <bold>EV_SELECTABLE</bold> - Corrected postcondition of `is_selected'.
1205 </item>
1206 <item>
1207 <bold>EV_PND_ACTION_SEQUENCE</bold> -- `veto_pebble_function' is now only called when its argument conforms to the transported pebble.
1208 </item>
1209 </list>
1210 </item>
1211 <item>
1212 <bold>Windows</bold>
1213 <list ordered="false">
1214 <item>
1215 <bold>EV_RANGE</bold> - The `maximum_value' could not be set greater than 32,000. The full range of an INTEGER may now be set.
1216 </item>
1217 <item>
1218 <bold>`focused_widget' from `EV_APPLICATION'</bold> - was incorrect if an EV_CONTAINER had just received the focus.
1219 </item>
1220 <item>
1221 <bold>EV_PICK_AND_DROPABLE</bold>
1222 <list ordered="false">
1223 <item> 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.</item>
1224 <item> Reduced flicker on cursor when picking from an EV_TREE_ITEM or EV_LIST_ITEM.</item>
1225 <item> `pebble_function' would previously be called twice during a pick and drop.</item>
1226 </list>
1227 </item>
1228 <item>
1229 <bold>EV_FIXED</bold> - Items contained are now drawn correctly dependent on their z order.
1230 </item>
1231 <item>
1232 <bold>EV_DRAWABLE</bold>
1233 <list ordered="false">
1234 <item> `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.</item>
1235 <item> Fixed problems with ordering of calls to certain features which would cause postcondition violations in the implementation.</item>
1236 <item> `draw_pie_slice', `fill_pie_slice' and `draw_arc' now have divide by 0 protection in the implementation.</item>
1237 </list>
1238 </item>
1239 <item>
1240 <bold>EV_TEXT</bold> - `set_background_color' now correctly sets the color of the whole background. Previously only the area containing text was modified.
1241 </item>
1242 <item>
1243 <bold>EV_CLIPBOARD</bold> - Our implementation would sometimes query `text' when not allowed by Windows, thus causing postcondition failures.
1244 </item>
1245 <item>
1246 <bold>EV_BUTTON</bold> - The result of `text_alignment' after default_create was incorrect.
1247 </item>
1248 </list>
1249 </item>
1250 <item>
1251 <bold>Gtk</bold>
1252 <list ordered="false">
1253 <item> Gtk version of Studio released (including Vision2), so no fixes from 5.0</item>
1254 </list>
1255 </item>
1256 </list>
1257 </paragraph>
1258 </paragraph>
1259 </paragraph></document>

Properties

Name Value
svn:eol-style native
svn:keywords Author Date Id Revision

  ViewVC Help
Powered by ViewVC 1.1.23