private void createButton() { Gtk.VBox vbox = new Gtk.VBox(); Gtk.Image image = new Gtk.Image(); addUserPhotoIfExists(image); image.HeightRequest = 150; image.Visible = true; Gtk.Label label_select = new Gtk.Label("Select !"); label_select.Visible = false; //hide this to the user until button is clicked first time Gtk.Label label_id = new Gtk.Label(personID.ToString()); label_id.Visible = false; //hide this to the user Gtk.Viewport viewport = new Gtk.Viewport(); UtilGtk.ViewportColorDefault(viewport); Gtk.Label label_name = new Gtk.Label(personName); label_name.Visible = true; label_name.Show(); viewport.Add(label_name); viewport.Show(); vbox.PackStart(image); //0 vbox.PackStart(label_id); //1 vbox.PackEnd(viewport, false, false, 1); //2 (contains label_name) vbox.Show(); button = new Button(vbox); button.WidthRequest = 150; button.HeightRequest = 170; }
public Panes () { Gtk.Viewport vp; mainSW = new Gtk.ScrolledWindow (); mainSW.SetPolicy (Gtk.PolicyType.Never, Gtk.PolicyType.Always); mainSW.ShadowType = Gtk.ShadowType.In; mainSW.SizeAllocated += MainResized; Pack1 (mainSW, true, false); vp = new Gtk.Viewport (null, null); vp.ResizeMode = Gtk.ResizeMode.Parent; vp.ShadowType = ShadowType.None; mainSW.Add (vp); vp.Show (); main = new WhiteBox (); vp.Add (main); main.Show (); detailsSW = new Gtk.ScrolledWindow (); detailsSW.SetPolicy (Gtk.PolicyType.Never, Gtk.PolicyType.Never); detailsSW.WidthRequest = 0; detailsSW.NoShowAll = true; detailsSW.ShadowType = Gtk.ShadowType.In; Pack2 (detailsSW, false, false); vp = new Gtk.Viewport (null, null); vp.ShadowType = ShadowType.None; detailsSW.Add (vp); vp.Show (); details = new WhiteBox (); vp.Add (details); details.Show (); }
public Panes() { Gtk.Viewport vp; mainSW = new Gtk.ScrolledWindow(); mainSW.SetPolicy(Gtk.PolicyType.Never, Gtk.PolicyType.Always); mainSW.ShadowType = Gtk.ShadowType.In; mainSW.SizeAllocated += MainResized; Pack1(mainSW, true, false); vp = new Gtk.Viewport(null, null); vp.ResizeMode = Gtk.ResizeMode.Parent; vp.ShadowType = ShadowType.None; mainSW.Add(vp); vp.Show(); main = new WhiteBox(); vp.Add(main); main.Show(); detailsSW = new Gtk.ScrolledWindow(); detailsSW.SetPolicy(Gtk.PolicyType.Never, Gtk.PolicyType.Never); detailsSW.WidthRequest = 0; detailsSW.NoShowAll = true; detailsSW.ShadowType = Gtk.ShadowType.In; Pack2(detailsSW, false, false); vp = new Gtk.Viewport(null, null); vp.ShadowType = ShadowType.None; detailsSW.Add(vp); vp.Show(); details = new WhiteBox(); vp.Add(details); details.Show(); }
private void CreateDockAndPads(HBox container) { // 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 }; // Dock widget dock = new DockFrame (); dock.CompactGuiLevel = 5; 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 (); // Toolbox pad DockItem toolbox_item = dock.AddItem ("Toolbox"); toolbox = new ToolBoxWidget () { Name = "toolbox" }; toolbox_item.Label = Catalog.GetString ("Tools"); toolbox_item.Content = toolbox; toolbox_item.Icon = PintaCore.Resources.GetIcon ("Tools.Pencil.png"); toolbox_item.Behavior |= DockItemBehavior.CantClose; toolbox_item.DefaultWidth = 65; Gtk.Action show_toolbox = show_pad.AppendAction ("Tools", Catalog.GetString ("Tools"), null, "Tools.Pencil.png"); show_toolbox.Activated += delegate { toolbox_item.Visible = true; }; // Palette pad DockItem palette_item = dock.AddItem ("Palette"); color = new ColorPaletteWidget () { Name = "color" }; palette_item.Label = Catalog.GetString ("Palette"); palette_item.Content = color; palette_item.Icon = PintaCore.Resources.GetIcon ("Pinta.png"); palette_item.DefaultLocation = "Toolbox/Bottom"; palette_item.Behavior |= DockItemBehavior.CantClose; palette_item.DefaultWidth = 65; Gtk.Action show_palette = show_pad.AppendAction ("Palette", Catalog.GetString ("Palette"), null, "Pinta.png"); show_palette.Activated += delegate { palette_item.Visible = true; }; // Canvas pad DockItem documentDockItem = dock.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 (); HideRulers(); // Layer pad layers = new LayersListWidget (); DockItem layers_item = dock.AddItem ("Layers"); DockItemToolbar layers_tb = layers_item.GetToolbar (PositionType.Bottom); layers_item.Label = Catalog.GetString ("Layers"); layers_item.Content = layers; layers_item.Icon = PintaCore.Resources.GetIcon ("Menu.Layers.MergeLayerDown.png"); layers_tb.Add (PintaCore.Actions.Layers.AddNewLayer.CreateDockToolBarItem ()); layers_tb.Add (PintaCore.Actions.Layers.DeleteLayer.CreateDockToolBarItem ()); layers_tb.Add (PintaCore.Actions.Layers.DuplicateLayer.CreateDockToolBarItem ()); layers_tb.Add (PintaCore.Actions.Layers.MergeLayerDown.CreateDockToolBarItem ()); layers_tb.Add (PintaCore.Actions.Layers.MoveLayerUp.CreateDockToolBarItem ()); layers_tb.Add (PintaCore.Actions.Layers.MoveLayerDown.CreateDockToolBarItem ()); Gtk.Action show_layers = show_pad.AppendAction ("Layers", Catalog.GetString ("Layers"), null, "Menu.Layers.MergeLayerDown.png"); show_layers.Activated += delegate { layers_item.Visible = true; }; // History pad HistoryTreeView history = new HistoryTreeView (); DockItem history_item = dock.AddItem ("History"); DockItemToolbar history_tb = history_item.GetToolbar (PositionType.Bottom); history_item.Label = Catalog.GetString ("History"); history_item.DefaultLocation = "Layers/Bottom"; history_item.Content = history; history_item.Icon = PintaCore.Resources.GetIcon ("Menu.Layers.DuplicateLayer.png"); history_tb.Add (PintaCore.Actions.Edit.Undo.CreateDockToolBarItem ()); history_tb.Add (PintaCore.Actions.Edit.Redo.CreateDockToolBarItem ()); Gtk.Action show_history = show_pad.AppendAction ("History", Catalog.GetString ("History"), null, "Menu.Layers.DuplicateLayer.png"); show_history.Activated += delegate { history_item.Visible = true; }; container.PackStart (dock, true, true, 0); string layout_file = System.IO.Path.Combine (PintaCore.Settings.GetUserSettingsDirectory (), "layouts.xml"); if (System.IO.File.Exists (layout_file)) dock.LoadLayouts (layout_file); if (!dock.HasLayout ("Default")) dock.CreateLayout ("Default", false); dock.CurrentLayout = "Default"; }
/// <summary>Default constructor.</summary> /// <param name="UnderlyingGallery">The underlying gallery.</param> public GalleryPopupWindow(Gallery UnderlyingGallery) : base(WindowType.Popup) { this.underlyingGallery = UnderlyingGallery; this.tiles = new List<Tile> (); this.mapping = new Dictionary<Tile, Tile> (); foreach(Tile t in UnderlyingGallery.Tiles) { Tile copy = t.Copy (); copy.Show (); tiles.Add (copy); if(t == UnderlyingGallery.SelectedTile) { copy.Selected = true; selectedTile = t; } mapping.Add (copy, t); } int width = UnderlyingGallery.Allocation.Width; columns = (uint)(width / underlyingGallery.TileWidth); rows = (uint)Math.Ceiling ((double)tiles.Count / columns); this.tileTable = new Table (rows, columns, true); this.tileTable.Show (); this.tileTable.HeightRequest = (int)rows * UnderlyingGallery.TileHeight; this.tileTable.WidthRequest = (int)columns * UnderlyingGallery.TileWidth; Viewport vp = new Viewport (); vp.Show (); vp.Child = tileTable; this.internalWindow = new ScrolledWindow (); this.internalWindow.Show (); this.internalWindow.Child = vp; this.internalWindow.HeightRequest = Math.Min (this.tileTable.HeightRequest, MAX_HEIGHT) + SCROLLBAR_SIZE; this.internalWindow.WidthRequest = this.tileTable.WidthRequest + SCROLLBAR_SIZE; uint x = 0, y = 0; foreach(Tile t in tiles) { ExtraEventBox box = new ExtraEventBox (); box.Show (); box.AddEvents ((int)(Gdk.EventMask.ButtonPressMask | Gdk.EventMask.ButtonReleaseMask | Gdk.EventMask.PointerMotionMask)); box.Child = t; tileTable.Attach (box, x, x+1, y, y+1); t.Clicked += tile_Clicked; if(++x == columns) { x = 0; ++y; } } this.Child = internalWindow; this.Child.ButtonPressEvent += delegate (object o, ButtonPressEventArgs args) { args.RetVal = true; }; }
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 ("Canvas"); documentDockItem.Content = mainTable; documentDockItem.Icon = PintaCore.Resources.GetIcon ("Menu.Effects.Artistic.OilPainting.png"); //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); }; }
public CanvasWindow (Document document) : base (2, 2, false) { scrolled_window = new ScrolledWindow (); var vp = new Viewport () { ShadowType = ShadowType.None }; Canvas = new PintaCanvas (this, document) { Name = "canvas", CanDefault = true, CanFocus = true, Events = (Gdk.EventMask)16134 }; // Rulers horizontal_ruler = new HRuler (); horizontal_ruler.Metric = MetricType.Pixels; Attach (horizontal_ruler, 1, 2, 0, 1, AttachOptions.Shrink | AttachOptions.Fill, AttachOptions.Shrink | AttachOptions.Fill, 0, 0); vertical_ruler = new VRuler (); vertical_ruler.Metric = MetricType.Pixels; Attach (vertical_ruler, 0, 1, 1, 2, AttachOptions.Shrink | AttachOptions.Fill, AttachOptions.Shrink | AttachOptions.Fill, 0, 0); scrolled_window.Hadjustment.ValueChanged += delegate { UpdateRulerRange (); }; scrolled_window.Vadjustment.ValueChanged += delegate { UpdateRulerRange (); }; document.Workspace.CanvasSizeChanged += delegate { UpdateRulerRange (); }; Canvas.MotionNotifyEvent += delegate (object o, MotionNotifyEventArgs args) { if (!PintaCore.Workspace.HasOpenDocuments) return; var point = PintaCore.Workspace.WindowPointToCanvas (args.Event.X, args.Event.Y); horizontal_ruler.Position = point.X; vertical_ruler.Position = point.Y; }; Attach (scrolled_window, 1, 2, 1, 2, AttachOptions.Expand | AttachOptions.Fill, AttachOptions.Expand | AttachOptions.Fill, 0, 0); scrolled_window.Add (vp); vp.Add (Canvas); ShowAll (); Canvas.Show (); vp.Show (); horizontal_ruler.Visible = false; vertical_ruler.Visible = false; Canvas.SizeAllocated += delegate { UpdateRulerRange (); }; }
private void CreateDockAndPads(HBox container) { // Create canvas 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 }; // Dock widget dock = new DockFrame (); dock.CompactGuiLevel = 5; 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 (); // Toolbox pad DockItem toolbox_item = dock.AddItem ("Toolbox"); toolbox = new ToolBoxWidget () { Name = "toolbox" }; toolbox_item.Label = Catalog.GetString ("Tools"); toolbox_item.Content = toolbox; toolbox_item.Icon = PintaCore.Resources.GetIcon ("Tools.Pencil.png"); toolbox_item.Behavior |= DockItemBehavior.CantClose; toolbox_item.DefaultWidth = 65; Gtk.Action show_toolbox = show_pad.AppendAction ("Tools", Catalog.GetString ("Tools"), null, "Tools.Pencil.png"); show_toolbox.Activated += delegate { toolbox_item.Visible = true; }; // Palette pad DockItem palette_item = dock.AddItem ("Palette"); color = new ColorPaletteWidget () { Name = "color" }; palette_item.Label = Catalog.GetString ("Palette"); palette_item.Content = color; palette_item.Icon = PintaCore.Resources.GetIcon ("Pinta.png"); palette_item.DefaultLocation = "Toolbox/Bottom"; palette_item.Behavior |= DockItemBehavior.CantClose; palette_item.DefaultWidth = 65; Gtk.Action show_palette = show_pad.AppendAction ("Palette", Catalog.GetString ("Palette"), null, "Pinta.png"); show_palette.Activated += delegate { palette_item.Visible = true; }; // Canvas pad DockItem documentDockItem = dock.AddItem ("Canvas"); documentDockItem.Behavior = DockItemBehavior.Locked; documentDockItem.Expand = true; documentDockItem.DrawFrame = false; documentDockItem.Label = Catalog.GetString ("Documents"); documentDockItem.Content = sw; sw.Add (vp); vp.Add (canvas); canvas.Show (); vp.Show (); // Layer pad LayersListWidget layers = new LayersListWidget (); DockItem layers_item = dock.AddItem ("Layers"); DockItemToolbar layers_tb = layers_item.GetToolbar (PositionType.Bottom); layers_item.Label = Catalog.GetString ("Layers"); layers_item.Content = layers; layers_item.Icon = PintaCore.Resources.GetIcon ("Menu.Layers.MergeLayerDown.png"); layers_tb.Add (PintaCore.Actions.Layers.AddNewLayer.CreateDockToolBarItem ()); layers_tb.Add (PintaCore.Actions.Layers.DeleteLayer.CreateDockToolBarItem ()); layers_tb.Add (PintaCore.Actions.Layers.DuplicateLayer.CreateDockToolBarItem ()); layers_tb.Add (PintaCore.Actions.Layers.MergeLayerDown.CreateDockToolBarItem ()); layers_tb.Add (PintaCore.Actions.Layers.MoveLayerUp.CreateDockToolBarItem ()); layers_tb.Add (PintaCore.Actions.Layers.MoveLayerDown.CreateDockToolBarItem ()); Gtk.Action show_layers = show_pad.AppendAction ("Layers", Catalog.GetString ("Layers"), null, "Menu.Layers.MergeLayerDown.png"); show_layers.Activated += delegate { layers_item.Visible = true; }; // History pad HistoryTreeView history = new HistoryTreeView (); DockItem history_item = dock.AddItem ("History"); DockItemToolbar history_tb = history_item.GetToolbar (PositionType.Bottom); history_item.Label = Catalog.GetString ("History"); history_item.DefaultLocation = "Layers/Bottom"; history_item.Content = history; history_item.Icon = PintaCore.Resources.GetIcon ("Menu.Layers.DuplicateLayer.png"); history_tb.Add (PintaCore.Actions.Edit.Undo.CreateDockToolBarItem ()); history_tb.Add (PintaCore.Actions.Edit.Redo.CreateDockToolBarItem ()); Gtk.Action show_history = show_pad.AppendAction ("History", Catalog.GetString ("History"), null, "Menu.Layers.DuplicateLayer.png"); show_history.Activated += delegate { history_item.Visible = true; }; container.PackStart (dock, true, true, 0); string layout_file = System.IO.Path.Combine (PintaCore.Settings.GetUserSettingsDirectory (), "layouts.xml"); if (System.IO.File.Exists (layout_file)) dock.LoadLayouts (layout_file); if (!dock.HasLayout ("Default")) dock.CreateLayout ("Default", false); dock.CurrentLayout = "Default"; }
public ImageEditor(string filePath) { fileName =filePath; fileBarierName = fileName+".mso"; if(System.IO.File.Exists(fileBarierName)){ string barierFile; try { using (StreamReader file = new StreamReader(fileBarierName)) { barierFile = file.ReadToEnd(); file.Close(); file.Dispose(); } if(!string.IsNullOrEmpty(barierFile)){ //listPoint = JsonConvert.DeserializeObject<List<BarierPoint>>(barierFile); System.Web.Script.Serialization.JavaScriptSerializer jss= new System.Web.Script.Serialization.JavaScriptSerializer(); jss.RegisterConverters(new[]{new BarierPointJavaScriptConverter()} ); listPoint = jss.Deserialize<List<BarierPoint>>(barierFile); } } catch (Exception ex) { MessageDialogs ms = new MessageDialogs(MessageDialogs.DialogButtonType.Ok, MainClass.Languages.Translate("file_cannot_open", fileBarierName), ex.Message, Gtk.MessageType.Error,null); ms.ShowDialog(); } } editorAction = new Gtk.ActionGroup("imageeditor"); //ic = new ImageCanvas(filePath,listPoint); ic = new ImageCanvas(filePath,listPoint) { Name = "canvas", CanDefault = true, CanFocus = true, Events = (Gdk.EventMask)16134 }; vbox = new Gtk.VBox(); /*Gdk.Color col = new Gdk.Color(255,255,0); vbox.ModifyBg(StateType.Normal, col);*/ itc = new ImageToolBarControl (ic);//new ImageToolBarControl(ic); itc.DeleteBarierLayerEvent+= delegate(object sender, EventArgs e) { if(System.IO.File.Exists(fileBarierName) ){ try{ System.IO.File.Delete(fileBarierName); OnModifiedChanged(false); ic.DeleteBarier(); }catch (Exception ex){ MessageDialogs mdd = new MessageDialogs(MessageDialogs.DialogButtonType.Ok, MainClass.Languages.Translate("cannot_delete_file",fileBarierName),ex.Message, Gtk.MessageType.Error); mdd.ShowDialog(); } } else { ic.DeleteBarier(); } }; vbox.PackStart(itc,false,false,0); ScrolledWindow sw = new Gtk.ScrolledWindow(); sw.ShadowType = Gtk.ShadowType.Out; sw.Hadjustment.ValueChanged += delegate(object sender, EventArgs e) { //Console.WriteLine("sw.Hadjustment -> {0}",sw.Hadjustment.Value); }; sw.Vadjustment.ValueChanged += delegate(object sender, EventArgs e) { //Console.WriteLine("sw.Vadjustment -> {0}",sw.Vadjustment.Value); }; Viewport vp = new Viewport () { ShadowType = ShadowType.None }; vp.ScrollEvent+= delegate(object o, ScrollEventArgs args) { if (args.Event.State == ModifierType.ControlMask) { switch (args.Event.Direction) { case ScrollDirection.Down: case ScrollDirection.Right: itc.ZoomOut(); return ; case ScrollDirection.Left: case ScrollDirection.Up: itc.ZoomIn(); return ; } } }; vp.MotionNotifyEvent+= delegate(object o, MotionNotifyEventArgs args) { Cairo.PointD offset = new Cairo.PointD(sw.Hadjustment.Value,sw.Vadjustment.Value); int x =(int)args.Event.X; int y =(int)args.Event.Y; if(ic.ConvertPointToCanvasPoint(offset, ref x, ref y)){ OnWriteToStatusbar(String.Format(statusFormat,x,y,ic.WidthImage,ic.HeightImage)); } if(itc.ToolState == ImageToolBarControl.ToolStateEnum.nothing ) return; if(itc.ToolState == ImageToolBarControl.ToolStateEnum.editpoint){ ic.StepMovingPoint((int)args.Event.X,(int)args.Event.Y,offset); //OnModifiedChanged(true); } }; vp.ButtonReleaseEvent+= delegate(object o, ButtonReleaseEventArgs args) { //Console.WriteLine("1_ButtonReleaseEvent"); if (args.Event.Button != 1) return; if(itc.ToolState == ImageToolBarControl.ToolStateEnum.nothing ) return; Cairo.PointD offset = new Cairo.PointD(sw.Hadjustment.Value,sw.Vadjustment.Value); if(itc.ToolState == ImageToolBarControl.ToolStateEnum.editpoint){ ic.EndMovingPoint((int)args.Event.X,(int)args.Event.Y,offset); OnModifiedChanged(true); } }; vp.ButtonPressEvent+= delegate(object o, ButtonPressEventArgs args) { if (args.Event.Button != 1) return; if(itc.ToolState == ImageToolBarControl.ToolStateEnum.nothing ) return; Cairo.PointD offset = new Cairo.PointD(sw.Hadjustment.Value,sw.Vadjustment.Value); if(itc.ToolState == ImageToolBarControl.ToolStateEnum.addpoint){ ic.AddPoint((int)args.Event.X,(int)args.Event.Y,offset); OnModifiedChanged(true); } else if(itc.ToolState == ImageToolBarControl.ToolStateEnum.deletepoint){ ic.DeletePoint((int)args.Event.X,(int)args.Event.Y,offset); OnModifiedChanged(true); } else if(itc.ToolState == ImageToolBarControl.ToolStateEnum.moviepoint){ ic.StartMovingPoint((int)args.Event.X,(int)args.Event.Y,offset); OnModifiedChanged(true); } else if(itc.ToolState == ImageToolBarControl.ToolStateEnum.editpoint){ if (args.Event.State == ModifierType.ShiftMask){ ic.DeletePoint((int)args.Event.X,(int)args.Event.Y,offset); OnModifiedChanged(true); return; } ic.EditPoint((int)args.Event.X,(int)args.Event.Y,offset); OnModifiedChanged(true); } }; sw.Add(vp); vp.Add (ic); vbox.PackEnd(sw,true,true,0); ic.Show (); vp.Show (); vbox.ShowAll(); }