Exemplo n.º 1
0
        private void CreateDockAndPads(HBox container)
        {
            Gtk.IconFactory fact = new Gtk.IconFactory();
            fact.Add("Tools.Pencil.png", new Gtk.IconSet(PintaCore.Resources.GetIcon("Tools.Pencil.png")));
            fact.Add("Pinta.png", new Gtk.IconSet(PintaCore.Resources.GetIcon("Pinta.png")));
            fact.AddDefault();

            // Dock widget
            dock = new DockFrame();
            dock.CompactGuiLevel = 5;

            var style = new DockVisualStyle();

            style.PadTitleLabelColor         = Styles.PadLabelColor;
            style.PadBackgroundColor         = Styles.PadBackground;
            style.InactivePadBackgroundColor = Styles.InactivePadBackground;
            style.TabStyle          = DockTabStyle.Normal;
            style.ShowPadTitleIcon  = false;
            dock.DefaultVisualStyle = style;

            // Toolbox pad
            var toolboxpad = new ToolBoxPad();

            toolboxpad.Initialize(dock, show_pad);

            // Palette pad
            var palettepad = new ColorPalettePad();

            palettepad.Initialize(dock, show_pad);

            // Canvas pad
            canvas_pad = new CanvasPad();
            canvas_pad.Initialize(dock, show_pad);

            dock_container = canvas_pad.NotebookContainer;

            // Layer pad
            var layers_pad = new LayersPad();

            layers_pad.Initialize(dock, show_pad);

            // Open Images pad
            var open_images_pad = new OpenImagesPad();

            open_images_pad.Initialize(dock, show_pad);

            // History pad
            var history_pad = new HistoryPad();

            history_pad.Initialize(dock, show_pad);

            container.PackStart(dock, true, true, 0);

            string layout_file = PintaCore.Settings.LayoutFilePath;

            if (System.IO.File.Exists(layout_file))
            {
                try
                {
                    dock.LoadLayouts(layout_file);
                }
                // If parsing layouts.xml fails for some reason, proceed to create the default layout.
                catch (Exception e)
                {
                    System.Console.Error.WriteLine("Error reading " + PintaCore.Settings.LayoutFile + ": " + e.ToString());
                }
            }

            if (!dock.HasLayout("Default"))
            {
                dock.CreateLayout("Default", false);
            }

            dock.CurrentLayout = "Default";
        }
Exemplo n.º 2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="TraceLab.UI.GTK.InfoPanelFactory"/> class.
 /// </summary>
 /// <param name="dockFrame">Reference to main window dock frame.</param>
 internal InfoPanelFactory(ApplicationContext applicationContext, DockFrame dockFrame)
 {
     m_mainWindowDockFrame = dockFrame;
     m_applicationContext  = applicationContext;
 }
Exemplo n.º 3
0
        public void Initialize(DockFrame workspace, Menu padMenu)
        {
            // Create canvas
            Table mainTable = new Table(2, 2, false);

            sw = new ScrolledWindow()
            {
                Name       = "sw",
                ShadowType = ShadowType.EtchedOut
            };

            Viewport vp = new Viewport()
            {
                ShadowType = ShadowType.None
            };

            canvas = new PintaCanvas()
            {
                Name       = "canvas",
                CanDefault = true,
                CanFocus   = true,
                Events     = (Gdk.EventMask) 16134
            };

            // Canvas pad
            DockItem documentDockItem = workspace.AddItem("Canvas");

            documentDockItem.Behavior = DockItemBehavior.Locked;
            documentDockItem.Expand   = true;

            documentDockItem.DrawFrame = false;
            documentDockItem.Label     = Catalog.GetString("Documents");
            documentDockItem.Content   = mainTable;

            //rulers
            hruler        = new HRuler();
            hruler.Metric = MetricType.Pixels;
            mainTable.Attach(hruler, 1, 2, 0, 1, AttachOptions.Shrink | AttachOptions.Fill, AttachOptions.Shrink | AttachOptions.Fill, 0, 0);

            vruler        = new VRuler();
            vruler.Metric = MetricType.Pixels;
            mainTable.Attach(vruler, 0, 1, 1, 2, AttachOptions.Shrink | AttachOptions.Fill, AttachOptions.Shrink | AttachOptions.Fill, 0, 0);

            sw.Hadjustment.ValueChanged += delegate {
                UpdateRulerRange();
            };

            sw.Vadjustment.ValueChanged += delegate {
                UpdateRulerRange();
            };

            PintaCore.Workspace.CanvasSizeChanged += delegate {
                UpdateRulerRange();
            };

            canvas.MotionNotifyEvent += delegate(object o, MotionNotifyEventArgs args) {
                if (!PintaCore.Workspace.HasOpenDocuments)
                {
                    return;
                }

                Cairo.PointD point = PintaCore.Workspace.WindowPointToCanvas(args.Event.X, args.Event.Y);

                hruler.Position = point.X;
                vruler.Position = point.Y;
            };

            mainTable.Attach(sw, 1, 2, 1, 2, AttachOptions.Expand | AttachOptions.Fill, AttachOptions.Expand | AttachOptions.Fill, 0, 0);

            sw.Add(vp);
            vp.Add(canvas);

            mainTable.ShowAll();
            canvas.Show();
            vp.Show();

            hruler.Visible = false;
            vruler.Visible = false;


            PintaCore.Chrome.InitializeCanvas(canvas);

            canvas.SizeAllocated += delegate { UpdateRulerRange(); };

            PintaCore.Actions.View.Rulers.Toggled        += HandleRulersToggled;
            PintaCore.Actions.View.Pixels.Activated      += (o, e) => { SetRulersUnit(MetricType.Pixels); };
            PintaCore.Actions.View.Inches.Activated      += (o, e) => { SetRulersUnit(MetricType.Inches); };
            PintaCore.Actions.View.Centimeters.Activated += (o, e) => { SetRulersUnit(MetricType.Centimeters); };
        }