Пример #1
0
        protected override void OnBuildToolBar(Toolbar tb)
        {
            base.OnBuildToolBar(tb);

            if (fill_sep == null)
            {
                fill_sep = new Gtk.SeparatorToolItem();
            }

            tb.AppendItem(fill_sep);

            if (fill_label == null)
            {
                fill_label = new ToolBarLabel(string.Format(" {0}: ", Catalog.GetString("Fill Style")));
            }

            tb.AppendItem(fill_label);

            if (fill_button == null)
            {
                fill_button = new ToolBarDropDownButton();

                fill_button.AddItem(Catalog.GetString("Outline Shape"), "ShapeTool.Outline.png", 0);
                fill_button.AddItem(Catalog.GetString("Fill Shape"), "ShapeTool.Fill.png", 1);
                fill_button.AddItem(Catalog.GetString("Fill and Outline Shape"), "ShapeTool.OutlineFill.png", 2);
            }

            tb.AppendItem(fill_button);
        }
Пример #2
0
        public ToolBarTree Label(GUIContent content, int width = 100)
        {
            ToolBarLabel la = new ToolBarLabel(content, width);

            DockNode(la);
            return(this);
        }
Пример #3
0
        /// <summary>
        /// Sets up the DashPatternBox in the Toolbar.
        ///
        /// Note that the dash pattern change event response code must be created manually outside of the DashPatternBox
        /// (using the returned Gtk.ComboBox from the SetupToolbar method) so that each tool that uses it
        /// can react to the change in pattern according to its usage.
        ///
        /// Returns null if the DashPatternBox has already been setup; otherwise, returns the DashPatternBox itself.
        /// </summary>
        /// <param name="tb">The Toolbar to add the DashPatternBox to.</param>
        /// <returns>null if the DashPatternBox has already been setup; otherwise, returns the DashPatternBox itself.</returns>
        public Gtk.ComboBox SetupToolbar(Toolbar tb)
        {
            if (dashPatternSep == null)
            {
                dashPatternSep = new SeparatorToolItem();
            }

            tb.AppendItem(dashPatternSep);

            if (dashPatternLabel == null)
            {
                dashPatternLabel = new ToolBarLabel(string.Format(" {0}: ", Catalog.GetString("Dash")));
            }

            tb.AppendItem(dashPatternLabel);

            if (comboBox == null)
            {
                comboBox = new ToolBarComboBox(100, 0, true,
                                               "-", " -", " --", " ---", "  -", "   -", " - --", " - - --------", " - - ---- - ----");
            }

            tb.AppendItem(comboBox);

            if (dashChangeSetup)
            {
                return(null);
            }
            else
            {
                dashChangeSetup = true;

                return(comboBox.ComboBox);
            }
        }
Пример #4
0
        protected override void OnBuildToolBar(Toolbar tb)
        {
            base.OnBuildToolBar(tb);

            // Change the cursor when the BrushWidth is changed.
            brush_width.ComboBox.Changed += (sender, e) => SetCursor(DefaultCursor);

            tb.AppendItem(new Gtk.SeparatorToolItem());

            if (brush_label == null)
            {
                brush_label = new ToolBarLabel(string.Format(" {0}:  ", Catalog.GetString("Type")));
            }

            if (brush_combo_box == null)
            {
                brush_combo_box = new ToolBarComboBox(100, 0, false);
                brush_combo_box.ComboBox.Changed += (o, e) => {
                    Gtk.TreeIter iter;
                    if (brush_combo_box.ComboBox.GetActiveIter(out iter))
                    {
                        active_brush = (BasePaintBrush)brush_combo_box.Model.GetValue(iter, 1);
                    }
                    else
                    {
                        active_brush = default_brush;
                    }
                };

                RebuildBrushComboBox();
            }

            tb.AppendItem(brush_label);
            tb.AppendItem(brush_combo_box);
        }
Пример #5
0
        public override void HandleBuildToolBar(Gtk.Toolbar tb, ISettingsService settings, string toolPrefix)
        {
            base.HandleBuildToolBar(tb, settings, toolPrefix);


            if (radius_sep == null)
            {
                radius_sep = new Gtk.SeparatorToolItem();
            }

            tb.AppendItem(radius_sep);

            if (radius_label == null)
            {
                radius_label = new ToolBarLabel(string.Format("  {0}: ", Translations.GetString("Radius")));
            }

            tb.AppendItem(radius_label);

            if (radius == null)
            {
                radius = new (new Gtk.SpinButton(0, 1e5, 1)
                {
                    Value = settings.GetSetting(RADIUS_SETTING(toolPrefix), 20)
                });

                radius.Widget.ValueChanged += (o, e) => {
                    //Go through the Get/Set routine.
                    Radius = Radius;
                };
            }

            tb.AppendItem(radius);
        }
Пример #6
0
        protected override void OnBuildToolBar(Gtk.Toolbar tb)
        {
            base.OnBuildToolBar(tb);

            if (sampling_label == null)
            {
                sampling_label = new ToolBarLabel(string.Format(" {0}: ", Catalog.GetString("Sampling")));
            }

            tb.AppendItem(sampling_label);

            if (sample_size == null)
            {
                sample_size = new ToolBarDropDownButton(true);

                sample_size.AddItem(Catalog.GetString("Single Pixel"), "Toolbar.Sampling.1x1.png", 1);
                sample_size.AddItem(Catalog.GetString("3 x 3 Region"), "Toolbar.Sampling.3x3.png", 3);
                sample_size.AddItem(Catalog.GetString("5 x 5 Region"), "Toolbar.Sampling.5x5.png", 5);
                sample_size.AddItem(Catalog.GetString("7 x 7 Region"), "Toolbar.Sampling.7x7.png", 7);
                sample_size.AddItem(Catalog.GetString("9 x 9 Region"), "Toolbar.Sampling.9x9.png", 9);
            }

            tb.AppendItem(sample_size);

            if (sample_type == null)
            {
                sample_type = new ToolBarDropDownButton(true);

                sample_type.AddItem(Catalog.GetString("Layer"), "Menu.Layers.MergeLayerDown.png", true);
                sample_type.AddItem(Catalog.GetString("Image"), "ResizeCanvas.Image.png", false);
            }

            tb.AppendItem(sample_type);

            if (sample_sep == null)
            {
                sample_sep = new Gtk.SeparatorToolItem();
            }

            tb.AppendItem(sample_sep);

            if (tool_select_label == null)
            {
                tool_select_label = new ToolBarLabel(string.Format(" {0}: ", Catalog.GetString("After select")));
            }

            tb.AppendItem(tool_select_label);

            if (tool_select == null)
            {
                tool_select = new ToolBarDropDownButton(true);

                tool_select.AddItem(Catalog.GetString("Do not switch tool"), "Tools.ColorPicker.png", 0);
                tool_select.AddItem(Catalog.GetString("Switch to previous tool"), "Tools.ColorPicker.PreviousTool.png", 1);
                tool_select.AddItem(Catalog.GetString("Switch to Pencil tool"), "Tools.Pencil.png", 2);
            }

            tb.AppendItem(tool_select);
        }
Пример #7
0
        public override void HandleBuildToolBar(Gtk.Toolbar tb)
        {
            base.HandleBuildToolBar(tb);


            if (radius_sep == null)
            {
                radius_sep = new Gtk.SeparatorToolItem();
            }

            tb.AppendItem(radius_sep);

            if (radius_label == null)
            {
                radius_label = new ToolBarLabel(string.Format("  {0}: ", Catalog.GetString("Radius")));
            }

            tb.AppendItem(radius_label);

            if (radius_minus == null)
            {
                radius_minus          = new ToolBarButton("Toolbar.MinusButton.png", "", Catalog.GetString("Decrease shape's corner radius"));
                radius_minus.Clicked += RadiusMinusButtonClickedEvent;
            }

            tb.AppendItem(radius_minus);

            if (radius == null)
            {
                radius = new ToolBarComboBox(65, 16, true, "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
                                             "10", "11", "12", "13", "14", "15", "20", "25", "30", "40",
                                             "50", "60", "70", "80");

                radius.ComboBox.Changed += (o, e) =>
                {
                    //Go through the Get/Set routine.
                    Radius = Radius;
                };
            }

            tb.AppendItem(radius);

            if (radius_plus == null)
            {
                radius_plus          = new ToolBarButton("Toolbar.PlusButton.png", "", Catalog.GetString("Increase shape's corner radius"));
                radius_plus.Clicked += RadiusPlusButtonClickedEvent;
            }

            tb.AppendItem(radius_plus);
        }
Пример #8
0
        protected override void OnBuildToolBar(Gtk.Toolbar tb)
        {
            base.OnBuildToolBar(tb);

            if (tolerance_label == null)
            {
                tolerance_label = new ToolBarLabel(string.Format("    {0}: ", Catalog.GetString("Tolerance")));
            }

            tb.AppendItem(tolerance_label);

            if (tolerance_slider == null)
            {
                tolerance_slider = new ToolBarSlider(0, 100, 1, 50);
            }

            tb.AppendItem(tolerance_slider);
        }
Пример #9
0
        protected override void OnBuildToolBar(Gtk.Toolbar tb)
        {
            base.OnBuildToolBar(tb);

            if (tool_select_label == null)
            {
                tool_select_label = new ToolBarLabel(string.Format(" {0}: ", Catalog.GetString("After select")));
            }

            tb.AppendItem(tool_select_label);

            // TODO: Enable when we have the Pencil tool
            if (tool_select == null)
            {
                tool_select = new ToolBarComboBox(170, 0, false, Catalog.GetString("Do not switch tool"), Catalog.GetString("Switch to previous tool"), Catalog.GetString("Switch to Pencil tool"));
            }

            tb.AppendItem(tool_select);
        }
Пример #10
0
        protected override void OnBuildToolBar(Gtk.Toolbar tb)
        {
            base.OnBuildToolBar(tb);

            if (selection_sep == null)
            {
                selection_sep = new Gtk.SeparatorToolItem();
            }

            tb.AppendItem(selection_sep);

            if (selection_label == null)
            {
                selection_label = new ToolBarLabel(Catalog.GetString(" Selection Mode: "));
            }

            tb.AppendItem(selection_label);


            if (selection_combo_box == null)
            {
                selection_combo_box = new ToolBarComboBox(170, 0, false);

                selection_combo_box.ComboBox.Changed += (o, e) =>
                {
                    Gtk.TreeIter iter;

                    if (selection_combo_box.ComboBox.GetActiveIter(out iter))
                    {
                        SelectionMode = ((KeyValuePair <int, string>)selection_combo_box.Model.GetValue(iter, 1)).Key;
                    }
                };

                foreach (KeyValuePair <int, string> sel in selectionCombinations)
                {
                    selection_combo_box.Model.AppendValues(sel.Value, sel);
                }

                selection_combo_box.ComboBox.Active = 0;
            }

            tb.AppendItem(selection_combo_box);
        }
Пример #11
0
        //private ToolBarLabel mode_label;
        //private ToolBarDropDownButton mode_button;

        protected override void OnBuildToolBar(Gtk.Toolbar tb)
        {
            base.OnBuildToolBar(tb);

            if (gradient_label == null)
            {
                gradient_label = new ToolBarLabel(string.Format(" {0}: ", Catalog.GetString("Gradient")));
            }

            tb.AppendItem(gradient_label);

            if (gradient_button == null)
            {
                gradient_button = new ToolBarDropDownButton();

                gradient_button.AddItem(Catalog.GetString("Linear Gradient"), "Toolbar.LinearGradient.png", GradientType.Linear);
                gradient_button.AddItem(Catalog.GetString("Linear Reflected Gradient"), "Toolbar.LinearReflectedGradient.png", GradientType.LinearReflected);
                gradient_button.AddItem(Catalog.GetString("Linear Diamond Gradient"), "Toolbar.DiamondGradient.png", GradientType.Diamond);
                gradient_button.AddItem(Catalog.GetString("Radial Gradient"), "Toolbar.RadialGradient.png", GradientType.Radial);
                gradient_button.AddItem(Catalog.GetString("Conical Gradient"), "Toolbar.ConicalGradient.png", GradientType.Conical);
            }

            tb.AppendItem(gradient_button);

            // Hide TransparentMode.  The core issue is we can't just paint it on top of the
            // current layer because it's transparent.  Will require significant effort to support.

            //tb.AppendItem (new Gtk.SeparatorToolItem ());

            //if (mode_label == null)
            //        mode_label = new ToolBarLabel (string.Format (" {0}: ", Catalog.GetString ("Mode")));

            //tb.AppendItem (mode_label);

            //if (mode_button == null) {
            //        mode_button = new ToolBarDropDownButton ();

            //        mode_button.AddItem (Catalog.GetString ("Color Mode"), "Toolbar.ColorMode.png", GradientColorMode.Color);
            //        mode_button.AddItem (Catalog.GetString ("Transparency Mode"), "Toolbar.TransparentMode.png", GradientColorMode.Transparency);
            //}

            //tb.AppendItem (mode_button);
        }
Пример #12
0
        protected override void BuildToolBar(Gtk.Toolbar tb)
        {
            base.BuildToolBar(tb);

            if (radius_sep == null)
            {
                radius_sep = new Gtk.SeparatorToolItem();
            }

            tb.AppendItem(radius_sep);

            if (radius_label == null)
            {
                radius_label = new ToolBarLabel(string.Format("  {0}: ", Catalog.GetString("Radius")));
            }

            tb.AppendItem(radius_label);

            if (radius_minus == null)
            {
                radius_minus          = new ToolBarButton("Toolbar.MinusButton.png", "", Catalog.GetString("Decrease rectangle's corner radius"));
                radius_minus.Clicked += RadiusMinusButtonClickedEvent;
            }

            tb.AppendItem(radius_minus);

            if (radius == null)
            {
                radius = new ToolBarComboBox(65, 2, true, "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
                                             "10", "11", "12", "13", "14", "15", "20", "25", "30", "35",
                                             "40", "45", "50", "55");
            }

            tb.AppendItem(radius);

            if (radius_plus == null)
            {
                radius_plus          = new ToolBarButton("Toolbar.PlusButton.png", "", Catalog.GetString("Increase rectangle's corner radius"));
                radius_plus.Clicked += RadiusPlusButtonClickedEvent;
            }

            tb.AppendItem(radius_plus);
        }
Пример #13
0
        protected override void OnBuildToolBar(Gtk.Toolbar tb)
        {
            base.OnBuildToolBar(tb);

            if (mode_label == null)
            {
                mode_label = new ToolBarLabel(string.Format(" {0}: ", Catalog.GetString("Flood Mode")));
            }

            tb.AppendItem(mode_label);

            if (mode_button == null)
            {
                mode_button = new ToolBarDropDownButton();

                mode_button.AddItem(Catalog.GetString("Contiguous"), "Tools.FreeformShape.png", true);
                mode_button.AddItem(Catalog.GetString("Global"), "Menu.Help.Website.png", false);
            }

            tb.AppendItem(mode_button);

            if (mode_sep == null)
            {
                mode_sep = new Gtk.SeparatorToolItem();
            }

            tb.AppendItem(mode_sep);

            if (tolerance_label == null)
            {
                tolerance_label = new ToolBarLabel(string.Format(" {0}: ", Catalog.GetString("Tolerance")));
            }

            tb.AppendItem(tolerance_label);

            if (tolerance_slider == null)
            {
                tolerance_slider = new ToolBarSlider(0, 100, 1, 0);
            }

            tb.AppendItem(tolerance_slider);
        }
Пример #14
0
        protected override void OnBuildToolBar(Toolbar tb)
        {
            base.OnBuildToolBar(tb);


            if (fill_sep == null)
            {
                fill_sep = new Gtk.SeparatorToolItem();
            }

            tb.AppendItem(fill_sep);

            if (fill_label == null)
            {
                fill_label = new ToolBarLabel(string.Format(" {0}: ", Catalog.GetString("Fill Style")));
            }

            tb.AppendItem(fill_label);

            if (fill_button == null)
            {
                fill_button = new ToolBarDropDownButton();

                fill_button.AddItem(Catalog.GetString("Outline Shape"), "ShapeTool.Outline.png", 0);
                fill_button.AddItem(Catalog.GetString("Fill Shape"), "ShapeTool.Fill.png", 1);
                fill_button.AddItem(Catalog.GetString("Fill and Outline Shape"), "ShapeTool.OutlineFill.png", 2);
            }

            tb.AppendItem(fill_button);


            Gtk.ComboBox dpbBox = dashPBox.SetupToolbar(tb);

            if (dpbBox != null)
            {
                dpbBox.Changed += (o, e) =>
                {
                    dashPattern = dpbBox.ActiveText;
                };
            }
        }
Пример #15
0
        protected override void OnBuildToolBar(Toolbar tb)
        {
            base.OnBuildToolBar(tb);

            if (label_type == null)
            {
                label_type = new ToolBarLabel(string.Format(" {0}: ", Catalog.GetString("Type")));
            }
            if (comboBox_type == null)
            {
                comboBox_type = new ToolBarComboBox(100, 0, false, Catalog.GetString("Normal"), Catalog.GetString("Smooth"));

                comboBox_type.ComboBox.Changed += (o, e) => {
                    eraser_type = (EraserType)comboBox_type.ComboBox.Active;
                };
            }
            tb.AppendItem(label_type);
            tb.AppendItem(comboBox_type);
            // Change the cursor when the BrushWidth is changed.
            brush_width.ComboBox.Changed += (sender, e) => SetCursor(DefaultCursor);
        }
Пример #16
0
        protected override void OnBuildToolBar(Toolbar tb)
        {
            base.OnBuildToolBar(tb);

            // Change the cursor when the BrushWidth is changed.
            brush_width.ComboBox.Changed += (sender, e) => SetCursor(DefaultCursor);

            if (brush_label == null)
            {
                brush_label = new ToolBarLabel(string.Format(" {0}:  ", Catalog.GetString("Type")));
            }

            if (brush_combo_box == null)
            {
                brush_combo_box = new ToolBarComboBox(100, 0, false);
                brush_combo_box.ComboBox.Changed += (o, e) => {
                    Gtk.TreeIter iter;
                    if (brush_combo_box.ComboBox.GetActiveIter(out iter))
                    {
                        active_brush = (PaintBrush)brush_combo_box.Model.GetValue(iter, 1);
                    }
                    else
                    {
                        active_brush = default_brush;
                    }
                };
                foreach (var brush in PintaCore.PaintBrushes)
                {
                    if (default_brush == null)
                    {
                        default_brush = (PaintBrush)brush;
                    }
                    brush_combo_box.Model.AppendValues(brush.Name, brush);
                }
                brush_combo_box.ComboBox.Active = 0;
            }

            tb.AppendItem(brush_label);
            tb.AppendItem(brush_combo_box);
        }
Пример #17
0
        protected override void OnBuildToolBar(Toolbar tb)
        {
            base.OnBuildToolBar(tb);

            if (brush_width_label == null)
            {
                brush_width_label = new ToolBarLabel(string.Format(" {0}: ", Catalog.GetString("Brush width")));
            }

            tb.AppendItem(brush_width_label);

            if (brush_width_minus == null)
            {
                brush_width_minus          = new ToolBarButton("Toolbar.MinusButton.png", "", Catalog.GetString("Decrease brush size"));
                brush_width_minus.Clicked += MinusButtonClickedEvent;
            }

            tb.AppendItem(brush_width_minus);

            if (brush_width == null)
            {
                brush_width = new ToolBarComboBox(65, 1, true, "1", "2", "3", "4", "5", "6", "7", "8", "9",
                                                  "10", "11", "12", "13", "14", "15", "20", "25", "30", "35",
                                                  "40", "45", "50", "55");
            }

            tb.AppendItem(brush_width);

            if (brush_width_plus == null)
            {
                brush_width_plus          = new ToolBarButton("Toolbar.PlusButton.png", "", Catalog.GetString("Increase brush size"));
                brush_width_plus.Clicked += PlusButtonClickedEvent;
            }

            tb.AppendItem(brush_width_plus);
        }
Пример #18
0
        protected override void OnBuildToolBar(Gtk.Toolbar tb)
        {
            base.OnBuildToolBar(tb);

            if (font_label == null)
            {
                font_label = new ToolBarLabel(string.Format(" {0}: ", Translations.GetString("Font")));
            }

            tb.AppendItem(font_label);

            if (font_button == null)
            {
                font_button = new (new FontButton()
                {
                    ShowStyle = true, ShowSize = true, UseFont = true
                });
                // Default to Arial if possible.
                font_button.Widget.Font = Settings.GetSetting(FONT_SETTING, "Arial 12");

                font_button.Widget.FontSet += HandleFontChanged;
            }

            tb.AppendItem(font_button);

            tb.AppendItem(new SeparatorToolItem());

            if (bold_btn == null)
            {
                bold_btn          = new ToolBarToggleButton("Toolbar.Bold.png", Translations.GetString("Bold"), Translations.GetString("Bold"));
                bold_btn.Active   = Settings.GetSetting(BOLD_SETTING, false);
                bold_btn.Toggled += HandleBoldButtonToggled;
            }

            tb.AppendItem(bold_btn);

            if (italic_btn == null)
            {
                italic_btn          = new ToolBarToggleButton("Toolbar.Italic.png", Translations.GetString("Italic"), Translations.GetString("Italic"));
                italic_btn.Active   = Settings.GetSetting(ITALIC_SETTING, false);
                italic_btn.Toggled += HandleItalicButtonToggled;
            }

            tb.AppendItem(italic_btn);

            if (underscore_btn == null)
            {
                underscore_btn          = new ToolBarToggleButton("Toolbar.Underline.png", Translations.GetString("Underline"), Translations.GetString("Underline"));
                underscore_btn.Active   = Settings.GetSetting(UNDERLINE_SETTING, false);
                underscore_btn.Toggled += HandleUnderscoreButtonToggled;
            }

            tb.AppendItem(underscore_btn);

            tb.AppendItem(new SeparatorToolItem());

            var alignment = (TextAlignment)Settings.GetSetting(ALIGNMENT_SETTING, (int)TextAlignment.Left);

            if (left_alignment_btn == null)
            {
                left_alignment_btn          = new ToolBarToggleButton("Toolbar.LeftAlignment.png", Translations.GetString("Left Align"), Translations.GetString("Left Align"));
                left_alignment_btn.Active   = alignment == TextAlignment.Left;
                left_alignment_btn.Toggled += HandleLeftAlignmentButtonToggled;
            }

            tb.AppendItem(left_alignment_btn);

            if (center_alignment_btn == null)
            {
                center_alignment_btn          = new ToolBarToggleButton("Toolbar.CenterAlignment.png", Translations.GetString("Center Align"), Translations.GetString("Center Align"));
                center_alignment_btn.Active   = alignment == TextAlignment.Center;
                center_alignment_btn.Toggled += HandleCenterAlignmentButtonToggled;
            }

            tb.AppendItem(center_alignment_btn);

            if (Right_alignment_btn == null)
            {
                Right_alignment_btn          = new ToolBarToggleButton("Toolbar.RightAlignment.png", Translations.GetString("Right Align"), Translations.GetString("Right Align"));
                Right_alignment_btn.Active   = alignment == TextAlignment.Right;
                Right_alignment_btn.Toggled += HandleRightAlignmentButtonToggled;
            }

            tb.AppendItem(Right_alignment_btn);

            if (fill_sep == null)
            {
                fill_sep = new Gtk.SeparatorToolItem();
            }

            tb.AppendItem(fill_sep);

            if (fill_label == null)
            {
                fill_label = new ToolBarLabel(string.Format(" {0}: ", Translations.GetString("Text Style")));
            }

            tb.AppendItem(fill_label);

            if (fill_button == null)
            {
                fill_button = new ToolBarDropDownButton();

                fill_button.AddItem(Translations.GetString("Normal"), Pinta.Resources.Icons.FillStyleFill, 0);
                fill_button.AddItem(Translations.GetString("Normal and Outline"), Pinta.Resources.Icons.FillStyleOutlineFill, 1);
                fill_button.AddItem(Translations.GetString("Outline"), Pinta.Resources.Icons.FillStyleOutline, 2);
                fill_button.AddItem(Translations.GetString("Fill Background"), Pinta.Resources.Icons.FillStyleBackground, 3);

                fill_button.SelectedIndex        = Settings.GetSetting(STYLE_SETTING, 0);
                fill_button.SelectedItemChanged += HandleBoldButtonToggled;
            }

            tb.AppendItem(fill_button);

            if (outline_sep == null)
            {
                outline_sep = new SeparatorToolItem();
            }

            tb.AppendItem(outline_sep);

            if (outline_width_label == null)
            {
                outline_width_label = new ToolBarLabel(string.Format(" {0}: ", Translations.GetString("Outline width")));
            }

            tb.AppendItem(outline_width_label);

            if (outline_width == null)
            {
                outline_width = new (new SpinButton(1, 1e5, 1)
                {
                    Value = Settings.GetSetting(OUTLINE_WIDTH_SETTING, 2)
                });
                outline_width.Widget.ValueChanged += HandleFontChanged;
            }

            tb.AppendItem(outline_width);

            outline_width.Visible = outline_width_label.Visible = outline_sep.Visible = StrokeText;

            UpdateFont();

            if (PintaCore.Workspace.HasOpenDocuments)
            {
                //Make sure the event handler is never added twice.
                PintaCore.Workspace.ActiveDocument.LayerCloned -= FinalizeText;

                //When an ImageSurface is Cloned, finalize the re-editable text (if applicable).
                PintaCore.Workspace.ActiveDocument.LayerCloned += FinalizeText;
            }
        }
Пример #19
0
        protected override void OnBuildToolBar(Gtk.Toolbar tb)
        {
            base.OnBuildToolBar(tb);

            if (font_label == null)
            {
                font_label = new ToolBarLabel(string.Format(" {0}: ", Catalog.GetString("Font")));
            }

            tb.AppendItem(font_label);

            if (font_combo == null)
            {
                var fonts = PintaCore.System.Fonts.GetInstalledFonts();
                fonts.Sort();

                // Default to Arial or first in list
                int index = Math.Max(fonts.IndexOf("Arial"), 0);

                font_combo = new ToolBarFontComboBox(150, index, fonts.ToArray());
                font_combo.ComboBox.Changed += HandleFontChanged;
            }

            tb.AppendItem(font_combo);

            if (spacer_label == null)
            {
                spacer_label = new ToolBarLabel(" ");
            }

            tb.AppendItem(spacer_label);

            if (size_combo == null)
            {
                size_combo = new ToolBarComboBox(65, 0, true);

                size_combo.ComboBox.Changed += HandleSizeChanged;
            }

            tb.AppendItem(size_combo);

            tb.AppendItem(new SeparatorToolItem());

            if (bold_btn == null)
            {
                bold_btn          = new ToolBarToggleButton("Toolbar.Bold.png", Catalog.GetString("Bold"), Catalog.GetString("Bold"));
                bold_btn.Toggled += HandleBoldButtonToggled;
            }

            tb.AppendItem(bold_btn);

            if (italic_btn == null)
            {
                italic_btn          = new ToolBarToggleButton("Toolbar.Italic.png", Catalog.GetString("Italic"), Catalog.GetString("Italic"));
                italic_btn.Toggled += HandleItalicButtonToggled;
            }

            tb.AppendItem(italic_btn);

            if (underscore_btn == null)
            {
                underscore_btn          = new ToolBarToggleButton("Toolbar.Underline.png", Catalog.GetString("Underline"), Catalog.GetString("Underline"));
                underscore_btn.Toggled += HandleUnderscoreButtonToggled;
            }

            tb.AppendItem(underscore_btn);

            tb.AppendItem(new SeparatorToolItem());

            if (left_alignment_btn == null)
            {
                left_alignment_btn          = new ToolBarToggleButton("Toolbar.LeftAlignment.png", Catalog.GetString("Left Align"), Catalog.GetString("Left Align"));
                left_alignment_btn.Active   = true;
                left_alignment_btn.Toggled += HandleLeftAlignmentButtonToggled;
            }

            tb.AppendItem(left_alignment_btn);

            if (center_alignment_btn == null)
            {
                center_alignment_btn          = new ToolBarToggleButton("Toolbar.CenterAlignment.png", Catalog.GetString("Center Align"), Catalog.GetString("Center Align"));
                center_alignment_btn.Toggled += HandleCenterAlignmentButtonToggled;
            }

            tb.AppendItem(center_alignment_btn);

            if (Right_alignment_btn == null)
            {
                Right_alignment_btn          = new ToolBarToggleButton("Toolbar.RightAlignment.png", Catalog.GetString("Right Align"), Catalog.GetString("Right Align"));
                Right_alignment_btn.Toggled += HandleRightAlignmentButtonToggled;
            }

            tb.AppendItem(Right_alignment_btn);

            if (fill_sep == null)
            {
                fill_sep = new Gtk.SeparatorToolItem();
            }

            tb.AppendItem(fill_sep);

            if (fill_label == null)
            {
                fill_label = new ToolBarLabel(string.Format(" {0}: ", Catalog.GetString("Text Style")));
            }

            tb.AppendItem(fill_label);

            if (fill_button == null)
            {
                fill_button = new ToolBarDropDownButton();

                fill_button.AddItem(Catalog.GetString("Normal"), "ShapeTool.Fill.png", 0);
                fill_button.AddItem(Catalog.GetString("Normal and Outline"), "ShapeTool.OutlineFill.png", 1);
                fill_button.AddItem(Catalog.GetString("Outline"), "ShapeTool.Outline.png", 2);
                fill_button.AddItem(Catalog.GetString("Fill Background"), "TextTool.FillBackground.png", 3);

                fill_button.SelectedItemChanged += HandleBoldButtonToggled;
            }

            tb.AppendItem(fill_button);

            tb.AppendItem(new SeparatorToolItem());

            if (outline_width_label == null)
            {
                outline_width_label = new ToolBarLabel(string.Format(" {0}: ", Catalog.GetString("Outline width")));
            }

            tb.AppendItem(outline_width_label);

            if (outline_width_minus == null)
            {
                outline_width_minus          = new ToolBarButton("Toolbar.MinusButton.png", "", Catalog.GetString("Decrease outline size"));
                outline_width_minus.Clicked += MinusButtonClickedEvent;
            }

            tb.AppendItem(outline_width_minus);

            if (outline_width == null)
            {
                outline_width = new ToolBarComboBox(65, 1, true, "1", "2", "3", "4", "5", "6", "7", "8", "9",
                                                    "10", "11", "12", "13", "14", "15", "20", "25", "30", "35",
                                                    "40", "45", "50", "55");

                (outline_width.Child as ComboBoxEntry).Changed += HandleSizeChanged;
            }

            tb.AppendItem(outline_width);

            if (outline_width_plus == null)
            {
                outline_width_plus          = new ToolBarButton("Toolbar.PlusButton.png", "", Catalog.GetString("Increase outline size"));
                outline_width_plus.Clicked += PlusButtonClickedEvent;
            }

            tb.AppendItem(outline_width_plus);

            UpdateFontSizes();

            if (PintaCore.Workspace.HasOpenDocuments)
            {
                //Make sure the event handler is never added twice.
                PintaCore.Workspace.ActiveDocument.LayerCloned -= FinalizeText;

                //When an ImageSurface is Cloned, finalize the re-editable text (if applicable).
                PintaCore.Workspace.ActiveDocument.LayerCloned += FinalizeText;
            }
        }
Пример #20
0
        public override void HandleBuildToolBar(Gtk.Toolbar tb)
        {
            base.HandleBuildToolBar(tb);


            #region Show Arrows

            //Arrow separator.

            if (arrowSep == null)
            {
                arrowSep = new Gtk.SeparatorToolItem();

                showOtherArrowOptions = false;
            }

            tb.AppendItem(arrowSep);


            if (arrowLabel == null)
            {
                arrowLabel = new ToolBarLabel(string.Format(" {0}: ", Catalog.GetString("Arrow")));
            }

            tb.AppendItem(arrowLabel);


            //Show arrow 1.

            showArrowOneBox        = new Gtk.CheckButton("1");
            showArrowOneBox.Active = previousSettings1.Show;

            showArrowOneBox.Toggled += (o, e) =>
            {
                //Determine whether to change the visibility of Arrow options in the toolbar based on the updated Arrow showing/hiding.
                if (!showArrowOneBox.Active && !showArrowTwoBox.Active)
                {
                    if (showOtherArrowOptions)
                    {
                        tb.Remove(arrowSizeLabel);
                        tb.Remove(arrowSizeMinus);
                        tb.Remove(arrowSize);
                        tb.Remove(arrowSizePlus);
                        tb.Remove(arrowAngleOffsetLabel);
                        tb.Remove(arrowAngleOffsetMinus);
                        tb.Remove(arrowAngleOffset);
                        tb.Remove(arrowAngleOffsetPlus);
                        tb.Remove(arrowLengthOffsetLabel);
                        tb.Remove(arrowLengthOffsetMinus);
                        tb.Remove(arrowLengthOffset);
                        tb.Remove(arrowLengthOffsetPlus);

                        showOtherArrowOptions = false;
                    }
                }
                else
                {
                    if (!showOtherArrowOptions)
                    {
                        tb.Add(arrowSizeLabel);
                        tb.Add(arrowSizeMinus);
                        tb.Add(arrowSize);
                        tb.Add(arrowSizePlus);
                        tb.Add(arrowAngleOffsetLabel);
                        tb.Add(arrowAngleOffsetMinus);
                        tb.Add(arrowAngleOffset);
                        tb.Add(arrowAngleOffsetPlus);
                        tb.Add(arrowLengthOffsetLabel);
                        tb.Add(arrowLengthOffsetMinus);
                        tb.Add(arrowLengthOffset);
                        tb.Add(arrowLengthOffsetPlus);

                        showOtherArrowOptions = true;
                    }
                }

                LineCurveSeriesEngine activeEngine = (LineCurveSeriesEngine)ActiveShapeEngine;

                if (activeEngine != null)
                {
                    activeEngine.Arrow1.Show = showArrowOneBox.Active;

                    DrawActiveShape(false, false, true, false, false);

                    storePreviousSettings();
                }
            };

            tb.AddWidgetItem(showArrowOneBox);


            //Show arrow 2.

            showArrowTwoBox        = new Gtk.CheckButton("2");
            showArrowTwoBox.Active = previousSettings2.Show;

            showArrowTwoBox.Toggled += (o, e) =>
            {
                //Determine whether to change the visibility of Arrow options in the toolbar based on the updated Arrow showing/hiding.
                if (!showArrowOneBox.Active && !showArrowTwoBox.Active)
                {
                    if (showOtherArrowOptions)
                    {
                        tb.Remove(arrowSizeLabel);
                        tb.Remove(arrowSizeMinus);
                        tb.Remove(arrowSize);
                        tb.Remove(arrowSizePlus);
                        tb.Remove(arrowAngleOffsetLabel);
                        tb.Remove(arrowAngleOffsetMinus);
                        tb.Remove(arrowAngleOffset);
                        tb.Remove(arrowAngleOffsetPlus);
                        tb.Remove(arrowLengthOffsetLabel);
                        tb.Remove(arrowLengthOffsetMinus);
                        tb.Remove(arrowLengthOffset);
                        tb.Remove(arrowLengthOffsetPlus);

                        showOtherArrowOptions = false;
                    }
                }
                else
                {
                    if (!showOtherArrowOptions)
                    {
                        tb.Add(arrowSizeLabel);
                        tb.Add(arrowSizeMinus);
                        tb.Add(arrowSize);
                        tb.Add(arrowSizePlus);
                        tb.Add(arrowAngleOffsetLabel);
                        tb.Add(arrowAngleOffsetMinus);
                        tb.Add(arrowAngleOffset);
                        tb.Add(arrowAngleOffsetPlus);
                        tb.Add(arrowLengthOffsetLabel);
                        tb.Add(arrowLengthOffsetMinus);
                        tb.Add(arrowLengthOffset);
                        tb.Add(arrowLengthOffsetPlus);

                        showOtherArrowOptions = true;
                    }
                }

                LineCurveSeriesEngine activeEngine = (LineCurveSeriesEngine)ActiveShapeEngine;

                if (activeEngine != null)
                {
                    activeEngine.Arrow2.Show = showArrowTwoBox.Active;

                    DrawActiveShape(false, false, true, false, false);

                    storePreviousSettings();
                }
            };

            tb.AddWidgetItem(showArrowTwoBox);

            #endregion Show Arrows


            #region Arrow Size

            if (arrowSizeLabel == null)
            {
                arrowSizeLabel = new ToolBarLabel(string.Format(" {0}: ", Catalog.GetString("Size")));
            }

            if (arrowSizeMinus == null)
            {
                arrowSizeMinus          = new ToolBarButton("Toolbar.MinusButton.png", "", Catalog.GetString("Decrease arrow size"));
                arrowSizeMinus.Clicked += new EventHandler(arrowSizeMinus_Clicked);
            }

            if (arrowSize == null)
            {
                arrowSize = new ToolBarComboBox(65, 7, true,
                                                "3", "4", "5", "6", "7", "8", "9", "10", "12", "15", "18",
                                                "20", "25", "30", "40", "50", "60", "70", "80", "90", "100");

                arrowSize.ComboBox.Changed += (o, e) =>
                {
                    if (arrowSize.ComboBox.ActiveText.Length < 1)
                    {
                        //Ignore the change until the user enters something.
                        return;
                    }
                    else
                    {
                        double newSize = 10d;

                        if (arrowSize.ComboBox.ActiveText == "-")
                        {
                            //The user is trying to enter a negative value: change it to 1.
                            newSize = 1d;
                        }
                        else
                        {
                            if (Double.TryParse(arrowSize.ComboBox.ActiveText, out newSize))
                            {
                                if (newSize < 1d)
                                {
                                    //Less than 1: change it to 1.
                                    newSize = 1d;
                                }
                                else if (newSize > 100d)
                                {
                                    //Greater than 100: change it to 100.
                                    newSize = 100d;
                                }
                            }
                            else
                            {
                                //Not a number: wait until the user enters something.
                                return;
                            }
                        }

                        (arrowSize.ComboBox as Gtk.ComboBoxEntry).Entry.Text = newSize.ToString();

                        LineCurveSeriesEngine activeEngine = (LineCurveSeriesEngine)ActiveShapeEngine;

                        if (activeEngine != null)
                        {
                            activeEngine.Arrow1.ArrowSize = newSize;
                            activeEngine.Arrow2.ArrowSize = newSize;

                            DrawActiveShape(false, false, true, false, false);

                            storePreviousSettings();
                        }
                    }
                };
            }

            if (arrowSizePlus == null)
            {
                arrowSizePlus          = new ToolBarButton("Toolbar.PlusButton.png", "", Catalog.GetString("Increase arrow size"));
                arrowSizePlus.Clicked += new EventHandler(arrowSizePlus_Clicked);
            }

            #endregion Arrow Size


            #region Angle Offset

            if (arrowAngleOffsetLabel == null)
            {
                arrowAngleOffsetLabel = new ToolBarLabel(string.Format(" {0}: ", Catalog.GetString("Angle")));
            }

            if (arrowAngleOffsetMinus == null)
            {
                arrowAngleOffsetMinus          = new ToolBarButton("Toolbar.MinusButton.png", "", Catalog.GetString("Decrease angle offset"));
                arrowAngleOffsetMinus.Clicked += new EventHandler(arrowAngleOffsetMinus_Clicked);
            }

            if (arrowAngleOffset == null)
            {
                arrowAngleOffset = new ToolBarComboBox(65, 9, true,
                                                       "-30", "-25", "-20", "-15", "-10", "-5", "0", "5", "10", "15", "20", "25", "30");

                arrowAngleOffset.ComboBox.Changed += (o, e) =>
                {
                    if (arrowAngleOffset.ComboBox.ActiveText.Length < 1)
                    {
                        //Ignore the change until the user enters something.
                        return;
                    }
                    else if (arrowAngleOffset.ComboBox.ActiveText == "-")
                    {
                        //The user is trying to enter a negative value: ignore the change until the user enters more.
                        return;
                    }
                    else
                    {
                        double newAngle = 15d;

                        if (Double.TryParse(arrowAngleOffset.ComboBox.ActiveText, out newAngle))
                        {
                            if (newAngle < -89d)
                            {
                                //Less than -89: change it to -89.
                                newAngle = -89d;
                            }
                            else if (newAngle > 89d)
                            {
                                //Greater than 89: change it to 89.
                                newAngle = 89d;
                            }
                        }
                        else
                        {
                            //Not a number: wait until the user enters something.
                            return;
                        }

                        (arrowAngleOffset.ComboBox as Gtk.ComboBoxEntry).Entry.Text = newAngle.ToString();

                        LineCurveSeriesEngine activeEngine = (LineCurveSeriesEngine)ActiveShapeEngine;

                        if (activeEngine != null)
                        {
                            activeEngine.Arrow1.AngleOffset = newAngle;
                            activeEngine.Arrow2.AngleOffset = newAngle;

                            DrawActiveShape(false, false, true, false, false);

                            storePreviousSettings();
                        }
                    }
                };
            }

            if (arrowAngleOffsetPlus == null)
            {
                arrowAngleOffsetPlus          = new ToolBarButton("Toolbar.PlusButton.png", "", Catalog.GetString("Increase angle offset"));
                arrowAngleOffsetPlus.Clicked += new EventHandler(arrowAngleOffsetPlus_Clicked);
            }

            #endregion Angle Offset


            #region Length Offset

            if (arrowLengthOffsetLabel == null)
            {
                arrowLengthOffsetLabel = new ToolBarLabel(string.Format(" {0}: ", Catalog.GetString("Length")));
            }

            if (arrowLengthOffsetMinus == null)
            {
                arrowLengthOffsetMinus          = new ToolBarButton("Toolbar.MinusButton.png", "", Catalog.GetString("Decrease length offset"));
                arrowLengthOffsetMinus.Clicked += new EventHandler(arrowLengthOffsetMinus_Clicked);
            }

            if (arrowLengthOffset == null)
            {
                arrowLengthOffset = new ToolBarComboBox(65, 8, true,
                                                        "-30", "-25", "-20", "-15", "-10", "-5", "0", "5", "10", "15", "20", "25", "30");

                arrowLengthOffset.ComboBox.Changed += (o, e) =>
                {
                    if (arrowLengthOffset.ComboBox.ActiveText.Length < 1)
                    {
                        //Ignore the change until the user enters something.
                        return;
                    }
                    else if (arrowLengthOffset.ComboBox.ActiveText == "-")
                    {
                        //The user is trying to enter a negative value: ignore the change until the user enters more.
                        return;
                    }
                    else
                    {
                        double newLength = 10d;

                        if (Double.TryParse(arrowLengthOffset.ComboBox.ActiveText, out newLength))
                        {
                            if (newLength < -100d)
                            {
                                //Less than -100: change it to -100.
                                newLength = -100d;
                            }
                            else if (newLength > 100d)
                            {
                                //Greater than 100: change it to 100.
                                newLength = 100d;
                            }
                        }
                        else
                        {
                            //Not a number: wait until the user enters something.
                            return;
                        }

                        (arrowLengthOffset.ComboBox as Gtk.ComboBoxEntry).Entry.Text = newLength.ToString();

                        LineCurveSeriesEngine activeEngine = (LineCurveSeriesEngine)ActiveShapeEngine;

                        if (activeEngine != null)
                        {
                            activeEngine.Arrow1.LengthOffset = newLength;
                            activeEngine.Arrow2.LengthOffset = newLength;

                            DrawActiveShape(false, false, true, false, false);

                            storePreviousSettings();
                        }
                    }
                };
            }

            if (arrowLengthOffsetPlus == null)
            {
                arrowLengthOffsetPlus          = new ToolBarButton("Toolbar.PlusButton.png", "", Catalog.GetString("Increase length offset"));
                arrowLengthOffsetPlus.Clicked += new EventHandler(arrowLengthOffsetPlus_Clicked);
            }

            #endregion Length Offset


            if (showOtherArrowOptions)
            {
                tb.Add(arrowSizeLabel);
                tb.Add(arrowSizeMinus);
                tb.Add(arrowSize);
                tb.Add(arrowSizePlus);
                tb.Add(arrowAngleOffsetLabel);
                tb.Add(arrowAngleOffsetMinus);
                tb.Add(arrowAngleOffset);
                tb.Add(arrowAngleOffsetPlus);
                tb.Add(arrowLengthOffsetLabel);
                tb.Add(arrowLengthOffsetMinus);
                tb.Add(arrowLengthOffset);
                tb.Add(arrowLengthOffsetPlus);
            }
        }
Пример #21
0
        // Do this in a separate method so SelectTool can override it as
        // a no-op, but still get the BaseShape.OnBuildToolBar logic.
        protected virtual void BuildToolBar(Gtk.Toolbar tb)
        {
            if (brush_width_label == null)
            {
                brush_width_label = new ToolBarLabel(string.Format(" {0}: ", Catalog.GetString("Brush width")));
            }

            tb.AppendItem(brush_width_label);

            if (brush_width_minus == null)
            {
                brush_width_minus          = new ToolBarButton("Toolbar.MinusButton.png", "", Catalog.GetString("Decrease brush size"));
                brush_width_minus.Clicked += MinusButtonClickedEvent;
            }

            tb.AppendItem(brush_width_minus);

            if (brush_width == null)
            {
                brush_width = new ToolBarComboBox(65, 1, true, "1", "2", "3", "4", "5", "6", "7", "8", "9",
                                                  "10", "11", "12", "13", "14", "15", "20", "25", "30", "35",
                                                  "40", "45", "50", "55");
            }

            tb.AppendItem(brush_width);

            if (brush_width_plus == null)
            {
                brush_width_plus          = new ToolBarButton("Toolbar.PlusButton.png", "", Catalog.GetString("Increase brush size"));
                brush_width_plus.Clicked += PlusButtonClickedEvent;
            }

            tb.AppendItem(brush_width_plus);

            if (ShowStrokeComboBox)
            {
                if (fill_sep == null)
                {
                    fill_sep = new Gtk.SeparatorToolItem();
                }

                tb.AppendItem(fill_sep);

                if (fill_label == null)
                {
                    fill_label = new ToolBarLabel(string.Format(" {0}: ", Catalog.GetString("Fill Style")));
                }

                tb.AppendItem(fill_label);

                if (fill_button == null)
                {
                    fill_button = new ToolBarDropDownButton();

                    fill_button.AddItem(Catalog.GetString("Outline Shape"), "ShapeTool.Outline.png", 0);
                    fill_button.AddItem(Catalog.GetString("Fill Shape"), "ShapeTool.Fill.png", 1);
                    fill_button.AddItem(Catalog.GetString("Fill and Outline Shape"), "ShapeTool.OutlineFill.png", 2);
                }

                tb.AppendItem(fill_button);
            }
        }
Пример #22
0
        protected override void OnBuildToolBar(Toolbar tb)
        {
            base.OnBuildToolBar(tb);

            if (brush_width_label == null)
            {
                brush_width_label = new ToolBarLabel(string.Format(" {0}: ", Catalog.GetString("Brush width")));
            }

            tb.AppendItem(brush_width_label);

            if (brush_width_minus == null)
            {
                brush_width_minus          = new ToolBarButton("Toolbar.MinusButton.png", "", Catalog.GetString("Decrease brush size"));
                brush_width_minus.Clicked += MinusButtonClickedEvent;
            }

            tb.AppendItem(brush_width_minus);

            if (brush_width == null)
            {
                var      name   = Name;
                var      width  = PintaCore.Settings.GetSetting("brush-width-" + name, 2);
                string[] widths = { "1",  "2",  "3",  "4",  "5",  "6",  "7",  "8",  "9",
                                    "10", "11", "12", "13", "14", "15", "20", "25", "30","35",
                                    "40", "45", "50", "55" };

                var activeIndex = 1;
                for (var n = 0; n < widths.Length; n++)
                {
                    if (int.Parse(widths[n]) == width)
                    {
                        activeIndex = n;
                        break;
                    }
                }


                brush_width = new ToolBarComboBox(65, activeIndex, true, widths);
                SetCursor(DefaultCursor);

                brush_width.ComboBox.Changed += (sender, e) => {
                    int w;

                    if (int.TryParse(brush_width.ComboBox.ActiveText, out w))
                    {
                        if (w > 0)
                        {
                            ((ComboBoxEntry)brush_width.ComboBox).Entry.Text = w.ToString();
                        }
                        else
                        {
                            w = DEFAULT_BRUSH_WIDTH;
                        }
                    }
                    else
                    {
                        w = DEFAULT_BRUSH_WIDTH;
                    }

                    BrushWidth = w;
                    SetCursor(DefaultCursor);
                };
            }

            tb.AppendItem(brush_width);

            if (brush_width_plus == null)
            {
                brush_width_plus          = new ToolBarButton("Toolbar.PlusButton.png", "", Catalog.GetString("Increase brush size"));
                brush_width_plus.Clicked += PlusButtonClickedEvent;
            }

            tb.AppendItem(brush_width_plus);
        }