Rev 9467 | Rev 9481 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 9467 | Rev 9469 | ||
---|---|---|---|
Line 23... | Line 23... | ||
23 | // // |
23 | // // |
24 | // DATA // |
24 | // DATA // |
25 | // // |
25 | // // |
26 | //===================================================// |
26 | //===================================================// |
Line 27... | Line 27... | ||
27 | 27 | ||
- | 28 | int active_skin, active_wallpaper, active_screensaver; |
|
28 | signed int active_skin=-1, active_wallpaper=-1, active_screensaver=-1; |
29 | |
29 | enum { |
30 | enum { |
30 | BASE_TAB_BUTTON_ID=3, |
31 | BASE_TAB_BUTTON_ID=3, |
31 | BTN_SELECT_WALLP_FOLDER=10, |
32 | BTN_SELECT_WALLP_FOLDER=10, |
Line 32... | Line 33... | ||
32 | BTN_TEST_SCREENSAVER }; |
33 | BTN_TEST_SCREENSAVER }; |
33 | 34 | ||
34 | char folder_path[4096]; |
35 | char folder_path[4096]; |
- | 36 | char cur_file_path[4096]; |
|
- | 37 | char cur_skin_path[4096]; |
|
35 | char cur_file_path[4096]; |
38 | char default_skin[4096]; |
Line 36... | Line 39... | ||
36 | char cur_skin_path[4096]; |
39 | char default_wallp[4096]; |
Line 37... | Line 40... | ||
37 | char ss_available[200]; |
40 | char ss_available[200]; |
38 | 41 | ||
Line 39... | Line 42... | ||
39 | int screensaver_timeout; |
42 | int screensaver_timeout; |
- | 43 | ||
Line 40... | Line 44... | ||
40 | 44 | _tabs tabs = { -sizeof(t_skins)-sizeof(t_wallpapers)-sizeof(t_screensaver)-3*8+WIN_W |
|
41 | _tabs tabs = { -sizeof(t_skins)-sizeof(t_wallpapers)-sizeof(t_screensaver)-3*8+WIN_W |
45 | - TAB_PADDING / 2, LP, NULL, BASE_TAB_BUTTON_ID }; |
42 | - TAB_PADDING / 2, LP, NULL, BASE_TAB_BUTTON_ID }; |
46 | |
Line 62... | Line 66... | ||
62 | load_dll(libini, #lib_init,1); |
66 | load_dll(libini, #lib_init,1); |
63 | load_dll(Proc_lib, #OpenDialog_init,0); |
67 | load_dll(Proc_lib, #OpenDialog_init,0); |
64 | o_dialog.type = 2; //select folder |
68 | o_dialog.type = 2; //select folder |
65 | OpenDialog_init stdcall (#o_dialog); |
69 | OpenDialog_init stdcall (#o_dialog); |
Line -... | Line 70... | ||
- | 70 | ||
- | 71 | GetIniSettings(); |
|
66 | 72 | ||
67 | tabs.add(#t_skins, #EventTabSkinsClick); |
73 | tabs.add(#t_skins, #EventTabSkinsClick); |
68 | tabs.add(#t_wallpapers, #EventTabWallpappersClick); |
74 | tabs.add(#t_wallpapers, #EventTabWallpappersClick); |
69 | tabs.add(#t_screensaver, #EventTabScreensaverClick); |
75 | tabs.add(#t_screensaver, #EventTabScreensaverClick); |
Line 70... | Line -... | ||
70 | tabs.draw_active_tab(); |
- | |
71 | - | ||
72 | GetScreensaverIniSettings(); |
76 | tabs.draw_active_tab(); |
73 | 77 | ||
74 | SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE + EVM_MOUSE_FILTER); |
78 | SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE + EVM_MOUSE_FILTER); |
75 | loop() switch(WaitEvent()) |
79 | loop() switch(WaitEvent()) |
76 | { |
80 | { |
Line 179... | Line 183... | ||
179 | optionbox_auto.draw(RIGHTx+14, PANEL_H+79); |
183 | optionbox_auto.draw(RIGHTx+14, PANEL_H+79); |
180 | DrawStandartCaptButton(RIGHTx, PANEL_H+130, BTN_SELECT_WALLP_FOLDER, T_SELECT_FOLDER); |
184 | DrawStandartCaptButton(RIGHTx, PANEL_H+130, BTN_SELECT_WALLP_FOLDER, T_SELECT_FOLDER); |
181 | } |
185 | } |
182 | if (tabs.active_tab == TAB_SCREENSAVERS) |
186 | if (tabs.active_tab == TAB_SCREENSAVERS) |
183 | { |
187 | { |
184 | DrawStandartCaptButton(RIGHTx, PANEL_H, BTN_TEST_SCREENSAVER, T_SCREENSAVER_PREVIEW); |
188 | DrawStandartCaptButton(RIGHTx, PANEL_H, BTN_TEST_SCREENSAVER, T_SS_PREVIEW); |
185 | } |
189 | } |
186 | } |
190 | } |
Line 187... | Line 191... | ||
187 | 191 | ||
188 | bool strreqi(dword _left, _right) |
192 | bool strreqi(dword _left, _right) |
Line 196... | Line 200... | ||
196 | int j; |
200 | int j; |
197 | char fname[4096]; |
201 | char fname[4096]; |
198 | select_list.ClearList(); |
202 | select_list.ClearList(); |
199 | if(io.dir.buffer)free(io.dir.buffer); |
203 | if(io.dir.buffer)free(io.dir.buffer); |
200 | io.dir.load(#folder_path,DIR_ONLYREAL); |
204 | io.dir.load(#folder_path,DIR_ONLYREAL); |
- | 205 | ||
201 | for (j=0; j |
206 | for (j=0; j |
202 | { |
207 | { |
203 | strcpy(#fname, io.dir.position(j)); |
208 | strcpy(#fname, io.dir.position(j)); |
204 | strlwr(#fname); |
209 | strlwr(#fname); |
205 | if (tabs.active_tab==TAB_SKINS) { |
210 | if (tabs.active_tab==TAB_SKINS) { |
Line 214... | Line 219... | ||
214 | } |
219 | } |
215 | ESDWORD[select_list.count*4 + #files_mas] = j; |
220 | ESDWORD[select_list.count*4 + #files_mas] = j; |
216 | select_list.count++; |
221 | select_list.count++; |
217 | } |
222 | } |
218 | Sort_by_Name(0, select_list.count-1); |
223 | Sort_by_Name(0, select_list.count-1); |
- | 224 | ||
219 | list.drop(); |
225 | list.drop(); |
220 | for (j=0; j |
- | |
221 | list.add(io.dir.position(files_mas[j])); |
- | |
222 | } |
- | |
223 | if (!select_list.count) notify(T_NO_FILES); |
- | |
224 | //save current item for tab change |
226 | //save current item for tab change |
- | 227 | //add default item |
|
225 | switch(tabs.active_tab) { |
228 | switch(tabs.active_tab) { |
- | 229 | CASE TAB_SKINS: |
|
226 | CASE TAB_SKINS: select_list.cur_y = active_skin; BREAK; |
230 | select_list.cur_y = active_skin; |
- | 231 | select_list.count++; |
|
- | 232 | list.add(#default_skin); |
|
- | 233 | BREAK; |
|
- | 234 | CASE TAB_WALLPAPERS: |
|
227 | CASE TAB_WALLPAPERS: select_list.cur_y = active_wallpaper; BREAK; |
235 | select_list.cur_y = active_wallpaper; |
- | 236 | select_list.count++; |
|
- | 237 | list.add(#default_wallp); |
|
- | 238 | BREAK; |
|
- | 239 | CASE TAB_SCREENSAVERS: |
|
228 | CASE TAB_SCREENSAVERS: select_list.cur_y = active_screensaver; |
240 | select_list.cur_y = active_screensaver; |
- | 241 | } |
|
- | 242 | ||
- | 243 | for (j=0; j |
|
- | 244 | miniprintf(#param,"%s/",#folder_path); |
|
- | 245 | strcat(#param, io.dir.position(files_mas[j])); |
|
- | 246 | list.add(#param); |
|
229 | } |
247 | } |
- | 248 | ||
- | 249 | if (!select_list.count) notify(T_NO_FILES); |
|
230 | if (select_list.cur_y>select_list.visible) select_list.first=select_list.cur_y; |
250 | if (select_list.cur_y>select_list.visible) select_list.first=select_list.cur_y; |
231 | select_list.CheckDoesValuesOkey(); |
251 | select_list.CheckDoesValuesOkey(); |
232 | if (LIST_W) draw_window(); |
252 | if (LIST_W) draw_window(); |
233 | } |
253 | } |
Line 253... | Line 273... | ||
253 | int i_abs = select_list.first + i; |
273 | int i_abs = select_list.first + i; |
254 | char filename_buf[4096]; |
274 | char filename_buf[4096]; |
255 | char* filename = #filename_buf; |
275 | char* filename = #filename_buf; |
Line 256... | Line 276... | ||
256 | 276 | ||
257 | strcpy(filename, list.get(i_abs)); |
- | |
258 | EAX = math.min(strrchr(filename,'.')-1, LIST_W - 24 / 8); |
- | |
259 | filename_buf[EAX] = '\0'; |
- | |
260 | if (filename_buf[0]=='T') && (filename_buf[1]=='_') filename+=2; |
277 | strcpy(filename, list.get(i_abs)); |
- | 278 | if (EAX = strrchr(filename,'/')) filename += EAX; |
|
- | 279 | if (ESBYTE[filename]=='T') && (ESBYTE[filename+1]=='_') filename+=2; |
|
- | 280 | EAX = math.min(strrchr(filename,'.')-1, LIST_W - 24 / 8); |
|
Line 261... | Line 281... | ||
261 | if (EAX = strrchr(filename,'/')) filename += EAX; |
281 | if(EAX) ESBYTE[filename+EAX] = '\0'; |
262 | 282 | ||
- | 283 | //save current item for tab change |
|
263 | //save current item for tab change |
284 | switch(tabs.active_tab) { |
- | 285 | CASE TAB_SKINS: |
|
- | 286 | active_skin = select_list.cur_y; |
|
- | 287 | if (!i_abs) filename = T_DEFAULT; |
|
264 | switch(tabs.active_tab) { |
288 | BREAK; |
- | 289 | CASE TAB_WALLPAPERS: |
|
- | 290 | active_wallpaper = select_list.cur_y; |
|
- | 291 | if (!i_abs) filename = T_DEFAULT; |
|
265 | CASE TAB_SKINS: active_skin = select_list.cur_y; BREAK; |
292 | BREAK; |
266 | CASE TAB_WALLPAPERS: active_wallpaper = select_list.cur_y; BREAK; |
293 | CASE TAB_SCREENSAVERS: |
Line 267... | Line 294... | ||
267 | CASE TAB_SCREENSAVERS: active_screensaver = select_list.cur_y; |
294 | active_screensaver = select_list.cur_y; |
268 | } |
295 | } |
269 | 296 | ||
Line 290... | Line 317... | ||
290 | SetCurDir("/kolibrios"); |
317 | SetCurDir("/kolibrios"); |
291 | GetCurDir(#real_kolibrios_path, sizeof(real_kolibrios_path)); |
318 | GetCurDir(#real_kolibrios_path, sizeof(real_kolibrios_path)); |
292 | return #real_kolibrios_path; |
319 | return #real_kolibrios_path; |
293 | } |
320 | } |
Line 294... | Line 321... | ||
294 | 321 | ||
295 | void GetScreensaverIniSettings() |
322 | void GetIniSettings() |
296 | { |
323 | { |
297 | ini.section = "screensaver"; |
324 | ini.section = "screensaver"; |
298 | screensaver_timeout = ini.GetInt("timeout", 10); |
325 | screensaver_timeout = ini.GetInt("timeout", 10); |
- | 326 | ini.GetString("available", #ss_available, sizeof(ss_available), 0); |
|
- | 327 | ini.section = "style"; |
|
- | 328 | ini.GetString("default_skin", #default_skin, sizeof(default_skin), 0); |
|
299 | ini.GetString("available", #ss_available, sizeof(ss_available), 0); |
329 | ini.GetString("default_wallp", #default_wallp, sizeof(default_wallp), 0); |
Line 300... | Line 330... | ||
300 | } |
330 | } |
301 | 331 | ||
302 | //===================================================// |
332 | //===================================================// |
Line 326... | Line 356... | ||
326 | dword j; |
356 | dword j; |
327 | char ssmas[sizeof(ss_available)]; |
357 | char ssmas[sizeof(ss_available)]; |
328 | list.drop(); |
358 | list.drop(); |
329 | select_list.ClearList(); |
359 | select_list.ClearList(); |
Line -... | Line 360... | ||
- | 360 | ||
- | 361 | select_list.count++; |
|
- | 362 | list.add(T_NO_SS); |
|
330 | 363 | ||
331 | strcpy(#ssmas, #ss_available); |
364 | strcpy(#ssmas, #ss_available); |
332 | do { |
365 | do { |
333 | j = strrchr(#ss_available, '|'); |
366 | j = strrchr(#ssmas, '|'); |
334 | miniprintf(#param, "/sys/%s", #ss_available + j); |
367 | miniprintf(#param, "/sys/%s", #ssmas + j); |
335 | list.add(#param); |
368 | list.add(#param); |
336 | ESBYTE[#ss_available + j - 1] = '\0'; |
369 | ESBYTE[#ssmas + j - 1] = '\0'; |
337 | select_list.count++; |
370 | select_list.count++; |
Line 338... | Line 371... | ||
338 | } while (j); |
371 | } while (j); |
339 | 372 | ||
Line 340... | Line 373... | ||
340 | if (LIST_W) draw_window(); |
373 | if (LIST_W) draw_window(); |
341 | } |
374 | } |
342 | 375 | ||
343 | void EventDeleteFile() |
376 | void EventDeleteFile() |
344 | { |
377 | { |
345 | DeleteFile(#cur_file_path); |
378 | if (select_list.cur_y) DeleteFile(#cur_file_path); //no not delete default |
Line 346... | Line 379... | ||
346 | Open_Dir(); |
379 | Open_Dir(); |
Line 366... | Line 399... | ||
366 | 399 | ||
367 | void EventApply() |
400 | void EventApply() |
368 | { |
401 | { |
369 | char kivparam[4096+10]; |
402 | char kivparam[4096+10]; |
370 | dword file_name = list.get(select_list.cur_y); |
- | |
371 | miniprintf(#cur_file_path,"%s/",#folder_path); |
403 | dword file_name = list.get(select_list.cur_y); |
372 | strcat(#cur_file_path, list.get(select_list.cur_y)); |
404 | strcpy(#cur_file_path, list.get(select_list.cur_y)); |
373 | if (tabs.active_tab==TAB_SKINS) |
405 | if (tabs.active_tab==TAB_SKINS) |
374 | { |
406 | { |
375 | SetSystemSkin(#cur_file_path); |
407 | SetSystemSkin(#cur_file_path); |
376 | SelectList_Draw(); |
408 | SelectList_Draw(); |
Line 379... | Line 411... | ||
379 | } |
411 | } |
380 | if (tabs.active_tab==TAB_WALLPAPERS) |
412 | if (tabs.active_tab==TAB_WALLPAPERS) |
381 | { |
413 | { |
382 | SelectList_Draw(); |
414 | SelectList_Draw(); |
383 | miniprintf(#kivparam, "\\S__%s", #cur_file_path); |
415 | miniprintf(#kivparam, "\\S__%s", #cur_file_path); |
384 | if (optionbox_tiled.checked) kivparam[1]='T'; |
416 | if (optionbox_tiled.checked) || (!select_list.cur_y) kivparam[1]='T'; |
385 | if (optionbox_auto.checked) { |
417 | if (optionbox_auto.checked) { |
- | 418 | file_name += strrchr(file_name, '/'); |
|
386 | if (ESBYTE[file_name+1] == '_') && (ESBYTE[file_name] == 'T') { |
419 | if (ESBYTE[file_name] == 'T') && (ESBYTE[file_name+1] == '_') { |
387 | kivparam[1]='T'; |
420 | kivparam[1]='T'; |
388 | } |
421 | } |
389 | } |
422 | } |
390 | RunProgram("/sys/media/kiv", #kivparam); |
423 | RunProgram("/sys/media/kiv", #kivparam); |
391 | } |
424 | } |
Line 404... | Line 437... | ||
404 | ActivateWindow_Self(); |
437 | ActivateWindow_Self(); |
405 | } |
438 | } |
Line 406... | Line 439... | ||
406 | 439 | ||
407 | void EventOpenFile() |
440 | void EventOpenFile() |
- | 441 | { |
|
408 | { |
442 | switch (tabs.active_tab) { |
409 | if (tabs.active_tab==TAB_SKINS) RunProgram("/sys/skincfg", #cur_file_path); |
443 | case TAB_SKINS: RunProgram("/sys/skincfg", #cur_file_path); break; |
410 | if (tabs.active_tab==TAB_WALLPAPERS) RunProgram("/sys/media/kiv", #cur_file_path); |
444 | case TAB_WALLPAPERS: RunProgram("/sys/media/kiv", #cur_file_path); break; |
- | 445 | case TAB_SCREENSAVERS: if(select_list.cur_y) RunProgram(list.get(select_list.cur_y), "@ss"); |
|
411 | if (tabs.active_tab==TAB_SCREENSAVERS) RunProgram(list.get(select_list.cur_y), "@ss"); |
446 | } |
Line 412... | Line 447... | ||
412 | } |
447 | } |
413 | 448 | ||
414 | void EventExit() |
449 | void EventExit() |