diff --git a/data/common/File Managers/fNav/FNAV_FNT.PNG b/data/common/File Managers/fNav/FNAV_FNT.PNG index 14293b5cbc..784ca72fec 100644 Binary files a/data/common/File Managers/fNav/FNAV_FNT.PNG and b/data/common/File Managers/fNav/FNAV_FNT.PNG differ diff --git a/data/common/File Managers/fNav/FNAV_ICN.PNG b/data/common/File Managers/fNav/FNAV_ICN.PNG index bfb11672c8..30193e557b 100644 Binary files a/data/common/File Managers/fNav/FNAV_ICN.PNG and b/data/common/File Managers/fNav/FNAV_ICN.PNG differ diff --git a/data/common/File Managers/fNav/Tupfile.lua b/data/common/File Managers/fNav/Tupfile.lua new file mode 100644 index 0000000000..cce1847dd6 --- /dev/null +++ b/data/common/File Managers/fNav/Tupfile.lua @@ -0,0 +1 @@ +tup.rule("ABOUT.TXT", "%f %o " .. tup.getconfig("KPACK_CMD"), "ABOUT.TXT") diff --git a/data/common/File Managers/ndn/NDN b/data/common/File Managers/ndn/NDN index 4553481e3f..7ffea934e4 100644 Binary files a/data/common/File Managers/ndn/NDN and b/data/common/File Managers/ndn/NDN differ diff --git a/data/common/settings/system.ini b/data/common/settings/system.ini index afd0b53b46..33deb5a5b1 100644 --- a/data/common/settings/system.ini +++ b/data/common/settings/system.ini @@ -14,8 +14,10 @@ double_click_delay=64 LBA=off PCI=on +;timeout in minutes +;program needs a full path [screensaver] -timeout=10 ;in minutes +timeout=10 program=/sys/demos/spiral available=3d/crownscr|demos/web|demos/zeroline|demos/spiral diff --git a/programs/cmm/appearance/appearance.c b/programs/cmm/appearance/appearance.c index f993044f3f..86f805da5a 100644 --- a/programs/cmm/appearance/appearance.c +++ b/programs/cmm/appearance/appearance.c @@ -27,11 +27,6 @@ int active_skin, active_wallpaper, active_screensaver; -enum { - BASE_TAB_BUTTON_ID=3, - BTN_SELECT_WALLP_FOLDER=10, - BTN_TEST_SCREENSAVER }; - char folder_path[4096]; char cur_file_path[4096]; char cur_skin_path[4096]; @@ -99,6 +94,7 @@ void main() } if (tabs.active_tab == TAB_SCREENSAVERS) { if (id==BTN_TEST_SCREENSAVER) EventOpenFile(); + if (id==BTN_SET_SCREENSAVER) EventSetSs(); } break; @@ -185,7 +181,10 @@ void DrawWindowContent() } if (tabs.active_tab == TAB_SCREENSAVERS) { - DrawStandartCaptButton(RIGHTx, PANEL_H, BTN_TEST_SCREENSAVER, T_SS_PREVIEW); + miniprintf(#param, T_SS_TIMEOUT, screensaver_timeout); + WriteTextWithBg(RIGHTx, PANEL_H, 0xD0, sc.work_text, #param, sc.work); + ESI = DrawStandartCaptButton(RIGHTx, PANEL_H + 25, BTN_TEST_SCREENSAVER, T_SS_PREVIEW); + DrawStandartCaptButton(RIGHTx+ESI, PANEL_H + 25, BTN_SET_SCREENSAVER, T_SS_SET); } } @@ -431,8 +430,9 @@ void EventApply() void EventUpdateDocky() { if (!update_docky.checked) return; - KillProcessByName("@docky", MULTIPLE); - RunProgram("/sys/@docky",NULL); + // KillProcessByName("@docky", MULTIPLE); + // RunProgram("/sys/@docky",NULL); + RestartProcessByName("/sys/@docky", MULTIPLE); pause(50); ActivateWindow_Self(); } @@ -455,4 +455,12 @@ void EventExit() ExitProcess(); } +void EventSetSs() +{ + dword cur_ss = list.get(select_list.cur_y); + ini.section = "screensaver"; + ini.SetString("program", cur_ss, strlen(cur_ss)); + RestartProcessByName("/sys/@ss", MULTIPLE); +} + stop: diff --git a/programs/cmm/appearance/const.h b/programs/cmm/appearance/const.h index 97250f81f5..2619545f7e 100644 --- a/programs/cmm/appearance/const.h +++ b/programs/cmm/appearance/const.h @@ -11,7 +11,9 @@ ?define T_UPDATE_DOCK "Обновлять Dock-панель" ?define T_NO_FILES "'Поддерживаемые файлы не найдены' -E" ?define T_UI_PREVIEW " Пример компонентов " + ?define T_SS_TIMEOUT "Интервал: %i минут " ?define T_SS_PREVIEW "Просмотр" + ?define T_SS_SET "Установить" ?define T_NO_SS "[Выключен]" ?define T_DEFAULT "[По умолчанию]" #else @@ -27,7 +29,9 @@ ?define T_UPDATE_DOCK "Update Dock" ?define T_NO_FILES "'No supported files were found' -E" ?define T_UI_PREVIEW " Components Preview " - ?define T_SS_PREVIEW "Preview" + ?define T_SS_TIMEOUT "Wait: %i minutes " + ?define T_SS_PREVIEW "View" + ?define T_SS_SET "Set" ?define T_NO_SS "[Disable]" ?define T_DEFAULT "[Default]" #endif @@ -49,6 +53,13 @@ enum { TAB_SCREENSAVERS }; +enum { + BASE_TAB_BUTTON_ID=3, + BTN_SELECT_WALLP_FOLDER=10, + BTN_TEST_SCREENSAVER, + BTN_SET_SCREENSAVER +}; + _ini ini = { "/sys/settings/system.ini" }; char default_dir[] = "/rd/1"; diff --git a/programs/system/scrsaver/scrsaver.asm b/programs/system/scrsaver/scrsaver.asm index 89b3456b9d..2c6ae939ba 100644 --- a/programs/system/scrsaver/scrsaver.asm +++ b/programs/system/scrsaver/scrsaver.asm @@ -21,6 +21,10 @@ start: test eax, eax jnz exit + invoke ini.get_str, ini_file, ini_section, ini_key_program, ini_program_buf, ini_program_buf.size, 0 + cmp [ini_program_buf], 0 ; if nothing set then exit + je exit + invoke ini.get_int, ini_file, ini_section, ini_key_timeout, DEFAULT_TIMEOUT_MINS imul eax, 60*100 ; cs mov [timeout], eax