mirror of
https://github.com/EiffelSoftware/eiffel-org.git
synced 2026-04-05 17:49:26 +02:00
Author:admin
Date:2008-09-17T13:53:28.000000Z git-svn-id: https://svn.eiffel.com/eiffel-org/trunk@3 abb3cda0-5349-4a8f-a601-0c33ac3a8c38
This commit is contained in:
@@ -0,0 +1,24 @@
|
||||
[[Property:title|Common message hooks]]
|
||||
[[Property:weight|4]]
|
||||
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:
|
||||
<code>
|
||||
on_paint (paint_dc: WEL_PAINT_DC; invalid_rect: WEL_RECT) is
|
||||
--Draw a centered text
|
||||
do
|
||||
end
|
||||
</code>
|
||||
|
||||
|
||||
An on_paint message corresponds to the Wm_paint message generated by Windows whenever it needs to re-paint a window, and if you look at the feature, you can see that the arguments are a [[ref:libraries/wel/reference/wel_paint_dc_chart|WEL_PAINT_DC]] and a[[ref:libraries/wel/reference/wel_rect_chart| WEL_RECT]] . which are relevant to this message. By redefining this feature (and others as required), your code will be able to respond appropriately to windows events.
|
||||
{{note| '''Note'''. See [[Tutorial Step 2|step2]] in the [[Tutorial|tutorial]] for a simple demonstration involving the re-definition of <eiffel>on_left_button_down</eiffel>. }}
|
||||
|
||||
|
||||
For different messages received by a control, the arguments will differ (sometimes there are none), but those arguments will always be relevant to the message. For example, on_menu_command from [[ref:libraries/wel/reference/wel_composite_window_chart|WEL_COMPOSITE_WINDOW]] has an <eiffel>INTEGER</eiffel> as an argument, the value of which is a unique menu identifier. <br/>
|
||||
|
||||
{{note| '''Note'''. Not all windows events have a corresponding `on_' message hook defined in WEL. If you wish to process a Windows message that does not correspond to one of the available features, you will need to redefine process_message. <br/>
|
||||
}}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,11 @@
|
||||
[[Property:title|WEL Common Concepts]]
|
||||
[[Property:weight|0]]
|
||||
Some useful WEL concepts are listed below:
|
||||
* [[Inheriting WEL_APPLICATION|Inheriting WEL_APPLICATION]]
|
||||
* [[Redefining main_window|Redefining main_window]]
|
||||
* [[Redefining `init_application'|Redefining init_application]]
|
||||
* [[Common message hooks|Common message hooks]]
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
[[Property:title|Inheriting WEL_APPLICATION]]
|
||||
[[Property:weight|1]]
|
||||
For most WEL applications that you write, you will need to inherit [[ref:libraries/wel/reference/wel_application_chart|WEL_APPLICATION]] .
|
||||
|
||||
{{note| '''Note'''. See [[Tutorial Step 1|step1]] in the [[Tutorial|tutorial]] for a simple demonstration of how to do this }}
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,7 @@
|
||||
[[Property:title|Redefining `init_application']]
|
||||
[[Property:weight|2]]
|
||||
[[ref:libraries/wel/reference/wel_application_chart|WEL_APPLICATION]] contains a feature <eiffel>init_application</eiffel> which does nothing by default, but is called before the application is started. This can be redefined to execute tasks that must be performed before the application is running. A common redefinition is to allow the loading of common dll's, see [[List View|list_view]] sample for a demonstration of this technique.
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -0,0 +1,9 @@
|
||||
[[Property:title|Redefining main_window]]
|
||||
[[Property:weight|1]]
|
||||
When you inherit [[ref:/libraries/wel/reference/wel_application_chart|WEL_APPLICATION]] , you will need to implement the deferred feature main_window as a once function. This will be the main window of your application, and can be any descendent of [[ref:libraries/wel/reference/wel_composite_window_chart|WEL_COMPOSITE_WINDOW]] .
|
||||
|
||||
{{note| '''Note'''. See [[Tutorial Step 2|step2]] in the [[Tutorial|tutorial]] for a simple demonstration of how to do this. }}
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user