Rev 7197 | Rev 7613 | Go to most recent revision | Only display areas with differences | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7197 | Rev 7519 | ||
---|---|---|---|
1 | #ifndef AUTOBUILD |
- | |
2 | #include "lang.h--" |
- | |
3 | #endif |
- | |
4 | - | ||
5 | #define MEMSIZE 4096*20 |
1 | #define MEMSIZE 4096*20 |
6 | #include "..\lib\strings.h" |
2 | #include "..\lib\strings.h" |
7 | #include "..\lib\mem.h" |
3 | #include "..\lib\mem.h" |
8 | #include "..\lib\io.h" |
4 | #include "..\lib\io.h" |
9 | #include "..\lib\gui.h" |
5 | #include "..\lib\gui.h" |
10 | #include "..\lib\obj\proc_lib.h" |
6 | #include "..\lib\obj\proc_lib.h" |
11 | #include "..\lib\patterns\simple_open_dialog.h" |
7 | #include "..\lib\patterns\simple_open_dialog.h" |
12 | #include "..\lib\patterns\restart_process.h" |
8 | #include "..\lib\patterns\restart_process.h" |
13 | #include "..\lib\added_sysdir.c" |
9 | #include "..\lib\added_sysdir.c" |
- | 10 | ||
- | 11 | #ifndef AUTOBUILD |
|
- | 12 | #include "lang.h--" |
|
- | 13 | #endif |
|
- | 14 | ||
14 | 15 | //===================================================// |
|
15 | 16 | // // |
|
- | 17 | // DATA // |
|
16 | char default_dir[] = "/rd/1"; |
18 | // // |
- | 19 | //===================================================// |
|
- | 20 | ||
- | 21 | proc_info Form; |
|
- | 22 | #define CONX 30 //content X pos |
|
17 | od_filter filter2 = {"",0}; |
23 | |
18 | 24 | char default_dir[] = "/rd/1"; |
|
19 | proc_info Form; |
25 | od_filter filter2 = {"",0}; |
20 | 26 | ||
21 | dword scr = FROM "scr.raw_8bit"; |
27 | dword scr = FROM "scr.raw_8bit"; |
22 | dword scr_pal[] = {0xFFFFFF,0xBBDDFF,0x4166B5,0xE0E4E6,0xAFBEDD,0xC4D4E8,0x52ACDD,0x000000, |
28 | dword scr_pal[] = {0xFFFFFF,0xBBDDFF,0x4166B5,0xE0E4E6,0xAFBEDD,0xC4D4E8,0x52ACDD,0x000000, |
23 | 0xE9DAB2,0xC99811,0xFDF9D4,0xF8B93C,0xFDEEBE,0xFBEBA6,0xDFAF4F,0xF3D57C}; |
29 | 0xE9DAB2,0xC99811,0xFDF9D4,0xF8B93C,0xFDEEBE,0xFBEBA6,0xDFAF4F,0xF3D57C}; |
24 | 30 | ||
25 | #define BTN_MANUAL_SEARCH 10 |
31 | #define BTN_MANUAL_SEARCH 10 |
- | 32 | #define BTN_OPEN_ANYWAY 11 |
|
26 | 33 | ||
- | 34 | #define APP_PLUS_INI_PATH "/sys/settings/app_plus.ini" |
|
- | 35 | ||
27 | #define APP_PLUS_INI_PATH "/kolibrios/settings/app_plus.ini" |
36 | //===================================================// |
- | 37 | // // |
|
- | 38 | // TRANSLATIONS // |
|
28 | 39 | // // |
|
- | 40 | //===================================================// |
|
- | 41 | ||
- | 42 | #ifdef LANG_RUS |
|
- | 43 | ?define WINDOW_TITLE_TEXT "¨¬ ¨¥! â® ¢ ¦®." |
|
- | 44 | ?define CONTENT_HEADER_TEXT " /KOLIBRIOS/ " |
|
- | 45 | ?define DESCRIPTION_TEXT "®¯à®¡ã©â¥ ©â¨ ¥¥ á ¬®áâ®ï⥫ì®. |
|
- | 46 | ®¤¥à¦¨¬®¥ ¨ª®¬®© ¯ ¯ª¨ ¯®ª § ® |
|
- | 47 | ª à⨪¥ á¯à ¢ . á«ãç ¥ ¥¢¥à® |
|
- | 48 | ¢ë¡à ®© ¯ ¯ª¨ âॡã¥âáï ¢ë¯®«¨âì |
|
- | 49 | ¯¥à¥§ £à㧪㠨 ¯®¯à®¡®¢ âì ᮢ ." |
|
- | 50 | ?define MANUALLY_BUTTON_TEXT " ©â¨ /kolibrios/..." |
|
29 | #define APP_PLUS_INI_NOT_EXISTS "'APP+\n/kolibrios/settings/app_plus.ini does not exists.\nProgram terminated.' -tE" |
51 | ?define OPEN_ANYWAY_BUTTON_TEXT " ¯ãáâ¨âì APP+ (¥ª®â®àë¥ ¯à®£à ¬¬ë ¡ã¤ãâ ¥¤®áâã¯ë)" |
30 | 52 | #else |
|
31 | #define WINDOW_TITLE_TEXT "Error" |
53 | ?define WINDOW_TITLE_TEXT "Warning! It's important." |
32 | #define CONTENT_HEADER_TEXT "/KOLIBRIOS/ IS NOT MOUNTED" |
54 | ?define CONTENT_HEADER_TEXT "/KOLIBRIOS/ IS NOT MOUNTED" |
33 | #define DESCRIPTION_TEXT "Try to find it manually. It should look |
55 | ?define DESCRIPTION_TEXT "Try to find it manually. It should look |
34 | like image on the right. |
56 | like image on the right. |
35 | Note: this action can be done only once |
57 | Note: this action can be done only once |
36 | per 1 session of the OS running. If you |
58 | per 1 session of the OS running. If you |
37 | will choose the wrong folder then you |
59 | will choose the wrong folder then you |
38 | need to reboot system to try again." |
60 | need to reboot system to try again." |
39 | #define MANUALLY_BUTTON_TEXT "Choose /kolibrios/ folder..." |
61 | ?define MANUALLY_BUTTON_TEXT "Choose /kolibrios/ folder..." |
40 | - | ||
41 | - | ||
42 | void CheckKosMounted() |
- | |
43 | { |
- | |
44 | if (dir_exists("/kolibrios")) |
- | |
45 | { |
- | |
46 | if (file_exists(APP_PLUS_INI_PATH)) |
- | |
47 | RunProgram("syspanel", APP_PLUS_INI_PATH); |
62 | ?define OPEN_ANYWAY_BUTTON_TEXT "Open APP+ anyway (some apps will be unavailable)" |
48 | else |
63 | #endif |
49 | notify(APP_PLUS_INI_NOT_EXISTS); |
- | |
50 | ExitProcess(); |
- | |
51 | } |
- | |
52 | } |
- | |
- | 64 | ||
53 | 65 | //===================================================// |
|
54 | void WaitAutosearch() |
- | |
55 | { |
66 | // // |
56 | while (CheckProcessExists("SEARCHAP")) pause(2); |
- | |
- | 67 | // CODE // |
|
- | 68 | // // |
|
57 | } |
69 | //===================================================// |
58 | 70 | ||
59 | void main() |
71 | void main() |
60 | { |
72 | { |
61 | word id; |
- | |
62 | - | ||
63 | CheckKosMounted(); |
- | |
64 | WaitAutosearch(); |
73 | WaitAutosearch(); |
65 | CheckKosMounted(); |
74 | CheckKosMounted(); |
66 | 75 | ||
67 | o_dialog.type = 2; |
76 | o_dialog.type = 2; |
68 | load_dll(Proc_lib, #OpenDialog_init,0); |
77 | load_dll(Proc_lib, #OpenDialog_init,0); |
69 | OpenDialog_init stdcall (#o_dialog); |
78 | OpenDialog_init stdcall (#o_dialog); |
70 | active_button_id = BTN_MANUAL_SEARCH; |
79 | active_button_id = BTN_MANUAL_SEARCH; |
71 | 80 | ||
72 | loop() switch(WaitEvent()) |
81 | loop() switch(WaitEvent()) |
73 | { |
82 | { |
74 | case evButton: |
83 | case evButton: |
75 | id=GetButtonID(); |
84 | EventButton(GetButtonID()); |
76 | if (id==1) ExitProcess(); |
- | |
77 | if (id==BTN_MANUAL_SEARCH) EventManualSearch(); |
- | |
78 | break; |
85 | break; |
79 | case evKey: |
86 | case evKey: |
80 | GetKeys(); |
87 | GetKeys(); |
81 | if (key_scancode == SCAN_CODE_ENTER) EventManualSearch(); |
88 | if (key_scancode == SCAN_CODE_ENTER) { |
- | 89 | EventButton(active_button_id); |
|
- | 90 | } |
|
- | 91 | else if (key_scancode == SCAN_CODE_TAB) { |
|
- | 92 | active_button_id = active_button_id-10^1 + 10; |
|
- | 93 | DrawButtons(); |
|
- | 94 | } |
|
82 | break; |
95 | break; |
83 | 96 | ||
84 | case evReDraw: |
97 | case evReDraw: |
85 | draw_window(); |
98 | draw_window(); |
86 | } |
99 | } |
87 | } |
100 | } |
88 | 101 | ||
89 | void draw_window() |
102 | void draw_window() |
90 | { |
103 | { |
91 | incn y; |
104 | incn y; |
92 | dword x=30; |
- | |
93 | y.n=0; |
105 | y.n=0; |
94 | system.color.get(); |
106 | system.color.get(); |
95 | DefineAndDrawWindow(screen.width-570/2, 100, 570, 280+skin_height, 0x34, system.color.work, WINDOW_TITLE_TEXT,0); |
107 | DefineAndDrawWindow(screen.width-570/2, 100, 570, 300+skin_height, 0x34, system.color.work, WINDOW_TITLE_TEXT,0); |
96 | GetProcessInfo(#Form, SelfInfo); |
108 | GetProcessInfo(#Form, SelfInfo); |
97 | WriteTextB(x+2,y.inc(20)+2,0x81,MixColors(system.color.work, 0xB92234,220),CONTENT_HEADER_TEXT); |
109 | WriteTextB(CONX+2,y.inc(20)+2,0x81,MixColors(system.color.work, 0xB92234,220),CONTENT_HEADER_TEXT); |
98 | WriteTextB(x,y.n,0x81,0xB92234,CONTENT_HEADER_TEXT); |
110 | WriteTextB(CONX,y.n,0x81,0xB92234,CONTENT_HEADER_TEXT); |
99 | - | ||
100 | WriteTextLines(x,y.inc(50),0x90,system.color.work_text,DESCRIPTION_TEXT,20); |
- | |
101 | 111 | ||
102 | PutPaletteImage(#scr,144,171,Form.cwidth-180,y.n,8,#scr_pal); |
112 | PutPaletteImage(#scr,144,171,Form.cwidth-180,y.n,8,#scr_pal); |
103 | DrawRectangle(Form.cwidth-180-1,y.n-1, 144+1,171+1, system.color.work_graph); |
113 | DrawRectangle(Form.cwidth-180-1,y.n-1, 144+1,171+1, system.color.work_graph); |
- | 114 | ||
- | 115 | WriteTextLines(CONX,y.inc(50),0x90,system.color.work_text,DESCRIPTION_TEXT,20); |
|
- | 116 | ||
- | 117 | DrawButtons(); |
|
- | 118 | } |
|
- | 119 | ||
- | 120 | void DrawButtons() |
|
- | 121 | { |
|
104 | DrawStandartCaptButton(x, Form.cheight-66, BTN_MANUAL_SEARCH, MANUALLY_BUTTON_TEXT); |
122 | DrawStandartCaptButton(CONX, Form.cheight-80, BTN_MANUAL_SEARCH, MANUALLY_BUTTON_TEXT); |
- | 123 | DrawStandartCaptButton(CONX, Form.cheight-42, BTN_OPEN_ANYWAY, OPEN_ANYWAY_BUTTON_TEXT); |
|
105 | } |
124 | } |
- | 125 | ||
- | 126 | void CheckKosMounted() |
|
- | 127 | { |
|
- | 128 | if (dir_exists("/kolibrios")) |
|
- | 129 | { |
|
- | 130 | if (file_exists(APP_PLUS_INI_PATH)) EventOpenApp(); |
|
- | 131 | ExitProcess(); |
|
- | 132 | } |
|
- | 133 | } |
|
- | 134 | ||
- | 135 | void WaitAutosearch() |
|
- | 136 | { |
|
- | 137 | while (CheckProcessExists("SEARCHAP")) pause(2); |
|
- | 138 | } |
|
- | 139 | ||
- | 140 | //===================================================// |
|
- | 141 | // // |
|
- | 142 | // EVENTS // |
|
- | 143 | // // |
|
- | 144 | //===================================================// |
|
106 | 145 | ||
107 | void EventManualSearch() |
146 | void EventManualSearch() |
108 | { |
147 | { |
109 | OpenDialog_start stdcall (#o_dialog); |
148 | OpenDialog_start stdcall (#o_dialog); |
110 | if (o_dialog.status) SetAdditionalSystemDirectory("kolibrios", #openfile_path+1); |
149 | if (o_dialog.status) SetAdditionalSystemDirectory("kolibrios", #openfile_path+1); |
111 | pause(3); |
150 | pause(3); |
112 | CheckKosMounted(); |
151 | CheckKosMounted(); |
113 | } |
152 | } |
- | 153 | ||
- | 154 | void EventOpenApp() |
|
- | 155 | { |
|
- | 156 | RunProgram("syspanel", APP_PLUS_INI_PATH); |
|
- | 157 | } |
|
- | 158 | ||
- | 159 | void EventButton(dword id) |
|
- | 160 | { |
|
- | 161 | if (id==CLOSE_BTN) ExitProcess(); |
|
- | 162 | else if (id==BTN_MANUAL_SEARCH) EventManualSearch(); |
|
- | 163 | else if (id==BTN_OPEN_ANYWAY) { EventOpenApp(); ExitProcess(); } |
|
- | 164 | } |
|
114 | 165 | ||
115 | 166 | ||
116 | stop: |
167 | stop: |