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