diff --git a/data/Tupfile.lua b/data/Tupfile.lua index 545bbaf4b6..d627e04c3d 100644 --- a/data/Tupfile.lua +++ b/data/Tupfile.lua @@ -17,7 +17,7 @@ img_files = { {"STRUCT.INC", PROGS .. "/struct.inc"}, {"FB2READ", "common/fb2read"}, {"ALLGAMES", "common/allgames"}, - {"HOME.PNG", "common/wallpapers/home.png"}, + {"HOME.PNG", "common/wallpapers/T home.png"}, {"ICONS32.PNG", "common/icons32.png"}, {"ICONS16.PNG", "common/icons16.png"}, {"INDEX.HTM", "common/index_htm"}, diff --git a/data/common/icons16.png b/data/common/icons16.png index 9556a299a5..af6a8a803b 100644 Binary files a/data/common/icons16.png and b/data/common/icons16.png differ diff --git a/data/common/wallpapers/Gradient Pink.png b/data/common/wallpapers/Dawn.png similarity index 100% rename from data/common/wallpapers/Gradient Pink.png rename to data/common/wallpapers/Dawn.png diff --git a/data/common/wallpapers/deink.png b/data/common/wallpapers/Deink.png similarity index 100% rename from data/common/wallpapers/deink.png rename to data/common/wallpapers/Deink.png diff --git a/data/common/wallpapers/in_the_wind.png b/data/common/wallpapers/In the wind.png similarity index 100% rename from data/common/wallpapers/in_the_wind.png rename to data/common/wallpapers/In the wind.png diff --git a/data/common/wallpapers/sand.png b/data/common/wallpapers/Sand.png similarity index 100% rename from data/common/wallpapers/sand.png rename to data/common/wallpapers/Sand.png diff --git a/data/common/wallpapers/t__brickhouseislands3c.png b/data/common/wallpapers/T Brick house islands.png similarity index 100% rename from data/common/wallpapers/t__brickhouseislands3c.png rename to data/common/wallpapers/T Brick house islands.png diff --git a/data/common/wallpapers/T Dashed squares.png b/data/common/wallpapers/T Dashed squares.png new file mode 100644 index 0000000000..a99220ff65 Binary files /dev/null and b/data/common/wallpapers/T Dashed squares.png differ diff --git a/data/common/wallpapers/home.png b/data/common/wallpapers/T Home.png similarity index 100% rename from data/common/wallpapers/home.png rename to data/common/wallpapers/T Home.png diff --git a/data/common/wallpapers/T Small dots.png b/data/common/wallpapers/T Small dots.png new file mode 100644 index 0000000000..cb7daea4b9 Binary files /dev/null and b/data/common/wallpapers/T Small dots.png differ diff --git a/data/common/wallpapers/copyright.txt b/data/common/wallpapers/copyright.txt index b6ebed3fe8..33479aa828 100644 --- a/data/common/wallpapers/copyright.txt +++ b/data/common/wallpapers/copyright.txt @@ -6,7 +6,7 @@ Home Rand and Robyn Miller Based on the game "Cosmic Free Yourself Jonathan Besler https://interfacelift.com/user/86064/jonathan_besler.html Unsplash Alexander Popov https://unsplash.com/@5tep5 KolibriOS Tan Viktorya Sidorova -brickhouseislands3c Mrmo Tarius https://pixeljoint.com/pixelart/85317.htm +Brick house islands Mrmo Tarius https://pixeljoint.com/pixelart/85317.htm =====Icons==== diff --git a/programs/cmm/appearance/appearance.c b/programs/cmm/appearance/appearance.c index 59bf893307..0a677509fd 100644 --- a/programs/cmm/appearance/appearance.c +++ b/programs/cmm/appearance/appearance.c @@ -1,7 +1,7 @@ //11.03.12 - start! //ver 2.31 -#define MEMSIZE 200*1024 +#define MEMSIZE 1024*70 #include "../lib/mem.h" #include "../lib/strings.h" #include "../lib/io.h" @@ -34,21 +34,20 @@ enum { char folder_path[4096]; char cur_file_path[4096]; char cur_skin_path[4096]; -int files_mas[400]; +char ss_available[200]; + +int screensaver_timeout; _tabs tabs = { -sizeof(t_skins)-sizeof(t_wallpapers)-sizeof(t_screensaver)-3*8+WIN_W - TAB_PADDING / 2, LP, NULL, BASE_TAB_BUTTON_ID }; checkbox update_docky = { T_UPDATE_DOCK, false }; -checkbox optionbox_stretch = { T_CHECKBOX_STRETCH, true }; +checkbox optionbox_stretch = { T_CHECKBOX_STRETCH, false }; checkbox optionbox_tiled = { T_CHECKBOX_TILED, false }; +checkbox optionbox_auto = { T_CHECKBOX_AUTO, true }; -struct SCREENSAVER_SETTINGS { - int timeout; - char program[60]; - char available[200]; -} ss_settings; +collection list; //===================================================// // // @@ -70,6 +69,8 @@ void main() tabs.add(#t_screensaver, #EventTabScreensaverClick); tabs.draw_active_tab(); + GetScreensaverIniSettings(); + SetEventMask(EVM_REDRAW + EVM_KEY + EVM_BUTTON + EVM_MOUSE + EVM_MOUSE_FILTER); loop() switch(WaitEvent()) { @@ -80,13 +81,21 @@ void main() case evButton: id=GetButtonID(); if (id==1) EventExit(); - if (id==BTN_SELECT_WALLP_FOLDER) EventSelectWallpFolder(); tabs.click(id); - checkbox1.click(id); - spinbox1.click(id); - if (update_docky.click(id)) EventUpdateDocky(); - if (!optionbox_stretch.checked) && (optionbox_stretch.click(id)) EventSetWallpMode_Stretch(); - if (!optionbox_tiled.checked) && (optionbox_tiled.click(id)) EventSetWallpMode_Tiled(); + if (tabs.active_tab == TAB_SKINS) { + checkbox1.click(id); + spinbox1.click(id); + if (update_docky.click(id)) EventUpdateDocky(); + } + if (tabs.active_tab == TAB_WALLPAPERS) { + if (id==BTN_SELECT_WALLP_FOLDER) EventSelectWallpFolder(); + if (optionbox_stretch.click(id)) EventSetWallpMode(1,0,0); + if (optionbox_tiled.click(id)) EventSetWallpMode(0,1,0); + if (optionbox_auto.click(id)) EventSetWallpMode(0,0,1); + } + if (tabs.active_tab == TAB_SCREENSAVERS) { + if (id==BTN_TEST_SCREENSAVER) EventOpenFile(); + } break; case evKey: @@ -98,14 +107,13 @@ void main() id = tabs.active_tab+1; if(id==3)id=0; tabs.click(id + tabs.base_id); - DrawWindowContent(); break; } if (! edit_cmm.flags & ed_focus) && (! edit_st.flags & ed_focus) for (i=select_list.cur_y+1; iselect_list.visible) select_list.first=select_list.cur_y; + select_list.CheckDoesValuesOkey(); + if (LIST_W) draw_window(); } void Sort_by_Name(int a, b) // for the first call: a = 0, b = sizeof(mas) - 1 @@ -227,21 +251,30 @@ void SelectList_DrawLine(dword i) { int draw_y = i*SELECT_LIST_ITEMH+PANEL_H; int i_abs = select_list.first + i; - char filename[4096]; + char filename_buf[4096]; + char* filename = #filename_buf; - strcpy(#filename, io.dir.position(files_mas[i_abs])); - EAX = math.min(strrchr(#filename,'.')-1, LIST_W - 24 / 8); - filename[EAX] = '\0'; + strcpy(filename, list.get(i_abs)); + EAX = math.min(strrchr(filename,'.')-1, LIST_W - 24 / 8); + filename_buf[EAX] = '\0'; + if (EAX = strrchr(filename,'/')) filename += EAX; + + //save current item for tab change + switch(tabs.active_tab) { + CASE TAB_SKINS: active_skin = select_list.cur_y; BREAK; + CASE TAB_WALLPAPERS: active_wallpaper = select_list.cur_y; BREAK; + CASE TAB_SCREENSAVERS: active_screensaver = select_list.cur_y; + } if (select_list.cur_y == i_abs) { DrawBar(select_list.x, draw_y, LIST_W, SELECT_LIST_ITEMH, sc.button); - WriteText(select_list.x+12,draw_y+select_list.text_y,select_list.font_type,sc.button_text, #filename); + WriteText(select_list.x+12,draw_y+select_list.text_y,select_list.font_type,sc.button_text, filename); } else { DrawBar(select_list.x,draw_y,LIST_W, SELECT_LIST_ITEMH, 0xFFFfff); - WriteText(select_list.x+12,draw_y+select_list.text_y,select_list.font_type,0, #filename); + WriteText(select_list.x+12,draw_y+select_list.text_y,select_list.font_type,0, filename); } } @@ -250,17 +283,6 @@ void SelectList_LineChanged() EventApply(); } -void ActivateTab(int _id) -{ - select_list.ClearList(); - Open_Dir(); - if (!select_list.count) notify(T_NO_FILES); - select_list.cur_y = _id; - if (select_list.cur_y>select_list.visible) select_list.first=select_list.cur_y; - select_list.CheckDoesValuesOkey(); - if (LIST_W) DrawWindowContent(); -} - dword GetRealKolibriosPath() { char real_kolibrios_path[4096]; @@ -269,6 +291,13 @@ dword GetRealKolibriosPath() return #real_kolibrios_path; } +void GetScreensaverIniSettings() +{ + ini.section = "screensaver"; + screensaver_timeout = ini.GetInt("timeout", 10); + ini.GetString("available", #ss_available, sizeof(ss_available), 0); +} + //===================================================// // // // EVENTS // @@ -277,68 +306,69 @@ dword GetRealKolibriosPath() void EventTabSkinsClick() { - active_wallpaper = select_list.cur_y; miniprintf(#folder_path, "%s/res/skins", GetRealKolibriosPath()); - ActivateTab(active_skin); + Open_Dir(); } void EventTabWallpappersClick() { - active_skin = select_list.cur_y; if (opendir_path) { strcpy(#folder_path, #opendir_path); } else { miniprintf(#folder_path, "%s/res/wallpapers", GetRealKolibriosPath()); } - ActivateTab(active_wallpaper); + Open_Dir(); } void EventTabScreensaverClick() { - ini.section = "screensaver"; - ss_settings.timeout = ini.GetInt("timeout", 10); - ini.GetString("title", #ss_settings.program, sizeof(ss_settings.program), 0); - ini.GetString("available", #ss_settings.available, sizeof(ss_settings.available), 0); - ActivateTab(active_screensaver); + dword j; + char ssmas[sizeof(ss_available)]; + list.drop(); + select_list.ClearList(); + + strcpy(#ssmas, #ss_available); + do { + j = strrchr(#ss_available, '|'); + miniprintf(#param, "/sys/%s", #ss_available + j); + list.add(#param); + ESBYTE[#ss_available + j - 1] = '\0'; + select_list.count++; + } while (j); + + if (LIST_W) draw_window(); } void EventDeleteFile() { - io.del(#cur_file_path); + DeleteFile(#cur_file_path); Open_Dir(); EventApply(); } -void EventSetNewCurrent() -{ - miniprintf(#cur_file_path,"%s/",#folder_path); - strcat(#cur_file_path, io.dir.position(files_mas[calc(select_list.cur_y)])); -} - void EventSelectWallpFolder() { OpenDialog_start stdcall (#o_dialog); if (o_dialog.status) EventTabWallpappersClick(); } -void EventSetWallpMode_Stretch() +void EventSetWallpMode(dword _stretch, _titled, _auto) { - optionbox_tiled.checked = false; + optionbox_stretch.checked = _stretch; + optionbox_tiled.checked = _titled; + optionbox_auto.checked = _auto; optionbox_tiled.redraw(); - EventApply(); -} - -void EventSetWallpMode_Tiled() -{ - optionbox_stretch.checked = false; optionbox_stretch.redraw(); + optionbox_auto.redraw(); EventApply(); } void EventApply() { - char kivpath[4096+10]; - EventSetNewCurrent(); + char kivparam[4096+10]; + dword file_name = list.get(select_list.cur_y); + miniprintf(#cur_file_path,"%s/",#folder_path); + strcat(#cur_file_path, list.get(select_list.cur_y)); if (tabs.active_tab==TAB_SKINS) { SetSystemSkin(#cur_file_path); @@ -349,9 +379,18 @@ void EventApply() if (tabs.active_tab==TAB_WALLPAPERS) { SelectList_Draw(); - if (optionbox_stretch.checked) miniprintf(#kivpath, "\\S__%s", #cur_file_path); - if (optionbox_tiled.checked) miniprintf(#kivpath, "\\T__%s", #cur_file_path); - RunProgram("/sys/media/kiv", #kivpath); + miniprintf(#kivparam, "\\S__%s", #cur_file_path); + if (optionbox_tiled.checked) kivparam[1]='T'; + if (optionbox_auto.checked) { + if (ESBYTE[file_name+1] == ' ') && (ESBYTE[file_name] == 'T') { + kivparam[1]='T'; + } + } + RunProgram("/sys/media/kiv", #kivparam); + } + if (tabs.active_tab==TAB_SCREENSAVERS) + { + SelectList_Draw(); } } @@ -368,6 +407,7 @@ void EventOpenFile() { if (tabs.active_tab==TAB_SKINS) RunProgram("/sys/skincfg", #cur_file_path); if (tabs.active_tab==TAB_WALLPAPERS) RunProgram("/sys/media/kiv", #cur_file_path); + if (tabs.active_tab==TAB_SCREENSAVERS) RunProgram(list.get(select_list.cur_y), "@ss"); } void EventExit() diff --git a/programs/cmm/appearance/const.h b/programs/cmm/appearance/const.h index 5c6cf12b8f..b806bf71aa 100644 --- a/programs/cmm/appearance/const.h +++ b/programs/cmm/appearance/const.h @@ -1,27 +1,31 @@ #ifdef LANG_RUS + char t_skins[] = " Стиль окон"; + char t_wallpapers[] = " Обои"; + char t_screensaver[] = " Скринсейвер"; ?define WINDOW_HEADER "Настройки оформления" ?define T_SELECT_FOLDER "Выбрать папку" ?define T_PICTURE_MODE " Положение картинки " ?define T_CHECKBOX_STRETCH "Растянуть" ?define T_CHECKBOX_TILED "Замостить" + ?define T_CHECKBOX_AUTO "Автоматически" ?define T_UPDATE_DOCK "Обновлять Dock-панель" ?define T_NO_FILES "'Поддерживаемые файлы не найдены' -E" ?define T_UI_PREVIEW " Пример компонентов " - char t_skins[] = " Стиль окон"; - char t_wallpapers[] = " Обои"; - char t_screensaver[] = " Скринсейвер"; + ?define T_SCREENSAVER_PREVIEW "Просмотр" #else + char t_skins[] = " Skins"; + char t_wallpapers[] = " Wallpapers"; + char t_screensaver[] = " Screensaver"; ?define WINDOW_HEADER "Appearance" ?define T_SELECT_FOLDER "Select folder" ?define T_PICTURE_MODE " Picture Mode " ?define T_CHECKBOX_STRETCH "Stretch" ?define T_CHECKBOX_TILED "Tiled" + ?define T_CHECKBOX_AUTO "Auto" ?define T_UPDATE_DOCK "Update Dock" ?define T_NO_FILES "'No supported files were found' -E" ?define T_UI_PREVIEW " Components Preview " - char t_skins[] = " Skins"; - char t_wallpapers[] = " Wallpapers"; - char t_screensaver[] = " Screensaver"; + ?define T_SCREENSAVER_PREVIEW "Preview" #endif #define WIN_W 600 diff --git a/programs/cmm/lib/gui/checkbox.h b/programs/cmm/lib/gui/checkbox.h index f29d518229..6454b7d33d 100644 --- a/programs/cmm/lib/gui/checkbox.h +++ b/programs/cmm/lib/gui/checkbox.h @@ -31,7 +31,8 @@ struct checkbox if (!id) id = GetFreeButtonId(); x=_x; y=_y; - DefineButton(x-1, y-1, strlen(text)*8 + SIZE + 17, SIZE+2, id+BT_HIDE+BT_NOFRAME, 0); + DefineHiddenButton(x-1, y-1, strlen(text)*8 + SIZE + 17, SIZE+2, id+BT_NOFRAME); + UnsafeDefineButton(x, y, SIZE, SIZE, id, 0); DrawRectangle(x, y, SIZE, SIZE, sc.work_graph); if (disabled) { diff --git a/programs/system/taskbar/trunk/ctx_menu.asm b/programs/system/taskbar/trunk/ctx_menu.asm index aca7dde552..4e3b2b49c6 100644 --- a/programs/system/taskbar/trunk/ctx_menu.asm +++ b/programs/system/taskbar/trunk/ctx_menu.asm @@ -118,7 +118,9 @@ draw_ctx_menu: add ebx, 1 * 65536 mcall - mcall ,<4,28>,0x80000000,ctx_menu_text + mov ecx, [system_colours + 32] ; sc.work_text + or ecx, 0x80000000 + mcall ,<4,28>,,ctx_menu_text mov edx, ctx_menu_text2 diff --git a/skins/ConLenov/Guzel_magic/default.dtp.asm b/skins/ConLenov/Guzel_magic/default.dtp.asm index 11c54f9402..3c5588cae2 100644 --- a/skins/ConLenov/Guzel_magic/default.dtp.asm +++ b/skins/ConLenov/Guzel_magic/default.dtp.asm @@ -2,8 +2,8 @@ struc system_colors { .unused1 dd 0x006393 .unused2 dd 0x0077b0 -.work_dark dd 0x8D8D8D -.work_light dd 0x8D8D8D +.work_dark dd 0x070808 +.work_light dd 0x484D5A .title_text dd 0xFFFFFF .work dd 0x161925 .work_button dd 0x184053