Subversion Repositories Kolibri OS

Rev

Rev 6735 | Rev 6759 | 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
 
6746 leency 31
	debugln("GUI");
32
 
6732 leency 33
	loop() switch(WaitEvent())
34
	{
35
		case evMouse:
36
			edit_box_mouse stdcall (#src_box);
37
			edit_box_mouse stdcall (#dst_box);
38
			break;
39
 
40
		case evButton:
41
			btn = GetButtonID();
42
			switch (btn)
43
			{
44
			case BID_EXIT_PRC:
45
				ExitProcess();
46
			case BID_SRC_OPEN:
47
				OpenDialog_start stdcall (#o_dialog);
48
				if (o_dialog.status) {
49
					strcpy(#src_box_text, #openfile_path);
50
					src_box.size = src_box.pos
51
					= src_box.shift = src_box.shift_old = strlen(#src_box_text);
52
				}
53
				break;
54
			case BID_DST_OPEN:
55
				OpenDialog_start stdcall (#o_dialog);
56
				if (o_dialog.status) {
57
					strcpy(#dst_box_text, #openfile_path);
58
					dst_box.size = dst_box.pos
59
					= dst_box.shift = dst_box.shift_old = strlen(#dst_box_text);
60
				}
61
				break;
62
			case BID_COMPARE:
63
				sprintf(#run_param, "\"%s\" \"%s\"", #src_box_text, #dst_box_text);
6735 leency 64
				io.run(I_Path, #run_param);
6732 leency 65
				break;
66
			}
67
			break;
68
 
69
		case evKey:
70
			GetKeys();
71
			if (key_scancode == SCAN_CODE_ESC) ExitProcess();
72
			if (key_scancode == SCAN_CODE_TAB) {
73
				if ( src_box.flags & 10b ) {
74
					src_box.flags -= 10b;
75
					dst_box.flags += 10b;
76
				} else {
77
					src_box.flags += 10b;
78
					dst_box.flags -= 10b;
79
				}
80
				edit_box_draw stdcall (#src_box);
81
				edit_box_draw stdcall (#dst_box);
82
			}
83
			EAX = key_editbox;
84
			edit_box_key stdcall (#src_box);
85
			EAX = key_editbox;
86
			edit_box_key stdcall (#dst_box);
87
			break;
88
 
89
		case evReDraw:
90
			draw_window();
91
			break;
92
	}
93
}
94
 
95
void draw_window()
96
{
97
	system.color.get();
6746 leency 98
	DefineAndDrawWindow(215, 100, 450, 195 + skin_height, 0x34, system.color.work, #window_title,0);
6732 leency 99
	GetProcessInfo(#Form, SelfInfo);
100
 
101
	WriteText(src_box.left-2, src_box.top-21, 0x90, system.color.work_text, "First file:");
102
	WriteText(dst_box.left-2, dst_box.top-21, 0x90, system.color.work_text, "Second file:");
103
	DrawEditBox(#src_box);
104
	DrawEditBox(#dst_box);
105
	DrawStandartCaptButton(src_box.left + src_box.width + 15, src_box.top-3, BID_SRC_OPEN, "...");
106
	DrawStandartCaptButton(dst_box.left + dst_box.width + 15, dst_box.top-3, BID_DST_OPEN, "...");
107
	DrawStandartCaptButton(dst_box.left - 2, dst_box.top + 40, BID_COMPARE, "Compare");
108
}