64 lines
2.4 KiB
Python
64 lines
2.4 KiB
Python
from imgui_bundle import hello_imgui, imgui
|
|
#from app_state import AppState
|
|
from typing import List
|
|
|
|
from .analyzer import *
|
|
|
|
def analyzer_docking_splits() -> List[hello_imgui.DockingSplit]:
|
|
split_main_misc = hello_imgui.DockingSplit()
|
|
split_main_misc.initial_dock = "MainDockSpace"
|
|
split_main_misc.new_dock = "MiscSpace"
|
|
split_main_misc.direction = imgui.Dir.down
|
|
split_main_misc.ratio = 0.25
|
|
|
|
# Then, add a space to the left which occupies a column whose width is 25% of the app width
|
|
split_main_command = hello_imgui.DockingSplit()
|
|
split_main_command.initial_dock = "MainDockSpace"
|
|
split_main_command.new_dock = "CommandSpace"
|
|
split_main_command.direction = imgui.Dir.left
|
|
split_main_command.ratio = 0.2
|
|
|
|
# Then, add CommandSpace2 below MainDockSpace
|
|
split_main_command2 = hello_imgui.DockingSplit()
|
|
split_main_command2.initial_dock = "MainDockSpace"
|
|
split_main_command2.new_dock = "CommandSpace2"
|
|
split_main_command2.direction = imgui.Dir.down
|
|
split_main_command2.ratio = 0.25
|
|
|
|
splits = [split_main_misc, split_main_command, split_main_command2]
|
|
return splits
|
|
|
|
def set_analyzer_layout(app_state) -> List[hello_imgui.DockableWindow]:
|
|
student_selector = hello_imgui.DockableWindow()
|
|
student_selector.label = "Students"
|
|
student_selector.dock_space_name = "CommandSpace"
|
|
student_selector.gui_function = lambda: student_list(app_state)
|
|
|
|
student_info = hello_imgui.DockableWindow()
|
|
student_info.label = "Student Analyzer"
|
|
student_info.dock_space_name = "MainDockSpace"
|
|
student_info.gui_function = lambda: student_graph(app_state)
|
|
|
|
sex_info = hello_imgui.DockableWindow()
|
|
sex_info.label = "Analyze by Gender"
|
|
sex_info.dock_space_name = "MainDockSpace"
|
|
sex_info.gui_function = lambda: sex_graph(app_state)
|
|
|
|
student_ranking = hello_imgui.DockableWindow()
|
|
student_ranking.label = "Ranking"
|
|
student_ranking.dock_space_name = "MainDockSpace"
|
|
student_ranking.gui_function = lambda: ranking(app_state)
|
|
|
|
return [
|
|
student_selector,
|
|
student_info, sex_info,
|
|
student_ranking,
|
|
]
|
|
|
|
def analyzer_layout(app_state) -> hello_imgui.DockingParams:
|
|
docking_params = hello_imgui.DockingParams()
|
|
docking_params.layout_name = "Analyzer"
|
|
docking_params.docking_splits = analyzer_docking_splits()
|
|
docking_params.dockable_windows = set_analyzer_layout(app_state)
|
|
return docking_params
|