/programs/cmm/iconedit/iconedit.c |
---|
11,7 → 11,7 |
pipet aside color view |
*/ |
#define MEMSIZE 4096*200 |
#define MEMSIZE 4096*250 |
#include "../lib/gui.h" |
#include "../lib/random.h" |
31,7 → 31,7 |
// // |
//===================================================// |
#define T_TITLE "Icon Editor 0.49 Alpha" |
#define T_TITLE "Icon Editor 0.50 Alpha" |
#define TOOLBAR_H 24+8 |
#define PANEL_LEFT_W 16+5+5+3+3 |
82,7 → 82,7 |
BTN_RECT, |
BTN_BAR, |
BTN_SELECT, |
BTN_SCREEN, |
BTN_SCREEN_COPY, |
BTN_ZOOM_IN, |
BTN_ZOOM_OUT, |
BTNS_PALETTE_COLOR_MAS = 100, |
272,6 → 272,9 |
case BTN_SELECT: |
setCurrentTool(TOOL_SELECT); |
break; |
case BTN_SCREEN_COPY: |
setCurrentTool(TOOL_SCREEN_COPY); |
break; |
case CLOSE_BTN: |
EventExitIconEdit(); |
break; |
290,6 → 293,8 |
if (key_scancode == SCAN_CODE_KEY_F) setCurrentTool(TOOL_FILL); |
if (key_scancode == SCAN_CODE_KEY_L) setCurrentTool(TOOL_LINE); |
if (key_scancode == SCAN_CODE_KEY_R) setCurrentTool(TOOL_RECT); |
if (key_scancode == SCAN_CODE_KEY_B) setCurrentTool(TOOL_BAR); |
if (key_scancode == SCAN_CODE_KEY_S) setCurrentTool(TOOL_SELECT); |
if (key_scancode == SCAN_CODE_KEY_Z) && (key_modifier&KEY_LCTRL) actionsHistory.undoLastAction(); |
if (key_scancode == SCAN_CODE_KEY_Y) && (key_modifier&KEY_LCTRL) actionsHistory.redoLastAction(); |
377,7 → 382,7 |
DrawLeftPanelButton(BTN_RECT, ty.inc(TB_ICON_PADDING), 42); |
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); |
DrawLeftPanelButton(BTN_SCREEN_COPY, ty.inc(TB_ICON_PADDING), 45); |
DrawRectangle3D(5, currentTool*TB_ICON_PADDING+right_bar.y, 16+3+2, 16+3+2, 0x333333, 0x777777); |
} |
/programs/cmm/iconedit/tools/screen_copy.h |
---|
0,0 → 1,23 |
dword screen_copy; |
void ScreenCopy_activate() { |
SetEventMask(EVM_REDRAW+EVM_KEY+EVM_BUTTON+EVM_MOUSE); |
screen_copy = malloc(image.columns * image.rows * 3 ); |
} |
void ScreenCopy_onMouseEvent(int mouseX, int mouseY, int lkm, int pkm) { |
dword i; |
CopyScreen(screen_copy, mouse.x + Form.left + 5, mouse.y + Form.top + skin_height, image.columns, image.rows); |
for (i = 0; i < image.columns*image.rows; i++;) |
{ |
image.mas[i] = ESDWORD[i*3+screen_copy] & 0xFFFFFF; |
} |
DrawCanvas(); |
if (mouse.down) { |
screen_copy = free(screen_copy); |
SetEventMask(EVM_REDRAW+EVM_KEY+EVM_BUTTON+EVM_MOUSE+EVM_MOUSE_FILTER); |
actionsHistory.saveCurrentState(); |
setCurrentTool(previousTool); |
} |
} |
/programs/cmm/iconedit/tools.h |
---|
13,7 → 13,7 |
int previousTool = -1; |
int currentTool = -1; |
Tool tools[7]; |
Tool tools[8]; |
enum { |
TOOL_NONE = -1, |
23,13 → 23,15 |
TOOL_LINE, |
TOOL_RECT, |
TOOL_BAR, |
TOOL_SELECT |
TOOL_SELECT, |
TOOL_SCREEN_COPY |
}; |
#include "tools/pencil.h"; |
#include "tools/pipette.h"; |
#include "tools/fill.h"; |
#include "tools/simple_figure.h"; |
#include "tools/selection.h"; |
#include "tools/simple_figure.h"; |
#include "tools/screen_copy.h"; |
void initTools() |
69,6 → 71,10 |
tools[TOOL_SELECT].onMouseEvent = #SelectTool_onMouseEvent; |
tools[TOOL_SELECT].onCanvasDraw = #SelectTool_onCanvasDraw; |
tools[TOOL_SELECT].onKeyEvent = #SelectTool_onKeyEvent; |
tools[TOOL_SCREEN_COPY].id = TOOL_SCREEN_COPY; |
tools[TOOL_SCREEN_COPY].activate = #ScreenCopy_activate; |
tools[TOOL_SCREEN_COPY].onMouseEvent = #ScreenCopy_onMouseEvent; |
} |
/programs/cmm/lib/keyboard.h |
---|
42,6 → 42,7 |
#define SCAN_CODE_F1 059 |
#define SCAN_CODE_KEY_B 048 |
#define SCAN_CODE_KEY_C 046 |
#define SCAN_CODE_KEY_E 018 |
#define SCAN_CODE_KEY_F 033 |