forked from KolibriOS/kolibrios
5959be0518
git-svn-id: svn://kolibrios.org@7259 a494cfbc-eb01-0410-851d-a64ba20cac60
95 lines
2.6 KiB
C
95 lines
2.6 KiB
C
#define TOIMAGE 1
|
|
#define TOCANVAS 2
|
|
|
|
|
|
struct Tool {
|
|
int id;
|
|
void (*activate)();
|
|
void (*deactivate)();
|
|
void (*onMouseEvent)(int x, int y, int lkm, int pkm);
|
|
void (*onKeyEvent)(dword keycode);
|
|
void (*onCanvasDraw)();
|
|
};
|
|
|
|
int previousTool = -1;
|
|
int currentTool = -1;
|
|
Tool tools[7];
|
|
|
|
enum {
|
|
TOOL_NONE = -1,
|
|
TOOL_PENCIL,
|
|
TOOL_PIPETTE,
|
|
TOOL_FILL,
|
|
TOOL_LINE,
|
|
TOOL_RECT,
|
|
TOOL_BAR,
|
|
TOOL_SELECT
|
|
};
|
|
#include "tools/pencil.h";
|
|
#include "tools/pipette.h";
|
|
#include "tools/fill.h";
|
|
#include "tools/selection.h";
|
|
#include "tools/simple_figure.h";
|
|
|
|
|
|
void initTools()
|
|
{
|
|
tools[TOOL_PENCIL].id = TOOL_PENCIL;
|
|
tools[TOOL_PENCIL].onMouseEvent = #PencilTool_onMouseEvent;
|
|
tools[TOOL_PENCIL].deactivate = #PencilTool_reset;
|
|
|
|
tools[TOOL_PIPETTE].id = TOOL_PIPETTE;
|
|
tools[TOOL_PIPETTE].activate = #PipetteTool_activate;
|
|
tools[TOOL_PIPETTE].onMouseEvent = #PipetteTool_onMouseEvent;
|
|
|
|
tools[TOOL_FILL].id = TOOL_FILL;
|
|
tools[TOOL_FILL].onMouseEvent = #FillTool_onMouseEvent;
|
|
|
|
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[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[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;
|
|
}
|
|
|
|
|
|
void resetCurrentTool() {
|
|
if ((currentTool != TOOL_NONE) && (tools[currentTool].deactivate != 0)) {
|
|
tools[currentTool].deactivate();
|
|
}
|
|
currentTool = TOOL_NONE;
|
|
}
|
|
|
|
void setCurrentTool(int index) {
|
|
previousTool = currentTool;
|
|
resetCurrentTool();
|
|
|
|
currentTool = index;
|
|
|
|
if ((index != TOOL_NONE) && (tools[index].activate != 0))
|
|
tools[index].activate();
|
|
|
|
DrawLeftPanel();
|
|
DrawCanvas();
|
|
}
|
|
|