class EVENT_CATCHER

All features

EVENT_CATCHER is the JOB that handle graphic interface relative events. The event_catcher wait for such events and emit signal relative to this event. Previously registred procedure (via vision.*_connect) are executed.

For more information about JOB, see lib/sequencer and tutorial/sequencer directories. Events without parameters: 2: KeyPress = key_down 3: KeyRelease = key_up 7: EnterNotify = pointer_enter 8: LeaveNotify = pointer_leave 9: FocusIn = focus_in 10: FocusOut = focus_out 11: KeymapNotify = ??????????? 12: Expose = expose (expose_area need repaint) 13: GraphicsExpose = ??????????? 14: NoExpose = ??????????? 16: CreateNotify = ??????????? 17: DestroyNotify = ??????????? 18: UnmapNotify = unmaped 19: MapNotify = maped 20: MapRequest = ??????????? find examples... 21: ReparentNotify = ??????????? 23: ConfigureRequest = ??????????? 24: GravityNotify = 25: ResizeRequest = ??????????? 101 give information 26: CirculateNotify = 27: CirculateRequest = 28: PropertyNotify = 29: SelectionClear = 30: SelectionRequest = 31: SelectionNotify = 32: ColormapNotify = ??????????? how many events 33: ClientMessage = 34: MappingNotify = 40: Button1Press = when_left_down 41: Button2Press = when_middle_down 42: Button3Press = when_right_down 43: WheelUp = when_wheel_up --rotate up 44: WheelDown = when_wheel_down --rotate down 50: Button1Release = when_left_up 51: Button2Release = when_middle_up 52: Button3Release = when_right_up 60: Unobscured = fully_visible 61: PartiallyObscured= partially_visible 62: FullyObscured = not_visible 63: DeleteWindow = when_close_requested Events with parameters: 100: MotionNotify(x,y:INTEGER) = pointer_move 101: ConfigureNotify(x,y,width,height:INTEGER) = geometry_change 102: ConfigureNotify(x,y,width,height:INTEGER) = window move 103: ConfigureNotify(x,y,width,height:INTEGER) = window_resize

Direct parents

conformant parents

GRAPHIC, JOB

Summary

creation features

exported features

Maximum:

Minimum:

Bits:

Details

make (g_c: GRAPHIC_CONNECTION)
make (g_c: GRAPHIC_CONNECTION)
prepare (ready: READY_DESCRIPTION)

use ready to descibe condition that make this job ready to continue.

require

  • ready /= Void
  • not ready.queryable

is_ready (ready: READY_DESCRIPTION): BOOLEAN

check if this job is ready to continue his work

require

  • ready /= Void
  • ready.queryable

continue

Continue to do the job The work to do has to be small work and non blocking, it will continue on next call

done: BOOLEAN

done returns True when the job is finished. Then the job may be restart(ed) if it need to run again.

restart

Configure the job like the initial state. Example: when some window dialog appears second time, all jobs from this window are restarted.

require

  • done

ensure

  • not done

emit_event (s: SENSITIVE, next_event: INTEGER)

Emit signal relative to event next_event for widget s.

current_event_type: INTEGER
stop
preprocess_left_down (p: PROCEDURE [O_ -> TUPLE][TUPLE])
break
widget: HASHED_DICTIONARY [V_, K_ -> HASHABLE][SENSITIVEPOINTER]
event: FAST_ARRAY [E_][DICTIONARY [V_, K_][SIGNAL_0SENSITIVE]]
pointer_move_event: HASHED_DICTIONARY [V_, K_ -> HASHABLE][SIGNAL_2 [E, F][INTEGERINTEGER]SENSITIVE]
geometry_change_event: HASHED_DICTIONARY [V_, K_ -> HASHABLE][SIGNAL_4 [E, F, G, H][INTEGERINTEGERINTEGERINTEGER]SENSITIVE]
preprocess_left_down_proc: PROCEDURE [O_ -> TUPLE][TUPLE]
graphic_connection: GRAPHIC_CONNECTION
suspend: BOOLEAN
event_catcher_found: EVENT_CATCHER
search_widget (c_widget: POINTER): SENSITIVE

Widget c_widget doesn't exist in current loop. This function searches in the loop_stack to find the event_catcher that manages this widget. If found, the widget is retruned and `event_catcher_found` is set to the relative event_catcher.

ensure

  • Result /= Void implies event_catcher_found.widget.has(c_widget)
  • Result /= Void implies event_catcher_found.widget.at(c_widget) = Result

basic_vision_next_event: INTEGER
basic_vision_flush
basic_vision_event_widget: POINTER
basic_vision_pointer_x: INTEGER
basic_vision_pointer_y: INTEGER
basic_vision_geometry_x: INTEGER
basic_vision_geometry_y: INTEGER
basic_vision_geometry_width: INTEGER
basic_vision_geometry_height: INTEGER
priority: INTEGER

Never change priority after job inserted in loop_item. Priority should only be set at creation time.

< (other: JOB): BOOLEAN
Maximum_character_code: INTEGER_16

Largest supported code for CHARACTER values.

ensure

  • meaningful: Result >= 127

Maximum_integer_8: INTEGER_8

Largest supported value of type INTEGER_8.

Maximum_integer_16: INTEGER_16

Largest supported value of type INTEGER_16.

Maximum_integer: INTEGER

Largest supported value of type INTEGER/INTEGER_32.

Maximum_integer_32: INTEGER

Largest supported value of type INTEGER/INTEGER_32.

Maximum_integer_64: INTEGER_64

Largest supported value of type INTEGER_64.

Maximum_real_32: REAL_32

Largest non-special (no NaNs nor infinity) supported value of type REAL_32.

Maximum_real: REAL

Largest non-special (no NaNs nor infinity) supported value of type REAL. Just to give an idea of this value: 1.79769313486231570....e+308

Maximum_real_64: REAL

Largest non-special (no NaNs nor infinity) supported value of type REAL. Just to give an idea of this value: 1.79769313486231570....e+308

Maximum_real_80: REAL_EXTENDED

Largest supported value of type REAL_80.

ensure

  • meaningful: Result >= Maximum_real

Minimum_character_code: INTEGER_16

Smallest supported code for CHARACTER values.

ensure

  • meaningful: Result <= 0

Minimum_integer_8: INTEGER_8

Smallest supported value of type INTEGER_8.

Minimum_integer_16: INTEGER_16

Smallest supported value of type INTEGER_16.

Minimum_integer: INTEGER

Smallest supported value of type INTEGER/INTEGER_32.

Minimum_integer_32: INTEGER

Smallest supported value of type INTEGER/INTEGER_32.

Minimum_integer_64: INTEGER_64

Smallest supported value of type INTEGER_64.

Minimum_real_32: REAL_32

Smallest non-special (no NaNs nor infinity) supported value of type REAL_32.

Minimum_real: REAL

Smallest non-special (no NaNs nor infinity) supported value of type REAL. Just to give an idea of this value: -1.79769313486231570....e+308

Minimum_real_64: REAL

Smallest non-special (no NaNs nor infinity) supported value of type REAL. Just to give an idea of this value: -1.79769313486231570....e+308

Minimum_real_80: REAL

Smallest supported value of type REAL_80.

ensure

  • meaningful: Result <= 0.0

Boolean_bits: INTEGER

Number of bits in a value of type BOOLEAN.

ensure

  • meaningful: Result >= 1

Character_bits: INTEGER

Number of bits in a value of type CHARACTER.

ensure

  • meaningful: Result >= 1
  • large_enough: 2.to_integer ^ Result >= Maximum_character_code

Integer_bits: INTEGER

Number of bits in a value of type INTEGER.

ensure

  • integer_definition: Result = 32

Real_bits: INTEGER

Number of bits in a value of type REAL.

Pointer_bits: INTEGER

Number of bits in a value of type POINTER.

vision: VISION
font_manager: FONT_MANAGER
default_font: BASIC_FONT
white_color: COLOR
black_color: COLOR
dim_grey_color: COLOR
dark_grey_color: COLOR
grey_color: COLOR
light_grey_color: COLOR
dark_blue_color: COLOR
medium_blue_color: COLOR
blue_color: COLOR
royal_blue_color: COLOR
deep_sky_blue_color: COLOR
sky_blue_color: COLOR
light_sky_blue_color: COLOR
steel_blue_color: COLOR
light_steel_blue_color: COLOR
light_blue_color: COLOR
pale_turquoise_color: COLOR
dark_turquoise_color: COLOR
medium_turquoise_color: COLOR
turquoise_color: COLOR
dark_cyan_color: COLOR
cyan_color: COLOR
light_cyan_color: COLOR
dark_green_color: COLOR
green_color: COLOR
light_green_color: COLOR
yellow_green_color: COLOR
dark_khaki_color: COLOR
khaki_color: COLOR
yellow_color: COLOR
light_yellow_color: COLOR
gold_color: COLOR
beige_color: COLOR
chocolate_color: COLOR
firebrick_color: COLOR
brown_color: COLOR
dark_salmon_color: COLOR
salmon_color: COLOR
light_salmon_color: COLOR
dark_orange_color: COLOR
orange_color: COLOR
orange_red_color: COLOR
dark_red_color: COLOR
red_color: COLOR
hot_pink_color: COLOR
deep_pink_color: COLOR
pink_color: COLOR
light_pink_color: COLOR
pale_violet_red_color: COLOR
maroon_color: COLOR
medium_violet_red_color: COLOR
violet_red_color: COLOR
violet_color: COLOR
dark_magenta_color: COLOR
magenta_color: COLOR
dark_violet_color: COLOR
blue_violet_color: COLOR
medium_purple_color: COLOR
purple_color: COLOR
state_normal: INTEGER
state_active: INTEGER
state_prelight: INTEGER
state_selected: INTEGER
state_insensitive: INTEGER
center_alignment: ALIGNMENT
left_alignment: ALIGNMENT
right_alignment: ALIGNMENT
top_alignment: ALIGNMENT
down_alignment: ALIGNMENT
top_left_alignment: ALIGNMENT
top_right_alignment: ALIGNMENT
down_right_alignment: ALIGNMENT
down_left_alignment: ALIGNMENT

Class invariant