From 7093b350ecbff027339c8a6d768d1fe666b654c3 Mon Sep 17 00:00:00 2001 From: cxl Date: Fri, 13 Feb 2009 15:15:06 +0000 Subject: [PATCH] TheIDE: IconDes keys now definable git-svn-id: svn://ultimatepp.org/upp/trunk@861 f0d560ea-af0d-0410-9eb7-867de7ffcac7 --- uppsrc/IconDes/Bar.cpp | 117 +++++++++++++++++-------------------- uppsrc/IconDes/IconDes.h | 5 ++ uppsrc/IconDes/IconDes.key | 40 +++++++++++++ uppsrc/IconDes/IconDes.upp | 1 + uppsrc/IconDes/List.cpp | 27 ++++----- 5 files changed, 112 insertions(+), 78 deletions(-) create mode 100644 uppsrc/IconDes/IconDes.key diff --git a/uppsrc/IconDes/Bar.cpp b/uppsrc/IconDes/Bar.cpp index a61cd3e45..f4de4fb45 100644 --- a/uppsrc/IconDes/Bar.cpp +++ b/uppsrc/IconDes/Bar.cpp @@ -2,6 +2,11 @@ NAMESPACE_UPP +#define KEYNAMESPACE IconDesKeys +#define KEYGROUPNAME "Icon designer" +#define KEYFILE +#include + void IconDes::SetPen(int _pen) { pen = _pen; @@ -92,92 +97,80 @@ void IconDes::EditBar(Bar& bar) void IconDes::SettingBar(Bar& bar) { + using namespace IconDesKeys; Slot *c = IsCurrent() ? &Current() : NULL; - bar.Add(c, "Zoom out", IconDesImg::ZoomMinus(), THISBACK(ZoomOut)) - .Enable(magnify > 1) - .Key(K_SHIFT_CTRL_SUBRACT); - bar.Add(c, "Zoom in", IconDesImg::ZoomPlus(), THISBACK(ZoomIn)) - .Enable(magnify < 27) - .Key(K_SHIFT_CTRL_ADD); - bar.Add("Paste transparent/opaque", + bar.Add(c, AK_ZOOM_IN, IconDesImg::ZoomMinus(), THISBACK(ZoomOut)) + .Enable(magnify > 1); + bar.Add(c, AK_ZOOM_OUT, IconDesImg::ZoomPlus(), THISBACK(ZoomIn)) + .Enable(magnify < 27); + bar.Add(AK_PASTE_MODE, paste_opaque ? IconDesImg::PasteOpaque() : IconDesImg::PasteTransparent(), - THISBACK(TogglePaste)) - .Key(K_ALT_T); + THISBACK(TogglePaste)); } void IconDes::SelectBar(Bar& bar) { + using namespace IconDesKeys; Slot *c = IsCurrent() ? &Current() : NULL; - bar.Add(c, "Select", IconDesImg::Select(), THISBACK(Select)) - .Check(doselection) - .Key(K_SPACE); - bar.Add(c, "Invert selection", IconDesImg::InvertSelect(), THISBACK(InvertSelect)) - .Key(K_CTRL_I); - bar.Add(c, "Cancel selection", IconDesImg::CancelSelect(), THISBACK(CancelSelect)) - .Key(K_CTRL_E); - bar.Add(c, "Select and move rectangle", IconDesImg::SelectRect(), THISBACK(SelectRect)) - .Check(selectrect) - .Key(K_CTRL_R); - bar.Add(c, "Move", IconDesImg::Move(), THISBACK(Move)) - .Check(IsPasting()) - .Key(K_CTRL_M); + bar.Add(c, AK_SELECT, IconDesImg::Select(), THISBACK(Select)) + .Check(doselection); + bar.Add(c, AK_INVERT_SEL, IconDesImg::InvertSelect(), THISBACK(InvertSelect)); + bar.Add(c, AK_CANCEL_SEL, IconDesImg::CancelSelect(), THISBACK(CancelSelect)); + bar.Add(c, AK_SELECT_MOVE, IconDesImg::SelectRect(), THISBACK(SelectRect)) + .Check(selectrect); + bar.Add(c, AK_MOVE, IconDesImg::Move(), THISBACK(Move)) + .Check(IsPasting()); } void IconDes::ImageBar(Bar& bar) { + using namespace IconDesKeys; Slot *c = IsCurrent() ? &Current() : NULL; if(c && c->supersampling) bar.Add(c, "Smooth resize 3x down", IconDesImg::ResizeDown(), THISBACK(ResizeDown)) - .Key(K_TAB); + .Key(AK_SUPERSAMPLING); else bar.Add(c && c->image.GetLength() < 256 * 256, "Resize 3x up (supersampling)", IconDesImg::ResizeUp(), THISBACK(ResizeUp)) - .Key(K_TAB); + .Key(AK_SUPERSAMPLING); bar.Separator(); - bar.Add(c, "Set color", IconDesImg::SetColor(), THISBACK(SetColor)); - bar.Add(c, "Empty", IconDesImg::Delete(), THISBACK(DoDelete)) - .Key(K_DELETE); - bar.Add(c, "Interpolate", IconDesImg::Interpolate(), THISBACK(Interpolate)); - bar.Add(c, "Horizontal mirror", IconDesImg::MirrorX(), THISBACK(MirrorX)); - bar.Add(c, "Vertical mirror", IconDesImg::MirrorY(), THISBACK(MirrorY)); - bar.Add(c, "Horizontal symmetry", IconDesImg::SymmX(), THISBACK(SymmX)); - bar.Add(c, "Vertical symmetry", IconDesImg::SymmY(), THISBACK(SymmY)); - bar.Add(c, "Rotate", IconDesImg::Rotate(), THISBACK(Rotate)); - bar.Add(c, "Free Rotate", IconDesImg::FreeRotate(), THISBACK(FreeRotate)); - bar.Add(c, "Smooth Rescale", IconDesImg::Rescale(), THISBACK(SmoothRescale)); - bar.Add(c, "Blur/Sharpen", IconDesImg::BlurSharpen(), THISBACK(BlurSharpen)); - bar.Add(c, "Colorize", IconDesImg::Colorize(), THISBACK(Colorize)); - bar.Add(c, "Chroma", IconDesImg::Chroma(), THISBACK(Chroma)); - bar.Add(c, "Contrast", IconDesImg::Contrast(), THISBACK(Contrast)); - bar.Add(c, "Alpha", IconDesImg::AlphaI(), THISBACK(Alpha)); - bar.Add(c, "Colors", IconDesImg::Colors(), THISBACK(Colors)); + bar.Add(c, AK_SETCOLOR, IconDesImg::SetColor(), THISBACK(SetColor)); + bar.Add(c, AK_EMPTY, IconDesImg::Delete(), THISBACK(DoDelete)); + bar.Add(c, AK_INTERPOLATE, IconDesImg::Interpolate(), THISBACK(Interpolate)); + bar.Add(c, AK_HMIRROR, IconDesImg::MirrorX(), THISBACK(MirrorX)); + bar.Add(c, AK_VMIRROR, IconDesImg::MirrorY(), THISBACK(MirrorY)); + bar.Add(c, AK_HSYM, IconDesImg::SymmX(), THISBACK(SymmX)); + bar.Add(c, AK_VSYM, IconDesImg::SymmY(), THISBACK(SymmY)); + bar.Add(c, AK_ROTATE, IconDesImg::Rotate(), THISBACK(Rotate)); + bar.Add(c, AK_FREE_ROTATE, IconDesImg::FreeRotate(), THISBACK(FreeRotate)); + bar.Add(c, AK_RESCALE, IconDesImg::Rescale(), THISBACK(SmoothRescale)); + bar.Add(c, AK_BLUR, IconDesImg::BlurSharpen(), THISBACK(BlurSharpen)); + bar.Add(c, AK_COLORIZE, IconDesImg::Colorize(), THISBACK(Colorize)); + bar.Add(c, AK_CHROMA, IconDesImg::Chroma(), THISBACK(Chroma)); + bar.Add(c, AK_CONTRAST, IconDesImg::Contrast(), THISBACK(Contrast)); + bar.Add(c, AK_ALPHA, IconDesImg::AlphaI(), THISBACK(Alpha)); + bar.Add(c, AK_COLORS, IconDesImg::Colors(), THISBACK(Colors)); } void IconDes::DrawBar(Bar& bar) { + using namespace IconDesKeys; bool notpasting = !IsPasting(); - bar.Add("FreeHand", IconDesImg::FreeHand(), THISBACK1(SetTool, &IconDes::FreehandTool)) - .Check(tool == &IconDes::FreehandTool && notpasting) - .Key(K_H); - bar.Add("Lines", IconDesImg::Lines(), THISBACK1(SetTool, &IconDes::LineTool)) - .Check(tool == &IconDes::LineTool && notpasting) - .Key(K_L); - bar.Add("Ellipses", IconDesImg::Circles(), THISBACK1(SetTool, &IconDes::EllipseTool)) - .Check(tool == &IconDes::EllipseTool && notpasting) - .Key(K_E); - bar.Add("Empty ellipses", IconDesImg::EmptyCircles(), THISBACK1(SetTool, &IconDes::EmptyEllipseTool)) - .Check(tool == &IconDes::EmptyEllipseTool && notpasting) - .Key(K_W); - bar.Add("Rectangles", IconDesImg::Rects(), THISBACK1(SetTool, &IconDes::RectTool)) - .Check(tool == &IconDes::RectTool && notpasting) - .Key(K_R); - bar.Add("Empty rectangles", IconDesImg::EmptyRects(), THISBACK1(SetTool, &IconDes::EmptyRectTool)) - .Check(tool == &IconDes::EmptyRectTool && notpasting && !selectrect) - .Key(K_T); - bar.Add("Hotspots", IconDesImg::HotSpot(), THISBACK1(SetTool, &IconDes::HotSpotTool)) - .Check(tool == &IconDes::HotSpotTool) - .Key(K_H); + bar.Add(AK_FREEHAND, IconDesImg::FreeHand(), THISBACK1(SetTool, &IconDes::FreehandTool)) + .Check(tool == &IconDes::FreehandTool && notpasting); + bar.Add(AK_LINES, IconDesImg::Lines(), THISBACK1(SetTool, &IconDes::LineTool)) + .Check(tool == &IconDes::LineTool && notpasting); + bar.Add(AK_ELLIPSES, IconDesImg::Circles(), THISBACK1(SetTool, &IconDes::EllipseTool)) + .Check(tool == &IconDes::EllipseTool && notpasting); + bar.Add(AK_EMPTY_ELLIPSES, IconDesImg::EmptyCircles(), THISBACK1(SetTool, &IconDes::EmptyEllipseTool)) + .Check(tool == &IconDes::EmptyEllipseTool && notpasting); + bar.Add(AK_RECTANGLES, IconDesImg::Rects(), THISBACK1(SetTool, &IconDes::RectTool)) + .Check(tool == &IconDes::RectTool && notpasting); + bar.Add(AK_EMPTY_RECTANGLES, IconDesImg::EmptyRects(), THISBACK1(SetTool, &IconDes::EmptyRectTool)) + .Check(tool == &IconDes::EmptyRectTool && notpasting && !selectrect); + bar.Add(AK_HOTSPOTS, IconDesImg::HotSpot(), THISBACK1(SetTool, &IconDes::HotSpotTool)) + .Check(tool == &IconDes::HotSpotTool); bar.Separator(); for(int i = 1; i <= 6; i++) bar.Add("Pen " + AsString(i), IconDesImg::Get(IconDesImg::I_Pen1 + i - 1), THISBACK1(SetPen, i)) diff --git a/uppsrc/IconDes/IconDes.h b/uppsrc/IconDes/IconDes.h index 71e2ba964..e6d4b507b 100644 --- a/uppsrc/IconDes/IconDes.h +++ b/uppsrc/IconDes/IconDes.h @@ -13,6 +13,11 @@ NAMESPACE_UPP #define LAYOUTFILE #include +#define KEYNAMESPACE IconDesKeys +#define KEYGROUPNAME "Icon designer" +#define KEYFILE +#include + class AlphaCtrl : public Ctrl { public: virtual void Layout(); diff --git a/uppsrc/IconDes/IconDes.key b/uppsrc/IconDes/IconDes.key new file mode 100644 index 000000000..6155c4070 --- /dev/null +++ b/uppsrc/IconDes/IconDes.key @@ -0,0 +1,40 @@ +KEY(INSERT_IMAGE, "Insert image..", K_INSERT) +KEY(IMAGE, "Image..", 0) +KEY(REMOVE_IMAGE, "Remove image", 0) +KEY(DUPLICATE, "Duplicate", K_CTRL_D) +KEY(INSERT_CLIP, "Insert from clipboard", K_ALT_V) +KEY(INSERT_FILE, "Insert from file(s)..", K_ALT_O) +KEY(MOVE_UP, "Move up", K_ALT|K_CTRL_UP) +KEY(MOVE_DOWN, "Move down", K_ALT|K_CTRL_DOWN) +KEY(ZOOM_OUT, "Zoom out", K_SHIFT_CTRL_SUBRACT) +KEY(ZOOM_IN, "Zoom in", K_SHIFT_CTRL_ADD) +KEY(PASTE_MODE, "Paste transparent/opaque", K_ALT_T) +KEY(SELECT, "Select", K_SPACE) +KEY(INVERT_SEL, "Invert selection", K_CTRL_I) +KEY(CANCEL_SEL, "Cancel selection", K_CTRL_E) +KEY(SELECT_MOVE, "Select and move rectangle", K_CTRL_R) +KEY(MOVE, "Move", K_CTRL_M) +KEY(SUPERSAMPLING, "Supersampling", K_TAB) +KEY(SETCOLOR, "Set color", 0) +KEY(EMPTY, "Empty", K_DELETE) +KEY(INTERPOLATE, "Interpolate", 0) +KEY(HMIRROR, "Horizontal mirror", 0) +KEY(VMIRROR, "Vertical mirror", 0) +KEY(HSYM, "Horizontal symmetry", 0) +KEY(VSYM, "Vertical symmetry", 0) +KEY(ROTATE, "Rotate", 0) +KEY(FREE_ROTATE, "Free Rotate", 0) +KEY(RESCALE, "Smooth Rescale", 0) +KEY(BLUR, "Blur/Sharpen", 0) +KEY(COLORIZE, "Colorize", 0) +KEY(CHROMA, "Chroma", 0) +KEY(CONTRAST, "Contrast", 0) +KEY(ALPHA, "Alpha", 0) +KEY(COLORS, "Colors", 0) +KEY(FREEHAND, "FreeHand", K_H) +KEY(LINES, "Lines", K_L) +KEY(ELLIPSES, "Ellipses", K_E) +KEY(EMPTY_ELLIPSES, "Empty ellipses", K_W) +KEY(RECTANGLES, "Rectangles", K_R) +KEY(EMPTY_RECTANGLES, "Empty rectangles", K_T) +KEY(HOTSPOTS, "Hotspots", K_H) diff --git a/uppsrc/IconDes/IconDes.upp b/uppsrc/IconDes/IconDes.upp index a35e69b53..d6d00bfee 100644 --- a/uppsrc/IconDes/IconDes.upp +++ b/uppsrc/IconDes/IconDes.upp @@ -7,6 +7,7 @@ uses file IconDes.h, + IconDes.key, AlphaCtrl.cpp, RGBACtrl.cpp, ImageOp.cpp optimize_speed, diff --git a/uppsrc/IconDes/List.cpp b/uppsrc/IconDes/List.cpp index 79af039d6..077cda695 100644 --- a/uppsrc/IconDes/List.cpp +++ b/uppsrc/IconDes/List.cpp @@ -257,23 +257,18 @@ void IconDes::MoveSlot(int d) void IconDes::ListMenu(Bar& bar) { - bar.Add("Insert image..", IconDesImg::Insert(), THISBACK(InsertImage)) - .Key(K_INSERT); - bar.Add(IsCurrent(), "Image..", IconDesImg::Edit(), THISBACK(EditImage)); - bar.Add(IsCurrent(), "Remove image", IconDesImg::Remove(), THISBACK(RemoveImage)); - bar.Add(IsCurrent(), "Duplicate", IconDesImg::Duplicate(), THISBACK(Duplicate)) - .Key(K_CTRL_D); - bar.Add("Insert from clipboard", IconDesImg::InsertPaste(), THISBACK(InsertPaste)) - .Key(K_ALT_V); - bar.Add("Insert from file(s)..", IconDesImg::InsertFile(), THISBACK(InsertFile)) - .Key(K_ALT_O); + using namespace IconDesKeys; + bar.Add(AK_INSERT_IMAGE, IconDesImg::Insert(), THISBACK(InsertImage)); + bar.Add(IsCurrent(), AK_IMAGE, IconDesImg::Edit(), THISBACK(EditImage)); + bar.Add(IsCurrent(), AK_REMOVE_IMAGE, IconDesImg::Remove(), THISBACK(RemoveImage)); + bar.Add(IsCurrent(), AK_DUPLICATE, IconDesImg::Duplicate(), THISBACK(Duplicate)); + bar.Add(AK_INSERT_CLIP, IconDesImg::InsertPaste(), THISBACK(InsertPaste)); + bar.Add(AK_INSERT_FILE, IconDesImg::InsertFile(), THISBACK(InsertFile)); bar.Separator(); - bar.Add(IsCurrent() && list.GetCursor() > 0, "Move up", IconDesImg::MoveUp(), - THISBACK1(MoveSlot, -1)) - .Key(K_ALT|K_CTRL_UP); - bar.Add(IsCurrent() && list.GetCursor() < slot.GetCount() - 1, "Move down", IconDesImg::MoveDown(), - THISBACK1(MoveSlot, 1)) - .Key(K_ALT|K_CTRL_DOWN); + bar.Add(IsCurrent() && list.GetCursor() > 0, AK_MOVE_UP, IconDesImg::MoveUp(), + THISBACK1(MoveSlot, -1)); + bar.Add(IsCurrent() && list.GetCursor() < slot.GetCount() - 1, AK_MOVE_DOWN, IconDesImg::MoveDown(), + THISBACK1(MoveSlot, 1)); if(removed.GetCount()) { bar.Separator(); for(int i = removed.GetCount() - 1; i >= 0; i--) {