Exemple #1
0
    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;
    }
Exemple #2
0
		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 ();
		}
Exemple #3
0
        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();
        }
Exemple #4
0
        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;
            };
        }
Exemple #6
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 ("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); };
        }
Exemple #7
0
        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 (); };
        }
Exemple #8
0
        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";
        }
Exemple #9
0
        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();
        }