コード例 #1
0
 protected void RenderBackground(IDrawingToolkit tk, Area backgroundArea, Color backgroundColor)
 {
     /* Background */
     tk.LineWidth = 0;
     tk.FillColor = backgroundColor;
     tk.DrawRectangle(backgroundArea.Start, backgroundArea.Width, backgroundArea.Height);
 }
コード例 #2
0
 public void Clear(Color color)
 {
     SetColor(color);
     CContext.Operator = Operator.Source;
     CContext.Paint();
     CContext.Operator = Operator.Over;
 }
コード例 #3
0
        void HandleDrawableChangedEvent(IEnumerable <IBlackboardObject> drawables)
        {
            selectedDrawable      = (drawables == null || drawables.Count() > 1) ? null : drawables.FirstOrDefault() as Drawable;
            colorbutton.Sensitive = !(selectedDrawable is Text);

            ignoreChanges = true;
            if (selectedDrawable == null)
            {
                colorbutton.Color           = Misc.ToGdkColor(blackboard.Color);
                colorbutton.Alpha           = Color.ByteToUShort(blackboard.Color.A);
                textcolorbutton.Color       = Misc.ToGdkColor(blackboard.TextColor);
                backgroundcolorbutton.Color = Misc.ToGdkColor(blackboard.TextBackgroundColor);
                backgroundcolorbutton.Alpha = Color.ByteToUShort(blackboard.TextBackgroundColor.A);
                linesizespinbutton.Value    = OriginalSize(blackboard.LineWidth);
                if (blackboard.LineStyle == LineStyle.Normal)
                {
                    stylecombobox.Active = 0;
                }
                else
                {
                    stylecombobox.Active = 1;
                }
                typecombobox.Active = (int)blackboard.LineType;
            }
            else
            {
                if (selectedDrawable is Text)
                {
                    textcolorbutton.Color       = Misc.ToGdkColor((selectedDrawable as Text).TextColor);
                    backgroundcolorbutton.Color = Misc.ToGdkColor(selectedDrawable.FillColor);
                    backgroundcolorbutton.Alpha = Color.ByteToUShort(selectedDrawable.FillColor.A);
                    textspinbutton.Value        = OriginalSize((selectedDrawable as Text).TextSize);
                }
                else
                {
                    colorbutton.Color    = Misc.ToGdkColor(selectedDrawable.StrokeColor);
                    colorbutton.UseAlpha = true;
                    colorbutton.Alpha    = Color.ByteToUShort(selectedDrawable.StrokeColor.A);
                }
                if (selectedDrawable is Line)
                {
                    typecombobox.Active = (int)(selectedDrawable as Line).Type;
                }
                linesizespinbutton.Value = OriginalSize(selectedDrawable.LineWidth);
                if (selectedDrawable.Style == LineStyle.Normal)
                {
                    stylecombobox.Active = 0;
                }
                else
                {
                    stylecombobox.Active = 1;
                }
            }

            UpdateSettingsVisibility(blackboard.Tool);
            ignoreChanges = false;
        }
コード例 #4
0
        protected void RenderColorStrip(IDrawingToolkit tk, Area backgroundArea, Color color)
        {
            Point p = new Point(backgroundArea.Left + LEFT_OFFSET, backgroundArea.Start.Y);

            //Draw Color strip
            tk.FillColor   = color;
            tk.StrokeColor = color;
            tk.DrawRectangle(p, COLOR_RECTANGLE_WIDTH, backgroundArea.Height);
        }
コード例 #5
0
 void SetButtonColor(DrawingArea area, Color color)
 {
     Gdk.Color gcolor = Misc.ToGdkColor(color);
     area.ModifyBg(StateType.Normal, gcolor);
     area.ModifyBg(StateType.Active, gcolor);
     area.ModifyBg(StateType.Insensitive, gcolor);
     area.ModifyBg(StateType.Prelight, gcolor);
     area.ModifyBg(StateType.Selected, gcolor);
 }
コード例 #6
0
        void RenderType(string name, int childsCount, Color color, IDrawingToolkit tk, IContext context,
                        Area backgroundArea, Area cellArea, CellState state)
        {
            Point textP = new Point(Sizes.ListTextOffset, backgroundArea.Start.Y);

            tk.Context = context;
            tk.Begin();
            RenderBackgroundAndTitleText(tk, backgroundArea, textP, cellArea.Width - textP.X, name, App.Current.Style.ScreenBase, color);
            RenderCount(childsCount, tk, backgroundArea, cellArea);
            RenderSeparationLine(tk, context, backgroundArea);
            tk.End();
        }
コード例 #7
0
 void SetColor(Color color)
 {
     if (color != null)
     {
         CContext.SetSourceRGBA((double)color.R / byte.MaxValue,
                                (double)color.G / byte.MaxValue,
                                (double)color.B / byte.MaxValue,
                                (double)color.A / byte.MaxValue);
     }
     else
     {
         CContext.SetSourceRGBA(0, 0, 0, 0);
     }
 }
コード例 #8
0
        public UpgradeLimitationPanel()
        {
            this.Build();

            eventbox.ModifyBg(StateType.Normal, Helpers.Misc.ToGdkColor(App.Current.Style.ScreenBase));
            header.ModifyFont(FontDescription.FromString($"{App.Current.Style.Font} normal {HEADER_LABEL_SIZE}px"));
            featuresHeader.ModifyFont(FontDescription.FromString($"{App.Current.Style.Font} light {FEATURE_HEADER_LABEL_SIZE}px"));
            featuresCaption.ModifyFont(FontDescription.FromString($"{App.Current.Style.Font} light {FEATURE_LABEL_SIZE}px"));

            upgradeButton2               = ButtonHelper.CreateButton();
            upgradeButton2.Name          = StyleConf.ButtonCallToActionRounded;
            upgradeButton2.WidthRequest  = 240;
            upgradeButton2.HeightRequest = 40;
            upgradeButton2.BorderWidth   = 0;

            undecidedlbl = new Label();
            undecidedlbl.WidthRequest  = 240;
            undecidedlbl.HeightRequest = 11;
            undecidedlbl.Justify       = Justification.Center;
            undecidedlbl.ModifyFont(FontDescription.FromString($"{App.Current.Style.Font} light {UNDECIDED_LABEL_SIZE}px"));
            undecidedlbl.ModifyText(StateType.Normal, Helpers.Misc.ToGdkColor(CommonColor.Parse(UNDECIDED_COLOR)));

            seeOtherPlanslbl = new Label();
            seeOtherPlanslbl.WidthRequest  = 240;
            seeOtherPlanslbl.HeightRequest = 14;
            seeOtherPlanslbl.Justify       = Justification.Center;
            seeOtherPlanslbl.ModifyFont(FontDescription.FromString($"{App.Current.Style.Font} normal {FEATURE_LABEL_SIZE}px"));
            seeOtherPlanslbl.ModifyText(StateType.Normal, Helpers.Misc.ToGdkColor(CommonColor.Parse(UPGRADE_BUTTON_COLOR)));

            captionBackgroundHeader = new ImageView(App.Current.ResourcesLocator.LoadImage(Images.UpgradeDialogBackgroundTop));
            captionFixedHeader.Put(captionBackgroundHeader, 0, 0);

            captionBackgroundBottom = new ImageView(App.Current.ResourcesLocator.LoadImage(Images.UpgradeDialogBackgroundBottom));
            captionFixedBottom.Put(captionBackgroundBottom, 0, 0);
            captionFixedBottom.Put(upgradeButton2, (captionBackgroundBottom.Image.Width / 2) - (upgradeButton2.WidthRequest / 2), 0);
            captionFixedBottom.Put(undecidedlbl, (captionBackgroundBottom.Image.Width / 2) - (undecidedlbl.WidthRequest / 2),
                                   upgradeButton2.HeightRequest + 15);
            captionFixedBottom.Put(seeOtherPlanslbl, (captionBackgroundBottom.Image.Width / 2) - (seeOtherPlanslbl.WidthRequest / 2),
                                   upgradeButton2.HeightRequest + 15 + undecidedlbl.HeightRequest + 5);

            WidthRequest                = captionBackgroundBottom.Image.Width;
            header.WidthRequest         = WidthRequest - (int)headersAlignment.LeftPadding - (int)headersAlignment.RightPadding;
            header.Wrap                 = true;
            header.LineWrap             = true;
            featuresHeader.WidthRequest = WidthRequest - (int)headersAlignment.LeftPadding - (int)headersAlignment.RightPadding;
            featuresHeader.Wrap         = true;
            featuresHeader.LineWrap     = true;
            Bind();
        }
コード例 #9
0
 public ContextStatus(Color strokeColor, Color fillColor, Style fSlant,
                      Weight fWeight, Pango.Alignment alignment, int lineWidth, int fontSize,
                      string fontFamily, LineStyle lineStyle, bool clear)
 {
     StrokeColor = strokeColor;
     FillColor   = fillColor;
     FSlant      = fSlant;
     FWeight     = fWeight;
     Alignment   = alignment;
     LineWidth   = lineWidth;
     FontSize    = fontSize;
     FontFamily  = fontFamily;
     LineStyle   = lineStyle;
     Clear       = clear;
 }
コード例 #10
0
        void HandleColorSet(object sender, EventArgs e)
        {
            if (ignore)
            {
                return;
            }

            VASColor c = Helpers.Misc.ToLgmColor((sender as ColorButton).Color);

            if (sender == colorbutton1)
            {
                button.BackgroundColor = c;
            }
            else
            {
                button.TextColor = c;
            }
            Edited = true;
        }
コード例 #11
0
 void HandleColorSet(object sender, EventArgs e)
 {
     if (ignoreChanges)
     {
         return;
     }
     if (selectedDrawable != null)
     {
         selectedDrawable.StrokeColor = Misc.ToLgmColor(colorbutton.Color, colorbutton.Alpha);
         if (selectedDrawable.FillColor != null)
         {
             Color c = Misc.ToLgmColor(colorbutton.Color, colorbutton.Alpha);
             selectedDrawable.FillColor = c;
         }
         QueueDraw();
     }
     else
     {
         blackboard.Color = Misc.ToLgmColor(colorbutton.Color, colorbutton.Alpha);
     }
 }
コード例 #12
0
 public static LColor ToLgmColor(Color color, ushort alpha = ushort.MaxValue)
 {
     return(LColor.ColorFromUShort(color.Red, color.Green, color.Blue, alpha));
 }
コード例 #13
0
 public static Color ToGdkColor(LColor color)
 {
     return(new Color(color.R, color.G, color.B));
 }
コード例 #14
0
 public static global::Cairo.Color RGBToCairoColor(Color c)
 {
     return(new global::Cairo.Color(ByteToDouble(c.R),
                                    ByteToDouble(c.G),
                                    ByteToDouble(c.B)));
 }
コード例 #15
0
        public DrawingTool()
        {
            this.Build();
            blackboard = new Blackboard(new WidgetWrapper(drawingarea));
            blackboard.ConfigureObjectEvent    += HandleConfigureObjectEvent;
            blackboard.ShowMenuEvent           += HandleShowMenuEvent;
            blackboard.DrawableChangedEvent    += HandleDrawableChangedEvent;
            blackboard.DrawToolChanged         += HandleDrawToolChangedEvent;
            blackboard.RegionOfInterestChanged += HandleRegionOfInterestChanged;

            selectbutton.Active = true;

            buttonToDrawTool = new Dictionary <RadioButton, DrawTool> ()
            {
                { selectbutton, DrawTool.Selection },
                { eraserbutton, DrawTool.Eraser },
                { penbutton, DrawTool.Pen },
                { textbutton, DrawTool.Text },
                { linebutton, DrawTool.Line },
                { crossbutton, DrawTool.Cross },
                { rectanglebutton, DrawTool.Rectangle },
                { ellipsebutton, DrawTool.Ellipse },
                { rectanglefilledbutton, DrawTool.RectangleArea },
                { ellipsefilledbutton, DrawTool.CircleArea },
                { numberbutton, DrawTool.Counter },
                { anglebutton, DrawTool.Angle },
                { playerbutton, DrawTool.Player },
                { zoombutton, DrawTool.Zoom },
            };

            foreach (var button in buttonToDrawTool.Keys)
            {
                button.Name     = "DrawingToolButton-" + button.Name;
                button.Toggled += HandleToolClicked;
            }

            CreateToolSettings();
            UpdateSettingsVisibility(DrawTool.Selection);

            selectbuttonimage.Image          = App.Current.ResourcesLocator.LoadIcon("vas-select", 20);
            eraserbuttonimage.Image          = App.Current.ResourcesLocator.LoadIcon("vas-eraser", 20);
            penbuttonimage.Image             = App.Current.ResourcesLocator.LoadIcon("vas-pencil", 20);
            textbuttonimage.Image            = App.Current.ResourcesLocator.LoadIcon("vas-text", 20);
            linebuttonimage.Image            = App.Current.ResourcesLocator.LoadIcon("vas-arrow", 20);
            crossbuttonimage.Image           = App.Current.ResourcesLocator.LoadIcon("vas-mark", 20);
            rectanglebuttonimage.Image       = App.Current.ResourcesLocator.LoadIcon("vas-square", 20);
            ellipsebuttonimage.Image         = App.Current.ResourcesLocator.LoadIcon("vas-circle", 20);
            rectanglefilledbuttonimage.Image = App.Current.ResourcesLocator.LoadIcon("vas-square-fill", 20);
            ellipsefilledbuttonimage.Image   = App.Current.ResourcesLocator.LoadIcon("vas-circle-fill", 20);
            playerbuttonimage.Image          = App.Current.ResourcesLocator.LoadIcon("vas-person", 20);
            numberbuttonimage.Image          = App.Current.ResourcesLocator.LoadIcon("vas-counter", 20);
            anglebuttonimage.Image           = App.Current.ResourcesLocator.LoadIcon("vas-angle", 20);
            zoombuttonimage.Image            = App.Current.ResourcesLocator.LoadIcon("vas-search", 20);
            zoomoutimage.Image = App.Current.ResourcesLocator.LoadIcon("vas-zoom-out", 14);
            zoominimage.Image  = App.Current.ResourcesLocator.LoadIcon("vas-zoom-in", 14);

            // Force tooltips to be translatable as there seems to be a bug in stetic
            // code generation for translatable tooltips.
            selectbutton.TooltipMarkup          = Catalog.GetString("Selection tool");
            eraserbutton.TooltipMarkup          = Catalog.GetString("Eraser tool");
            penbutton.TooltipMarkup             = Catalog.GetString("Pencil tool");
            textbutton.TooltipMarkup            = Catalog.GetString("Text tool");
            linebutton.TooltipMarkup            = Catalog.GetString("Line tool");
            crossbutton.TooltipMarkup           = Catalog.GetString("Cross tool");
            rectanglebutton.TooltipMarkup       = Catalog.GetString("Rectangle tool");
            ellipsebutton.TooltipMarkup         = Catalog.GetString("Ellipse tool");
            rectanglefilledbutton.TooltipMarkup = Catalog.GetString("Rectangle area tool");
            ellipsefilledbutton.TooltipMarkup   = Catalog.GetString("Ellipsis area tool");
            playerbutton.TooltipMarkup          = Catalog.GetString("Player tool");
            numberbutton.TooltipMarkup          = Catalog.GetString("Index tool");
            anglebutton.TooltipMarkup           = Catalog.GetString("Angle tool");
            stylecombobox.TooltipMarkup         = Catalog.GetString("Change the line style");
            typecombobox.TooltipMarkup          = Catalog.GetString("Change the line style");
            clearbutton.TooltipMarkup           = Catalog.GetString("Clear all drawings");
            zoombutton.TooltipMarkup            = Catalog.GetString("Zoom tool. Click to zoom in, Alt+Shift to zoom out");

            FillLineStyle();
            FillLineType();

            colorbutton.ColorSet += HandleColorSet;
            colorbutton.Color     = Misc.ToGdkColor(Color.Red1);
            colorbutton.UseAlpha  = true;
            colorbutton.Alpha     = Color.FloatToUShort(0.8f);
            blackboard.Color      = Color.Red1;
            blackboard.Color.SetAlpha(0.8f);
            textcolorbutton.ColorSet       += HandleTextColorSet;
            textcolorbutton.Color           = Misc.ToGdkColor(Color.White);
            blackboard.TextColor            = Color.White;
            backgroundcolorbutton.UseAlpha  = true;
            backgroundcolorbutton.Alpha     = 0;
            backgroundcolorbutton.ColorSet += HandleBackgroundColorSet;
            backgroundcolorbutton.Color     = Misc.ToGdkColor(Color.Green1);
            blackboard.TextBackgroundColor  = Misc.ToLgmColor(backgroundcolorbutton.Color,
                                                              backgroundcolorbutton.Alpha);
            textspinbutton.Value             = 12;
            textspinbutton.ValueChanged     += (sender, e) => UpdateTextSize();
            linesizespinbutton.ValueChanged += (sender, e) => UpdateLineWidth();
            linesizespinbutton.Value         = 2;

            zoomscale.CanFocus       = false;
            hscrollbar.ValueChanged += HandleScrollValueChanged;
            wscrollbar.ValueChanged += HandleScrollValueChanged;
            hscrollbar.Visible       = wscrollbar.Visible = false;


            Misc.SetFocus(this, false);

            var saveToFileCommand = new AsyncCommand(SaveToFile);

            saveToFileCommand.Icon = App.Current.ResourcesLocator.LoadIcon("vas-save", App.Current.Style.IconSmallWidth);
            saveToFileCommand.Text = Catalog.GetString("Save to File");
            savebutton.BindManually(saveToFileCommand);

            var saveToProjectCommand = new AsyncCommand(SaveToProject);

            saveToProjectCommand.Icon = App.Current.ResourcesLocator.LoadIcon("vas-save", App.Current.Style.IconSmallWidth);
            saveToProjectCommand.Text = Catalog.GetString("Save to Project");
            savetoprojectbutton.BindManually(saveToProjectCommand);

            var clearCommand = new Command(Clear);

            clearCommand.Icon = App.Current.ResourcesLocator.LoadIcon("vas-delete", App.Current.Style.IconSmallWidth);
            clearbutton.BindManually(clearCommand);

            Bind();
        }
コード例 #16
0
        void RenderBackgroundAndTitleText(IDrawingToolkit tk, Area backgroundArea, Point textP, double textW, string text, Color backgroundColor, Color textColor)
        {
            /* Background */
            RenderBackground(tk, backgroundArea, backgroundColor);

            /* Text */
            tk.StrokeColor   = textColor;
            tk.FontSize      = Sizes.ListTextFontSize;
            tk.FontWeight    = FontWeight.Bold;
            tk.FontAlignment = FontAlignment.Left;
            tk.DrawText(textP, textW, backgroundArea.Height, text, false, true);
        }
コード例 #17
0
 protected void RenderChildText(IDrawingToolkit tk, Point p, int width, int height, string text, Color textColor)
 {
     tk.StrokeColor   = textColor;
     tk.FontSize      = 12;
     tk.FontWeight    = FontWeight.Normal;
     tk.FontAlignment = FontAlignment.Left;
     tk.DrawText(p, width, height, text, false, true);
 }
コード例 #18
0
 protected void RenderChildLongText(IDrawingToolkit tk, Area backgroundArea, Point textP, double textW, string text, Color textColor)
 {
     /* Text */
     tk.StrokeColor   = textColor;
     tk.FontSize      = 11;
     tk.FontWeight    = FontWeight.Light;
     tk.FontAlignment = FontAlignment.Left;
     tk.DrawText(textP, textW, backgroundArea.Height, text, false, true);
 }