Exemple #1
0
        /// <summary>Apply the specified selector (style) to the specified widget</summary>
        /// <param name="Widget">The widget that should "got" the style</param>
        /// <param name="Style">The specified selector with the desired style</param>
        public void ApplyStyle(Xwt.Widget Widget, string Pattern)
        {
            if (Widget.GetType() == typeof(Xwt.Label))
            {
                ApplyStyle((Xwt.Label)Widget, Pattern); return;
            }
            if (Widget.GetType() == typeof(Xwt.Box))
            {
                ApplyStyle((Xwt.Box)Widget, Pattern); return;
            }

            Selector Selector = CSS[Pattern];

            if (Selector.Declarations["background-color"].Value != "inherit")
            {
                Widget.BackgroundColor =
                    Utilities.GetXwtColor(
                        Selector.Declarations["background-color"].Value
                        );
            }

            if (Selector.Declarations["font-family"].Value != "inherit")
            {
                Widget.Font = Xwt.Drawing.Font.FromName(
                    Selector.Declarations["font-family"].Value
                    );
            }

            Widget.Visible = Selector.Declarations["display"].Value == "none" ? false : true;
        }
Exemple #2
0
        /// <summary>Enable theming of the widget</summary>
        /// <param name="Widget">The widget that needs to be themized</param>
        /// <param name="Selector">The selector pattern</param>
        public void Stylize(Xwt.Widget Widget, string Selector = "Widget")
        {
            if (!semaphore)
            {
                semaphore = true;
                Stylize(Widget, "Widget");                                                                                //apply default style for all widgets
                try {
                    Stylize(Widget, Widget.GetType().ToString().Substring(Widget.GetType().ToString().IndexOf('.') + 1)); //apply default style for the widget type
                }
                catch { Console.WriteLine("NOTICE: No style is set for widgets of type " + Widget.GetType().ToString().Substring(Widget.GetType().ToString().IndexOf('.') + 1)); }
                semaphore = false;
            }

            ApplyStyle(Widget, Selector);

            Widget.MouseEntered += (o, ea) =>
            { ApplyStyle(Widget, Selector + ":hover"); };

            Widget.MouseExited += (o, ea) =>
            {
                ApplyStyle(Widget, Selector);
                if (Widget.HasFocus)
                {
                    ApplyStyle(Widget, Selector + ":focus");
                }
            };

            Widget.ButtonPressed += (o, ea) =>
            { ApplyStyle(Widget, Selector + ":active"); };

            Widget.GotFocus += (o, ea) =>
            { ApplyStyle(Widget, Selector + ":focus"); };

            Widget.LostFocus += (o, ea) =>
            { ApplyStyle(Widget, Selector); };

            Widget.ButtonReleased += (o, ea) =>
            {
                ApplyStyle(Widget, Selector);
                if (Widget.HasFocus)
                {
                    ApplyStyle(Widget, Selector + ":focus");
                }
            };
        }