IconEdit 0.49: draw bar tool (filled rectangle)

git-svn-id: svn://kolibrios.org@7259 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Kirill Lipatov (Leency) 2018-04-25 11:18:22 +00:00
parent 0096ee123b
commit 5959be0518
6 changed files with 89 additions and 69 deletions

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.3 KiB

After

Width:  |  Height:  |  Size: 7.3 KiB

View File

@ -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 "<EFBFBD> áâனª¨"
?define T_EDITBOX_FRAME " <20>ãâì á®åà ­¥­¨ï áªà¨­è®â  "
?define T_DELAY "‡ ¤¥à¦ª  ¢ ᥪ㭤 å"
?define T_MINIMIZE "‘¢¥à­ãâì ®ª­® ¯à¨ á­¨¬ª¥"
?define T_CONTINUOUS_SHOOTING "Continuous shooting"
?define T_DELAY "‡ ¤¥à¦ª  ¢ ᥪ㭤 å"
?define T_NO_DIR "'<27> ¯ª  ­¥ áãé¥áâ¢ã¥â!' -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);
}

View File

@ -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
{

View File

@ -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);
}

View File

@ -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 //
// //
//===================================================//

View File

@ -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;
}
}