Rev 6746 | Rev 7252 | 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 | } |