Subversion Repositories Kolibri OS

Rev

Rev 7911 | Rev 7984 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 7911 Rev 7981
Line 8... Line 8...
8
//                                                   //
8
//                                                   //
9
//                       DATA                        //
9
//                       DATA                        //
10
//                                                   //
10
//                                                   //
11
//===================================================//
11
//===================================================//
Line 12... Line -...
12
 
-
 
13
dword pick_active = true;
12
 
14
dword picked_color = 0;
13
dword picked_color;
15
char picked_color_string[11];
14
char picked_color_string[7];
16
#define FORM_W 167
15
#define FORM_W 167
17
#define FORM_H 60
16
#define FORM_H 60
18
#define COLOR_BLOCK_SIZE 42
17
#define PICKED_SIZE 42
19
#define COLOR_BLOCK_PADDING FORM_H - COLOR_BLOCK_SIZE / 2
18
#define PICKED_PADDING FORM_H - PICKED_SIZE / 2
20
#define COLOR_BLOCK_X FORM_W - COLOR_BLOCK_SIZE - COLOR_BLOCK_PADDING
19
#define PICKED_X FORM_W - PICKED_SIZE - PICKED_PADDING
21
#define BUTTON_ID_CLOSE 1
20
#define BUTTON_CLOSE 1
22
#define BUTTON_ID_COPY  2
21
#define BUTTON_COPY  2
Line 23... Line 22...
23
#define BUTTON_ID_PICK  3
22
#define BUTTON_PICK  3
24
 
23
 
25
//===================================================//
24
//===================================================//
26
//                                                   //
25
//                                                   //
27
//                       CODE                        //
26
//                       CODE                        //
Line 28... Line 27...
28
//                                                   //
27
//                                                   //
29
//===================================================//
28
//===================================================//
-
 
29
 
30
 
30
void main()
31
void main()
31
{
32
{
32
	bool pick_active = true;
33
	int btn;
33
	int btn;
34
	proc_info Form;
34
	proc_info Form;
35
	SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE);
35
	@SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE);
36
	SetWindowLayerBehaviour(-1, ZPOS_ALWAYS_TOP);
36
	@SetWindowLayerBehaviour(-1, ZPOS_ALWAYS_TOP);
37
	loop() switch(WaitEvent())
37
	loop() switch(@WaitEvent())
38
	{
38
	{
39
		case evMouse:
39
		case evMouse:
Line 46... Line 46...
46
				if (mouse.down) && (mouse.key&MOUSE_LEFT) pick_active = false;
46
				if (mouse.down) && (mouse.key&MOUSE_LEFT) pick_active = false;
47
			}
47
			}
48
			break;
48
			break;
Line 49... Line 49...
49
 
49
 
50
		case evButton:
50
		case evButton:
51
			btn = GetButtonID();
51
			btn = @GetButtonID();
52
			if (btn == BUTTON_ID_CLOSE) ExitProcess();
52
			if (btn == BUTTON_CLOSE) ExitProcess();
53
			if (btn == BUTTON_ID_COPY) EventCopyHex();
53
			if (btn == BUTTON_COPY) EventCopyHex();
54
			if (btn == BUTTON_ID_PICK) pick_active = true;
54
			if (btn == BUTTON_PICK) pick_active = true;
Line 55... Line 55...
55
			break;
55
			break;
56
 
56
 
57
		case evKey:
57
		case evKey:
58
			GetKeys();
58
			key_scancode = @GetKeyScancode();
59
			if (key_scancode == SCAN_CODE_ESC) ExitProcess();
59
			if (key_scancode == SCAN_CODE_ESC) @ExitProcess();
Line 60... Line 60...
60
			if (key_scancode == SCAN_CODE_KEY_C) EventCopyHex();
60
			if (key_scancode == SCAN_CODE_KEY_C) EventCopyHex();
61
			break;
61
			break;
Line 72... Line 72...
72
{
72
{
73
	DrawRectangle3D(0, 0, FORM_W, FORM_H, 0xCCCccc, 0x888888);
73
	DrawRectangle3D(0, 0, FORM_W, FORM_H, 0xCCCccc, 0x888888);
74
	DrawRectangle3D(1, 1, FORM_W-2, FORM_H-2, 0xCCCccc, 0x888888);
74
	DrawRectangle3D(1, 1, FORM_W-2, FORM_H-2, 0xCCCccc, 0x888888);
75
	DrawBar(2,2,FORM_W-3,FORM_H-3,0xFFFfff);
75
	DrawBar(2,2,FORM_W-3,FORM_H-3,0xFFFfff);
Line 76... Line 76...
76
 
76
 
77
	DrawRectangle(COLOR_BLOCK_X-2, COLOR_BLOCK_PADDING-2, COLOR_BLOCK_SIZE+3, COLOR_BLOCK_SIZE+3, 0xCBC6C5);
77
	DrawRectangle(PICKED_X-2, PICKED_PADDING-2, PICKED_SIZE+3, PICKED_SIZE+3, 0xCBC6C5);
Line 78... Line 78...
78
	DefineHiddenButton(COLOR_BLOCK_X-1, COLOR_BLOCK_PADDING-1, COLOR_BLOCK_SIZE+1, COLOR_BLOCK_SIZE+1, BUTTON_ID_PICK);
78
	DefineHiddenButton(PICKED_X-1, PICKED_PADDING-1, PICKED_SIZE+1, PICKED_SIZE+1, BUTTON_PICK);
Line 79... Line 79...
79
 
79
 
80
	DrawCopyButton(67, 11, 35, 14);
80
	DrawCopyButton(67, 11, 35, 14);
Line 81... Line 81...
81
 
81
 
82
	EventUpdateWindowContent();
82
	EventUpdateWindowContent();
83
}
83
}
84
 
84
 
85
//copy of sprintf() => %A
85
//copy of sprintf() => %A
86
void str2col(dword buf, number)
86
void str2col(dword buf, number)
87
{
87
{
88
	byte s;
88
	byte s;
89
	strlcpy(buf,"0x00000000",10);
89
	strlcpy(buf,"000000",6);
90
	buf+=10;
90
	buf+=6;
91
	while(number)
91
	while(number)
Line 98... Line 98...
98
	}
98
	}
99
}
99
}
Line 100... Line 100...
100
 
100
 
101
void EventUpdateWindowContent()
101
void EventUpdateWindowContent()
102
{
-
 
103
	//sprintf(#picked_color_string, "%A", picked_color);
102
{
104
	str2col(#picked_color_string, picked_color);
103
	str2col(#picked_color_string, picked_color);
Line 105... Line 104...
105
	rgb.DwordToRgb(picked_color);
104
	rgb.DwordToRgb(picked_color);
Line 106... Line 105...
106
	
105
	
107
	WriteTextWithBg(12,12, 0xD0, 0x000111, #picked_color_string+4, 0xFFFfff);
106
	WriteTextWithBg(12,12, 0xD0, 0x000111, #picked_color_string, 0xFFFfff);
108
	
107
	
Line 109... Line 108...
109
	WriteNumber(12,33, 0xD0, 0xff0000, 3, rgb.r);
108
	WriteNumber(12,33, 0xD0, 0xff0000, 3, rgb.r);
110
	WriteNumber(44,33, 0xD0, 0x008000, 3, rgb.g);
109
	WriteNumber(44,33, 0xD0, 0x008000, 3, rgb.g);
Line 111... Line 110...
111
	WriteNumber(75,33, 0xD0, 0x0000ff, 3, rgb.b);
110
	WriteNumber(75,33, 0xD0, 0x0000ff, 3, rgb.b);
112
 
111
 
113
	DrawBar(COLOR_BLOCK_X, COLOR_BLOCK_PADDING, COLOR_BLOCK_SIZE, COLOR_BLOCK_SIZE, picked_color);
112
	DrawBar(PICKED_X, PICKED_PADDING, PICKED_SIZE, PICKED_SIZE, picked_color);
114
}
113
}
115
 
114
 
116
void DrawCopyButton(dword _x, _y, _w, _h)
115
void DrawCopyButton(dword _x, _y, _w, _h)
Line 117... Line 116...
117
{
116
{
118
	DefineHiddenButton(_x+1, _y+1, _w-2, _h-2, BUTTON_ID_COPY);
117
	DefineHiddenButton(_x+1, _y+1, _w-2, _h-2, BUTTON_COPY);
119
	DrawRectangle(_x, _y, _w, _h, 0x777777);
118
	DrawRectangle(_x, _y, _w, _h, 0x777777);
120
	WriteText(_x+6, _h-8/2 + _y, 0x80, 0x555555, "Copy");
119
	WriteText(_x+6, _h-8/2 + _y, 0x80, 0x555555, "Copy");
121
}
120
}