10,17 → 10,16 |
// // |
//===================================================// |
|
dword pick_active = true; |
dword picked_color = 0; |
char picked_color_string[11]; |
dword picked_color; |
char picked_color_string[7]; |
#define FORM_W 167 |
#define FORM_H 60 |
#define COLOR_BLOCK_SIZE 42 |
#define COLOR_BLOCK_PADDING FORM_H - COLOR_BLOCK_SIZE / 2 |
#define COLOR_BLOCK_X FORM_W - COLOR_BLOCK_SIZE - COLOR_BLOCK_PADDING |
#define BUTTON_ID_CLOSE 1 |
#define BUTTON_ID_COPY 2 |
#define BUTTON_ID_PICK 3 |
#define PICKED_SIZE 42 |
#define PICKED_PADDING FORM_H - PICKED_SIZE / 2 |
#define PICKED_X FORM_W - PICKED_SIZE - PICKED_PADDING |
#define BUTTON_CLOSE 1 |
#define BUTTON_COPY 2 |
#define BUTTON_PICK 3 |
|
//===================================================// |
// // |
30,11 → 29,12 |
|
void main() |
{ |
bool pick_active = true; |
int btn; |
proc_info Form; |
SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE); |
SetWindowLayerBehaviour(-1, ZPOS_ALWAYS_TOP); |
loop() switch(WaitEvent()) |
@SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE); |
@SetWindowLayerBehaviour(-1, ZPOS_ALWAYS_TOP); |
loop() switch(@WaitEvent()) |
{ |
case evMouse: |
mouse.get(); |
48,15 → 48,15 |
break; |
|
case evButton: |
btn = GetButtonID(); |
if (btn == BUTTON_ID_CLOSE) ExitProcess(); |
if (btn == BUTTON_ID_COPY) EventCopyHex(); |
if (btn == BUTTON_ID_PICK) pick_active = true; |
btn = @GetButtonID(); |
if (btn == BUTTON_CLOSE) ExitProcess(); |
if (btn == BUTTON_COPY) EventCopyHex(); |
if (btn == BUTTON_PICK) pick_active = true; |
break; |
|
case evKey: |
GetKeys(); |
if (key_scancode == SCAN_CODE_ESC) ExitProcess(); |
key_scancode = @GetKeyScancode(); |
if (key_scancode == SCAN_CODE_ESC) @ExitProcess(); |
if (key_scancode == SCAN_CODE_KEY_C) EventCopyHex(); |
break; |
|
74,8 → 74,8 |
DrawRectangle3D(1, 1, FORM_W-2, FORM_H-2, 0xCCCccc, 0x888888); |
DrawBar(2,2,FORM_W-3,FORM_H-3,0xFFFfff); |
|
DrawRectangle(COLOR_BLOCK_X-2, COLOR_BLOCK_PADDING-2, COLOR_BLOCK_SIZE+3, COLOR_BLOCK_SIZE+3, 0xCBC6C5); |
DefineHiddenButton(COLOR_BLOCK_X-1, COLOR_BLOCK_PADDING-1, COLOR_BLOCK_SIZE+1, COLOR_BLOCK_SIZE+1, BUTTON_ID_PICK); |
DrawRectangle(PICKED_X-2, PICKED_PADDING-2, PICKED_SIZE+3, PICKED_SIZE+3, 0xCBC6C5); |
DefineHiddenButton(PICKED_X-1, PICKED_PADDING-1, PICKED_SIZE+1, PICKED_SIZE+1, BUTTON_PICK); |
|
DrawCopyButton(67, 11, 35, 14); |
|
86,8 → 86,8 |
void str2col(dword buf, number) |
{ |
byte s; |
strlcpy(buf,"0x00000000",10); |
buf+=10; |
strlcpy(buf,"000000",6); |
buf+=6; |
while(number) |
{ |
$dec buf |
100,22 → 100,21 |
|
void EventUpdateWindowContent() |
{ |
//sprintf(#picked_color_string, "%A", picked_color); |
str2col(#picked_color_string, picked_color); |
rgb.DwordToRgb(picked_color); |
|
WriteTextWithBg(12,12, 0xD0, 0x000111, #picked_color_string+4, 0xFFFfff); |
WriteTextWithBg(12,12, 0xD0, 0x000111, #picked_color_string, 0xFFFfff); |
|
WriteNumber(12,33, 0xD0, 0xff0000, 3, rgb.r); |
WriteNumber(44,33, 0xD0, 0x008000, 3, rgb.g); |
WriteNumber(75,33, 0xD0, 0x0000ff, 3, rgb.b); |
|
DrawBar(COLOR_BLOCK_X, COLOR_BLOCK_PADDING, COLOR_BLOCK_SIZE, COLOR_BLOCK_SIZE, picked_color); |
DrawBar(PICKED_X, PICKED_PADDING, PICKED_SIZE, PICKED_SIZE, picked_color); |
} |
|
void DrawCopyButton(dword _x, _y, _w, _h) |
{ |
DefineHiddenButton(_x+1, _y+1, _w-2, _h-2, BUTTON_ID_COPY); |
DefineHiddenButton(_x+1, _y+1, _w-2, _h-2, BUTTON_COPY); |
DrawRectangle(_x, _y, _w, _h, 0x777777); |
WriteText(_x+6, _h-8/2 + _y, 0x80, 0x555555, "Copy"); |
} |
122,5 → 121,5 |
|
void EventCopyHex() |
{ |
Clipboard__CopyText(#picked_color_string+4); |
Clipboard__CopyText(#picked_color_string); |
} |