override protected void OnRelease() { _slice.Draw(Preview.Renderer); SliceData.AddSlice(_slice); Preview.Renderer.Function = Gdk.Function.Copy; Redraw(); }
public Preview(Drawable drawable, SliceData sliceData) { MaxSize = drawable.Dimensions; ExposeEvent += delegate { sliceData.Draw(Renderer); }; Realized += delegate { var gc = new Gdk.GC(GdkWindow); Renderer = new PreviewRenderer(this, gc, drawable.Dimensions); Draw(drawable); }; SizeAllocated += delegate { Draw(drawable); }; Events = EventMask.ButtonPressMask | EventMask.ButtonReleaseMask | EventMask.PointerMotionHintMask | EventMask.PointerMotionMask | EventMask.LeaveNotifyMask; ButtonPressEvent += (o, args) => { var c = new IntCoordinate((int)args.Event.X, (int)args.Event.Y); Func.GetActualFunc(c).OnButtonPress(o, args); }; MotionNotifyEvent += (o, args) => { GdkWindow.Cursor = Func.GetCursor(GetXY(args)); }; Func = new SelectFunc(sliceData, this); }
public Dialog(Image image, Drawable drawable, SliceData sliceData) : base(_("Slice Tool"), _("SliceTool"), IntPtr.Zero, 0, null, _("SliceTool"), Stock.SaveAs, (Gtk.ResponseType) 2, Stock.Save, (Gtk.ResponseType) 3, Stock.Close, ResponseType.Close) { _image = image; _drawable = drawable; _sliceData = sliceData; SetTitle(null); var vbox = new VBox(false, 12) {BorderWidth = 12}; VBox.PackStart(vbox, true, true, 0); var hbox = new HBox(); vbox.PackStart(hbox, true, true, 0); var preview = CreatePreview(drawable, sliceData); var toolbox = Preview.CreateToolbox(sliceData); hbox.PackStart(toolbox, false, true, 0); hbox.PackStart(preview, true, true, 0); hbox = new HBox(); vbox.PackStart(hbox, true, true, 0); hbox.PackStart(new CoordinatesDisplay(Preview), false, false, 0); hbox = new HBox(false, 24); vbox.PackStart(hbox, true, true, 0); var properties = new CellPropertiesFrame(sliceData.Rectangles); hbox.PackStart(properties, false, true, 0); vbox = new VBox(false, 12); hbox.PackStart(vbox, false, true, 0); var rollover = new RolloversFrame(sliceData); vbox.PackStart(rollover, false, true, 0); _format = new Format(sliceData.Rectangles); _format.Extension = System.IO.Path.GetExtension(image.Name).ToLower(); vbox.PackStart(_format, false, true, 0); vbox = new VBox(false, 12); hbox.PackStart(vbox, false, true, 0); var save = new SaveSettingsButton(this, sliceData); vbox.PackStart(save, false, true, 0); var load = new LoadSettingsButton(this, sliceData); vbox.PackStart(load, false, true, 0); var preferences = new PreferencesButton(_("Preferences"), Preview); vbox.PackStart(preferences, false, true, 0); sliceData.Rectangles.SelectedRectangleChanged += delegate {Redraw();}; sliceData.Init(drawable); }
public Preview(Drawable drawable, SliceData sliceData) { MaxSize = drawable.Dimensions; ExposeEvent += delegate {sliceData.Draw(Renderer);}; Realized += delegate { var gc = new Gdk.GC(GdkWindow); Renderer = new PreviewRenderer(this, gc, drawable.Dimensions); Draw(drawable); }; SizeAllocated += delegate {Draw(drawable);}; Events = EventMask.ButtonPressMask | EventMask.ButtonReleaseMask | EventMask.PointerMotionHintMask | EventMask.PointerMotionMask | EventMask.LeaveNotifyMask; ButtonPressEvent += (o, args) => { var c = new IntCoordinate((int) args.Event.X, (int) args.Event.Y); Func.GetActualFunc(c).OnButtonPress(o, args); }; MotionNotifyEvent += (o, args) => { GdkWindow.Cursor = Func.GetCursor(GetXY(args)); }; Func = new SelectFunc(sliceData, this); }
override protected void OnPress(IntCoordinate c) { var slice = SliceData.MayRemove(c); if (slice != null) { SliceData.Remove(slice); Redraw(); } }
override protected void OnPress(IntCoordinate c) { _x = c.X; _y = c.Y; _rectangle = SliceData.FindRectangle(c); _slice = _rectangle.CreateHorizontalSlice(_y); _horizontal = true; Preview.Renderer.Function = Gdk.Function.Equiv; _slice.Draw(Preview.Renderer); }
public RolloversFrame(SliceData sliceData) : base(_("Rollovers")) { var vbox = new VBox(false, 12); Add(vbox); vbox.Add(CreateRolloverButton(sliceData)); var label = new Label(_("Rollover enabled: no")); vbox.Add(label); }
override protected void OnPress(IntCoordinate c) { var rows = new Variable <int>(3); var columns = new Variable <int>(3); var dialog = new TableDialog(rows, columns); dialog.ShowAll(); if (dialog.Run() == ResponseType.Ok) { SliceData.CreateTable(c, rows.Value, columns.Value); Redraw(); } dialog.Destroy(); }
public Toolbox(Preview preview, SliceData sliceData) { _preview = preview; CreateStockIcons(); Orientation = Gtk.Orientation.Vertical; ToolbarStyle = Gtk.ToolbarStyle.Icons; var toggle = CreateSelectToggle(sliceData); toggle = CreateSliceToggle(toggle, sliceData); toggle.Active = true; toggle = CreateEraserToggle(toggle, sliceData); CreateTableToggle(toggle, sliceData); }
override protected void OnMove(IntCoordinate c) { var coordinate = (_horizontal) ? new IntCoordinate(c.X, _y) : new IntCoordinate(_x, c.Y); var rectangle = SliceData.FindRectangle(coordinate); bool rectangleChanged = rectangle != _endRectangle; _endRectangle = rectangle; bool horizontal = Math.Abs(c.X - _x) > Math.Abs(c.Y - _y); bool orientationChanged = horizontal != _horizontal; _horizontal = horizontal; if (orientationChanged || rectangleChanged) { _slice.Draw(Preview.Renderer); if (_horizontal) { if (rectangle.X1 <= _rectangle.X1) { _slice = new HorizontalSlice(rectangle.Left, _rectangle.Right, _y); } else { _slice = new HorizontalSlice(_rectangle.Left, rectangle.Right, _y); } } else { if (rectangle.Y1 <= _rectangle.Y1) { _slice = new VerticalSlice(rectangle.Top, _rectangle.Bottom, _x); } else { _slice = new VerticalSlice(_rectangle.Top, rectangle.Bottom, _x); } } _slice.Draw(Preview.Renderer); } }
public SaveSettingsButton(Dialog parent, SliceData sliceData) : base(Catalog.GetString("Save Settings...")) { Clicked += delegate { var fc = new FileChooserDialog(Catalog.GetString("Save Settings"), parent, FileChooserAction.Save, "Cancel", ResponseType.Cancel, "Save", ResponseType.Accept); if (fc.Run() == (int)ResponseType.Accept) { sliceData.SaveSettings(fc.Filename); } fc.Destroy(); }; }
public SaveSettingsButton(Dialog parent, SliceData sliceData) : base(Catalog.GetString("Save Settings...")) { Clicked += delegate { var fc = new FileChooserDialog(Catalog.GetString("Save Settings"), parent, FileChooserAction.Save, "Cancel", ResponseType.Cancel, "Save", ResponseType.Accept); if (fc.Run() == (int) ResponseType.Accept) { sliceData.SaveSettings(fc.Filename); } fc.Destroy(); }; }
Button CreateRolloverButton(SliceData sliceData) { var button = new Button(_("Rollover Creator...")); button.Clicked += delegate { var dialog = new RolloverDialog(); dialog.SetRectangleData(sliceData.Selected); dialog.ShowAll(); var type = dialog.Run(); if (type == ResponseType.Ok) { dialog.GetRectangleData(sliceData.Selected); } dialog.Destroy(); }; return button; }
Button CreateRolloverButton(SliceData sliceData) { var button = new Button(_("Rollover Creator...")); button.Clicked += delegate { var dialog = new RolloverDialog(); dialog.SetRectangleData(sliceData.Selected); dialog.ShowAll(); var type = dialog.Run(); if (type == ResponseType.Ok) { dialog.GetRectangleData(sliceData.Selected); } dialog.Destroy(); }; return(button); }
public LoadSettingsButton(Dialog parent, SliceData sliceData) : base(Catalog.GetString("Load Settings...")) { Clicked += delegate { var fc = new FileChooserDialog(Catalog.GetString("Load Settings"), parent, FileChooserAction.Open, "Cancel", ResponseType.Cancel, "Open", ResponseType.Accept); if (fc.Run() == (int) ResponseType.Accept) { sliceData.LoadSettings(fc.Filename); parent.Redraw(); // fix me: should be handled in callback method } fc.Destroy(); }; }
Widget CreatePreview(Drawable drawable, SliceData sliceData) { var window = new ScrolledWindow(); window.SetSizeRequest(600, 400); var alignment = new Alignment(0.5f, 0.5f, 0, 0); Preview = new Preview(drawable, sliceData) { WidthRequest = drawable.Width, HeightRequest = drawable.Height }; alignment.Add(Preview); window.AddWithViewport(alignment); return(window); }
public LoadSettingsButton(Dialog parent, SliceData sliceData) : base(Catalog.GetString("Load Settings...")) { Clicked += delegate { var fc = new FileChooserDialog(Catalog.GetString("Load Settings"), parent, FileChooserAction.Open, "Cancel", ResponseType.Cancel, "Open", ResponseType.Accept); if (fc.Run() == (int)ResponseType.Accept) { sliceData.LoadSettings(fc.Filename); parent.Redraw(); // fix me: should be handled in callback method } fc.Destroy(); }; }
RadioToolButton CreateTableToggle(RadioToolButton group, SliceData sliceData) { return(AddToggle(group, GimpStock.GRID, _("Insert Table"), new CreateTableFunc(sliceData, _preview))); }
RadioToolButton CreateEraserToggle(RadioToolButton group, SliceData sliceData) { return(AddToggle(group, GimpStock.TOOL_ERASER, _("Remove Slice"), new RemoveFunc(sliceData, _preview))); }
public CreateFunc(SliceData sliceData, Preview preview) : base(sliceData, preview) { }
RadioToolButton CreateSliceToggle(RadioToolButton group, SliceData sliceData) { return AddToggle(group, GimpStock.TOOL_CROP, _("Create a new Slice"), new CreateFunc(sliceData, _preview)); }
override public Cursor GetCursor(IntCoordinate c) => (SliceData.MayRemove(c) == null) ? base.GetCursor(c) : _cursor;
public RemoveFunc(SliceData sliceData, Preview preview) : base(sliceData, preview) { }
public SelectFunc(SliceData sliceData, Preview preview) : base(sliceData, preview) { }
public Toolbox CreateToolbox(SliceData sliceData) { return new Toolbox(this, sliceData); }
Widget CreatePreview(Drawable drawable, SliceData sliceData) { var window = new ScrolledWindow(); window.SetSizeRequest(600, 400); var alignment = new Alignment(0.5f, 0.5f, 0, 0); Preview = new Preview(drawable, sliceData) {WidthRequest = drawable.Width, HeightRequest = drawable.Height}; alignment.Add(Preview); window.AddWithViewport(alignment); return window; }
MoveSliceFunc(SliceData sliceData, Preview preview, Slice slice) : base(sliceData, preview) { _slice = slice; Preview.Renderer.Function = Gdk.Function.Equiv; }
override protected void OnRelease() { Preview.Renderer.Function = Gdk.Function.Copy; SliceData.Cleanup(_slice); Redraw(); }
override protected void OnPress(IntCoordinate c) { SliceData.SelectRectangle(c); }
override public Cursor GetCursor(IntCoordinate c) { var slice = SliceData.FindSlice(c); return((SliceIsSelectable(slice)) ? slice.Cursor : base.GetCursor(c)); }
RadioToolButton CreateSelectToggle(SliceData sliceData) { return AddToggle(null, "slice-tool-arrow", _("Select Rectangle or Slice"), new SelectFunc(sliceData, _preview)); }
RadioToolButton CreateSelectToggle(SliceData sliceData) { return(AddToggle(null, "slice-tool-arrow", _("Select Rectangle or Slice"), new SelectFunc(sliceData, _preview))); }
RadioToolButton CreateTableToggle(RadioToolButton group, SliceData sliceData) { return AddToggle(group, GimpStock.GRID, _("Insert Table"), new CreateTableFunc(sliceData, _preview)); }
RadioToolButton CreateSliceToggle(RadioToolButton group, SliceData sliceData) { return(AddToggle(group, GimpStock.TOOL_CROP, _("Create a new Slice"), new CreateFunc(sliceData, _preview))); }
RadioToolButton CreateEraserToggle(RadioToolButton group, SliceData sliceData) { return AddToggle(group, GimpStock.TOOL_ERASER, _("Remove Slice"), new RemoveFunc(sliceData, _preview)); }
public Dialog(Image image, Drawable drawable, SliceData sliceData) : base(_("Slice Tool"), _("SliceTool"), IntPtr.Zero, 0, null, _("SliceTool"), Stock.SaveAs, (Gtk.ResponseType) 2, Stock.Save, (Gtk.ResponseType) 3, Stock.Close, ResponseType.Close) { _image = image; _drawable = drawable; _sliceData = sliceData; SetTitle(null); var vbox = new VBox(false, 12) { BorderWidth = 12 }; VBox.PackStart(vbox, true, true, 0); var hbox = new HBox(); vbox.PackStart(hbox, true, true, 0); var preview = CreatePreview(drawable, sliceData); var toolbox = Preview.CreateToolbox(sliceData); hbox.PackStart(toolbox, false, true, 0); hbox.PackStart(preview, true, true, 0); hbox = new HBox(); vbox.PackStart(hbox, true, true, 0); hbox.PackStart(new CoordinatesDisplay(Preview), false, false, 0); hbox = new HBox(false, 24); vbox.PackStart(hbox, true, true, 0); var properties = new CellPropertiesFrame(sliceData.Rectangles); hbox.PackStart(properties, false, true, 0); vbox = new VBox(false, 12); hbox.PackStart(vbox, false, true, 0); var rollover = new RolloversFrame(sliceData); vbox.PackStart(rollover, false, true, 0); _format = new Format(sliceData.Rectangles); _format.Extension = System.IO.Path.GetExtension(image.Name).ToLower(); vbox.PackStart(_format, false, true, 0); vbox = new VBox(false, 12); hbox.PackStart(vbox, false, true, 0); var save = new SaveSettingsButton(this, sliceData); vbox.PackStart(save, false, true, 0); var load = new LoadSettingsButton(this, sliceData); vbox.PackStart(load, false, true, 0); var preferences = new PreferencesButton(_("Preferences"), Preview); vbox.PackStart(preferences, false, true, 0); sliceData.Rectangles.SelectedRectangleChanged += delegate { Redraw(); }; sliceData.Init(drawable); }
public Toolbox CreateToolbox(SliceData sliceData) { return(new Toolbox(this, sliceData)); }
public MouseFunc(SliceData sliceData, Preview preview) { SliceData = sliceData; Preview = preview; }