Automatic generation produced by ISE Eiffel
note description: "[ Manager which communicate between client programmer and whole docking library. The SD_DOCKING_MANAGER is the key (and the most important one) for client programmers to comunicate with docking library. Almost all importantant features are listed in SD_DOCKING_MANAGER, such as extend/remove a docking content (which is a docking unit) Internally, docking manger create left, right, top, bottom areas for toolbars and docking panels. ]" legal: "See notice at end of class." status: "See notice at end of class." date: "$Date: 2021-10-28 02:12:06 -0800 (Thu, 28 Oct 2021) $" revision: "$Revision: 105907 $" class interface SD_DOCKING_MANAGER create make (a_container: EV_CONTAINER; a_window: EV_WINDOW) -- Creation method -- Between a_container and a_window, there can be other non-dockable widget -- -- a_container is the top level container which hold all docking widgets -- a_window is the main window which hold a_container -- a_window is used for register global shortcuts (such as esc key used for cancel a dragging), -- also used for showing a parented floating docking panel, also used for set global cursor icon -- when dragging, and ... require a_container_not_void: a_container /= Void a_container_not_destroy: not a_container.is_destroyed a_container_not_full: not a_container.full a_widnow_valid: window_valid (a_window) ensure a_container_filled: a_container.has (internal_viewport) feature -- Access generating_type: TYPE [detachable SD_DOCKING_MANAGER] -- Type of current object -- (type of which it is a direct instance) -- (from ANY) ensure -- from ANY generating_type_not_void: Result /= Void generator: STRING_8 -- Name of current object's generating class -- (base class of the type of which it is a direct instance) -- (from ANY) ensure -- from ANY generator_not_void: Result /= Void generator_not_empty: not Result.is_empty restoration_callback: detachable FUNCTION [READABLE_STRING_GENERAL, SD_CONTENT] -- Agent to use to attempt to retrieve a {SD_CONTENT} during restoration from a cached -- layout file feature -- Comparison frozen deep_equal (a: detachable ANY; b: like arg #1): BOOLEAN -- Are a and b either both void -- or attached to isomorphic object structures? -- (from ANY) ensure -- from ANY instance_free: class shallow_implies_deep: standard_equal (a, b) implies Result both_or_none_void: (a = Void) implies (Result = (b = Void)) same_type: (Result and (a /= Void)) implies (b /= Void and then a.same_type (b)) symmetric: Result implies deep_equal (b, a) frozen equal (a: detachable ANY; b: like arg #1): BOOLEAN -- Are a and b either both void or attached -- to objects considered equal? -- (from ANY) ensure -- from ANY instance_free: class definition: Result = (a = Void and b = Void) or else ((a /= Void and b /= Void) and then a.is_equal (b)) frozen is_deep_equal alias "≡≡≡" (other: SD_DOCKING_MANAGER): BOOLEAN -- Are Current and other attached to isomorphic object structures? -- (from ANY) require -- from ANY other_not_void: other /= Void ensure -- from ANY shallow_implies_deep: standard_is_equal (other) implies Result same_type: Result implies same_type (other) symmetric: Result implies other.is_deep_equal (Current) is_equal (other: SD_DOCKING_MANAGER): BOOLEAN -- Is other attached to an object considered -- equal to current object? -- (from ANY) require -- from ANY other_not_void: other /= Void ensure -- from ANY symmetric: Result implies other ~ Current consistent: standard_is_equal (other) implies Result frozen standard_equal (a: detachable ANY; b: like arg #1): BOOLEAN -- Are a and b either both void or attached to -- field-by-field identical objects of the same type? -- Always uses default object comparison criterion. -- (from ANY) ensure -- from ANY instance_free: class definition: Result = (a = Void and b = Void) or else ((a /= Void and b /= Void) and then a.standard_is_equal (b)) frozen standard_is_equal alias "≜" (other: SD_DOCKING_MANAGER): BOOLEAN -- Is other attached to an object of the same type -- as current object, and field-by-field identical to it? -- (from ANY) require -- from ANY other_not_void: other /= Void ensure -- from ANY same_type: Result implies same_type (other) symmetric: Result implies other.standard_is_equal (Current) feature -- Status report conforms_to (other: ANY): BOOLEAN -- Does type of current object conform to type -- of other (as per Eiffel: The Language, chapter 13)? -- (from ANY) require -- from ANY other_not_void: other /= Void same_type (other: ANY): BOOLEAN -- Is type of current object identical to type of other? -- (from ANY) require -- from ANY other_not_void: other /= Void ensure -- from ANY definition: Result = (conforms_to (other) and other.conforms_to (Current)) feature -- Element change set_restoration_callback (a_callback: like restoration_callback) -- Sets a callback to fetch a content area when it's not already located in a container ensure restoration_callback_set: restoration_callback = a_callback feature -- Duplication copy (other: SD_DOCKING_MANAGER) -- Update current object using fields of object attached -- to other, so as to yield equal objects. -- (from ANY) require -- from ANY other_not_void: other /= Void type_identity: same_type (other) ensure -- from ANY is_equal: Current ~ other frozen deep_copy (other: SD_DOCKING_MANAGER) -- Effect equivalent to that of: -- `copy` (other . `deep_twin`) -- (from ANY) require -- from ANY other_not_void: other /= Void ensure -- from ANY deep_equal: deep_equal (Current, other) frozen deep_twin: SD_DOCKING_MANAGER -- New object structure recursively duplicated from Current. -- (from ANY) ensure -- from ANY deep_twin_not_void: Result /= Void deep_equal: deep_equal (Current, Result) frozen standard_copy (other: SD_DOCKING_MANAGER) -- Copy every field of other onto corresponding field -- of current object. -- (from ANY) require -- from ANY other_not_void: other /= Void type_identity: same_type (other) ensure -- from ANY is_standard_equal: standard_is_equal (other) frozen standard_twin: SD_DOCKING_MANAGER -- New object field-by-field identical to other. -- Always uses default copying semantics. -- (from ANY) ensure -- from ANY standard_twin_not_void: Result /= Void equal: standard_equal (Result, Current) frozen twin: SD_DOCKING_MANAGER -- New object equal to Current -- `twin` calls `copy`; to change copying/twinning semantics, redefine `copy`. -- (from ANY) ensure -- from ANY twin_not_void: Result /= Void is_equal: Result ~ Current feature -- Basic operations frozen default: detachable SD_DOCKING_MANAGER -- Default value of object's type -- (from ANY) frozen default_pointer: POINTER -- Default value of type POINTER -- (Avoid the need to write p.`default` for -- some p of type POINTER.) -- (from ANY) ensure -- from ANY instance_free: class default_rescue -- Process exception for routines with no Rescue clause. -- (Default: do nothing.) -- (from ANY) frozen do_nothing -- Execute a null action. -- (from ANY) ensure -- from ANY instance_free: class feature -- Command close_all -- Close all contents -- All actions in {SD_CONTENT} will NOT be called require not_destroyed: not is_destroyed ensure cleared: not is_closing_all close_editor_place_holder -- Close editors place holder zone -- Editor place holder means the blank editor area (grey by default) in main window -- when no editor available require not_destroyed: not is_destroyed destroy -- Destroy all underline objects -- Free all memory if possible ensure destroyed: is_destroyed lock -- Set `is_locked` to True require not_destroyed: not is_destroyed ensure locked: is_locked lock_editor -- Set `is_editor_locked` to True require not_destroyed: not is_destroyed ensure locked: is_editor_locked maximize_editor_area -- Maximize whole editor area -- Editor area means all editors' area especially for -- the area when editors are docked side by side in split areas require not_destroyed: not is_destroyed minimize_editor_area -- Minimize whole editor area -- The whole editor area will be minimized to a small button -- If end user clicked the small button, the editor area will be restored require not_destroyed: not is_destroyed minimize_editors -- Minimize all editors -- Not same as `minimize_editor_area`, it actually let all editors -- minimize separately require not_destroyed: not is_destroyed open_config_with_path (a_file: PATH): BOOLEAN -- Open all docking layout configuration data previously stored in a_file -- Result True means restore docking layout operation executed successfully. -- Result False means the operation failed, maybe due to a_file not exist, or -- data in a_file corrupted. require a_file_not_void: a_file /= Void a_file_readable: is_file_path_readable (a_file) not_destroyed: not is_destroyed open_editors_config_with_path (a_file: PATH) -- Open main window editors' layout configuration data previously stored in a_file require not_destroyed: not is_destroyed open_maximized_tool_config_with_path (a_file: PATH) -- Open tool's maximization statues configuration data previously stored in a_file require not_destroyed: not is_destroyed open_tool_bar_item_config_with_path (a_file: PATH) -- Open tool bar items' layout configuration data previously stored in a_file require not_destroyed: not is_destroyed open_tools_config_with_path (a_file: PATH): BOOLEAN -- Open tool type contents' layout configuration data previously stored in a_file -- When editor area available, open all tools' layout except all editor area panels' -- It means, when no editor area avaliable, open_tools_config doesn't make sense -- Note: If window is minimized, EV_SPLIT_AREA split bar position can't be restored correctly -- See bug#14309 require not_destroyed: not is_destroyed propagate_accelerators -- Proprogate `main_window` accelerators to all floating zones require not_destroyed: not is_destroyed restore_editor_area -- Restore whole editor area if the editor area maximized require not_destroyed: not is_destroyed restore_editor_area_for_minimized -- Restore whole editor area if the editor area minimized require not_destroyed: not is_destroyed restore_maximized_editor -- Restore maximized editor in main window if possible require not_destroyed: not is_destroyed restore_minimized_editors -- Restore all minimized editors to normal state require not_destroyed: not is_destroyed save_data_with_path (a_file: PATH): BOOLEAN -- Save current docking config data (including tools' data and editors' data) into a_file require a_file_not_void: a_file /= Void not_destroyed: not is_destroyed save_editors_data_with_path (a_file: PATH): BOOLEAN -- Save main window's editor layout configuration data into a_file require not_void: a_file /= Void not_destroyed: not is_destroyed save_tools_data_with_name_and_path (a_file: PATH; a_name: READABLE_STRING_GENERAL): BOOLEAN -- Save tools' layout configuration data into a file named a_file and store a_name into the data require not_void: a_file /= Void not_destroyed: not is_destroyed save_tools_data_with_path (a_file: PATH): BOOLEAN -- Save tools' layout configuration data into a_file require not_void: a_file /= Void not_destroyed: not is_destroyed set_main_area_background_color (a_color: EV_COLOR) -- Set main area (editors' area) background color -- It will be displayed when no editor available require a_color_not_void: a_color /= Void not_destroyed: not is_destroyed ensure set: query.inner_container_main.background_color.is_equal (a_color) show_displayed_floating_windows_in_idle -- Show all displayed floating windows again for Solaris CDE -- This feature fix bug#13645 require not_destroyed: not is_destroyed unlock -- Set `is_locked` to False require not_destroyed: not is_destroyed ensure unlocked: not is_locked unlock_editor -- Set `is_editor_locked` to False require not_destroyed: not is_destroyed ensure unlocked: not is_editor_locked update_mini_tool_bar_size (a_content: SD_CONTENT) -- After mini tool bar widget's size changed, update mini tool bar's size to best -- fit new size of mini tool bar widget -- a_content can be void if not known require not_destroyed: not is_destroyed feature -- Contract support container_valid (a_container: EV_CONTAINER; a_window: EV_WINDOW): BOOLEAN -- Is a_container resides in a_window or a_container resides in a_window? is_file_path_readable (a_file_name: PATH): BOOLEAN -- Does a_file_name exist and readable? window_valid (a_window: EV_WINDOW): BOOLEAN -- Is a_window already managed by one docking manager? feature -- Output Io: STD_FILES -- Handle to standard file setup -- (from ANY) ensure -- from ANY instance_free: class io_not_void: Result /= Void out: STRING_8 -- New string containing terse printable representation -- of current object -- (from ANY) ensure -- from ANY out_not_void: Result /= Void print (o: detachable ANY) -- Write terse external representation of o -- on standard output. -- (from ANY) ensure -- from ANY instance_free: class frozen tagged_out: STRING_8 -- New string containing terse printable representation -- of current object -- (from ANY) ensure -- from ANY tagged_out_not_void: Result /= Void feature -- Platform Operating_environment: OPERATING_ENVIRONMENT -- Objects available from the operating system -- (from ANY) ensure -- from ANY instance_free: class operating_environment_not_void: Result /= Void feature -- Query contents: ACTIVE_LIST [SD_CONTENT] -- Client programmer's contents managed by Current -- Be careful when adding/pruning item in this list even after twined the list -- There are add/prune actions registered in the list. docker_mediator: detachable SD_DOCKER_MEDIATOR -- Manager for user dragging events -- Maybe Void if user is not dragging require not_destroyed: not is_destroyed focused_content: detachable SD_CONTENT -- Current focused content -- Maybe void require not_destroyed: not is_destroyed has_content (a_content: SD_CONTENT): BOOLEAN -- If Current's `contents` has a_content? require not_destroyed: not is_destroyed is_config_data_path_valid (a_file_name: PATH): BOOLEAN -- Is config data in a_file_name valid? is_destroyed: BOOLEAN -- If current destroyed? is_editor_area_maximized: BOOLEAN -- If editor area maximized? require not_destroyed: not is_destroyed is_editor_area_minimized: BOOLEAN -- If editor area minimized? require not_destroyed: not is_destroyed is_editor_locked: BOOLEAN -- If editor type zone can be docked? is_locked: BOOLEAN -- If tool type zone can be docked? is_unique_title_free_to_use (a_title: READABLE_STRING_GENERAL): BOOLEAN -- If a_title unique in all current contents' unique_title, not already used by other contents? require a_title: a_title /= Void not_destroyed: not is_destroyed main_area_drop_action: EV_PND_ACTION_SEQUENCE -- Main area (editor area) drop acitons -- This actions will be called if there is no editor at all and end user drop -- a stone to blank editor area (grey by default) require not_destroyed: not is_destroyed ensure not_void: Result /= Void restore_editor_area_actions: EV_NOTIFY_ACTION_SEQUENCE -- When whole editor area restored automatically for maximized area, actions will be invoked require not_destroyed: not is_destroyed ensure not_void: Result /= Void restore_editor_area_for_minimized_actions: EV_NOTIFY_ACTION_SEQUENCE -- When whole editor area restored automatically for minimized area, actions will be invoked require not_destroyed: not is_destroyed ensure not_void: Result /= Void tab_drop_actions: detachable SD_PND_ACTION_SEQUENCE note option: stable tool_bar_manager: SD_TOOL_BAR_MANAGER -- Manager that control all tool bars invariant internal_viewport_not_void: internal_viewport /= Void fixed_not_void: fixed_area /= Void main_container_not_void: main_container /= Void inner_container_not_void: inner_containers /= Void and then inner_containers.count >= 1 contents_not_void: contents /= Void tool_bar_manager_not_void: tool_bar_manager /= Void -- from ANY reflexive_equality: standard_is_equal (Current) reflexive_conformance: conforms_to (Current) note library: "SmartDocking: Library of reusable components for Eiffel." copyright: "Copyright (c) 1984-2021, Eiffel Software and others" license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)" source: "[ Eiffel Software 5949 Hollister Ave., Goleta, CA 93117 USA Telephone 805-685-1006, Fax 805-685-6869 Website http://www.eiffel.com Customer support http://support.eiffel.com ]" end -- class SD_DOCKING_MANAGER -- Generated by Eiffel Studio --
For more details: eiffel.org