예제 #1
0
        void HandleTextColorSet(object sender, EventArgs e)
        {
            if (ignoreChanges)
            {
                return;
            }

            if (selectedDrawable is Text)
            {
                (selectedDrawable as Text).TextColor = Misc.ToLgmColor(textcolorbutton.Color);
                QueueDraw();
            }
            else
            {
                blackboard.TextColor = Misc.ToLgmColor(textcolorbutton.Color);
            }
        }
예제 #2
0
 void HandleColorSet(object sender, EventArgs e)
 {
     if (ignoreChanges)
     {
         return;
     }
     if (sender == colorbutton1)
     {
         template.Colors [0] = Misc.ToLgmColor(colorbutton1.Color);
         template.UpdateColors();
         drawingarea.QueueDraw();
     }
     else
     {
         template.Colors [1] = Misc.ToLgmColor(colorbutton2.Color);
     }
     Edited = true;
 }
예제 #3
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);
     }
 }
예제 #4
0
        void HandleBackgroundColorSet(object sender, EventArgs e)
        {
            Color c;

            if (ignoreChanges)
            {
                return;
            }


            c = Misc.ToLgmColor(backgroundcolorbutton.Color,
                                backgroundcolorbutton.Alpha);
            if (selectedDrawable is Text)
            {
                Text t = (selectedDrawable as Text);
                t.FillColor = t.StrokeColor = c;
                QueueDraw();
            }
            else
            {
                blackboard.TextBackgroundColor = c;
            }
        }
예제 #5
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();
        }