public Dev_Hierarchy_Browser() { onShown += (uiControl c) => { Refresh(); }; Autosize = true; Autosize_Method = AutosizeMethod.FILL; list = uiControl.Create <uiListView>(this); list.Set_Width(300); list.Autosize = false; //list.CONFIRM_LAYOUT = true; info_panel = uiControl.Create <uiPanel>(this); info_panel.Scrollable = false; info_panel.Autosize = true; info_panel.Autosize_Method = AutosizeMethod.FILL; info_panel.onLayout += Info_panel_onLayout; info_panel.Set_Padding(3); lbl_components = Create <uiText>(info_panel); lbl_components.Text = "Scripts"; var_components = Create <uiListView>(info_panel); //var_components.Autosize = false; var_child_count = Create <uiVarText>(info_panel); var_child_count.Text = "Children: "; }
public Dev_SpawnMenu() { Autosize = true; Autosize_Method = AutosizeMethod.FILL; onLayout += Layout; // This list will contain different categories of spawnable items cList = uiControl.Create <uiListView>(this); cList.Set_Margin(0, 4, 0, 0); cList.Set_Width(130f); catPanel = uiControl.Create <uiTabPanel>(this); foreach (SpawnCategory cty in Enum.GetValues(typeof(SpawnCategory))) { if (cty == SpawnCategory.NONE) { continue; } string catStr = Enum.GetName(typeof(SpawnCategory), cty); var catBtn = uiControl.Create <uiListItem>(String.Concat("category_", catStr.ToLower()), cList); catBtn.Title = catStr.ToLower().CapitalizeFirst(); catBtn.Description = null; uiTab cTab = null; switch (cty) { case SpawnCategory.SLIMES: cTab = Create_Spawn_Category_Menu(catPanel, cty, Ident.ALL_SLIMES); break; case SpawnCategory.PLORTS: cTab = Create_Spawn_Category_Menu(catPanel, cty, Identifiable.PLORT_CLASS); break; case SpawnCategory.ANIMALS: cTab = Create_Spawn_Category_Menu(catPanel, cty, Ident.ALL_ANIMALS); break; case SpawnCategory.FRUITS: cTab = Create_Spawn_Category_Menu(catPanel, cty, Identifiable.FRUIT_CLASS); break; case SpawnCategory.VEGETABLES: cTab = Create_Spawn_Category_Menu(catPanel, cty, Identifiable.VEGGIE_CLASS); break; default: SLog.Info("Unhandled Spawn menu category: {0}", catStr); break; } catBtn.onSelected += (uiControl c) => { Sound.Play(SoundId.BTN_CLICK); cTab.Select(); }; } }
private uiTab Create_Spawn_Category_Menu(uiTabPanel container, SpawnCategory cty, HashSet <Identifiable.Id> ITEMS) { // This list will just have a bunch of pictures of slimes that can be spawned string catStr = Enum.GetName(typeof(SpawnCategory), cty); float ICON_SIZE = 100f; uiTab tab = container.Add_Tab(catStr); uiListView list = uiControl.Create <uiListView>(catStr, tab); list.Layout = new Layout_IconList(ICON_SIZE); list.Autosize_Method = AutosizeMethod.FILL; list.Autosize = true; foreach (Identifiable.Id ID in ITEMS) { Sprite sprite = null; try { sprite = Directors.lookupDirector.GetIcon(ID); } catch (KeyNotFoundException) { continue; } catch (Exception ex) { SLog.Debug(ex); } if (sprite == null) { continue; // Exclude anything without an icon out of respect for the devs, we will just assume things without an icon aren't in the game just yet I suppose... } var itm = uiControl.Create <uiListIcon>(list); if (sprite != null) { itm.Icon = sprite.texture; } else { itm.Icon = TextureHelper.icon_unknown; } itm.Title = Language.Translate(ID); itm.Set_Size(ICON_SIZE, ICON_SIZE); itm.onClicked += (uiControl c) => { Dev_Spawn_Item(ID); }; itm.Selectable = false; } return(tab); }
public DevMenu() { onLayout += DevMenu_onLayout; Title = "DevMenu"; Set_Size(800, 600); Center(); list = uiControl.Create <uiListView>(this); list.alignTop(); list.alignLeftSide(); list.Set_Margin(0, 4, 0, 0); tabPanel = uiControl.Create <uiTabPanel>(this); tabPanel.Autosize_Method = AutosizeMethod.FILL; //tabPanel.local_style.normal.background = null; foreach (var kvp in Menus) { string eStr = Enum.GetName(typeof(Dev_Menu_Type), kvp.Key); var tab = tabPanel.Add_Tab(); tab.Scrollable = false; Menus[kvp.Key].Tab = tab; Menus[kvp.Key].Type = kvp.Key; switch (kvp.Key) { case Dev_Menu_Type.HIERARCHY: Create <Dev_Hierarchy_Browser>(tab); break; case Dev_Menu_Type.SPAWN: Create <Dev_SpawnMenu>(tab); break; default: SLog.Warn("Unhandled Dev_Menu type: {0}", eStr); break; } var itm = uiControl.Create <uiListItem>(); itm.Title = kvp.Value.Title; itm.Description = kvp.Value.Description; itm.onSelected += (uiControl c) => { Set_Active_Menu(kvp.Value.Type); }; list.Add(itm); } }
public uiUpdatesAvailable() : base() { Title = "Updates Available"; Set_Size(300, 450); Center(); contentPanel.onLayout += ContentPanel_onLayout; message.Text = "Updates are available!\nThe files which will be updated are listed below."; message.TextAlign = TextAnchor.UpperCenter; list = Create <uiListView>("list", contentPanel); //list.Set_Background(new UnityEngine.Color(0f, 0f, 0f, 0.2f)); //list.Autosize_Method = AutosizeMethod.FILL; list.Autosize = false; //list.Set_Background(Color.clear); list.disableBG = true; }
private void init() { Clickable = true; Selectable = true; Autosize_Method = AutosizeMethod.BLOCK; Autosize = true; onClicked += UiList_TreeNode_onClicked; Util.Set_BG_Color(local_style.normal, Color.clear); Util.Set_BG_Color(local_style.hover, new Color(0.2f, 0.2f, 0.2f, 0.4f)); Set_Padding(2); Set_Margin(0); title = uiControl.Create <uiText>("title"); Add_Control(title); title.disableBG = true; title.TextSize = 12; icon = Create <uiIcon>(); Add_Control(icon); icon.Set_Margin(0, 4); collapser = uiControl.Create <uiCollapser>(); Add_Control(collapser); collapser.Autosize_Method = AutosizeMethod.BLOCK; collapser.Autosize = true; collapser.Set_Margin(6, 0, 0, 0); collapser.Set_Padding(0); collapser.onCollapsed += (uiCollapser) => { onCollapsed?.Invoke(this); update_icon(); }; collapser.onExpanded += (uiCollapser) => { onExpanded?.Invoke(this); update_icon(); }; collapser.Collapse(); list = uiControl.Create <uiListView>(collapser); list.Scrollable = false; list.Autosize_Method = AutosizeMethod.BLOCK; list.Autosize = true; list.disableBG = true; }
public PluginManager() { onLayout += PluginManager_onLayout; Title = "Plugin Manager"; Set_Size(650, 400); Center(); onShown += PluginManager_onShown; onHidden += PluginManager_onHidden; list = Create <uiListView>(this); list.Set_Width(200f); list.Set_Margin(2, 0, 2, 2); top_wrapper = Create <uiWrapperPanel>(this); top_wrapper.Autosize_Method = AutosizeMethod.BLOCK; top_wrapper.Set_Margin(0, 0, 0, 2); top_wrapper.Set_Padding(2); top_wrapper.onLayout += Top_wrapper_onLayout; btn_store = Create <uiIconButton>(top_wrapper); btn_store.Text = "Plugin Store"; btn_store.Icon = TextureHelper.icon_arrow_left; btn_store.Border.type = uiBorderType.NONE; btn_store.Border.normal.color = Color.white; btn_store.Border.normal.size = new RectOffset(1, 1, 1, 1); btn_store.onClicked += (uiControl c) => { uiWindow.Switch(PluginStore.Instance); }; btn_donate = Create <uiIcon>(top_wrapper); btn_donate.Text = null; btn_donate.Image = (Texture2D)TextureHelper.Load_From_Resource("donate_btn.png", "SR_PluginLoader", (TextureOpFlags.NO_MIPMAPPING & TextureOpFlags.NO_WRAPPING)); btn_donate.Image_MouseOver = Util.Tint_Texture((Texture2D)TextureHelper.Load_From_Resource("donate_btn.png", "SR_PluginLoader", (TextureOpFlags.NO_MIPMAPPING & TextureOpFlags.NO_WRAPPING)), new Color(0.7f, 0.7f, 0.7f)); btn_donate.Border.type = uiBorderType.NONE; btn_donate.onClicked += (uiControl c) => { Process.Start("https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=DYGPA5XA4MWC2"); }; //CONTROL PANEL control_panel = Create <uiCollapser>("control_panel", this); control_panel.Autosize_Method = AutosizeMethod.BLOCK; control_panel.Set_Margin(2, 2, 2, 0); control_panel.Set_Padding(2); Util.Set_BG_Color(control_panel.local_style.normal, new Color(0f, 0f, 0f, 0.2f)); control_panel.onLayout += Control_panel_onLayout; control_panel.Collapse(); pl_toggle = Create <uiToggle>("pl_toggle", control_panel); pl_toggle.onChange += Pl_toggle_onChange; btn_copy_json = Create <uiButton>("copy_json", control_panel); btn_copy_json.Text = "Copy Json"; btn_copy_json.Set_Margin(3, 0); btn_copy_json.onClicked += Btn_copy_json_onClicked; // TABBED PANEL tabPanel = Create <uiTabPanel>(this); tabPanel.Autosize_Method = AutosizeMethod.FILL; tabPanel.disableBG = true; tabPanel.Set_Margin(2);// This margin gives us that light colored area surrounding the list and tabpanel pl_tab = tabPanel.Add_Tab(PLUGIN_TAB_NAME); tabPanel.CurrentTab.onLayout += tabPanel_onLayout; tabPanel.onChanged += TabPanel_onChanged; pl_tab.Set_Padding(3);// so we can distinguish where the plugin thumbnail's borders are // PLUGIN ERRORS PANEL pl_errors = Create <uiCollapser>(pl_tab); pl_errors.onLayout += Clps_errors_onLayout; pl_errors.Collapse(); var err_ico = Create <uiIcon>("err_ico", pl_errors); err_ico.Image = TextureHelper.icon_alert; err_ico.Set_Height(26); var err_lbl = Create <uiText>("err_lbl", pl_errors); err_lbl.TextColor = Color.red; err_lbl.Text = "Plugin experienced errors while loading!"; err_lbl.TextAlign = TextAnchor.MiddleLeft; err_lbl.Set_Margin(2, 0, 0, 0); // PLUGIN INFO pl_title = Create <uiText>("pl_title", pl_tab); pl_title.local_style.fontSize = 22; pl_title.local_style.fontStyle = FontStyle.Bold; pl_auth = Create <uiText>("pl_author", pl_tab); pl_vers = Create <uiText>("pl_vers", pl_tab); pl_desc = Create <uiTextArea>("pl_desc", pl_tab); pl_thumb = Create <uiIcon>("pl_thumb", pl_tab); pl_thumb.Border.normal.color = new Color(0f, 0f, 0f, 0.3f); pl_desc.Set_Margin(2); pl_desc.Set_Background(new Color(0.1f, 0.1f, 0.1f, 0.4f)); pl_desc.Set_Padding(2); pl_desc.Border.normal.color = new Color(0f, 0f, 0f, 0.3f); pl_desc.Autosize_Method = AutosizeMethod.BLOCK; // INSTRUCTIONS TAB tab_ins = tabPanel.Add_Tab(INSTRUCTION_TAB_NAME); tabPanel.CurrentTab.onLayout += InstructionsTab_onLayout; ins_title = Create <uiTextArea>(tabPanel); ins_title.Text = "Settings"; ins_title.TextSize = 20; ins_title.TextStyle = FontStyle.Bold; ins_text = Create <uiTextArea>(tabPanel); ins_text.Text = "Select a plugin from the list on the left to manage it's settings.\nOr, to browse more plugins for download, click the \"Plugin Store\" button at the top left of this window!"; ins_text.TextStyle = FontStyle.Italic; ins_text.Autosize = true; tab_need_plugins = tabPanel.Add_Tab(NEED_PLUGINS_TAB_NAME); tabPanel.CurrentTab.onLayout += NeedPluginsTab_onLayout; nop_wrapper = Create <uiWrapperPanel>(tabPanel); nop_wrapper.onLayout += Nop_Wrapper_onLayout; ins_no_plugins_text = Create <uiTextArea>(nop_wrapper); ins_no_plugins_text.Text = "You do not have any plugins installed!\nVisit the plugin store to find and install new plugins."; ins_no_plugins_text.TextSize = 16; ins_no_plugins_text.TextColor = new Color(1f, 0.1f, 0.1f, 0.9f); ins_no_plugins_text.TextStyle = FontStyle.Bold; ins_no_plugins_text.TextAlign = TextAnchor.UpperCenter; ins_no_plugins_text.Autosize = true; }
public PluginStore() { onLayout += PluginStore_onLayout; Title = "Plugin Store"; Set_Size(800, 600); Center(); lbl_pl_count = Create <uiVarText>(this); lbl_pl_count.Text = "Total Plugins:"; lbl_pl_count.Value = "0"; lbl_pl_count.text_style.fontStyle = FontStyle.Bold; search = uiControl.Create <uiTextbox>(this); search.onChange += Search_onChange; lbl_search = uiControl.Create <uiText>(this); lbl_search.Text = "Search "; btn_config = Create <uiIconButton>(this); btn_config.Text = "Settings"; btn_config.Icon = TextureHelper.icon_arrow_left; btn_config.Border.type = uiBorderType.NONE; //btn_config.Skin = uiSkinPreset.FLAT; btn_config.Border.normal.color = Color.white; btn_config.Border.normal.size = new RectOffset(1, 1, 1, 1); btn_config.onClicked += Btn_config_onClicked; tabPanel = Create <uiTabPanel>(this); tabPanel.Add_Tab(MAIN_TAB_NAME); tabPanel.CurrentTab.onLayout += InfoTab_onLayout; tabPanel.Set_Margin(2);// This margin gives us that light colored area surrounding the list and tabpanel pl_title = uiControl.Create <uiText>(tabPanel); pl_title.Text = ""; var sty = new GUIStyle(pl_title.Style); sty.fontStyle = FontStyle.Bold; sty.fontSize = 22; pl_title.Set_Style(sty); pl_auth = uiControl.Create <uiText>(tabPanel); pl_auth.Text = ""; pl_desc = uiControl.Create <uiTextArea>(tabPanel); pl_desc.Text = ""; pl_desc.Set_Padding(2); pl_desc.Border.normal.color = new Color(0f, 0f, 0f, 0.3f); install_btn = uiControl.Create <uiButton>(tabPanel); install_btn.local_style.fontSize = 18; install_btn.local_style.fontStyle = FontStyle.Bold; install_btn.Text = "Download"; install_btn.onClicked += Install_btn_onClicked; Color blue = new Color(0.2f, 0.4f, 1f, 1f); Util.Set_BG_Gradient(install_btn.local_style.normal, 64, GRADIENT_DIR.TOP_BOTTOM, blue, new Color(0.5f, 0.5f, 0.5f, 1f) * blue); // INSTRUCTIONS TAB tabPanel.Add_Tab(INSTRUCTION_TAB_NAME); tabPanel.CurrentTab.onLayout += InstructionsTab_onLayout;; ins_title = Create <uiTextArea>(tabPanel); ins_title.Text = "Welcome"; ins_title.TextSize = 22; ins_title.TextStyle = FontStyle.Bold; ins_text = Create <uiTextArea>(tabPanel); ins_text.Text = "Here you can find and download new plugins.\nTo get started select a plugin from the list on the left to see more information about it.\nWhen you find a plugin you wish to install you can do so by clicking the \"Install\" button!"; ins_text.TextStyle = FontStyle.Italic; ins_text.TextAlign = TextAnchor.UpperCenter; ins_text.Autosize = true; statusPanel = Create <uiTabPanel>(this); statusPanel.Set_Width(200); statusPanel.Set_Margin(2, 0, 2, 2); statusPanel.onLayout += StatusPanel_onLayout; loading_tab = statusPanel.Add_Tab("loading_tab"); ld_text = Create <uiTextArea>("ld_text", statusPanel); ld_text.Text = "..."; ld_text.TextSize = 16; ld_text.TextAlign = TextAnchor.MiddleCenter; retry_pl_list_btn = Create <uiButton>(statusPanel); retry_pl_list_btn.Set_Margin(0, 0, 4, 0); retry_pl_list_btn.Text = "Refresh"; retry_pl_list_btn.TextSize = 16; Util.Set_BG_Gradient(retry_pl_list_btn.local_style.normal, 64, GRADIENT_DIR.TOP_BOTTOM, blue, new Color(0.5f, 0.5f, 0.5f, 1f) * blue); retry_pl_list_btn.onClicked += retry_btn_onClicked; retry_pl_list_btn.isVisible = false; statusPanel.CurrentTab.onLayout += CurrentTab_onLayout; plugins_tab = statusPanel.Add_Tab("plugins_tab"); list = Create <uiListView>(plugins_tab); list.disableBG = true; list.Autosize_Method = AutosizeMethod.FILL; list.FloodXY(); loading_tab.Select(); }