Subversion Repositories Kolibri OS

Rev

Rev 7252 | Rev 7658 | 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];
7506 leency 11
edit_box src_box = {340,20,35,0xffffff,0x94AECE,0xFFFfff,0xffffff,0x10000000,sizeof(src_box_text)-2,#src_box_text,0, ed_focus};
12
edit_box dst_box = {340,20,95,0xffffff,0x94AECE,0xFFFfff,0xffffff,0x10000000,sizeof(dst_box_text)-2,#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);
7506 leency 47
					EditBox_UpdateText(#src_box, #src_box.flags);
6732 leency 48
				}
49
				break;
50
			case BID_DST_OPEN:
51
				OpenDialog_start stdcall (#o_dialog);
52
				if (o_dialog.status) {
53
					strcpy(#dst_box_text, #openfile_path);
7506 leency 54
					EditBox_UpdateText(#dst_box, #dst_box.flags);
6732 leency 55
				}
56
				break;
57
			case BID_COMPARE:
58
				sprintf(#run_param, "\"%s\" \"%s\"", #src_box_text, #dst_box_text);
6735 leency 59
				io.run(I_Path, #run_param);
6732 leency 60
				break;
61
			}
62
			break;
63
 
64
		case evKey:
65
			GetKeys();
66
			if (key_scancode == SCAN_CODE_ESC) ExitProcess();
67
			if (key_scancode == SCAN_CODE_TAB) {
7506 leency 68
				if ( src_box.flags & ed_focus ) {
69
					src_box.flags -= ed_focus;
70
					dst_box.flags += ed_focus;
6732 leency 71
				} else {
7506 leency 72
					src_box.flags += ed_focus;
73
					dst_box.flags -= ed_focus;
6732 leency 74
				}
75
				edit_box_draw stdcall (#src_box);
76
				edit_box_draw stdcall (#dst_box);
77
			}
78
			EAX = key_editbox;
79
			edit_box_key stdcall (#src_box);
80
			EAX = key_editbox;
81
			edit_box_key stdcall (#dst_box);
82
			break;
83
 
84
		case evReDraw:
85
			draw_window();
86
			break;
87
	}
88
}
89
 
90
void draw_window()
91
{
92
	system.color.get();
6746 leency 93
	DefineAndDrawWindow(215, 100, 450, 195 + skin_height, 0x34, system.color.work, #window_title,0);
6732 leency 94
	GetProcessInfo(#Form, SelfInfo);
95
 
96
	WriteText(src_box.left-2, src_box.top-21, 0x90, system.color.work_text, "First file:");
97
	WriteText(dst_box.left-2, dst_box.top-21, 0x90, system.color.work_text, "Second file:");
98
	DrawEditBox(#src_box);
99
	DrawEditBox(#dst_box);
100
	DrawStandartCaptButton(src_box.left + src_box.width + 15, src_box.top-3, BID_SRC_OPEN, "...");
101
	DrawStandartCaptButton(dst_box.left + dst_box.width + 15, dst_box.top-3, BID_DST_OPEN, "...");
102
	DrawStandartCaptButton(dst_box.left - 2, dst_box.top + 40, BID_COMPARE, "Compare");
103
}