Exemplo n.º 1
0
        public async Task <StackPanel> GetAddonWidgetViaIDAsync(object sceelibs, ThemeModuleBrush theme)
        {
            StorageFile WidgetFile = await StorageFile.GetFileFromApplicationUriAsync(new Uri(ModuleFolderPath + "widget.json"));

            var widget_content = new StackPanel {
                Padding = new Thickness(5, 0, 10, 0), Orientation = Orientation.Horizontal, Name = "" + ModuleID
            };

            using (var reader = new StreamReader(await WidgetFile.OpenStreamForReadAsync()))
                using (JsonReader JsonReader = new JsonTextReader(reader))
                {
                    try
                    {
                        List <AddonWidget> list = new JsonSerializer().Deserialize <List <AddonWidget> >(JsonReader);
                        if (list != null)
                        {
                            foreach (AddonWidget widget in list)
                            {
                                switch (widget.Type)
                                {
                                case WidgetType.Button:
                                    var new_button = new Button();
                                    new_button.Margin = new Thickness(5, 0, 5, 0);

                                    new_button.Name       = widget.WidgetName + ModuleID; new_button.Style = (Style)Application.Current.Resources["Round_Button"];
                                    new_button.Padding    = new Thickness(0);
                                    new_button.Width      = 25; new_button.Height = 25;
                                    new_button.FontFamily = new Windows.UI.Xaml.Media.FontFamily("Segoe MDL2 Assets");
                                    new_button.Content    = widget.IconButton;
                                    new_button.Foreground = theme.ToolbarColorFont; new_button.Background = new SolidColorBrush(Colors.Transparent);
                                    new_button.Click     += ((e, f) =>
                                    {
                                        Task.Run(() => new AddonExecutor(ModuleID, sceelibs).ExecutePersonalizedFunction(widget.FunctionName));
                                    });

                                    ToolTip ButtonTooltip = new ToolTip();
                                    ButtonTooltip.Content = widget.TooltipText;
                                    ToolTipService.SetToolTip(new_button, ButtonTooltip);

                                    widget_content.Children.Add(new_button);

                                    break;

                                case WidgetType.TextBox:
                                    var new_textbox = new TextBox();
                                    new_textbox.Margin = new Thickness(5, 0, 5, 0);

                                    new_textbox.Name = widget.WidgetName + ModuleID; new_textbox.Style = (Style)Application.Current.Resources["RoundTextBox"];
                                    //new_textbox.Padding = new Thickness(0);
                                    new_textbox.Width           = 175; new_textbox.Height = 25;
                                    new_textbox.PlaceholderText = widget.PlaceHolderText;
                                    new_textbox.FontSize        = 14; new_textbox.Background = theme.ToolbarColorFont; new_textbox.Foreground = theme.ToolbarColor;
                                    new_textbox.KeyDown        += (async(e, f) =>
                                    {
                                        if (f.KeyStatus.RepeatCount == 1)
                                        {
                                            if (f.Key == Windows.System.VirtualKey.Enter)
                                            {
                                                await Task.Run(() => new AddonExecutor(ModuleID, sceelibs).ExecutePersonalizedFunction(widget.FunctionName));
                                            }
                                        }
                                    });

                                    widget_content.Children.Add(new_textbox);
                                    break;
                                }
                            }
                        }
                    }
                    catch
                    {
                        return(null);
                    }
                }

            return(widget_content);
        }
Exemplo n.º 2
0
        public async Task <StackPanel> GetAddonWidgetViaIDAsync(object sceelibs, ThemeModuleBrush theme)
        {
            StorageFolder folder_module;
            var           widget_content = new StackPanel {
                Padding = new Thickness(5, 0, 10, 0), Orientation = Orientation.Horizontal, Name = "" + id_module
            };

            if (system_module)
            {
                StorageFolder folder_content       = await Package.Current.InstalledLocation.GetFolderAsync("SerrisModulesServer"),
                              folder_systemmodules = await folder_content.GetFolderAsync("SystemModules");

                folder_module = await folder_systemmodules.CreateFolderAsync(id_module + "", CreationCollisionOption.OpenIfExists);
            }
            else
            {
                StorageFolder folder_content = await ApplicationData.Current.LocalFolder.CreateFolderAsync("modules", CreationCollisionOption.OpenIfExists);

                folder_module = await folder_content.CreateFolderAsync(id_module + "", CreationCollisionOption.OpenIfExists);
            }

            StorageFile file_content = await folder_module.GetFileAsync("widget.json");

            /*AddonWidget widgeet = new AddonWidget { Type = WidgetType.Button, FunctionName = "main", PlaceHolderText = "mdrrhooo" };
             * AddonWidget widget_b = new AddonWidget { Type = WidgetType.TextBox, FunctionName = "main", PlaceHolderText = "mdrrhooo" };
             * List<AddonWidget> widgets = new List<AddonWidget>();
             * widgets.Add(widgeet); widgets.Add(widget_b);
             * var dataPackage = new DataPackage();
             * dataPackage.SetText(JsonConvert.SerializeObject(widgets, Formatting.Indented));
             * Clipboard.SetContent(dataPackage);*/


            using (var reader = new StreamReader(await file_content.OpenStreamForReadAsync()))
                using (JsonReader JsonReader = new JsonTextReader(reader))
                {
                    try
                    {
                        List <AddonWidget> list = new JsonSerializer().Deserialize <List <AddonWidget> >(JsonReader);
                        if (list != null)
                        {
                            foreach (AddonWidget widget in list)
                            {
                                switch (widget.Type)
                                {
                                case WidgetType.Button:
                                    var new_button = new Button();
                                    new_button.Margin = new Thickness(5, 0, 5, 0);

                                    new_button.Name       = widget.WidgetName + id_module; new_button.Style = (Style)Application.Current.Resources["Round_Button"];
                                    new_button.Padding    = new Thickness(0);
                                    new_button.Width      = 25; new_button.Height = 25;
                                    new_button.FontFamily = new Windows.UI.Xaml.Media.FontFamily("Segoe MDL2 Assets");
                                    new_button.Content    = widget.IconButton;
                                    new_button.Foreground = theme.ToolbarColorFont; new_button.Background = new SolidColorBrush(Colors.Transparent);
                                    new_button.Click     += ((e, f) =>
                                    {
                                        Task.Run(() => new AddonExecutor(id_module, sceelibs).ExecutePersonalizedFunction(widget.FunctionName));
                                    });

                                    widget_content.Children.Add(new_button);

                                    break;

                                case WidgetType.TextBox:
                                    var new_textbox = new TextBox();
                                    new_textbox.Margin = new Thickness(5, 0, 5, 0);

                                    new_textbox.Name = widget.WidgetName + id_module; new_textbox.Style = (Style)Application.Current.Resources["RoundTextBox"];
                                    //new_textbox.Padding = new Thickness(0);
                                    new_textbox.Width           = 150; new_textbox.Height = 25;
                                    new_textbox.PlaceholderText = widget.PlaceHolderText;
                                    new_textbox.FontSize        = 14; new_textbox.Background = theme.ToolbarColorFont; new_textbox.Foreground = theme.ToolbarColor;
                                    new_textbox.KeyDown        += (async(e, f) =>
                                    {
                                        if (f.KeyStatus.RepeatCount == 1)
                                        {
                                            if (f.Key == Windows.System.VirtualKey.Enter)
                                            {
                                                await Task.Run(() => new AddonExecutor(id_module, sceelibs).ExecutePersonalizedFunction(widget.FunctionName));
                                            }
                                        }
                                    });

                                    widget_content.Children.Add(new_textbox);
                                    break;
                                }
                            }
                        }
                    }
                    catch
                    {
                        return(null);
                    }
                }

            return(widget_content);
        }