Solve #168 Added button to open the source code of current example

This commit is contained in:
Insality 2022-02-28 22:02:13 +02:00
parent ac72c172fe
commit bd0c5545ae
2 changed files with 196 additions and 21 deletions

View File

@ -1073,6 +1073,171 @@ nodes {
text_leading: 1.0 text_leading: 1.0
text_tracking: 0.0 text_tracking: 0.0
} }
nodes {
position {
x: 240.0
y: -35.0
z: 0.0
w: 1.0
}
rotation {
x: 0.0
y: 0.0
z: 0.0
w: 1.0
}
scale {
x: 1.0
y: 1.0
z: 1.0
w: 1.0
}
size {
x: 200.0
y: 100.0
z: 0.0
w: 1.0
}
color {
x: 1.0
y: 1.0
z: 1.0
w: 1.0
}
type: TYPE_TEMPLATE
id: "button_code"
parent: "panel_top"
layer: "image_top"
inherit_alpha: true
alpha: 1.0
template: "/example/templates/button.gui"
template_node_child: false
}
nodes {
position {
x: 0.0
y: 0.0
z: 0.0
w: 1.0
}
rotation {
x: 0.0
y: 0.0
z: 0.0
w: 1.0
}
scale {
x: 1.0
y: 1.0
z: 1.0
w: 1.0
}
size {
x: 80.0
y: 50.0
z: 0.0
w: 1.0
}
color {
x: 1.0
y: 1.0
z: 1.0
w: 1.0
}
type: TYPE_BOX
blend_mode: BLEND_MODE_ALPHA
texture: "kenney/button_blue"
id: "button_code/button"
xanchor: XANCHOR_NONE
yanchor: YANCHOR_NONE
pivot: PIVOT_CENTER
adjust_mode: ADJUST_MODE_FIT
parent: "button_code"
layer: "image_top"
inherit_alpha: true
slice9 {
x: 15.0
y: 15.0
z: 15.0
w: 15.0
}
clipping_mode: CLIPPING_MODE_NONE
clipping_visible: true
clipping_inverted: false
alpha: 1.0
overridden_fields: 4
overridden_fields: 20
template_node_child: true
size_mode: SIZE_MODE_MANUAL
}
nodes {
position {
x: 0.0
y: 3.0
z: 0.0
w: 1.0
}
rotation {
x: 0.0
y: 0.0
z: 0.0
w: 1.0
}
scale {
x: 0.5
y: 0.5
z: 1.0
w: 1.0
}
size {
x: 130.0
y: 50.0
z: 0.0
w: 1.0
}
color {
x: 1.0
y: 1.0
z: 1.0
w: 1.0
}
type: TYPE_TEXT
blend_mode: BLEND_MODE_ALPHA
text: "CODE"
font: "game"
id: "button_code/text"
xanchor: XANCHOR_NONE
yanchor: YANCHOR_NONE
pivot: PIVOT_CENTER
outline {
x: 1.0
y: 1.0
z: 1.0
w: 1.0
}
shadow {
x: 0.101960786
y: 0.2
z: 0.6
w: 1.0
}
adjust_mode: ADJUST_MODE_FIT
line_break: false
parent: "button_code/button"
layer: "text_top"
inherit_alpha: true
alpha: 1.0
outline_alpha: 0.0
shadow_alpha: 0.78
overridden_fields: 1
overridden_fields: 3
overridden_fields: 4
overridden_fields: 8
overridden_fields: 20
template_node_child: true
text_leading: 1.0
text_tracking: 0.0
}
nodes { nodes {
position { position {
x: 0.0 x: 0.0

View File

@ -3,6 +3,7 @@ local druid = require("druid.druid")
local monarch = require("monarch.monarch") local monarch = require("monarch.monarch")
local default_style = require("druid.styles.default.style") local default_style = require("druid.styles.default.style")
local function back_to_lobby(self) local function back_to_lobby(self)
if gui.set_enabled(self.button_menu.node) then if gui.set_enabled(self.button_menu.node) then
return return
@ -11,6 +12,9 @@ local function back_to_lobby(self)
monarch.back() monarch.back()
gui.set_enabled(gui.get_node("C_Anchor"), true) gui.set_enabled(gui.get_node("C_Anchor"), true)
gui.set_enabled(self.button_menu.node, false) gui.set_enabled(self.button_menu.node, false)
gui.set_enabled(self.button_code.node, false)
gui.set_enabled(self.button_api.node, true)
self.text_header:set_to("Druid") self.text_header:set_to("Druid")
end end
@ -22,6 +26,8 @@ local function show_scene(self, scene_name, text_header)
monarch.show(scene_name) monarch.show(scene_name)
gui.set_enabled(gui.get_node("C_Anchor"), false) gui.set_enabled(gui.get_node("C_Anchor"), false)
gui.set_enabled(self.button_menu.node, true) gui.set_enabled(self.button_menu.node, true)
gui.set_enabled(self.button_code.node, true)
gui.set_enabled(self.button_api.node, false)
self.text_header:set_to(text_header) self.text_header:set_to(text_header)
end end
@ -38,9 +44,11 @@ local function init_top_panel(self)
sys.open_url("https://insality.github.io/druid/") sys.open_url("https://insality.github.io/druid/")
end) end)
-- self.button_code = self.druid:new_button("button_code/button", function() self.button_code = self.druid:new_button("button_code/button", function()
-- sys.open_url("https://github.com/Insality/druid/blob/develop/example/examples/general/overview/overview.gui_script") local example_url = string.format("https://github.com/Insality/druid/blob/master/example/examples%s", self.current_script_url)
-- end) sys.open_url(example_url)
end)
gui.set_enabled(self.button_code.node, false)
self.text_header = self.druid:new_text("text_header", "Druid") self.text_header = self.druid:new_text("text_header", "Druid")
end end
@ -61,7 +69,7 @@ local function get_title(self, text)
end end
local function get_button(self, text, scene_name) local function get_button(self, text, scene_name, script_url)
local prefab = gui.get_node("prefab_button") local prefab = gui.get_node("prefab_button")
local nodes = gui.clone_tree(prefab) local nodes = gui.clone_tree(prefab)
local root = nodes["prefab_button"] local root = nodes["prefab_button"]
@ -70,6 +78,7 @@ local function get_button(self, text, scene_name)
self.scene_names[scene_name] = text self.scene_names[scene_name] = text
self.druid:new_button(root, function() self.druid:new_button(root, function()
self.current_script_url = script_url
show_scene(self, scene_name, text) show_scene(self, scene_name, text)
end):set_click_zone(self.lobby_scroll.view_node) end):set_click_zone(self.lobby_scroll.view_node)
@ -100,21 +109,21 @@ local function init_lobby(self)
self.lobby_scroll:bind_grid(self.lobby_grid) self.lobby_scroll:bind_grid(self.lobby_grid)
self.lobby_grid:add(get_title(self, "General examples")) self.lobby_grid:add(get_title(self, "General examples"))
self.lobby_grid:add(get_button(self, "Overview", "general_overview")) self.lobby_grid:add(get_button(self, "Overview", "general_overview", "/general/overview/overview.gui_script"))
self.lobby_grid:add(get_button(self, "Buttons", "general_buttons")) self.lobby_grid:add(get_button(self, "Buttons", "general_buttons", "/general/buttons/buttons.gui_script"))
self.lobby_grid:add(get_button(self, "Sliders", "general_sliders")) self.lobby_grid:add(get_button(self, "Sliders", "general_sliders", "/general/sliders/sliders.gui_script"))
self.lobby_grid:add(get_button(self, "Scrolls", "general_scroll")) self.lobby_grid:add(get_button(self, "Scrolls", "general_scroll", "/general/scroll/scroll.gui_script"))
self.lobby_grid:add(get_button(self, "Grids", "general_grid")) self.lobby_grid:add(get_button(self, "Grids", "general_grid", "/general/grid/grid.gui_script"))
self.lobby_grid:add(get_button_disabled(self, "Progress Bar", "scene_name")) self.lobby_grid:add(get_button_disabled(self, "Progress Bar", "scene_name"))
self.lobby_grid:add(get_button(self, "Data List", "general_data_list")) self.lobby_grid:add(get_button(self, "Data List", "general_data_list", "/general/data_list/data_list.gui_script"))
self.lobby_grid:add(get_button_disabled(self, "Checkboxes", "scene_name")) self.lobby_grid:add(get_button_disabled(self, "Checkboxes", "scene_name"))
self.lobby_grid:add(get_button(self, "Input text", "general_input")) self.lobby_grid:add(get_button(self, "Input text", "general_input", "/general/input/input.gui_script"))
self.lobby_grid:add(get_button_disabled(self, "Swipe", "scene_name")) self.lobby_grid:add(get_button_disabled(self, "Swipe", "scene_name"))
self.lobby_grid:add(get_button_disabled(self, "Drag", "scene_name")) self.lobby_grid:add(get_button_disabled(self, "Drag", "scene_name"))
self.lobby_grid:add(get_title(self, "Texts")) self.lobby_grid:add(get_title(self, "Texts"))
self.lobby_grid:add(get_button(self, "Texts", "texts_general")) self.lobby_grid:add(get_button(self, "Texts", "texts_general", "/texts/texts_general/texts_general.gui_script"))
self.lobby_grid:add(get_button(self, "Adjust types", "texts_adjust")) self.lobby_grid:add(get_button(self, "Adjust types", "texts_adjust", "/texts/texts_adjust/texts_adjust.gui_script"))
self.lobby_grid:add(get_button_disabled(self, "Lang Text", "texts_lang_text")) self.lobby_grid:add(get_button_disabled(self, "Lang Text", "texts_lang_text"))
self.lobby_grid:add(get_title(self, "Scrolls")) self.lobby_grid:add(get_title(self, "Scrolls"))
@ -123,25 +132,25 @@ local function init_lobby(self)
self.lobby_grid:add(get_button_disabled(self, "Without inertion", "scroll_scene")) self.lobby_grid:add(get_button_disabled(self, "Without inertion", "scroll_scene"))
self.lobby_grid:add(get_title(self, "Grids")) self.lobby_grid:add(get_title(self, "Grids"))
self.lobby_grid:add(get_button(self, "Static grid", "grid_static_grid")) self.lobby_grid:add(get_button(self, "Static grid", "grid_static_grid", "/grid/static_grid/static_grid.gui_script"))
self.lobby_grid:add(get_button(self, "Static with dynamic pos", "grid_static_grid_dynamic_pos")) self.lobby_grid:add(get_button(self, "Static with dynamic pos", "grid_static_grid_dynamic_pos", "/grid/static_grid_dynamic_pos/static_grid_dynamic_pos.gui_script"))
self.lobby_grid:add(get_button_disabled(self, "Dynamic grid", "scroll_scene")) self.lobby_grid:add(get_button_disabled(self, "Dynamic grid", "scroll_scene"))
self.lobby_grid:add(get_button_disabled(self, "Scroll binding", "scroll_scene")) self.lobby_grid:add(get_button_disabled(self, "Scroll binding", "scroll_scene"))
self.lobby_grid:add(get_button(self, "Add/Remove animations", "grid_animations")) self.lobby_grid:add(get_button(self, "Add/Remove animations", "grid_animations", "/grid/grid_animations/grid_animations.gui_script"))
self.lobby_grid:add(get_title(self, "Data list / Infinity scroll")) self.lobby_grid:add(get_title(self, "Data list / Infinity scroll"))
self.lobby_grid:add(get_button(self, "With static grid", "data_list_static_grid")) self.lobby_grid:add(get_button(self, "With static grid", "data_list_static_grid", "/data_list/static_grid/static_grid.gui_script"))
self.lobby_grid:add(get_button(self, "With dynamic grid", "data_list_dynamic_grid")) self.lobby_grid:add(get_button(self, "With dynamic grid", "data_list_dynamic_grid", "/data_list/dynamic_grid/dynamic_grid.gui_script"))
self.lobby_grid:add(get_button_disabled(self, "Add/remove elements", "data_list_add_remove_nodes")) self.lobby_grid:add(get_button_disabled(self, "Add/remove elements", "data_list_add_remove_nodes"))
self.lobby_grid:add(get_button(self, "Navigate over elements", "data_list_navigate")) self.lobby_grid:add(get_button(self, "Navigate over elements", "data_list_navigate", "/data_list/navigate/navigate.gui_script"))
self.lobby_grid:add(get_title(self, "System")) self.lobby_grid:add(get_title(self, "System"))
self.lobby_grid:add(get_button_disabled(self, "Styles")) self.lobby_grid:add(get_button_disabled(self, "Styles"))
self.lobby_grid:add(get_button(self, "Whitelist / Blacklist", "system_whitelist_blacklist")) self.lobby_grid:add(get_button(self, "Whitelist / Blacklist", "system_whitelist_blacklist", "/system/whitelist_blacklist/whitelist_blacklist.gui_script"))
self.lobby_grid:add(get_button_disabled(self, "Custom components")) self.lobby_grid:add(get_button_disabled(self, "Custom components"))
self.lobby_grid:add(get_button_disabled(self, "Component interests")) self.lobby_grid:add(get_button_disabled(self, "Component interests"))
self.lobby_grid:add(get_button_disabled(self, "Nested Druids")) self.lobby_grid:add(get_button_disabled(self, "Nested Druids"))
self.lobby_grid:add(get_button(self, "Message input", "system_message_input")) self.lobby_grid:add(get_button(self, "Message input", "system_message_input", "/system/message_input/message_input.gui_script"))
self.lobby_grid:add(get_button_disabled(self, "Input priority")) self.lobby_grid:add(get_button_disabled(self, "Input priority"))
end end
@ -168,6 +177,7 @@ function init(self)
init_top_panel(self) init_top_panel(self)
init_lobby(self) init_lobby(self)
self.current_script_url = ""
timer.delay(0, false, check_url) timer.delay(0, false, check_url)
end end