From d1df3e2bfe662df8b2726605e74df3595a66b2db Mon Sep 17 00:00:00 2001 From: "Kirill Lipatov (Leency)" Date: Sun, 10 May 2020 12:49:02 +0000 Subject: [PATCH] cmm tabs: slightly better implementation git-svn-id: svn://kolibrios.org@7909 a494cfbc-eb01-0410-851d-a64ba20cac60 --- data/common/icons16.png | Bin 8278 -> 8221 bytes programs/cmm/appearance/appearance.c | 111 +++++++++++----------- programs/cmm/kf_font_viewer/font_viewer.c | 19 ++-- programs/cmm/lib/gui/tabs.h | 74 +++++++++++---- programs/cmm/sysmon/sysmon.c | 32 ++----- skins/Leency/Shkvorka/default.dtp | Bin 40 -> 40 bytes skins/Leency/Shkvorka/default.dtp.asm | 2 +- 7 files changed, 129 insertions(+), 109 deletions(-) diff --git a/data/common/icons16.png b/data/common/icons16.png index 5079521e4582f20a91e20a2f91d21fea760bfa20..a2ee0d24ea449e9faa7bed58a39eadc7921bb4c6 100644 GIT binary patch delta 8145 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 delta 8176 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 WElG;`90|_=0000=2) return; @@ -198,17 +200,19 @@ void DrawWindowContent() if (tabs.active_tab == SKINS) list_w=250; else list_w=350; tabs.w = Form.cwidth-LP-LP; - tabs.h = Form.cheight-LP-LP; - tabs.draw_wrapper(); - tabs.draw_button(tabs.x+TAB_PADDING, SKINS, T_SKINS); - tabs.draw_button(strlen(T_SKINS)*8+tabs.x+TAB_PADDING+TAB_PADDING, WALLPAPERS, T_WALLPAPERS); + tabs.draw(); + DrawIcon16(tabs.x + TAB_PADDING, 15, sc.work, 17); + DrawIcon16(strlen(T_SKINS)*8 + tabs.x + TAB_PADDING + TAB_PADDING, 15, sc.work, 6); + + if (select_list.cur_y>select_list.visible) select_list.first=select_list.cur_y; + select_list.CheckDoesValuesOkey(); id = select_list.cur_y; SelectList_Init( tabs.x+TAB_PADDING, tabs.y+TAB_HEIGHT+TAB_PADDING, list_w, - tabs.h - TAB_PADDING - TAB_PADDING - TAB_HEIGHT, + Form.cheight-LP-LP - TAB_PADDING - TAB_PADDING - TAB_HEIGHT, false ); select_list.cur_y = id; @@ -299,28 +303,27 @@ void SelectList_LineChanged() // // //===================================================// -void EventTabClick(int N) +void EventTabSkinsClick() { - tabs.click(N); - if (tabs.active_tab == SKINS) - { - active_wallpaper = select_list.cur_y; - strcpy(#folder_path, #skins_folder_path); - select_list.ClearList(); - Open_Dir(); - if (!select_list.count) notify("'No skins were found' -E"); - select_list.cur_y = active_skin; - } - if (tabs.active_tab == WALLPAPERS) - { - active_skin = select_list.cur_y; - strcpy(#folder_path, #wallp_folder_path); - select_list.ClearList(); - Open_Dir(); - if (!select_list.count) notify("'No wallpapers were found' -E"); - select_list.cur_y = active_wallpaper; - } - if (select_list.cur_y>select_list.visible) select_list.first=select_list.cur_y; select_list.CheckDoesValuesOkey(); + active_wallpaper = select_list.cur_y; + strcpy(#folder_path, #skins_folder_path); + select_list.ClearList(); + Open_Dir(); + if (!select_list.count) notify("'No skins were found' -E"); + select_list.cur_y = active_skin; + + if (select_list.w) draw_window(); +} + +void EventTabWallpappersClick() +{ + active_skin = select_list.cur_y; + strcpy(#folder_path, #wallp_folder_path); + select_list.ClearList(); + Open_Dir(); + if (!select_list.count) notify("'No wallpapers were found' -E"); + select_list.cur_y = active_wallpaper; + if (select_list.w) draw_window(); } @@ -342,7 +345,7 @@ void EventSelectWallpFolder() OpenDialog_start stdcall (#o_dialog); if (o_dialog.status) { strcpy(#wallp_folder_path, #opendir_path); - EventTabClick(WALLPAPERS); + EventTabWallpappersClick(); } } diff --git a/programs/cmm/kf_font_viewer/font_viewer.c b/programs/cmm/kf_font_viewer/font_viewer.c index 5de935d8da..fb2e6bef1f 100644 --- a/programs/cmm/kf_font_viewer/font_viewer.c +++ b/programs/cmm/kf_font_viewer/font_viewer.c @@ -6,13 +6,10 @@ #define PANELH 28 #define WIN_W 490 #define WIN_H 315 +#define BASE_TAB_BUTTON_ID 97 proc_info Form; -enum { - PHRASE_TAB=20, CHARS_TAB -}; - -_tabs tabs = { PHRASE_TAB }; +_tabs tabs = { WIN_W-130, 0, NULL, BASE_TAB_BUTTON_ID }; block preview = { 0, PANELH, WIN_W, WIN_H - PANELH }; checkbox bold = { "Bold", false }; @@ -27,6 +24,10 @@ void main() kfont.init(#param); strcpy(#title, "Font preview: "); strcat(#title, #param); + + tabs.add("Phrase", #DrawPreviewPhrase); + tabs.add("Chars", #DrawPreviewChars); + loop() switch(WaitEvent()) { case evButton: @@ -35,7 +36,7 @@ void main() bold.click(btn); smooth.click(btn); colored.click(btn); - if (btn==PHRASE_TAB) || (btn==CHARS_TAB) tabs.click(btn); + tabs.click(btn); goto _DRAW_WINDOW_CONTENT; case evReDraw: sc.get(); @@ -53,8 +54,8 @@ void main() smooth.draw(83,8); colored.draw(170,8); - tabs.draw_button(Form.cwidth-130, PHRASE_TAB, "Phrase"); - tabs.draw_button(Form.cwidth-60, CHARS_TAB, "Chars"); + tabs.draw(); + tabs.draw_active_tab(); if (!kfont.font) { @@ -62,8 +63,6 @@ void main() WriteText(10, 50, 0x82, 0xFF00FF, "Font is not loaded."); break; } - if (tabs.active_tab==PHRASE_TAB) DrawPreviewPhrase(); - if (tabs.active_tab==CHARS_TAB) DrawPreviewChars(); } } diff --git a/programs/cmm/lib/gui/tabs.h b/programs/cmm/lib/gui/tabs.h index 281f1f98a8..dc513ffedd 100644 --- a/programs/cmm/lib/gui/tabs.h +++ b/programs/cmm/lib/gui/tabs.h @@ -3,47 +3,79 @@ #endif #define TAB_HEIGHT 28 +#define NAME_SIZE 64 :struct _tabs { + int x,y,w; + int base_id; + int active_tab; - int x,y,w,h; - dword draw_button(); + char names[640]; + int count; + dword events[10]; + int click(); - void draw_wrapper(); + void draw(); + void draw_active_tab(); + void add(); + + dword draw_button(); }; -:void _tabs::draw_wrapper() +:void _tabs::draw() { - DrawRectangle(x,y+TAB_HEIGHT,w-1,h-TAB_HEIGHT, sc.work_graph); - DrawBar(x+1,y+1+TAB_HEIGHT,w-3,1, sc.work_light); + int i, xx=x; + + if (w) { + DrawBar(x+1,y+0+TAB_HEIGHT,w,1, sc.work_graph); + DrawBar(x+1,y+1+TAB_HEIGHT,w,1, sc.work_light); + } + + for (i=0; i base_id + count) || (_id == active_tab) { + return false; + } + active_tab = _id - base_id; + events[active_tab](); + return true; } \ No newline at end of file diff --git a/programs/cmm/sysmon/sysmon.c b/programs/cmm/sysmon/sysmon.c index a0e7a0a9a7..89dae8dda4 100644 --- a/programs/cmm/sysmon/sysmon.c +++ b/programs/cmm/sysmon/sysmon.c @@ -37,6 +37,7 @@ #define WIN_CONTENT_W 400 #define WIN_CONTENT_H 465 #define ICONGAP 26 +#define BASE_TAB_BUTTON_ID 10 proc_info Form; #ifdef LANG_RUS @@ -51,13 +52,7 @@ proc_info Form; #define T_APP_TITLE "System Monitor" #endif -enum { - TAB_GENERAL=20, - TAB_DRIVES, - TAB_PROCESSES -}; - -_tabs tabs = { TAB_GENERAL, 4, 10, WIN_CONTENT_W+WIN_PAD+WIN_PAD-4-4, TAB_HEIGHT }; +_tabs tabs = { 4, 10, WIN_CONTENT_W+WIN_PAD+WIN_PAD-4-4, BASE_TAB_BUTTON_ID }; //===================================================// // // @@ -75,10 +70,7 @@ int Sysmon__DefineAndDrawWindow() if (Form.status_window>2) return false; //if (Form.width < 300) { MoveSize(OLD,OLD,300,OLD); break; } //if (Form.height < 200) { MoveSize(OLD,OLD,OLD,200); break; } - tabs.draw_wrapper(); - butx = tabs.draw_button(tabs.x+TAB_PADDING, TAB_GENERAL, T_CPU_AND_RAM); - butx = tabs.draw_button(strlen(T_CPU_AND_RAM)*8+TAB_PADDING+butx, TAB_DRIVES, T_DRIVES); - tabs.draw_button(strlen(T_DRIVES)*8+TAB_PADDING+butx, TAB_PROCESSES, T_PROCESSES); + tabs.draw(); return true; } @@ -86,18 +78,7 @@ int Sysmon__ButtonEvent() { int bid = GetButtonID(); if (1==bid) ExitProcess(); - if (TAB_GENERAL==bid) { - tabs.active_tab = TAB_GENERAL; - CPUnRAM__Main(); - } - if (TAB_PROCESSES==bid) { - tabs.active_tab = TAB_PROCESSES; - Processes__Main(); - } - if (TAB_DRIVES==bid) { - tabs.active_tab = TAB_DRIVES; - Drives__Main(); - } + tabs.click(); return bid; } @@ -117,5 +98,10 @@ void main() load_dll(libimg, #libimg_init,1); load_dll(libini, #lib_init,1); load_dll(boxlib, #box_lib_init,0); + + tabs.add(T_CPU_AND_RAM, #CPUnRAM__Main); + tabs.add(T_DRIVES, #Drives__Main); + tabs.add(T_PROCESSES, #Processes__Main); + CPUnRAM__Main(); } \ No newline at end of file diff --git a/skins/Leency/Shkvorka/default.dtp b/skins/Leency/Shkvorka/default.dtp index 411bb94d9e57d363637b87225d03b39d6fc952b5..9847d3899183d0a5f1653a77c9af043b45bd3bef 100644 GIT binary patch delta 21 dcmdPU;BQNhVEFg%AH&YQM;V^Jd^3?>5&&nL3QYh2 delta 21 dcmdPU;BQNhVEFg%AH%X`>ll9j{ymXj5&&j!3PS(@ diff --git a/skins/Leency/Shkvorka/default.dtp.asm b/skins/Leency/Shkvorka/default.dtp.asm index e95485d10c..cbc5b1f23f 100644 --- a/skins/Leency/Shkvorka/default.dtp.asm +++ b/skins/Leency/Shkvorka/default.dtp.asm @@ -2,7 +2,7 @@ struc system_colors { .taskbar dd 0x586786 .taskbar_text dd 0xFEFEFE - .work_dark dd 0xC0BBB4 + .work_dark dd 0xC5BDB9 .work_light dd 0xECE9E5 .window_title dd 0x333333 .work dd 0xDDD7CF