tool extends Control onready var master_tree = get_node("../MasterTreeContainer/MasterTree") var current_page:String = "" var previous_pages = [] var next_pages = [] signal open_link(link) onready var nodes = { "DocsViewer":$DocsViewer, "Next":null, "Previous":null, } func _ready(): set("custom_styles/panel", get_stylebox("Background", "EditorStyles")) var _scale = get_constant("inspector_margin", "Editor") _scale = _scale * 0.125 nodes["DocsViewer"].MarkdownParser.editor_scale = _scale nodes["Next"] = find_parent("EditorView").get_node("ToolBar/DocumentationNavigation/Next") nodes["Next"].connect("pressed", self, "open_next_page") nodes["Previous"] = find_parent("EditorView").get_node("ToolBar/DocumentationNavigation/Previous") nodes["Previous"].connect("pressed", self, "open_previous_page") func load_page(page): if current_page: previous_pages.push_back(current_page) nodes["Previous"].disabled = false next_pages = [] current_page = page nodes["DocsViewer"].load_page(current_page) nodes["Next"].disabled = true func open_previous_page(): if len(previous_pages): next_pages.push_front(current_page) current_page = previous_pages.pop_back() nodes["DocsViewer"].load_page(current_page) nodes["Previous"].disabled = len(previous_pages) == 0 nodes["Next"].disabled = false func open_next_page(): if len(next_pages): previous_pages.push_back(current_page) current_page = next_pages.pop_front() nodes["DocsViewer"].load_page(current_page) nodes["Next"].disabled = len(next_pages) == 0 nodes["Previous"].disabled = false func toggle_editing(): nodes["DocsViewer"].toggle_editing() func _on_DocsViewer_open_non_html_link(link, section): master_tree.select_documentation_item(link)