Eolite: fix menu bug, remove min_h from llist.h

git-svn-id: svn://kolibrios.org@5709 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Kirill Lipatov (Leency) 2015-08-10 12:06:47 +00:00
parent 8f52c43d64
commit 3372b13bc3
10 changed files with 23 additions and 25 deletions

View File

@ -234,7 +234,7 @@ void draw_window()
DefineAndDrawWindow(GetScreenWidth()-WIN_W/2,GetScreenHeight()-WIN_H/2,WIN_W,WIN_H,0x73,0xFFFFFF,#win_title); DefineAndDrawWindow(GetScreenWidth()-WIN_W/2,GetScreenHeight()-WIN_H/2,WIN_W,WIN_H,0x73,0xFFFFFF,#win_title);
GetProcessInfo(#Form, SelfInfo); GetProcessInfo(#Form, SelfInfo);
if (Form.status_window>2) return; if (Form.status_window>2) return;
tview.SetSizes(0, TOPPANELH, Form.cwidth, Form.cheight-BOTPANELH-TOPPANELH, 200, 12); tview.SetSizes(0, TOPPANELH, Form.cwidth, Form.cheight-BOTPANELH-TOPPANELH, 12);
DrawBar(0, 0, Form.cwidth, TOPPANELH, system.color.work); DrawBar(0, 0, Form.cwidth, TOPPANELH, system.color.work);
DrawBar(0, Form.cheight-BOTPANELH, Form.cwidth, BOTPANELH, system.color.work); DrawBar(0, Form.cheight-BOTPANELH, Form.cwidth, BOTPANELH, system.color.work);

View File

@ -69,8 +69,8 @@ void Draw_List()
int i; int i;
int yyy; int yyy;
int list_last; int list_last;
list[SKINS].SetSizes(0, PANEL_H, Form.cwidth-scroll1.size_x-1, Form.cheight-PANEL_H, 40, 20); list[SKINS].SetSizes(0, PANEL_H, Form.cwidth-scroll1.size_x-1, Form.cheight-PANEL_H, 20);
list[WALLPAPERS].SetSizes(0, PANEL_H, Form.cwidth-scroll1.size_x-1, Form.cheight-PANEL_H, 40, 20); list[WALLPAPERS].SetSizes(0, PANEL_H, Form.cwidth-scroll1.size_x-1, Form.cheight-PANEL_H, 20);
if (list[active].count > list[active].visible) list_last = list[active].visible; else list_last = list[active].count; if (list[active].count > list[active].visible) list_last = list[active].visible; else list_last = list[active].count;
for (i=0; i<list_last; i++;) for (i=0; i<list_last; i++;)
@ -152,8 +152,8 @@ void main()
list[SKINS].current = list[WALLPAPERS].current = -1; list[SKINS].current = list[WALLPAPERS].current = -1;
list[SKINS].first = list[WALLPAPERS].first = 0; list[SKINS].first = list[WALLPAPERS].first = 0;
TabClick(WALLPAPERS); TabClick(WALLPAPERS);
list[WALLPAPERS].SetSizes(0, 230, 350, 400-PANEL_H, 40, 18); list[WALLPAPERS].SetSizes(0, 230, 350, 400-PANEL_H, 18);
list[SKINS].SetSizes(0, 230, 350, 400-PANEL_H, 40, 18); list[SKINS].SetSizes(0, 230, 350, 400-PANEL_H, 18);
loop() loop()
{ {
switch(WaitEvent()) switch(WaitEvent())

View File

@ -285,7 +285,7 @@ void SetElementSizes()
address_box.top = TOOLBAR_H-TAB_H/2-7+TAB_H; address_box.top = TOOLBAR_H-TAB_H/2-7+TAB_H;
address_box.width = Form.cwidth - address_box.left - 25 - 22; address_box.width = Form.cwidth - address_box.left - 25 - 22;
WB1.list.SetSizes(0, TOOLBAR_H, Form.width - 10 - scroll_wv.size_x / WB1.DrawBuf.zoom, WB1.list.SetSizes(0, TOOLBAR_H, Form.width - 10 - scroll_wv.size_x / WB1.DrawBuf.zoom,
Form.cheight - TOOLBAR_H - STATUSBAR_H, 0, 11*WB1.DrawBuf.zoom); Form.cheight - TOOLBAR_H - STATUSBAR_H, 11*WB1.DrawBuf.zoom);
WB1.list.column_max = WB1.list.w - scroll_wv.size_x / 6; WB1.list.column_max = WB1.list.w - scroll_wv.size_x / 6;
WB1.list.visible = WB1.list.h - 5 / WB1.list.line_h; WB1.list.visible = WB1.list.h - 5 / WB1.list.line_h;
WB1.DrawBuf.Init(WB1.list.x, WB1.list.y, WB1.list.w, WB1.list.line_h); WB1.DrawBuf.Init(WB1.list.x, WB1.list.y, WB1.list.w, WB1.list.line_h);

View File

@ -31,7 +31,7 @@ void menu_rmb()
menu.first = menu.current = 0; menu.first = menu.current = 0;
while (ITEMS_LIST[menu.count*2]) menu.count++; while (ITEMS_LIST[menu.count*2]) menu.count++;
menu.SetSizes(2,2,177,menu.count*19,0,19); menu.SetSizes(2,2,177,menu.count*19,19);
SetEventMask(100111b); SetEventMask(100111b);
_BEGIN_APPLICATION_MENU: _BEGIN_APPLICATION_MENU:

View File

@ -214,6 +214,7 @@ void main()
if (files.MouseOver(mouse.x, mouse.y)) if (files.MouseOver(mouse.x, mouse.y))
{ {
files.current = mouse.y - files.y / files.line_h + files.first; files.current = mouse.y - files.y / files.line_h + files.first;
List_ReDraw();
menu_stak = malloc(4096); menu_stak = malloc(4096);
CreateThread(#FileMenu,menu_stak+4092); CreateThread(#FileMenu,menu_stak+4092);
} }
@ -508,8 +509,8 @@ void draw_window()
DefineAndDrawWindow(GetScreenWidth()-550/4+rand_n,rand_n+30,550,500,0x73,system.color.work,TITLE,0); DefineAndDrawWindow(GetScreenWidth()-550/4+rand_n,rand_n+30,550,500,0x73,system.color.work,TITLE,0);
GetProcessInfo(#Form, SelfInfo); GetProcessInfo(#Form, SelfInfo);
if (Form.status_window>2) return; if (Form.status_window>2) return;
if (Form.height < files.min_h) MoveSize(OLD,OLD,OLD,files.min_h); if (Form.height < 350) MoveSize(OLD,OLD,OLD,350);
if (Form.width<480) MoveSize(OLD,OLD,480,OLD); if (Form.width < 480) MoveSize(OLD,OLD,480,OLD);
GetProcessInfo(#Form, SelfInfo); //if win_size changed GetProcessInfo(#Form, SelfInfo); //if win_size changed
PutPaletteImage(#toolbar,246,34,0,0,8,#toolbar_pal); PutPaletteImage(#toolbar,246,34,0,0,8,#toolbar_pal);
DrawBar(127, 8, 1, 25, system.color.work_graph); DrawBar(127, 8, 1, 25, system.color.work_graph);
@ -527,16 +528,16 @@ void draw_window()
if (!two_panels) if (!two_panels)
{ {
DrawLeftPanel(); DrawLeftPanel();
files.SetSizes(192, 57, Form.cwidth - 210, Form.cheight - 59, disc_num*16+3,files.line_h); files.SetSizes(192, 57, Form.cwidth - 210, Form.cheight - 59, files.line_h);
DrawListColumns(); DrawListColumns();
Open_Dir(#path,ONLY_SHOW); Open_Dir(#path,ONLY_SHOW);
} }
else else
{ {
files.SetSizes(2, 57+22, Form.cwidth/2-2-17, Form.cheight-59-22, disc_num*16+3,files.line_h); files.SetSizes(2, 57+22, Form.cwidth/2-2-17, Form.cheight-59-22, files.line_h);
DrawListColumns(); DrawListColumns();
Open_Dir(#path,ONLY_SHOW); Open_Dir(#path,ONLY_SHOW);
files.SetSizes(Form.cwidth/2, 57+22, Form.cwidth/2 -17, Form.cheight-59-22, disc_num*16+3,files.line_h); files.SetSizes(Form.cwidth/2, 57+22, Form.cwidth/2 -17, Form.cheight-59-22, files.line_h);
DrawListColumns(); DrawListColumns();
Open_Dir(#path,ONLY_SHOW); Open_Dir(#path,ONLY_SHOW);
} }

View File

@ -54,7 +54,7 @@ void FileMenu()
int index; int index;
menu.ClearList(); menu.ClearList();
menu.SetSizes(0,0,10,0,0,18); menu.SetSizes(0,0,10,0,18);
for (index=0; file_captions[index]!=0; index+=3) for (index=0; file_captions[index]!=0; index+=3)
{ {
if (itdir) && (file_captions[index+2]>=200) continue; if (itdir) && (file_captions[index+2]>=200) continue;

View File

@ -1,5 +1,5 @@
#define TITLE "Eolite File Manager v3.0 beta 5" #define TITLE "Eolite File Manager v3.0 beta 6"
#define ABOUT_TITLE "Eolite 3.0 beta 5" #define ABOUT_TITLE "Eolite 3.0 beta 6"
#ifdef LANG_RUS #ifdef LANG_RUS
?define T_FILE "” ©«" ?define T_FILE "” ©«"

View File

@ -9,9 +9,8 @@
struct llist struct llist
{ {
int x, y, w, h, min_h, line_h, text_y; int x, y, w, h, line_h, char_w, char_h, text_y;
int column_max; int count, visible, first, current, column_max; //visible = row_max
int count, visible, first, current; //visible = row_max
int active; int active;
void ClearList(); void ClearList();
int MouseOver(int xx, yy); int MouseOver(int xx, yy);
@ -47,17 +46,15 @@ void llist::ClearList()
} }
void llist::SetSizes(int xx, yy, ww, hh, min_hh, line_hh) void llist::SetSizes(int xx, yy, ww, hh, line_hh)
{ {
x = xx; x = xx;
y = yy; y = yy;
w = ww; w = ww;
h = hh; h = hh;
min_h = min_hh;
line_h = line_hh; line_h = line_hh;
text_y = line_h / 2 - 4; text_y = line_h / 2 - 4;
visible = h / line_h; visible = h / line_h;
column_max = w / 6;
//if (visible > count) visible=count; //if (visible > count) visible=count;
} }

View File

@ -166,7 +166,7 @@ void MailBoxLoop() {
&& (!scroll1.delta2) && (!scroll_wv.delta2) panels_drag = 1; && (!scroll1.delta2) && (!scroll_wv.delta2) panels_drag = 1;
if (panels_drag) if (panels_drag)
{ {
if (mouse.y<mail_list.y+mail_list.min_h) || (mouse.y>Form.cheight-WB1.list.min_h-status_bar_h-LIST_INFO_H) break; if (mouse.y<mail_list.y+60) || (mouse.y>Form.cheight-60-status_bar_h-LIST_INFO_H) break;
mail_list.h = mouse.y - mail_list.y-2; mail_list.h = mouse.y - mail_list.y-2;
DrawMailBox(); DrawMailBox();
break; break;
@ -289,7 +289,7 @@ void DrawToolbar() {
#define BUT_H 22 #define BUT_H 22
#define BUT_W 74 #define BUT_W 74
int toolbar_w = BUT_Y + BUT_H + BUT_Y + 3; int toolbar_w = BUT_Y + BUT_H + BUT_Y + 3;
mail_list.SetSizes(0, toolbar_w, Form.cwidth - scroll1.size_x - 1, mail_list.h, 60,18); mail_list.SetSizes(0, toolbar_w, Form.cwidth - scroll1.size_x - 1, mail_list.h, 18);
DrawBar(0,0, Form.cwidth,toolbar_w-3, system.color.work); DrawBar(0,0, Form.cwidth,toolbar_w-3, system.color.work);
DrawCaptButton(10 , BUT_Y, BUT_W, BUT_H, GET_MAIL, system.color.work_button, system.color.work_button_text,"Get mail"); DrawCaptButton(10 , BUT_Y, BUT_W, BUT_H, GET_MAIL, system.color.work_button, system.color.work_button_text,"Get mail");
@ -349,7 +349,7 @@ void DrawLetterInfo() {
void InitTWB() { void InitTWB() {
WB1.list.SetSizes(0, mail_list.y+mail_list.h+LIST_INFO_H+1, Form.cwidth - scroll_wv.size_x - 1, WB1.list.SetSizes(0, mail_list.y+mail_list.h+LIST_INFO_H+1, Form.cwidth - scroll_wv.size_x - 1,
Form.cheight - mail_list.y - mail_list.h - LIST_INFO_H - 1 - status_bar_h, 60, 12); Form.cheight - mail_list.y - mail_list.h - LIST_INFO_H - 1 - status_bar_h, 12);
WB1.list.column_max = WB1.list.w - 30 / 6; WB1.list.column_max = WB1.list.w - 30 / 6;
WB1.list.visible = WB1.list.h / WB1.list.line_h; WB1.list.visible = WB1.list.h / WB1.list.line_h;
WB1.DrawBuf.Init(WB1.list.x, WB1.list.y, WB1.list.w, WB1.list.h); WB1.DrawBuf.Init(WB1.list.x, WB1.list.y, WB1.list.w, WB1.list.h);

View File

@ -102,7 +102,7 @@ void main()
} }
StartPlayingMp3(); StartPlayingMp3();
list.SetSizes(1, skin.h, skin.w-1, 198, 40, 18); list.SetSizes(1, skin.h, skin.w-1, 198, 18);
if (list.count <= list.visible) if (list.count <= list.visible)
{ {
list.h = list.count * list.line_h; list.h = list.count * list.line_h;