Subversion Repositories Kolibri OS

Rev

Rev 6746 | Rev 7227 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
6732 leency 1
#include "../lib/gui.h"
2
#include "../lib/obj/box_lib.h"
3
#include "../lib/obj/proc_lib.h"
4
#include "../lib/patterns/simple_open_dialog.h"
5
 
6
char default_dir[] = "/rd/1";
7
od_filter filter2 = {0,0};
8
 
9
int mouse_dd1, mouse_dd2;
10
char src_box_text[4096];
11
char dst_box_text[4096];
12
edit_box src_box = {340,20,35,0xffffff,0x94AECE,0xFFFfff,0xffffff,0x10000000,sizeof(src_box_text),#src_box_text,#mouse_dd1, 10b};
13
edit_box dst_box = {340,20,95,0xffffff,0x94AECE,0xFFFfff,0xffffff,0x10000000,sizeof(dst_box_text),#dst_box_text,#mouse_dd2, 0b};
14
 
15
#define BID_EXIT_PRC 01
16
#define BID_SRC_OPEN 10
17
#define BID_DST_OPEN 11
18
#define BID_COMPARE  12
19
 
20
proc_info Form;
21
 
22
void gui()
23
{
24
	word btn;
25
	char run_param[4096];
26
	load_dll(boxlib, #box_lib_init,0);
27
	load_dll(Proc_lib,  #OpenDialog_init,0);
28
	OpenDialog_init stdcall (#o_dialog);
29
	SetEventMask(0x27);
30
 
31
	loop() switch(WaitEvent())
32
	{
33
		case evMouse:
34
			edit_box_mouse stdcall (#src_box);
35
			edit_box_mouse stdcall (#dst_box);
36
			break;
37
 
38
		case evButton:
39
			btn = GetButtonID();
40
			switch (btn)
41
			{
42
			case BID_EXIT_PRC:
43
				ExitProcess();
44
			case BID_SRC_OPEN:
45
				OpenDialog_start stdcall (#o_dialog);
46
				if (o_dialog.status) {
47
					strcpy(#src_box_text, #openfile_path);
48
					src_box.size = src_box.pos
49
					= src_box.shift = src_box.shift_old = strlen(#src_box_text);
50
				}
51
				break;
52
			case BID_DST_OPEN:
53
				OpenDialog_start stdcall (#o_dialog);
54
				if (o_dialog.status) {
55
					strcpy(#dst_box_text, #openfile_path);
56
					dst_box.size = dst_box.pos
57
					= dst_box.shift = dst_box.shift_old = strlen(#dst_box_text);
58
				}
59
				break;
60
			case BID_COMPARE:
61
				sprintf(#run_param, "\"%s\" \"%s\"", #src_box_text, #dst_box_text);
6735 leency 62
				io.run(I_Path, #run_param);
6732 leency 63
				break;
64
			}
65
			break;
66
 
67
		case evKey:
68
			GetKeys();
69
			if (key_scancode == SCAN_CODE_ESC) ExitProcess();
70
			if (key_scancode == SCAN_CODE_TAB) {
71
				if ( src_box.flags & 10b ) {
72
					src_box.flags -= 10b;
73
					dst_box.flags += 10b;
74
				} else {
75
					src_box.flags += 10b;
76
					dst_box.flags -= 10b;
77
				}
78
				edit_box_draw stdcall (#src_box);
79
				edit_box_draw stdcall (#dst_box);
80
			}
81
			EAX = key_editbox;
82
			edit_box_key stdcall (#src_box);
83
			EAX = key_editbox;
84
			edit_box_key stdcall (#dst_box);
85
			break;
86
 
87
		case evReDraw:
88
			draw_window();
89
			break;
90
	}
91
}
92
 
93
void draw_window()
94
{
95
	system.color.get();
6746 leency 96
	DefineAndDrawWindow(215, 100, 450, 195 + skin_height, 0x34, system.color.work, #window_title,0);
6732 leency 97
	GetProcessInfo(#Form, SelfInfo);
98
 
99
	WriteText(src_box.left-2, src_box.top-21, 0x90, system.color.work_text, "First file:");
100
	WriteText(dst_box.left-2, dst_box.top-21, 0x90, system.color.work_text, "Second file:");
101
	DrawEditBox(#src_box);
102
	DrawEditBox(#dst_box);
103
	DrawStandartCaptButton(src_box.left + src_box.width + 15, src_box.top-3, BID_SRC_OPEN, "...");
104
	DrawStandartCaptButton(dst_box.left + dst_box.width + 15, dst_box.top-3, BID_DST_OPEN, "...");
105
	DrawStandartCaptButton(dst_box.left - 2, dst_box.top + 40, BID_COMPARE, "Compare");
106
}