Subversion Repositories Kolibri OS

Rev

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