public Plugin_StoreItem() : base(uiControlType.Panel)
        {
            Set_Padding(4, 2, 2, 2);
            Set_Margin(2, 2, 2, 2);
            //Set_Size(DEFAULT_WIDTH, DEFAULT_HEIGHT);
            Autosize_Method = AutosizeMethod.BLOCK;

            Util.Set_BG_Color(local_style.normal, new Color32(32, 32, 32, 200));
            Util.Set_BG_Color(local_style.hover, new Color32(64, 64, 64, 255));
            const float b = 0.5f;

            Border.normal.color = new Color(b, b, b, 1f);

            const float g = 0.8f;

            TextColor       = new Color(g, g, g, 1f);
            TextColor_Hover = Color.white;
            //Utility.Set_BG_Color(local_style.hover, new Color32(32, 40, 60, 255));

            uiText name = uiControl.Create <uiText>("name", this);

            name.Clone_Text_Style(this);
            name.TextStyle       = FontStyle.Bold;
            name.TextSize        = 14;
            name.Autosize_Method = AutosizeMethod.BLOCK;

            uiText auth = uiControl.Create <uiText>("author", this);

            auth.Clone_Text_Style(this);
            auth.TextStyle       = FontStyle.Normal;
            auth.TextSize        = 12;
            auth.Autosize_Method = AutosizeMethod.BLOCK;

            download_info = Create <uiCollapser>("download_info", this);
            download_info.Size_Height_Collapsed = 0;
            download_info.onLayout += Download_info_onLayout;
            download_info.Set_Margin(0);
            download_info.Set_Padding(0);
            //Util.Set_BG_Color(download_info.local_style.normal, new Color(0.1f, 0.5f, 1.0f));
            download_info.Set_Collapsed(true);

            progress_bar = Create <uiProgressBar>("progress", download_info);
            progress_bar.Set_Height(4f);
            progress_bar.Value = 0;
            progress_bar.show_progress_text = false;
            Util.Set_BG_Color(progress_bar.prog_bar.local_style.normal, new Color(0.1f, 0.5f, 1.0f));
            Util.Set_BG_Color(progress_bar.local_style.normal, new Color(0.1f, 0.1f, 0.1f));


            progress_text = uiControl.Create <uiVarText>("progress_text", download_info);
            progress_text.Clone_Text_Style(this);
            progress_text.TextAlign = TextAnchor.LowerRight;
            progress_text.TextStyle = FontStyle.Normal;
            progress_text.TextSize  = 12;
            progress_text.Text      = "Downloading:";
            //progress_text.Text = "0%";
        }
        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;
        }
Exemplo n.º 3
0
        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;
        }