INDEX CLUSTER FEATURES SHORT FRAMES NO FRAMES

indexing

title: "List of items which can be selected by the user. ", "WEL: library of reusable components for Eiffel. ", "Based on WEL library for ISE Eiffel, used with permission. "
project: "Windows Eiffel Library"
copyright: "(c) 1986-1997 Interactive Software Engineering Inc. ", "Modifications and extensions: ", "(c) 1997-2001 Object Tools ", "All rights reserved. Duplication and distribution prohibited", "May be used only with Visual Eiffel under terms of user ", "license "
cluster: wel
class WEL_MENU
inherit

WEL_RESOURCE
end

WEL_MF_CONSTANTS
export
{NONE}
all
end

WEL_TPM_CONSTANTS
export
{NONE}
all
end
creation

make,
make_by_id,
make_by_name,
make_by_pointer,
make_track
feature {NONE}-- Initialization

make
-- Make an empty menu

make_track
-- Make an empty track popup menu
feature -- Access

popup_menu (position: INTEGER): WEL_MENU
-- Popup menu at the zero-based relative `position'
require
exists: exists
position_large_enough: position >= 0
position_small_enough: position < count
popup_exists: popup_exists (position)
ensure
result_not_void: Result /= void
feature -- Element change

append_string (a_string: STRING; an_id: INTEGER)
-- Append `a_string' with the identifier `an_id' to the
-- menu.
require
exists: exists
a_string_not_void: a_string /= void
positive_id: an_id > 0
item_not_exists: not item_exists (an_id)
ensure
new_count: count = count + 1
item_exists: item_exists (an_id)
string_set: id_string (an_id).is_equal (a_string)

append_popup (a_menu: WEL_MENU; a_title: STRING)
-- Append a popup menu `a_menu' with `a_title' to the
-- current menu.
require
exists: exists
a_menu_not_void: a_menu /= void
a_menu_exists: a_menu.exists
a_title_not_void: a_title /= void
ensure
new_count: count = count + 1

append_separator
-- Append a separator to the current menu.
require
exists: exists
ensure
new_count: count = count + 1

append_bitmap (bitmap: WEL_BITMAP; an_id: INTEGER)
-- Append `bitmap' with the identifier `an_id' to the
-- menu.
require
exists: exists
bitmap_not_void: bitmap /= void
bitmap_exists: bitmap.exists
positive_id: an_id > 0
item_not_exists: not item_exists (an_id)
ensure
new_count: count = count + 1
item_exists: item_exists (an_id)

insert_string (a_string: STRING; a_position, an_id: INTEGER)
-- Insert `a_string' at zero-based `a_position' with
-- `an_id'.
require
exists: exists
a_position_large_enough: a_position >= 0
a_position_small_enough: a_position <= count
a_string_not_void: a_string /= void
positive_id: an_id > 0
item_not_exists: not item_exists (an_id)
ensure
new_count: count = count + 1
string_set: id_string (an_id).is_equal (a_string)

insert_popup (a_menu: WEL_MENU; a_position: INTEGER; a_title: STRING)
-- Insert a popup menu `a_menu' at zero-based `a_position'
-- with `a_title'.
require
exists: exists
a_menu_not_void: a_menu /= void
a_menu_exists: a_menu.exists
a_title_not_void: a_title /= void
a_position_large_enough: a_position >= 0
a_position_small_enough: a_position <= count
ensure
new_count: count = count + 1
popup_menu_set: popup_menu (a_position).item = a_menu.item

insert_separator (a_position: INTEGER)
-- Insert a separator at zero-based `a_position'.
require
exists: exists
a_position_large_enough: a_position >= 0
a_position_small_enough: a_position <= count
ensure
new_count: count = count + 1

insert_bitmap (bitmap: WEL_BITMAP; a_position, an_id: INTEGER)
-- Insert `bitmap' at zero-based `a_position' with
-- `an_id'.
require
exists: exists
a_position_large_enough: a_position >= 0
a_position_small_enough: a_position <= count
bitmap_not_void: bitmap /= void
bitmap_exists: bitmap.exists
positive_id: an_id > 0
item_not_exists: not item_exists (an_id)
ensure
new_count: count = count + 1

modify_string (a_string: STRING; an_id: INTEGER)
-- Modify the menu title identified by `an_id' to
-- `a_string'.
require
exists: exists
a_string_not_void: a_string /= void
positive_id: an_id > 0
item_exists: item_exists (an_id)
ensure
string_set: id_string (an_id).is_equal (a_string)
feature -- Removal

delete_item (an_id: INTEGER)
-- Delete `an_id' from the menu.
require
exists: exists
positive_id: an_id > 0
item_exists: item_exists (an_id)
ensure
new_count: count = count - 1
item_not_exists: not item_exists (an_id)

delete_position (position: INTEGER)
-- Delete the item at zero-based `position'.
require
exists: exists
position_large_enough: position >= 0
position_small_enough: position < count
ensure
new_count: count = count - 1
feature -- Basic operations

hilite_menu_item (window: WEL_COMPOSITE_WINDOW; an_id: INTEGER)
-- Hilite the item identified by `an_id' in the
-- `window''s menu.
require
exists: exists
window_not_void: window /= void
window_exists: window.exists
positive_id: an_id > 0
item_exists: item_exists (an_id)

unhilite_menu_item (window: WEL_COMPOSITE_WINDOW; an_id: INTEGER)
-- unhilite the item identified by `an_id' in the
-- `window''s menu.
require
exists: exists
window_not_void: window /= void
window_exists: window.exists
positive_id: an_id > 0
item_exists: item_exists (an_id)

show_track (x, y: INTEGER; window: WEL_COMPOSITE_WINDOW)
-- Show a track popup menu at the `x' and `y' absolute
-- position. `window' will receive the selection in
-- `on_menu_command'.
require
exists: exists
not_empty: count > 0
window_not_void: window /= void
window_exists: window.exists

show_track_with_option (x, y: INTEGER; window: WEL_COMPOSITE_WINDOW; option: INTEGER; rect: WEL_RECT)
-- Show a track popup menu with `option' at
-- the `x' and `y' absolute position.
-- `window' will receive the selection in
-- `on_menu_command'.
-- `rect' specifies the portion of the screen
-- in which the user can select without
-- dismissing the popup menu. If this parameter
-- is Void the popup menu is dismissed if the
-- user clicks outside the popup menu
require
exists: exists
not_empty: count > 0
window_not_void: window /= void
window_exists: window.exists
feature -- Measurement

count: INTEGER
-- Number of items
require
exists: exists
ensure
positive_result: Result >= 0
feature -- Status setting

check_item (an_id: INTEGER)
-- Put a check mark for the item identified by `an_id'.
require
exists: exists
positive_id: an_id > 0
item_exists: item_exists (an_id)
ensure
item_checked: item_checked (an_id)

uncheck_item (an_id: INTEGER)
-- Remove the check mark for the item identified
-- by `an_id'.
require
exists: exists
positive_id: an_id > 0
item_exists: item_exists (an_id)
ensure
item_unchecked: not item_checked (an_id)

enable_item (an_id: INTEGER)
-- Enable the item idenfied by `an_id'.
require
exists: exists
positive_id: an_id > 0
item_exists: item_exists (an_id)
ensure
item_enabled: item_enabled (an_id)

enable_position (position: INTEGER)
-- Enable the item at zero-based `position'.
require
exists: exists
position_large_enough: position >= 0
position_small_enough: position < count
ensure
position_enabled: position_enabled (position)

disable_item (an_id: INTEGER)
-- Disable the item identified by `an_id'.
require
exists: exists
positive_id: an_id > 0
item_exists: item_exists (an_id)
ensure
item_disabled: not item_enabled (an_id)

disable_position (position: INTEGER)
-- Disable the item at zero-based `position'.
require
exists: exists
position_large_enough: position >= 0
position_small_enough: position < count
ensure
position_disabled: not position_enabled (position)
feature -- Status report

item_exists (an_id: INTEGER): BOOLEAN
-- Does `an_id' exist in the menu?
require
exists: exists
positive_id: an_id > 0

item_checked (an_id: INTEGER): BOOLEAN
-- Is the item idenfied by `an_id' checked?
require
exists: exists
positive_id: an_id > 0
item_exists: item_exists (an_id)

item_enabled (an_id: INTEGER): BOOLEAN
-- Is the item idenfied by `an_id' enabled?
require
exists: exists
positive_id: an_id > 0
item_exists: item_exists (an_id)

position_enabled (position: INTEGER): BOOLEAN
-- Is the item at zero-based `position' enabled?
require
exists: exists
position_large_enough: position >= 0
position_small_enough: position < count

id_string (an_id: INTEGER): STRING
-- String associated with `an_id'
require
exists: exists
positive_id: an_id > 0
item_exists: item_exists (an_id)
ensure
result_not_void: Result /= void

popup_exists (position: INTEGER): BOOLEAN
-- Does a popup menu exists at the zero-based position?
require
exists: exists
positive_position: position >= 0
feature -- Conversion

position_to_item_id (position: INTEGER): INTEGER
-- Retrieve the menu item identifier of a menu item at
-- the zero-based `position'.
-- Return 0 if the item at the zero-based
-- `position' is a separator or a pop-up menu.
require
exists: exists
position_large_enough: position >= 0
position_small_enough: position < count
end -- class WEL_MENU

INDEX CLUSTER FEATURES SHORT FRAMES NO FRAMES