예제 #1
0
        /// <summary>
        /// Creates a new instance of the <see cref="MainWindow"/> class, loading its interface definition from file.
        /// </summary>
        /// <returns>An instance of the main window widget.</returns>
        public static MainWindow Create()
        {
            var stylesProvider = new CssProvider();

            Assembly.GetExecutingAssembly().GetManifestResourceStream("Launchpad.Launcher.Assets.img.bg.jpg");
            using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("Launchpad.Launcher.Interface.styles.css"))
            {
                if (stream != null)
                {
                    using (var reader = new StreamReader(stream))
                    {
                        stylesProvider.LoadFromData(reader.ReadToEnd());
                    }
                }
            }

            StyleContext.AddProviderForScreen(Screen.Default, stylesProvider, 800);

            using (var builder = new Builder(Assembly.GetExecutingAssembly(), "Launchpad.Launcher.Interface.Launchpad.glade", null))
            {
                var window = new MainWindow(builder, builder.GetObject(nameof(MainWindow)).Handle)
                {
                    Icon = ResourceManager.ApplicationIcon
                };

                return(window);
            }
        }
예제 #2
0
        public static void SetFontSize(this Label label, int fontSize)
        {
            var provider = new CssProvider();

            provider.LoadFromData($"label {{ font-size: {fontSize}px; }}");
            label.StyleContext.AddProvider(provider, Gtk.StyleProviderPriority.User);
        }
예제 #3
0
        public GraphicalApp()
        {
            _model = CharlieModel.LoadFromFile();
//      var accelGroup = new AccelGroup();

            var provider = new CssProvider();

            provider.LoadFromPath(GetResource("style.css"));
            StyleContext.AddProviderForScreen(Screen.Default, provider, 800);

            var window = new Window(WindowType.Toplevel)
            {
                DefaultWidth  = _model.WindowWidth,
                DefaultHeight = _model.WindowHeight,
                Title         = "",
                Role          = "Charlie",
                Resizable     = true
            };

            window.Move(_model.WindowX, _model.WindowY);
            window.SetIconFromFile(GetResource("logo.png"));
//      window.AddAccelGroup(accelGroup);

            window.Destroyed += (sender, args) => Quit();
            window.Show();

            _window      = window;
            window.Child = CreateRoot();
            window.Child.ShowAll();
        }
예제 #4
0
        public CodeTabWidget(Class @class)
        {
            _keys             = new List <Gdk.Key>();
            base.Buffer       = new SourceBuffer(new SourceLanguageManager().GetLanguage("objc"));
            _notebookTabLabel = new NotebookTabLabel(System.IO.Path.GetFileName(@class.Filename), this);
            this._file        = @class;
            var css = new CssProvider();

            css.LoadFromData(@"
                textview {
                    font-family: Monospace;
                }
            ");
            Console.WriteLine($"Loading {@class.Filename}");
            this.StyleContext.AddProvider(css, 1);
            this._temp            = System.IO.Path.Combine(ProjectManager.Project.Path, "~" + @class.Filename);
            _actualText           = File.ReadAllText(System.IO.Path.Combine(ProjectManager.Project.Path, @class.Filename));
            Buffer.Text           = _actualText;
            this.KeyPressEvent   += Handle_KeyPressEvent;
            this.KeyReleaseEvent += Handle_KeyReleaseEvent;
            base.AutoIndent       = true;
            base.ShowLineMarks    = true;
            base.ShowLineNumbers  = true;
            // base.HighlightCurrentLine = true;
            base.IndentOnTab     = true;
            this._s              = base.Buffer.Text;
            base.Buffer.Changed += this.Buffer_Changed;
            _diagnos             = new Dictionary <ClangDiagnostic, TextTag>();
            _t = new Thread(HandleParameterizedThreadStart);
            _t.Start();
        }
예제 #5
0
        public static void Play()
        {
            Application.Init();

            var provider = new CssProvider();

            provider.LoadFromPath(GetResource("playground.css"));
            StyleContext.AddProviderForScreen(Screen.Default, provider, 800);

            var buffer  = File.ReadAllText(GetResource("playground.glade"));
            var builder = new Builder();

            builder.AddFromString(buffer);

            var window    = (ApplicationWindow)builder.GetObject("window");
            var root      = (Box)builder.GetObject("root");
            var leftArea  = (Box)builder.GetObject("left-area");
            var rightArea = (Box)builder.GetObject("right-area");

            root.SizeAllocated += (o, args) =>
            {
                leftArea.Visible = args.Allocation.Width >= 700;
            };

            var app = new PlaygroundApp(window.Handle);

            builder.Autoconnect(app);

//      var scrollArea = (Box)builder.GetObject("scrolled-window");

            app.Init();
            app.Show();

            Application.Run();
        }
예제 #6
0
 public TraceBox(CssProvider css, ITrace trace) : this(new Builder("TraceBox.glade"))
 {
     this.css = css;
     Trace    = trace;
     ShowAll();
     this.ApplyCss(css);
 }
예제 #7
0
        /// <summary>
        /// Recursively applies a new FontDescription to all widgets
        /// </summary>
        /// <param name="widget"></param>
        /// <param name="newFont"></param>
        private void SetWidgetFont(Widget widget, Pango.FontDescription newFont)
        {
#if NETCOREAPP
            int           sizePt   = newFont.SizeIsAbsolute ? newFont.Size : Convert.ToInt32(newFont.Size / Pango.Scale.PangoScale);
            CssProvider   provider = new CssProvider();
            StringBuilder css      = new StringBuilder();
            css.AppendLine("* {");
            css.AppendLine($"font-family: {newFont.Family};");
            css.AppendLine($"font-size: {sizePt}pt;");
            css.AppendLine($"font-style: {newFont.Style};");
            css.AppendLine($"font-variant: {newFont.Variant};");
            css.AppendLine($"font-weight: {newFont.Weight};");
            css.AppendLine($"font-stretch: {newFont.Stretch};");
            css.Append("}");
            provider.LoadFromData(css.ToString());
            window1.StyleContext.AddProvider(provider, StyleProviderPriority.Application);
#else
            widget.ModifyFont(newFont);
            if (widget is Container)
            {
                foreach (Widget child in (widget as Container).Children)
                {
                    SetWidgetFont(child, newFont);
                }
                if (widget is Notebook)
                {
                    for (int i = 0; i < (widget as Notebook).NPages; i++)
                    {
                        SetWidgetFont((widget as Notebook).GetTabLabel((widget as Notebook).GetNthPage(i)), newFont);
                    }
                }
            }
#endif
        }
예제 #8
0
        private MainWindow(Builder builder)
            : base(builder.GetObject("MainWindow").Handle)
        {
            // custom css
            var provider = new CssProvider();

            provider.LoadFromPath("Assets/app.css");
            Gtk.StyleContext.AddProviderForScreen(Gdk.Screen.Default, provider, 800);

            // window views
            var controlsViewModel = new ControlsViewModel(this);
            var aboutViewModel    = new AboutViewModel(this);

            builder.Autoconnect(this);
            builder.Autoconnect(controlsViewModel);

            // events
            DeleteEvent += Window_DeleteEvent;

            // menu events
            _button_menu_control.Clicked += ButtonMenuControlClicked;
            _button_menu_about.Clicked   += ButtonMenuAboutClicked;

            controlsViewModel.Init();
            aboutViewModel.Init();
        }
예제 #9
0
        public DashboardForm(Builder builder, IntPtr handle) : base(handle)
        {
            CssProvider provider = new CssProvider();

            provider.LoadFromPath("test.css");
            ApplyCss(this, provider, uint.MaxValue);
            builder.Autoconnect(this);
            label1.StyleContext.AddProvider(provider, uint.MaxValue);
            label3.StyleContext.AddProvider(provider, uint.MaxValue);
            label4.StyleContext.AddProvider(provider, uint.MaxValue);
            label5.StyleContext.AddProvider(provider, uint.MaxValue);
            label2.StyleContext.AddProvider(provider, uint.MaxValue);
            button1.StyleContext.AddProvider(provider, uint.MaxValue);
            button2.StyleContext.AddProvider(provider, uint.MaxValue);
            button3.StyleContext.AddProvider(provider, uint.MaxValue);
            button5.StyleContext.AddProvider(provider, uint.MaxValue);
            button3.Clicked          += Help_Clicked;
            historyTree.RowActivated += rowClicked;

            historyTree.StyleContext.AddProvider(provider, uint.MaxValue);

            label1.Text = String.Format("Hello, {0}!", MainWindow.manager.session.current.Login);
            setManagedSystems();
            setPluginData();
            setupTree();
            //ShowAll ();
        }
예제 #10
0
        private void SetupTheme()
        {
            var cssProvider = new CssProvider();

            cssProvider.LoadFromEmbeddedResource("Theming.UnoGtk.css");
            StyleContext.AddProviderForScreen(Gdk.Screen.Default, cssProvider, UnoThemePriority);
        }
예제 #11
0
        public Link(string label, string url)
        {
            Markup   = string.Format("<a href=\"{0}\">{1}</a>", url, label);
            CanFocus = false;

            CssProvider css_provider = new CssProvider();

            css_provider.LoadFromData("label a { color: #729fcf; font-size: 14pt; }");
            StyleContext.AddProvider(css_provider, 800);
        }
예제 #12
0
        private void LoadStylesheet(string cssName)
        {
            string      css      = ReflectionUtilities.GetResourceAsString($"ApsimNG.Resources.Style.{cssName}.css");
            CssProvider provider = new CssProvider();

            if (!provider.LoadFromData(css))
            {
                throw new Exception($"Unable to parse {cssName}.css");
            }
            StyleContext.AddProviderForScreen(window1.Screen, provider, StyleProviderPriority.Application);
        }
예제 #13
0
 public static void ApplyCss(this Widget widget, CssProvider provider, uint priority = uint.MaxValue)
 {
     widget.StyleContext.AddProvider(provider, priority);
     if (widget is Container container)
     {
         foreach (var child in container.Children)
         {
             ApplyCss(child, provider, priority);
         }
     }
 }
예제 #14
0
        private MainWindow(Builder builder) : base(builder.GetObject("MainWindow").Handle)
        {
            builder.Autoconnect(this);
            CssProvider css = new CssProvider();

            Gtk.StyleContext.AddProviderForScreen(Gdk.Screen.Default, css, Gtk.StyleProviderPriority.Application);
            css.LoadFromPath("./css/gtk.css");
            DeleteEvent      += Window_DeleteEvent;
            _button1.Clicked += RenderCityData;
            city.Activated   += RenderCityData;
        }
예제 #15
0
    public SettingsWindow(Builder builder, IntPtr handle) : base(handle)
    {
        this.subscribers = new List <UpdateDelegate> ();
        CssProvider provider = new CssProvider();

        provider.LoadFromPath("test.css");
        ApplyCss(this, provider, uint.MaxValue);
        builder.Autoconnect(this);
        saveButton.Clicked += SaveButton_Clicked;

        loadSettings();
    }
예제 #16
0
        private void LoadStylesheets()
        {
            string      css      = ReflectionUtilities.GetResourceAsString("ApsimNG.Resources.Style.global.css");
            CssProvider provider = new CssProvider();

            if (!provider.LoadFromData(css))
            {
                throw new Exception("Unable to parse global.css");
            }

            window1.StyleContext.AddProvider(provider, StyleProviderPriority.Application);
        }
예제 #17
0
        private static CssProvider GetCssProvider()
        {
            var provider = new CssProvider();

            using (var stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("invalid.css"))
                using (var reader = new StreamReader(stream))
                {
                    provider.LoadFromData(reader.ReadToEnd());
                }

            return(provider);
        }
예제 #18
0
        public void ApplyCss(Widget widget, CssProvider provider, uint priority)
        {
            widget.StyleContext.AddProvider(provider, priority);
            var container = widget as Container;

            if (container != null)
            {
                foreach (var child in container.Children)
                {
                    ApplyCss(child, provider, priority);
                }
            }
        }
예제 #19
0
        private void start()
        {
            Resizable = false;

            CssProvider cssp = new CssProvider();

            cssp.LoadFromData(System.IO.File.ReadAllText("css/Program.css"));
            StyleContext.AddProviderForScreen(Gdk.Screen.Default, cssp, 800);
            Console.WriteLine("프로그램 실행");

            main.Margin            = 10;
            main.RowSpacing        = 15;
            main.ColumnSpacing     = 15;
            main.RowHomogeneous    = true;
            main.ColumnHomogeneous = true;

            Label difficulty = new Label("난이도를 선택하세요");

            difficulty.StyleContext.AddClass("Notice");

            easy.Halign    = Align.Center;
            normal.Halign  = Align.Center;
            hard.Halign    = Align.Center;
            extreme.Halign = Align.Center;

            normal.JoinGroup(easy); hard.JoinGroup(easy); extreme.JoinGroup(easy);

            main.Attach(difficulty, 1, 1, 1, 1);
            main.Attach(easy, 1, 2, 1, 1);
            main.Attach(normal, 1, 3, 1, 1);
            main.Attach(hard, 1, 4, 1, 1);
            main.Attach(extreme, 1, 5, 1, 1);

            Separator sep = new Separator(Orientation.Vertical);

            sep.Halign = Align.Center;
            main.Attach(sep, 1, 1, 2, 5);

            grade.Active = 0;
            Button start = new Button("시작");

            name.PlaceholderText = "이름을 입력하세요";
            main.Attach(new Label("정보를 입력하세요"), 2, 1, 1, 1);
            start.Clicked += startClick;
            main.Attach(grade, 2, 2, 1, 1);
            main.Attach(name, 2, 3, 1, 1);
            main.Attach(start, 2, 4, 1, 2);
            Add(main);
            ShowAll();
        }
예제 #20
0
        /// <summary>
        /// test window for dynamic form script
        /// </summary>
        void CreateWindow()
        {
            var window = new Gtk.Window(WindowType.Toplevel);
            var image  = new Image();

            image.File       = "test.png";
            window.Decorated = false;
            window.Visual    = window.Screen.RgbaVisual;
            CssProvider cssp = new CssProvider();

            cssp.LoadFromData("window { background-color: transparent; }");
            window.StyleContext.AddProvider(cssp, StyleProviderPriority.Application);
            window.Add(image);
            window.ShowAll();
        }
예제 #21
0
    public LoginWindow(Builder builder, IntPtr handle) : base(handle)
    {
        //revealer = new Widget (builder.GetObject ("revealer1").Handle);
        this.Title = "Login Window";
        CssProvider provider = new CssProvider();

        provider.LoadFromPath("test.css");
        ApplyCss(this, provider, uint.MaxValue);
        builder.Autoconnect(this);
        DeleteEvent            += OnDeleteEvent;
        loginButton.Clicked    += LoginButton_Clicked;
        OauthButton.Clicked    += OauthLogin;
        settingsButton.Clicked += Settings_Clicked;
        //ShowAll ();
    }
예제 #22
0
        public MainWindow() : this(new Builder("MainWindow.glade"))
        {
#if DEBUG
            if (File.Exists(@"c:\tmp\traces\trace.sample.xt"))
            {
                openFile(@"c:\tmp\traces\trace.sample.xt");
            }
#endif
            css = new CssProvider();
            using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("app.css"))
                using (StreamReader reader = new StreamReader(stream))
                {
                    css.LoadFromData(reader.ReadToEnd());
                }
            this.ApplyCss(css);
        }
예제 #23
0
        public MainWindow() : base(WindowType.Toplevel)
        {
            // Setup GUI
            WindowPosition = WindowPosition.Center;
            DefaultSize    = new Gdk.Size(600, 300);

            var provider = new CssProvider();

            provider.LoadFromData(".blue-background { background-image: none; background-color: rgb(240, 248, 255); }");
            Gtk.StyleContext.AddProviderForScreen(Gdk.Screen.Default, provider, 1);


            _sikInterface = new SiKInterface();

            _headerBar = new HeaderBar();
            _headerBar.ShowCloseButton = true;
            _headerBar.Title           = "SiK Radio Configurator";

            _boardIdentifiers  = new BoardIdentifierControls();
            _dataTableControls = new DataTableControls();
            _sikInterface.SiKConfig.PropertyChanged += _boardIdentifiers.SiKConfig_PropertyChanged;
            _dataTableControls.CreateBindings(_sikInterface.SiKConfig);

            _pageLabel = new Label(NOT_CONN_LBL);

            Titlebar   = _headerBar;
            Destroyed += (sender, e) => Application.Quit();

            _notebook      = new Notebook();
            _pageContainer = new Box(Orientation.Vertical, 1);
            _notebook.AppendPage(_pageContainer, _pageLabel);
            _notebook.AppendPage(new Box(Orientation.Vertical, 5), new Label("TBD"));

            Add(_notebook);

            CreatePortSelLine();
            CreateDataTable();
            CreateBoardIdLine();
            CreateButtonsLine();

            // TODO: Fix Statusbar at the bottom
            _statusBar = new Statusbar();
            _pageContainer.Add(_statusBar);
            _cxt = _statusBar.GetContextId("Main page");

            ShowAll();
        }
예제 #24
0
        public DemoCssBasics() : base("CSS Basics")
        {
            SetDefaultSize(600, 500);

            buffer = new TextBuffer(null);

            var warning = new TextTag("warning");

            warning.Underline = Pango.Underline.Single;
            buffer.TagTable.Add(warning);

            var error = new TextTag("error");

            error.Underline = Pango.Underline.Error;
            buffer.TagTable.Add(error);

            provider       = new CssProvider();
            provider_reset = new CssProvider();

            var container = new ScrolledWindow();

            Add(container);
            var view = new TextView(buffer);

            container.Add(view);
            buffer.Changed += OnCssTextChanged;

            using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("reset.css"))
                using (StreamReader reader = new StreamReader(stream))
                {
                    provider_reset.LoadFromData(reader.ReadToEnd());
                }

            using (Stream stream = Assembly.GetExecutingAssembly().GetManifestResourceStream("css_basics.css"))
                using (StreamReader reader = new StreamReader(stream))
                {
                    buffer.Text = reader.ReadToEnd();
                }

            // TODO: Connect to "parsing-error" signal in CssProvider, added in GTK+ 3.2

            ApplyCss(this, provider_reset, 800);
            ApplyCss(this, provider, UInt32.MaxValue);

            ShowAll();
        }
예제 #25
0
        /// <summary>
        /// Recursively applies a new FontDescription to all widgets
        /// </summary>
        /// <param name="widget"></param>
        /// <param name="newFont"></param>
        private void SetWidgetFont(Widget widget, Pango.FontDescription newFont)
        {
            int           sizePt   = newFont.SizeIsAbsolute ? newFont.Size : Convert.ToInt32(newFont.Size / Pango.Scale.PangoScale);
            CssProvider   provider = new CssProvider();
            StringBuilder css      = new StringBuilder();

            css.AppendLine("* {");
            css.AppendLine($"font-family: {newFont.Family};");
            css.AppendLine($"font-size: {sizePt}pt;");
            css.AppendLine($"font-style: {newFont.Style};");
            css.AppendLine($"font-variant: {newFont.Variant};");
            css.AppendLine($"font-weight: {newFont.Weight};");
            css.AppendLine($"font-stretch: {newFont.Stretch};");
            css.Append("}");
            provider.LoadFromData(css.ToString());
            window1.StyleContext.AddProvider(provider, StyleProviderPriority.Application);
        }
예제 #26
0
        internal static void ApplyTheme()
        {
            if (!ConfigurationState.Instance.Ui.EnableCustomTheme)
            {
                return;
            }

            if (File.Exists(ConfigurationState.Instance.Ui.CustomThemePath) && (System.IO.Path.GetExtension(ConfigurationState.Instance.Ui.CustomThemePath) == ".css"))
            {
                CssProvider cssProvider = new CssProvider();

                cssProvider.LoadFromPath(ConfigurationState.Instance.Ui.CustomThemePath);

                StyleContext.AddProviderForScreen(Gdk.Screen.Default, cssProvider, 800);
            }
            else
            {
                Logger.PrintWarning(LogClass.Application, $"The \"custom_theme_path\" section in \"Config.json\" contains an invalid path: \"{ConfigurationState.Instance.Ui.CustomThemePath}\".");
            }
        }
예제 #27
0
        private MainWindow(Builder builder) : base(builder.GetObject("MainWindow").Handle)
        {
            base.SetDefaultSize(900, 900);
            CssProvider provider = new CssProvider();

            provider.LoadFromPath(@"Styles/gtk-dark.gtk-3.0.Materia.css");

            builder.Autoconnect(this);

            Gtk.StyleContext.AddProviderForScreen(Gdk.Screen.Default, provider, 800);

            DeleteEvent               += Window_DeleteEvent;
            _openfilebutton.Clicked   += Openfile_Clicked;
            _openfolderbutton.Clicked += Openfolder_Clicked;
            _SaveButton.Clicked       += SaveButton_Click;
            FileTextEditor.closefile  += CloseEditor;
            _folderexplore.openfile   += OpenFolderOpenFile;

            //Added to keep the Notebook from Breaking
            _maineditorbook.Add(new Label("Open A file"));
        }
예제 #28
0
        internal static void LoadFromEmbeddedResource(this CssProvider cssProvider, string embeddedResourceName)
        {
            var gtkHostAssembly = typeof(GtkHost).Assembly;
            var names           = gtkHostAssembly.GetManifestResourceNames();
            var resource        = names.FirstOrDefault(name => name.EndsWith(embeddedResourceName));

            if (resource == null)
            {
                throw new InvalidOperationException($"There is no resource ending with {embeddedResourceName}");
            }

            using var stream = typeof(GtkHost).Assembly.GetManifestResourceStream(resource);
            if (stream == null)
            {
                throw new InvalidOperationException($"Embedded resource {resource} could not be opened.");
            }

            using var streamReader = new StreamReader(stream);
            var css = streamReader.ReadToEnd();

            cssProvider.LoadFromData(css);
        }
예제 #29
0
        public static void ApplyTheme()
        {
            CssProvider cssProvider = new CssProvider();

            if (SwitchSettings.SwitchConfig.EnableCustomTheme)
            {
                if (File.Exists(SwitchSettings.SwitchConfig.CustomThemePath) && (System.IO.Path.GetExtension(SwitchSettings.SwitchConfig.CustomThemePath) == ".css"))
                {
                    cssProvider.LoadFromPath(SwitchSettings.SwitchConfig.CustomThemePath);
                }
                else
                {
                    Logger.PrintWarning(LogClass.Application, $"The \"custom_theme_path\" section in \"Config.json\" contains an invalid path: \"{SwitchSettings.SwitchConfig.CustomThemePath}\"");
                }
            }
            else
            {
                cssProvider.LoadFromPath(System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Theme.css"));
            }

            StyleContext.AddProviderForScreen(Gdk.Screen.Default, cssProvider, 800);
        }
예제 #30
0
        /// <summary>
        /// Carga el tema de windows y el logo de la aplicación para que gtk lo conozca.
        /// </summary>
        private static void LoadTheme()
        {
            // nuestros archivos de recursos se encuentran en {InstallDir}/Recursos
            var resources = Assets.InstallDir.GetAssets("Recursos");

            //el tema sera solo para windows
            if (Info.CurrentSystem.IsWindows())
            {
                //creamos un nuevo proveedor de estilos.
                var prov = new CssProvider();
                //cargamos el thema de windows dark
                prov.LoadFromPath(resources.GetPath("wind.css"));
                //obtenemos la pantalla y le aplicamos el tema.
                var screen = Gdk.Display.Default.DefaultScreen;
                StyleContext.AddProviderForScreen(screen, prov, StyleProviderPriority.Application);
            }
            //anexamos al tema de iconos actual el icono de nuestra app.
            IconTheme.AddBuiltinIcon("logo", (int)IconSize.Menu, new Pixbuf(resources.GetPath("logo.svg")));
#if DEBUG
            //advertimos al finalizar objetos
            GLib.Object.WarnOnFinalize = true;
#endif
        }