diff --git a/data/common/icons16.png b/data/common/icons16.png index 658884953..4caaf8739 100644 Binary files a/data/common/icons16.png and b/data/common/icons16.png differ diff --git a/programs/cmm/easyshot/easyshot.c b/programs/cmm/easyshot/easyshot.c index 70fe5fe15..6e7d511ae 100644 --- a/programs/cmm/easyshot/easyshot.c +++ b/programs/cmm/easyshot/easyshot.c @@ -14,22 +14,24 @@ /* === TRANSLATIONS === */ -#define T_WTITLE "EasyShot v1.0" +#define T_WTITLE "EasyShot v1.1" #ifdef LANG_RUS ?define T_TAKE_SCREENSHOT " Сделать скриншот" ?define T_SETTINGS "Настройки" ?define T_EDITBOX_FRAME " Путь сохранения скриншота " - ?define T_DELAY "Задержка в секундах" ?define T_MINIMIZE "Свернуть окно при снимке" + ?define T_CONTINUOUS_SHOOTING "Continuous shooting" + ?define T_DELAY "Задержка в секундах" ?define T_NO_DIR "'Папка не существует!' -E" ?define T_SET_PATH "Задать" #else ?define T_TAKE_SCREENSHOT " Take a screenshot" ?define T_SETTINGS "Settings" ?define T_EDITBOX_FRAME " Save path " - ?define T_DELAY "Delay in seconds" ?define T_MINIMIZE "Minimize window" + ?define T_CONTINUOUS_SHOOTING "Continuous shooting" + ?define T_DELAY "Delay in seconds" ?define T_NO_DIR "'Directory does not exists!' -E" ?define T_SET_PATH "Set" #endif @@ -58,6 +60,7 @@ edit_box edit_save = {250,25,100,0xffffff,0x94AECE,0xFFFfff,0xffffff, more_less_box delay = { 1, 0, 64, T_DELAY }; checkbox minimize = { T_MINIMIZE, true }; +checkbox continuous_shooting = { T_CONTINUOUS_SHOOTING, true }; opendialog open_folder_dialog = @@ -128,7 +131,7 @@ void main() void DrawMainContent() { int take_scr_btn_width; - take_scr_btn_width = DrawIconButton(PD, PD, BTN_MAKE_SCREENSHOT, T_TAKE_SCREENSHOT, 44); + take_scr_btn_width = DrawIconButton(PD, PD, BTN_MAKE_SCREENSHOT, T_TAKE_SCREENSHOT, 45); DrawIconButton(PD+take_scr_btn_width, PD, BTN_SETTINGS, " ", 10); } diff --git a/programs/cmm/iconedit/colors_mas.h b/programs/cmm/iconedit/colors_mas.h index 81efe0c92..026fba0c8 100644 --- a/programs/cmm/iconedit/colors_mas.h +++ b/programs/cmm/iconedit/colors_mas.h @@ -6,8 +6,8 @@ // // ////////////////////////////////////////////////////////////////////////////////////// -//The 'draw[]' in the array which holds the states should we draw a pixel or not. -//Is need to decrese redraw when using some tools like line, rectangle and selection. +//The 'draw[]' is the array which holds the states should we draw a pixel or not. +//Is need to decrease redraw when using some tools like line, rectangle and selection. struct _pixel_state { diff --git a/programs/cmm/iconedit/iconedit.c b/programs/cmm/iconedit/iconedit.c index e58899c11..48629f10e 100644 --- a/programs/cmm/iconedit/iconedit.c +++ b/programs/cmm/iconedit/iconedit.c @@ -31,7 +31,7 @@ pipet aside color view // // //===================================================// -#define T_TITLE "Icon Editor 0.48 Alpha" +#define T_TITLE "Icon Editor 0.49 Alpha" #define TOOLBAR_H 24+8 #define PANEL_LEFT_W 16+5+5+3+3 @@ -80,7 +80,9 @@ enum { BTN_FILL, BTN_LINE, BTN_RECT, + BTN_BAR, BTN_SELECT, + BTN_SCREEN, BTN_ZOOM_IN, BTN_ZOOM_OUT, BTNS_PALETTE_COLOR_MAS = 100, @@ -254,11 +256,9 @@ void main() break; case BTN_PICK: setCurrentTool(TOOL_PIPETTE); - //EventPickActivate(); break; case BTN_FILL: setCurrentTool(TOOL_FILL); - //EventFillActivate(); break; case BTN_LINE: setCurrentTool(TOOL_LINE); @@ -266,6 +266,9 @@ void main() case BTN_RECT: setCurrentTool(TOOL_RECT); break; + case BTN_BAR: + setCurrentTool(TOOL_BAR); + break; case BTN_SELECT: setCurrentTool(TOOL_SELECT); break; @@ -372,7 +375,9 @@ void DrawLeftPanel() DrawLeftPanelButton(BTN_FILL, ty.inc(TB_ICON_PADDING), 40); DrawLeftPanelButton(BTN_LINE, ty.inc(TB_ICON_PADDING), 41); DrawLeftPanelButton(BTN_RECT, ty.inc(TB_ICON_PADDING), 42); - DrawLeftPanelButton(BTN_SELECT, ty.inc(TB_ICON_PADDING), 43); + DrawLeftPanelButton(BTN_BAR, ty.inc(TB_ICON_PADDING), 43); + DrawLeftPanelButton(BTN_SELECT, ty.inc(TB_ICON_PADDING), 44); + //DrawLeftPanelButton(BTN_SCREEN, ty.inc(TB_ICON_PADDING), 45); DrawRectangle3D(5, currentTool*TB_ICON_PADDING+right_bar.y, 16+3+2, 16+3+2, 0x333333, 0x777777); } diff --git a/programs/cmm/iconedit/tools.h b/programs/cmm/iconedit/tools.h index cff9e3534..d1f4fb78d 100644 --- a/programs/cmm/iconedit/tools.h +++ b/programs/cmm/iconedit/tools.h @@ -13,7 +13,7 @@ struct Tool { int previousTool = -1; int currentTool = -1; -Tool tools[6]; +Tool tools[7]; enum { TOOL_NONE = -1, @@ -22,6 +22,7 @@ enum { TOOL_FILL, TOOL_LINE, TOOL_RECT, + TOOL_BAR, TOOL_SELECT }; #include "tools/pencil.h"; @@ -33,35 +34,41 @@ enum { void initTools() { - tools[0].id = TOOL_PENCIL; - tools[0].onMouseEvent = #PencilTool_onMouseEvent; - tools[0].deactivate = #PencilTool_reset; + tools[TOOL_PENCIL].id = TOOL_PENCIL; + tools[TOOL_PENCIL].onMouseEvent = #PencilTool_onMouseEvent; + tools[TOOL_PENCIL].deactivate = #PencilTool_reset; - tools[1].id = TOOL_PIPETTE; - tools[1].activate = #PipetteTool_activate; - tools[1].onMouseEvent = #PipetteTool_onMouseEvent; + tools[TOOL_PIPETTE].id = TOOL_PIPETTE; + tools[TOOL_PIPETTE].activate = #PipetteTool_activate; + tools[TOOL_PIPETTE].onMouseEvent = #PipetteTool_onMouseEvent; - tools[2].id = TOOL_FILL; - tools[2].onMouseEvent = #FillTool_onMouseEvent; + tools[TOOL_FILL].id = TOOL_FILL; + tools[TOOL_FILL].onMouseEvent = #FillTool_onMouseEvent; - tools[3].id = TOOL_LINE; - tools[3].activate = #SimpleFigureTool_Reset; - tools[3].deactivate = #SimpleFigureTool_Reset; - tools[3].onMouseEvent = #SimpleFigureTool_onMouseEvent; - tools[3].onCanvasDraw = #SimpleFigureTool_onCanvasDraw; + tools[TOOL_LINE].id = TOOL_LINE; + tools[TOOL_LINE].activate = #SimpleFigureTool_Reset; + tools[TOOL_LINE].deactivate = #SimpleFigureTool_Reset; + tools[TOOL_LINE].onMouseEvent = #SimpleFigureTool_onMouseEvent; + tools[TOOL_LINE].onCanvasDraw = #SimpleFigureTool_onCanvasDraw; - tools[4].id = TOOL_RECT; - tools[4].activate = #SimpleFigureTool_Reset; - tools[4].deactivate = #SimpleFigureTool_Reset; - tools[4].onMouseEvent = #SimpleFigureTool_onMouseEvent; - tools[4].onCanvasDraw = #SimpleFigureTool_onCanvasDraw; + tools[TOOL_RECT].id = TOOL_RECT; + tools[TOOL_RECT].activate = #SimpleFigureTool_Reset; + tools[TOOL_RECT].deactivate = #SimpleFigureTool_Reset; + tools[TOOL_RECT].onMouseEvent = #SimpleFigureTool_onMouseEvent; + tools[TOOL_RECT].onCanvasDraw = #SimpleFigureTool_onCanvasDraw; - tools[5].id = TOOL_SELECT; - tools[5].activate = #SelectTool_activate; - tools[5].deactivate = #SelectTool_deactivate; - tools[5].onMouseEvent = #SelectTool_onMouseEvent; - tools[5].onCanvasDraw = #SelectTool_onCanvasDraw; - tools[5].onKeyEvent = #SelectTool_onKeyEvent; + tools[TOOL_BAR].id = TOOL_BAR; + tools[TOOL_BAR].activate = #SimpleFigureTool_Reset; + tools[TOOL_BAR].deactivate = #SimpleFigureTool_Reset; + tools[TOOL_BAR].onMouseEvent = #SimpleFigureTool_onMouseEvent; + tools[TOOL_BAR].onCanvasDraw = #SimpleFigureTool_onCanvasDraw; + + tools[TOOL_SELECT].id = TOOL_SELECT; + tools[TOOL_SELECT].activate = #SelectTool_activate; + tools[TOOL_SELECT].deactivate = #SelectTool_deactivate; + tools[TOOL_SELECT].onMouseEvent = #SelectTool_onMouseEvent; + tools[TOOL_SELECT].onCanvasDraw = #SelectTool_onCanvasDraw; + tools[TOOL_SELECT].onKeyEvent = #SelectTool_onKeyEvent; } @@ -85,9 +92,3 @@ void setCurrentTool(int index) { DrawCanvas(); } -//===================================================// -// // -// FUNTIONS // -// // -//===================================================// - diff --git a/programs/cmm/iconedit/tools/simple_figure.h b/programs/cmm/iconedit/tools/simple_figure.h index 7d74b0482..567b30845 100644 --- a/programs/cmm/iconedit/tools/simple_figure.h +++ b/programs/cmm/iconedit/tools/simple_figure.h @@ -23,6 +23,8 @@ int mouseY_last; bool first_click_in_canvas = false; void SimpleFigureTool_onMouseEvent(int mouseX, int mouseY, int lkm, int pkm) { + int x1, y1, x2, y2; + if (mouse.down) && (canvas.hovered()) first_click_in_canvas = true; if (first_click_in_canvas) { @@ -50,21 +52,21 @@ void SimpleFigureTool_onMouseEvent(int mouseX, int mouseY, int lkm, int pkm) { if (mouse.up) { if ((figTool.startX >= 0) && (figTool.startY >= 0)) { + + x1 = figTool.startX - canvas.x/zoom.value; + y1 = figTool.startY - canvas.y/zoom.value; + x2 = mouseX - canvas.x/zoom.value; + y2 = mouseY - canvas.y/zoom.value; + // Draw line from start position to current position if (currentTool == TOOL_LINE) { - DrawLineIcon(figTool.startX - canvas.x/zoom.value, - figTool.startY - canvas.y/zoom.value, - mouseX - canvas.x/zoom.value, - mouseY - canvas.y/zoom.value, - tool_color, - TOIMAGE); + DrawLineIcon(x1, y1, x2, y2, tool_color, TOIMAGE); } else if (currentTool == TOOL_RECT) { - DrawRectangleIcon(figTool.startX - canvas.x/zoom.value, - figTool.startY - canvas.y/zoom.value, - mouseX - canvas.x/zoom.value, - mouseY - canvas.y/zoom.value, tool_color, - TOIMAGE); + DrawRectangleIcon(x1, y1, x2, y2, tool_color, TOIMAGE); + } + else if (currentTool == TOOL_BAR) { + DrawBarIcon(x1, y1, x2, y2, tool_color, TOIMAGE); } DrawCanvas(); @@ -82,24 +84,21 @@ void SimpleFigureTool_onMouseEvent(int mouseX, int mouseY, int lkm, int pkm) { } void SimpleFigureTool_onCanvasDraw() { - if ((figTool.startX >= 0) + int x1, y1, x2, y2; + if ((figTool.startX >= 0) && (figTool.startY >= 0) && (mouse.key)) { - if (currentTool == TOOL_LINE) { - DrawLineIcon(figTool.startX - canvas.x/zoom.value, - figTool.startY - canvas.y/zoom.value, - mouseX_last - canvas.x/zoom.value, - mouseY_last - canvas.y/zoom.value, - tool_color, - TOCANVAS); - } - else if (currentTool == TOOL_RECT) { - DrawRectangleIcon(figTool.startX - canvas.x/zoom.value, - figTool.startY - canvas.y/zoom.value, - mouseX_last - canvas.x/zoom.value, - mouseY_last - canvas.y/zoom.value, - tool_color, - TOCANVAS); - } + + x1 = figTool.startX - canvas.x/zoom.value; + y1 = figTool.startY - canvas.y/zoom.value; + x2 = mouseX_last - canvas.x/zoom.value; + y2 = mouseY_last - canvas.y/zoom.value; + + if (currentTool == TOOL_LINE) + DrawLineIcon(x1, y1, x2, y2, tool_color, TOCANVAS); + else if (currentTool == TOOL_RECT) + DrawRectangleIcon(x1, y1, x2, y2, tool_color, TOCANVAS); + else if (currentTool == TOOL_BAR) + DrawBarIcon(x1, y1, x2, y2, tool_color, TOCANVAS); figTool.lastTempPosX = mouseX_last - canvas.x/zoom.value; figTool.lastTempPosY = mouseY_last - canvas.y/zoom.value; @@ -178,3 +177,15 @@ void DrawRectangleIcon(int x1, int y1, int x2, int y2, dword color, int target) DrawLineIcon(x1, y2, x1, y1, color, target); } +void DrawBarIcon(int x1, int y1, int x2, int y2, dword color, int target) { + signed signY; + if (y1 < y2) + signY = 1; + else + signY = -1; + + while (y1 != y2+signY) { + DrawLineIcon(x1, y1, x2, y1, color, target); + y1 += signY; + } +} \ No newline at end of file