Ceci est une ancienne révision du document !
classDiagram
WindowManager ..> DataSheetVirtualDesktop
WindowManager ..> ContextualWindow
WindowManager ..> GameWindow
class WindowManager{
export active_virtual_desktop: int = 0
export default_virtual_desktop_list: Array[DataSheetVirtualDesktop]
export user_virtual_desktop_list: Array[DataSheetVirtualDesktop]
contextual_window_template: PackedScene
_active_contextual_window: ContextualWindow
_contextual_window_enabled: bool = false
_gui_input(event) -> void
_ready() -> void
_save_window_parameter(window_name: String) -> void
_place_content(content_node_placeholder:Control, new_content: Control) -> void
_apply_user_preference(default_system_parameters: DataSheetVirtualDesktop, user_parameters: DataSheetVirtualDesktop) -> DataSheetVirtualDesktop
_on_contextual_window(window: GameWindow, contextual_elements: Array, active:bool) -> void
_window_build(window: DataSheetWindow, window_theme: DataSheetClientTheme) -> void
_window_contextual_build(window: GameWindow, contextual_elements: Array) -> void
_window_contextual_place(margin: Vector2 = Vector2(16, 16)) -> void
}
class DataSheetVirtualDesktop{
export windows: Array[DataSheetWindow]
export client_theme: DataSheetClientTheme
}
class ContextualWindow{
onready contextual_elements: VBoxContainer
onready opacity_button: Button
onready lock_button: Button
onready help_button: Button
add_contextual_elements(context: Array) -> void
}
class GameWindow{
signal window_closed
signal contextual_window
enum ResizeDirection
export icon_image: Texture2D
export icon_image: Texture2D
export maxify_icon: Texture2D
export header_on: bool
export footer_on: bool
export accept_resize: bool
export has_contextual_window: bool
export has_contextual_opacity: bool
export has_contextual_lock: bool
export has_contextual_help: bool
contextual_elements: Array = []
_is_resizing: bool = false
_is_moving: bool = false
_resize_direction: ResizeDirection = ResizeDirection.NONE
_initial_mouse_position: Vector2
_initial_geometry: Rect2
_is_maxed: bool = true
_maxed_size: float = size.y
_store_mini_height: float = custom_minimum_size.x
onready header_bar: PanelContainer
onready icon: TextureRect
onready header_title: Label
onready header_buttons: HBoxContainer
onready content: Control
onready minmax: Button
onready close: Button
onready footer_bar: PanelContainer
onready contextual_info: Label
onready outer_border: Panel
_gui_input(event) -> void
_ready() -> void
_process(_delta) -> void
set_window_icon(icon_path: String) -> void
_close_window()
_get_resize_direction(local_mouse_pos: Vector2, border_width: int = 4) -> ResizeDirection
_handle_resize(current_mouse_global: Vector2) -> void
_mini_max() -> void
_populate_contextual_window() -> void
_update_mouse_icon() -> void
_check_for_content_signal(signal_name: String) -> bool
_on_contextual_footer_changed(text:String) -> void
_on_mouse_entered() -> void
_on_mouse_exited() -> void
}





