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"; }
/// <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; }
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); }; }