-- Automatic generation produced by ISE Eiffel --
class interface
      MAIN_DIALOG
create 
      make
                  -- Create the main dialog.
feature -- Access
      C_memory: INTEGER is 2
                  -- Code for the C memory managed
                  -- by the garbage collector
                  -- (from MEM_CONST)
      children: LINKED_LIST [WEL_WINDOW]
                  -- Construct a linear representation of the children.
                  -- (from WEL_COMPOSITE_WINDOW)
            require -- from WEL_COMPOSITE_WINDOW
                  exists: exists
            ensure -- from WEL_COMPOSITE_WINDOW
                  result_not_void: Result /= void
      commands: WEL_COMMAND_MANAGER
                  -- Command manager associated to the current window.
                  -- (from WEL_WINDOW)
      current_font: WEL_FONT
                  -- Current font selected
      current_size: INTEGER
                  -- Last size entered by the user
      default_processing: BOOLEAN
                  -- (from WEL_RETURN_VALUE)
      edit: WEL_MULTIPLE_LINE_EDIT
                  -- Edit box
      Eiffel_memory: INTEGER is 1
                  -- Code for the Eiffel memory managed
                  -- by the garbage collector
                  -- (from MEM_CONST)
      Full_collector: INTEGER is 0
                  -- Statistics for full collections
                  -- (from MEM_CONST)
      has_return_value: BOOLEAN
                  -- Should the window procedure return a value?
                  -- (from WEL_RETURN_VALUE)
      Incremental_collector: INTEGER is 1
                  -- Statistics for incremental collections
                  -- (from MEM_CONST)
      item: POINTER
                  -- Generic Windows handle or structure pointer.
                  -- Can be a HWND, HICON, RECT *, WNDCLASS *, etc...
                  -- (from WEL_ANY)
      list_box: WEL_SINGLE_SELECTION_LIST_BOX
                  -- List box which contains the fonts
      menu: WEL_MENU
                  -- Associated menu
                  -- (from WEL_COMPOSITE_WINDOW)
            require -- from WEL_COMPOSITE_WINDOW
                  exists: exists
                  has_menu: has_menu
            ensure -- from WEL_COMPOSITE_WINDOW
                  result_not_void: Result /= void
      message_return_value: INTEGER
                  -- Return value of the window procedure.
                  -- (from WEL_RETURN_VALUE)
            require -- from WEL_RETURN_VALUE
                  has_return_value: has_return_value
      parent: WEL_WINDOW
                  -- Parent window
                  -- (from WEL_WINDOW)
      result_id: INTEGER
                  -- Last control id used to close the dialog.
                  -- See class WEL_ID_CONSTANTS for the different values.
                  -- (from WEL_DIALOG)
      scroller: WEL_SCROLLER
                  -- Scroller object for processing scroll messages.
                  -- (from WEL_COMPOSITE_WINDOW)
      size: WEL_SINGLE_LINE_EDIT
                  -- Edit box to input the size
      system_menu: WEL_MENU
                  -- Associated system menu
                  -- (from WEL_COMPOSITE_WINDOW)
            require -- from WEL_COMPOSITE_WINDOW
                  exists: exists
                  has_system_menu: has_system_menu
            ensure -- from WEL_COMPOSITE_WINDOW
                  result_not_void: Result /= void
      Total_memory: INTEGER is 0
                  -- Code for all the memory managed
                  -- by the garbage collector
                  -- (from MEM_CONST)
      
feature -- Measurement
      gc_statistics (collector_type: INTEGER): GC_INFO
                  -- Garbage collection information for collector_type.
                  -- (from MEMORY)
            require -- from MEMORY
                  type_ok: collector_type = full_collector or collector_type = incremental_collector
      memory_statistics (memory_type: INTEGER): MEM_INFO
                  -- Memory usage information for memory_type
                  -- (from MEMORY)
            require -- from MEMORY
                  type_ok: memory_type = total_memory or memory_type = eiffel_memory or memory_type = c_memory
      
feature -- Status report
      absolute_x: INTEGER
                  -- Absolute x position
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
            ensure -- from WEL_WINDOW
                  Result = window_rect.x
      absolute_y: INTEGER
                  -- Absolute y position
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
            ensure -- from WEL_WINDOW
                  Result = window_rect.y
      background_brush: WEL_BRUSH
                  -- Current window background color used to refresh the window when
                  -- requested by the WM_ERASEBKGND windows message.
                  -- By default there is no background
                  -- (from WEL_WINDOW)
            ensure -- from WEL_WINDOW
                  new_object: Result /= void implies Result /= background_brush
      captured_window: WEL_WINDOW
                  -- Current window which has been captured.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
                  window_captured: window_captured
      chunk_size: INTEGER
                  -- Minimal size of a memory chunk. The run-time always
                  -- allocates a multiple of this size.
                  -- If the environment variable EIF_MEMORY_CHUNK
                  -- is defined, it is set to the closest reasonable
                  -- value from it.
                  -- (from MEMORY)
      client_rect: WEL_RECT
                  -- Client rectangle
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
            ensure -- from WEL_WINDOW
                  result_not_void: Result /= void
      closeable: BOOLEAN
                  -- Can the user close the window?
                  -- Yes by default.
                  -- (from WEL_COMPOSITE_WINDOW)
      coalesce_period: INTEGER
                  -- Period of full coalesce (in number of collections)
                  -- If the environment variable EIF_FULL_COALESCE_PERIOD
                  -- is defined, it is set to the closest reasonable
                  -- value from it.
                  -- If null, no full coalescing is launched.
                  -- (from MEMORY)
      collecting: BOOLEAN
                  -- Is garbage collection enabled?
                  -- (from MEMORY)
      collection_period: INTEGER
                  -- Period of full collection.
                  -- If the environment variable EIF_FULL_COLLECTION_PERIOD
                  -- is defined, it is set to the closest reasonable
                  -- value from it.
                  -- If null, no full collection is launched.
                  -- (from MEMORY)
      command (message: INTEGER): WEL_COMMAND
                  -- Command associated to message
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  positive_message: message >= 0
                  command_exists: command_exists (message)
            ensure -- from WEL_WINDOW
                  result_not_void: Result /= void
      command_argument (message: INTEGER): ANY
                  -- Command argument associated to message
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  positive_message: message >= 0
                  command_exists: command_exists (message)
      command_exists (message: INTEGER): BOOLEAN
                  -- Does a command associated to message exist?
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  positive_message: message >= 0
      commands_enabled: BOOLEAN
                  -- Is the commands execution enabled?
                  -- (from WEL_WINDOW)
      enabled: BOOLEAN
                  -- Is the window enabled for mouse and keyboard input?
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      ex_style: INTEGER
                  -- Window ex_style
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      exists: BOOLEAN
                  -- Does the item exist?
                  -- (from WEL_ANY)
            ensure -- from WEL_ANY
                  Result = (item /= default_pointer)
      focused_window: WEL_WINDOW
                  -- Current window which has the focus.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      generation_object_limit: INTEGER
                  -- Maximum size of object in generational scavenge zone.
                  -- If the environment variable EIF_GS_LIMIT
                  -- is defined, it is set to the closest reasonable
                  -- value from it.
                  -- (from MEMORY)
      has_capture: BOOLEAN
                  -- Does this window have the capture?
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      has_focus: BOOLEAN
                  -- Does this window have the focus?
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      has_heavy_capture: BOOLEAN
                  -- Does this window have the heavy capture?
                  -- (from WEL_WINDOW)
      has_horizontal_scroll_bar: BOOLEAN
                  -- Does this window have a horizontal scroll bar?
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      has_menu: BOOLEAN
                  -- Does the window have a menu?
                  -- (from WEL_COMPOSITE_WINDOW)
            require -- from WEL_COMPOSITE_WINDOW
                  exists: exists
      has_system_menu: BOOLEAN
                  -- Does the window have a system menu?
                  -- (from WEL_COMPOSITE_WINDOW)
            require -- from WEL_COMPOSITE_WINDOW
                  exists: exists
      has_vertical_scroll_bar: BOOLEAN
                  -- Does this window have a vertical scroll bar?
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      heavy_capture_activated: BOOLEAN
                  -- Is the heavy capture currently running?
                  -- (i.e. is there a window in the current program
                  -- with has_heavy_capture to True?)
                  -- (from WEL_WINDOW)
      height: INTEGER
                  -- Window height
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      horizontal_position: INTEGER
                  -- Current position of the horizontal scroll box
                  -- (from WEL_COMPOSITE_WINDOW)
            require -- from WEL_COMPOSITE_WINDOW
                  exists: exists
                  scroller_exists: scroller /= void
            ensure -- from WEL_COMPOSITE_WINDOW
                  result_small_enough: Result <= maximal_horizontal_position
                  result_large_enough: Result >= minimal_horizontal_position
      is_inside: BOOLEAN
                  -- Is the current window inside another window?
                  -- (from WEL_WINDOW)
      largest_coalesced_block: INTEGER
                  -- Size of largest coalesced block since last call to
                  -- largest_coalesced; 0 if none.
                  -- (from MEMORY)
      max_mem: INTEGER
                  -- Maximum amount of bytes the run-time can allocate.
                  -- (from MEMORY)
      maximal_height: INTEGER
                  -- Maximal height allowed for the window
                  -- (from WEL_WINDOW)
            ensure -- from WEL_WINDOW
                  result_large_enough: Result >= minimal_height
      maximal_horizontal_position: INTEGER
                  -- Maxium position of the horizontal scroll box
                  -- (from WEL_COMPOSITE_WINDOW)
            require -- from WEL_COMPOSITE_WINDOW
                  exists: exists
                  scroller_exists: scroller /= void
            ensure -- from WEL_COMPOSITE_WINDOW
                  result_large_enough: Result >= minimal_horizontal_position
      maximal_vertical_position: INTEGER
                  -- Maxium position of the vertical scroll box
                  -- (from WEL_COMPOSITE_WINDOW)
            require -- from WEL_COMPOSITE_WINDOW
                  exists: exists
                  scroller_exists: scroller /= void
            ensure -- from WEL_COMPOSITE_WINDOW
                  result_large_enough: Result >= minimal_vertical_position
      maximal_width: INTEGER
                  -- Maximal width allowed for the window
                  -- (from WEL_WINDOW)
            ensure -- from WEL_WINDOW
                  result_large_enough: Result >= minimal_width
      maximized: BOOLEAN
                  -- Is the window maximized?
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      memory_threshold: INTEGER
                  -- Minimum amount of bytes to be allocated before
                  -- starting an automatic garbage collection.
                  -- (from MEMORY)
      minimal_height: INTEGER
                  -- Minimal height allowed for the window
                  -- (from WEL_COMPOSITE_WINDOW)
            ensure -- from WEL_WINDOW
                  positive_result: Result >= 0
                  result_small_enough: Result <= maximal_height
      minimal_horizontal_position: INTEGER
                  -- Minimum position of the horizontal scroll box
                  -- (from WEL_COMPOSITE_WINDOW)
            require -- from WEL_COMPOSITE_WINDOW
                  exists: exists
                  scroller_exists: scroller /= void
            ensure -- from WEL_COMPOSITE_WINDOW
                  result_small_enough: Result <= maximal_horizontal_position
      minimal_vertical_position: INTEGER
                  -- Minimum position of the vertical scroll box
                  -- (from WEL_COMPOSITE_WINDOW)
            require -- from WEL_COMPOSITE_WINDOW
                  exists: exists
                  scroller_exists: scroller /= void
            ensure -- from WEL_COMPOSITE_WINDOW
                  result_small_enough: Result <= maximal_vertical_position
      minimal_width: INTEGER
                  -- Minimal width allowed for the window
                  -- (from WEL_COMPOSITE_WINDOW)
            ensure -- from WEL_WINDOW
                  positive_result: Result >= 0
                  result_small_enough: Result <= maximal_width
      minimized: BOOLEAN
                  -- Is the window minimized?
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      ok_pushed: BOOLEAN
                  -- Has the OK button been pushed?
                  -- (from WEL_DIALOG)
      placement: WEL_WINDOW_PLACEMENT
                  -- Window placement information
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
            ensure -- from WEL_WINDOW
                  result_not_void: Result /= void
      referers (an_object: ANY): ARRAY [ANY]
                  -- Objects that refer to an_object.
                  -- (from MEMORY)
      scavenge_zone_size: INTEGER
                  -- Size of generational scavenge zone.
                  -- If the environment variable EIF_MEMORY_SCAVENGE
                  -- is defined, it is set to the closest reasonable
                  -- value from it.
                  -- (from MEMORY)
      shared: BOOLEAN
                  -- Is item shared by another object?
                  -- If False (by default), item will
                  -- be destroyed by destroy_item.
                  -- If True, item will not be destroyed.
                  -- (from WEL_ANY)
      shown: BOOLEAN
                  -- Is the window shown?
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      style: INTEGER
                  -- Window style
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      tenure: INTEGER
                  -- Maximum age of object before being considered
                  -- as old (old objects are not scanned during
                  -- partial collection).
                  -- If the environment variable EIF_TENURE_MAX
                  -- is defined, it is set to the closest reasonable
                  -- value from it.
                  -- (from MEMORY)
      text: STRING
                  -- Window text
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
            ensure -- from WEL_WINDOW
                  result_not_void: Result /= void
      text_length: INTEGER
                  -- Text length
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
            ensure -- from WEL_WINDOW
                  positive_result: Result >= 0
      vertical_position: INTEGER
                  -- Current position of the vertical scroll box
                  -- (from WEL_COMPOSITE_WINDOW)
            require -- from WEL_COMPOSITE_WINDOW
                  exists: exists
                  scroller_exists: scroller /= void
            ensure -- from WEL_COMPOSITE_WINDOW
                  result_small_enough: Result <= maximal_vertical_position
                  result_large_enough: Result >= minimal_vertical_position
      width: INTEGER
                  -- Window width
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      window_captured: BOOLEAN
                  -- Has a window been captured?
                  -- (from WEL_WINDOW)
      window_rect: WEL_RECT
                  -- Window rectangle (absolute position)
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
            ensure -- from WEL_WINDOW
                  result_not_void: Result /= void
      x: INTEGER
                  -- Window x position
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
            ensure -- from WEL_WINDOW
                  parent = void implies Result = absolute_x
      y: INTEGER
                  -- Window y position
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
            ensure -- from WEL_WINDOW
                  parent = void implies Result = absolute_y
      
feature  -- Status report
      valid_hwnd_constant (c: POINTER): BOOLEAN
                  -- Is c a valid hwnd constant?
                  -- (from WEL_HWND_CONSTANTS)
      
feature -- Status setting
      allocate_compact
                  -- Enter `memory' mode: will try to compact memory
                  -- before requesting more from the operating system.
                  -- (from MEMORY)
      allocate_fast
                  -- Enter `speed' mode: will optimize speed of memory
                  -- allocation rather than memory usage.
                  -- (from MEMORY)
      allocate_tiny
                  -- Enter `tiny' mode: will enter `memory' mode
                  -- after having freed as much memory as possible.
                  -- (from MEMORY)
      collection_off
                  -- Disable garbage collection.
                  -- (from MEMORY)
      collection_on
                  -- Enable garbage collection.
                  -- (from MEMORY)
      disable
                  -- Disable mouse and keyboard input
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
            ensure -- from WEL_WINDOW
                  disabled: not enabled
      disable_commands
                  -- Disable commands execution.
                  -- (from WEL_WINDOW)
            ensure -- from WEL_WINDOW
                  commands_disabled: not commands_enabled
      disable_default_processing
                  -- Disable default window processing.
                  -- The standard window procedure will not be called for
                  -- each messages received by the window and then the
                  -- normal behavior will not occur.
                  -- (from WEL_WINDOW)
            ensure -- from WEL_WINDOW
                  default_processing_disabled: not default_processing
      disable_time_accounting
                  -- Disable GC time accounting (default).
                  -- (from MEMORY)
      enable
                  -- Enable mouse and keyboard input.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
            ensure -- from WEL_WINDOW
                  enabled: enabled
      enable_commands
                  -- Enable commands execution.
                  -- (from WEL_WINDOW)
            ensure -- from WEL_WINDOW
                  commands_enabled: commands_enabled
      enable_default_processing
                  -- Enable default window processing.
                  -- The standard window procedure will be called for
                  -- each messages received by the window and then the
                  -- normal behavior will occur.
                  -- (from WEL_WINDOW)
            ensure -- from WEL_WINDOW
                  default_processing_enabled: default_processing
      enable_time_accounting
                  -- Enable GC time accouting, accessible in gc_statistics.
                  -- (from MEMORY)
      hide
                  -- Hide the window
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
            ensure -- from WEL_WINDOW
                  hidden: not shown
      horizontal_update (inc, position: INTEGER)
                  -- Update the window and the horizontal scroll box with
                  -- inc and position.
                  -- (from WEL_COMPOSITE_WINDOW)
            require -- from WEL_COMPOSITE_WINDOW
                  exists: exists
                  position_small_enough: position <= maximal_horizontal_position
                  position_large_enough: position >= minimal_horizontal_position
            ensure -- from WEL_COMPOSITE_WINDOW
                  horizontal_position_set: horizontal_position = position
      maximize
                  -- Maximize the window
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
            ensure -- from WEL_WINDOW
                  maximized: maximized
      minimize
                  -- Minimize the window and display its icon
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
            ensure -- from WEL_WINDOW
                  minimized: minimized
      release_capture
                  -- Release the mouse capture after a call
                  -- to set_capture.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
                  has_capture: has_capture
            ensure -- from WEL_WINDOW
                  not_has_capture: not has_capture
      release_heavy_capture
                  -- Release the mouse capture after a call
                  -- to set_heavy_capture.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
                  has_heavy_capture: has_heavy_capture
                  heavy_capture_activated: heavy_capture_activated
            ensure -- from WEL_WINDOW
                  heavy_capture_set: not has_heavy_capture
                  heavy_capture_deactivated: not heavy_capture_activated
      restore
                  -- Restore the window to its
                  -- original size and position after
                  -- minimize or maximize
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      set_capture
                  -- Set the mouse capture to the Current window.
                  -- Once the window has captured the mouse, all
                  -- mouse input is directed to this window, regardless
                  -- of whether the cursor is over that window. Only
                  -- one window can have the mouse capture at a time.
                  --
                  -- Works only for windows in the same thread as your
                  -- application.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
                  has_not_capture: not has_capture
                  has_not_heavy_capture: not has_heavy_capture
            ensure -- from WEL_WINDOW
                  has_capture: has_capture
      set_coalesce_period (value: INTEGER)
                  -- Set coalesce_period. Every value collection,
                  -- the Garbage Collector will coalesce
                  -- the whole memory.
                  -- (from MEMORY)
            require -- from MEMORY
                  positive_value: value >= 0
      set_collection_period (value: INTEGER)
                  -- Set collection_period. Every value collection,
                  -- the Garbage collector will perform a collection
                  -- on the whole memory (full collection), otherwise
                  -- a simple partial collection is done.
                  -- (from MEMORY)
            require -- from MEMORY
                  positive_value: value >= 0
      set_ex_style (an_ex_style: INTEGER)
                  -- Set an_ex_style with ex_style.
                  --
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      set_focus
                  -- Set the focus to Current
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      set_heavy_capture
                  -- Set the mouse capture to the Current window.
                  -- Once the window has captured the mouse, all
                  -- mouse input is directed to this window, regardless
                  -- of whether the cursor is over that window. Only
                  -- one window can have the mouse capture at a time.
                  --
                  -- Works for ALL windows.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
                  has_not_heavy_capture: not has_heavy_capture
                  heavy_capture_deactivated: not heavy_capture_activated
            ensure -- from WEL_WINDOW
                  heavy_capture_set: has_heavy_capture
                  heavy_capture_activated: heavy_capture_activated
      set_horizontal_position (position: INTEGER)
                  -- Set horizontal_position with position.
                  -- (from WEL_COMPOSITE_WINDOW)
            require -- from WEL_COMPOSITE_WINDOW
                  exists: exists
                  scroller_exists: scroller /= void
                  position_small_enough: position <= maximal_horizontal_position
                  position_large_enough: position >= minimal_horizontal_position
            ensure -- from WEL_COMPOSITE_WINDOW
                  horizontal_position_set: horizontal_position = position
      set_horizontal_range (minimum, maximum: INTEGER)
                  -- Set minimal_horizontal_position and
                  -- maximal_horizontal_position with minimum and
                  -- maximum.
                  -- (from WEL_COMPOSITE_WINDOW)
            require -- from WEL_COMPOSITE_WINDOW
                  exists: exists
                  scroller_exists: scroller /= void
                  consistent_range: minimum <= maximum
            ensure -- from WEL_COMPOSITE_WINDOW
                  minimal_horizontal_position_set: minimal_horizontal_position = minimum
                  maximal_horizontal_position_set: maximal_horizontal_position = maximum
      set_icon (a_small_icon: WEL_ICON; a_big_icon: WEL_ICON)
                  -- Set the small (16x16) and the normal (32x32) icon for this window.
                  --
                  -- Note: Set a_small_icon to Void to remove the small icon and
                  --       a_big_icon to Void to remove the big icon.
                  -- (from WEL_COMPOSITE_WINDOW)
      set_max_mem (value: INTEGER)
                  -- Set the maximum amount of memory the run-time can allocate.
                  -- (from MEMORY)
            require -- from MEMORY
                  positive_value: value > 0
      set_memory_threshold (value: INTEGER)
                  -- Set a new memory_threshold in bytes. Whenever the memory
                  -- allocated for Eiffel reaches this value, an automatic
                  -- collection is performed.
                  -- (from MEMORY)
            require -- from MEMORY
                  positive_value: value > 0
      set_menu (a_menu: WEL_MENU)
                  -- Set menu with a_menu.
                  -- (from WEL_COMPOSITE_WINDOW)
            require -- from WEL_COMPOSITE_WINDOW
                  exists: exists
                  a_menu_not_void: a_menu /= void
                  a_menu_exists: a_menu.exists
            ensure -- from WEL_COMPOSITE_WINDOW
                  has_menu: has_menu
                  menu_set: menu.item = a_menu.item
      set_shared
                  -- Set shared to True.
                  -- (from WEL_ANY)
            ensure -- from WEL_ANY
                  shared: shared
      set_style (a_style: INTEGER)
                  -- Set style with a_style.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      set_unshared
                  -- Set shared to False.
                  -- (from WEL_ANY)
            ensure -- from WEL_ANY
                  unshared: not shared
      set_vertical_position (position: INTEGER)
                  -- Set vertical_position with position.
                  -- (from WEL_COMPOSITE_WINDOW)
            require -- from WEL_COMPOSITE_WINDOW
                  exists: exists
                  scroller_exists: scroller /= void
                  position_small_enough: position <= maximal_vertical_position
                  position_large_enough: position >= minimal_vertical_position
            ensure -- from WEL_COMPOSITE_WINDOW
                  vertical_position_set: vertical_position = position
      set_vertical_range (minimum, maximum: INTEGER)
                  -- Set minimal_vertical_position and
                  -- maximal_vertical_position with minimum and
                  -- maximum.
                  -- (from WEL_COMPOSITE_WINDOW)
            require -- from WEL_COMPOSITE_WINDOW
                  exists: exists
                  scroller_exists: scroller /= void
                  consistent_range: minimum <= maximum
            ensure -- from WEL_COMPOSITE_WINDOW
                  minimal_vertical_position_set: minimal_vertical_position = minimum
                  maximal_vertical_position_set: maximal_vertical_position = maximum
      show
                  -- Show the window
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      unset_menu
                  -- Unset the current menu associated to the window.
                  -- (from WEL_COMPOSITE_WINDOW)
            require -- from WEL_COMPOSITE_WINDOW
                  exists: exists
            ensure -- from WEL_COMPOSITE_WINDOW
                  menu_unset: not has_menu
      update_cached_style (new_ex_style, old_ex_style: INTEGER)
                  -- Update Window cache buffer for Window style.
                  --
                  -- (from WEL_WINDOW)
      vertical_update (inc, position: INTEGER)
                  -- Update the window and the vertical scroll box with
                  -- inc and position.
                  -- (from WEL_COMPOSITE_WINDOW)
            require -- from WEL_COMPOSITE_WINDOW
                  exists: exists
                  position_small_enough: position <= maximal_vertical_position
                  position_large_enough: position >= minimal_vertical_position
            ensure -- from WEL_COMPOSITE_WINDOW
                  vertical_position_set: vertical_position = position
      
feature -- Element change
      has_system_window_locked: BOOLEAN
                  -- Is there any window locked ?
                  -- (from WEL_WINDOW)
      lock_window_update
                  -- Disables drawing in the current window. A locked window cannot be moved.
                  -- Only one window can be locked at a time. To unlock a window locked with
                  -- lock_window_update , call 'unlock_window_update'.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
            ensure -- from WEL_WINDOW
                  has_system_window_locked
      set_height (a_height: INTEGER)
                  -- Set height with a_height
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      set_item (an_item: POINTER)
                  -- Set item with an_item
                  -- (from WEL_ANY)
            ensure -- from WEL_ANY
                  item_set: item = an_item
      set_parent (a_parent: WEL_WINDOW)
                  -- Change the parent of the current window.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      set_placement (a_placement: WEL_WINDOW_PLACEMENT)
                  -- Set placement with a_placement
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
                  a_placement_not_void: a_placement /= void
      set_text (a_text: STRING)
                  -- Set the window text
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
            ensure -- from WEL_WINDOW
                  text_set_when_not_void: a_text /= void implies equal (text, a_text)
                  text_set_when_void: a_text = void implies text.count = 0
      set_timer (timer_id, time_out: INTEGER)
                  -- Set a timer identified by timer_id with a
                  -- time_out value (in milliseconds).
                  -- See also on_timer, kill_timer.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
                  positive_timer_id: timer_id > 0
                  positive_time_out: time_out > 0
      set_width (a_width: INTEGER)
                  -- Set width with a_width
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      set_x (a_x: INTEGER)
                  -- Set x with a_x
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      set_y (a_y: INTEGER)
                  -- Set y with a_y
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      unlock_window_update
                  -- Unlock a locked window.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      
feature -- Removal
      collect
                  -- Force a partial collection cycle if garbage
                  -- collection is enabled; do nothing otherwise.
                  -- (from MEMORY)
      free (object: ANY)
                  -- Free object, by-passing garbage collection.
                  -- Erratic behavior will result if the object is still
                  -- referenced.
                  -- (from MEMORY)
      full_coalesce
                  -- Coalesce the whole memory: merge adjacent free
                  -- blocks to reduce fragmentation. Useful, when
                  -- a lot of memory is allocated with garbage collector off.
                  -- (from MEMORY)
      full_collect
                  -- Force a full collection cycle if garbage
                  -- collection is enabled; do nothing otherwise.
                  -- (from MEMORY)
      mem_free (addr: POINTER)
                  -- Free memory of object at addr.
                  -- (Preferred interface is free.)
                  -- (from MEMORY)
      
feature -- Conversion
      to_integer: INTEGER
                  -- Converts item to an integer.
                  -- (from WEL_ANY)
            ensure -- from WEL_ANY
                  Result = cwel_pointer_to_integer (item)
      
feature -- Basic operations
      action (elf: WEL_ENUM_LOG_FONT; tm: WEL_TEXT_METRIC; font_type: INTEGER)
                  -- Called for each font found.
            require -- from WEL_FONT_FAMILY_ENUMERATOR
                  elf_not_void: elf /= void
                  tm_not_void: tm /= void
      activate
                  -- Activate the dialog.
                  -- (from WEL_MAIN_DIALOG)
            require -- from WEL_DIALOG
                  parent_exists: parent /= void implies parent.exists
                  not_exists: not exists
            require else -- from WEL_MAIN_DIALOG
                  not_exists: not exists
      bring_to_top
                  -- Bring this window to the top of the Z order.
                  --
                  -- Note:
                  --  * If the window is a top-level window, it is activated.
                  --  * If the window is a child window, the top-level parent window
                  --    associated with the child window is activated.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      destroy
                  -- Terminate the dialog.
                  -- (from WEL_DIALOG)
            require -- from WEL_WINDOW
                  exists: exists
            ensure -- from WEL_WINDOW
                  not_exists: not exists
      disable_horizontal_scroll_bar
                  -- Disable the horizontal scroll bar.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      disable_vertical_scroll_bar
                  -- Disable the vertical scroll bar.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      dispose
                  -- Called when the main dialog is destroyed.
      draw_menu
                  -- Draw the menu bar associated with the window.
                  -- (from WEL_COMPOSITE_WINDOW)
            require -- from WEL_COMPOSITE_WINDOW
                  exists: exists
                  has_menu: has_menu
      enable_horizontal_scroll_bar
                  -- Enable the horizontal scroll bar.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      enable_vertical_scroll_bar
                  -- Enable the vertical scroll bar.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      finish_action
                  -- Called after the enumeration.
                  -- May be redefined to make special operations.
                  -- (from WEL_FONT_FAMILY_ENUMERATOR)
      hide_horizontal_scroll_bar
                  -- Hide the horizontal scroll bar.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      hide_scroll_bars
                  -- Hide the horizontal and vertical scroll bars.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      hide_vertical_scroll_bar
                  -- Hide the vertical scroll bar.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      init_action
                  -- Called before the enumeration.
                  -- May be redefined to make special operations.
                  -- (from WEL_FONT_FAMILY_ENUMERATOR)
      insert_after (a_window: WEL_WINDOW)
                  -- Insert the current window after a_window.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
                  a_window_not_void: a_window /= void
                  a_window_not_current: a_window /= Current
                  a_window_exists: a_window.exists
      invalidate
                  -- Invalide the entire client area of the window. The
                  -- background will be erased before.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      invalidate_rect (rect: WEL_RECT; erase_background: BOOLEAN)
                  -- Invalidate the area rect and erase
                  -- the background if erase_background is True.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
                  rect_not_void: rect /= void
      invalidate_region (region: WEL_REGION; erase_background: BOOLEAN)
                  -- Invalidate the area region and erase
                  -- the background if erase_background is True.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
                  region_not_void: region /= void
                  region_exists: region.exists
      invalidate_without_background
                  -- Invalidate the entire client area of the window. The
                  -- background will not be erased.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      kill_timer (timer_id: INTEGER)
                  -- Kill the timer identified by timer_id.
                  -- See also set_timer, on_timer.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
                  positive_timer_id: timer_id > 0
      move (a_x, a_y: INTEGER)
                  -- Move the window to a_x, a_y position.
                  -- (from WEL_COMPOSITE_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      move_absolute (a_x, a_y: INTEGER)
                  -- Move the window to a_x, a_y absolute position.
                  -- (from WEL_COMPOSITE_WINDOW)
            require -- from WEL_COMPOSITE_WINDOW
                  exists: exists
      move_and_resize (a_x, a_y, a_width, a_height: INTEGER; repaint: BOOLEAN)
                  -- Move the window to a_x, a_y position and
                  -- resize it with a_width, a_height.
                  -- (from WEL_COMPOSITE_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      notify (control: WEL_CONTROL; notify_code: INTEGER)
                  -- Set the text font with the new font selected
                  -- by the user.
            require -- from WEL_COMPOSITE_WINDOW
                  exists: exists
                  control_not_void: control /= void
                  control_exists: control.exists
      on_abort
                  -- Button Abort has been pressed.
                  -- (from WEL_DIALOG)
            require -- from WEL_DIALOG
                  exists: exists
      on_cancel
                  -- Button Cancel has been pressed.
                  -- (from WEL_DIALOG)
            require -- from WEL_DIALOG
                  exists: exists
      on_control_id_command (control_id: INTEGER)
                  -- Destroy application when Close button is pushed.
            require -- from WEL_COMPOSITE_WINDOW
                  exists: exists
      on_ignore
                  -- Button Ignore has been pressed.
                  -- (from WEL_DIALOG)
            require -- from WEL_DIALOG
                  exists: exists
      on_no
                  -- Button No has been pressed.
                  -- (from WEL_DIALOG)
            require -- from WEL_DIALOG
                  exists: exists
      on_ok
                  -- Button Ok has been pressed.
                  -- (from WEL_DIALOG)
            require -- from WEL_DIALOG
                  exists: exists
      on_retry
                  -- Button Retry has been pressed.
                  -- (from WEL_DIALOG)
            require -- from WEL_DIALOG
                  exists: exists
      on_yes
                  -- Button Yes has been pressed.
                  -- (from WEL_DIALOG)
            require -- from WEL_DIALOG
                  exists: exists
      put_command (a_command: WEL_COMMAND; message: INTEGER; argument: ANY)
                  -- Put a_command associated to message.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  a_command_not_void: a_command /= void
                  positive_message: message >= 0
            ensure -- from WEL_WINDOW
                  command_added: command (message) = a_command and command_argument (message) = argument
      remove_command (message: INTEGER)
                  -- Remove the command associated to message.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  positive_message: message >= 0
                  command_exists: command_exists (message)
            ensure -- from WEL_WINDOW
                  command_removed: not command_exists (message)
      resize (a_width, a_height: INTEGER)
                  -- Resize the window with a_width, a_height.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      scroll (a_x, a_y: INTEGER)
                  -- Scroll the contents of the window's client area.
                  -- a_x and a_y specify the amount of horizontal
                  -- and vertical scrolling.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      set_class_icon (new_icon: WEL_ICON)
                  -- Replace the current icon for the class which this window
                  -- belongs to.
                  --
                  -- The SetClassLong function replaces the specified 32-bit (long)
                  -- value at the specified offset into the extra class memory
                  -- or the WNDCLASSEX structure for the class to which the
                  -- specified window belongs.
                  -- (from WEL_WINDOW)
      set_class_small_icon (new_icon: WEL_ICON)
                  -- Replace the current icon for the class which this window
                  -- belongs to.
                  --
                  -- The SetClassLong function replaces the specified 32-bit (long)
                  -- value at the specified offset into the extra class memory
                  -- or the WNDCLASSEX structure for the class to which the
                  -- specified window belongs.
                  -- (from WEL_WINDOW)
      set_z_order (z_order: POINTER)
                  -- Set the z-order of the window.
                  -- See class WEL_HWND_CONSTANTS for z_order values.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
                  valid_hwnd_constant: valid_hwnd_constant (z_order)
      setup_dialog
                  -- Fill the list box with the fonts.
            require -- from WEL_DIALOG
                  exists: exists
      show_horizontal_scroll_bar
                  -- Show the horizontal scroll bar.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      show_scroll_bars
                  -- Show the horizontal and vertical scroll bars.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      show_vertical_scroll_bar
                  -- Show the vertical scroll bar.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      show_with_option (cmd_show: INTEGER)
                  -- Set the window's visibility with cmd_show.
                  -- See class WEL_SW_CONSTANTS for cmd_show value.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
                  parent_shown: parent /= void implies parent.exists and parent.shown
      terminate (a_result: INTEGER)
                  -- Terminate the dialog with a_result.
                  -- result_id will contain a_result.
                  -- (from WEL_MODELESS_DIALOG)
            require -- from WEL_DIALOG
                  exists: exists
            ensure -- from WEL_DIALOG
                  result_id_set: result_id = a_result
      update
                  -- Update the client area by sending a Wm_paint message.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
      validate_rect (rect: WEL_RECT)
                  -- Validate the area rect.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
                  rect_not_void: rect /= void
      validate_region (region: WEL_REGION)
                  -- Validate the area region.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
                  region_not_void: region /= void
                  region_exists: region.exists
      win_help (help_file: STRING; a_command, data: INTEGER)
                  -- Start the Windows Help program with help_file.
                  -- a_command specifies the type of help requested. See
                  -- class WEL_HELP_CONSTANTS for a_command values.
                  -- 'data' is depandant on 'a_command'.  Check MSDN for more details.
                  -- (from WEL_WINDOW)
            require -- from WEL_WINDOW
                  exists: exists
                  help_file_not_void: help_file /= void
      
feature -- Element Change
      set_default_processing (value: BOOLEAN)
                  -- Enable or disable default processing of window messages.
                  -- (from WEL_RETURN_VALUE)
            ensure -- from WEL_RETURN_VALUE
                  value_set: default_processing = value
      set_message_return_value (value: INTEGER)
                  -- Set the window-procedure-return-value.
                  -- (from WEL_RETURN_VALUE)
            ensure -- from WEL_RETURN_VALUE
                  has_return_value: has_return_value
                  value_set: message_return_value = value
      
invariant
            -- from ANY
      reflexive_equality: standard_is_equal (Current)
      reflexive_conformance: conforms_to (Current)
end -- class MAIN_DIALOG
-- Generated by ISE Eiffel --
-- For more details: www.eiffel.com --