list_box.h: no_selection flag for lists without selection (for example, browser)

git-svn-id: svn://kolibrios.org@5779 a494cfbc-eb01-0410-851d-a64ba20cac60
This commit is contained in:
Kirill Lipatov (Leency) 2015-08-29 20:14:17 +00:00
parent 1677400b53
commit 2b2d0c2f0e
4 changed files with 24 additions and 24 deletions

View File

@ -112,6 +112,7 @@ void main()
if (param) strcpy(#URL, #param); else strcpy(#URL, URL_SERVICE_HOME);
WB1.DrawBuf.zoom = 1;
WB1.list.SetFont(8, 14, 10111000b);
WB1.list.no_selection = true;
SetEventMask(0xa7);
BEGIN_LOOP_APPLICATION:
WaitEventTimeout(2);
@ -280,7 +281,8 @@ void Draw_Window()
void Scan(dword id__)
{
action_buf=0;
switch (id__)
if (WB1.list.ProcessKey(key_scancode)) WB1.DrawPage();
else switch (id__)
{
case SCAN_CODE_BS:
case BACK_BUTTON:
@ -291,22 +293,6 @@ void Scan(dword id__)
if (!BrowserHistory.GoForward()) return;
OpenPage();
return;
case SCAN_CODE_HOME:
case SCAN_CODE_END:
case SCAN_CODE_PGUP:
case SCAN_CODE_PGDN:
if (WB1.list.ProcessKey(key_scancode)) WB1.DrawPage();
return;
case SCAN_CODE_UP:
if (WB1.list.first <= 0) return;
WB1.list.first--;
WB1.DrawPage();
return;
case SCAN_CODE_DOWN:
if (WB1.list.visible + WB1.list.first >= WB1.list.count) return;
WB1.list.first++;
WB1.DrawPage();
return;
case GOTOURL_BUTTON:
case SCAN_CODE_ENTER:
if (!strncmp(#editURL,"http:",5)) || (editURL[0]=='/') || (!strncmp(#editURL,"WebView:",9))

View File

@ -103,12 +103,24 @@ GETKEYII:
$shr eax,8
}
unsigned char key_ascii;
dword key_scancode, key_modifier;
int GetKeys()
{
$push edx
GETKEY:
$mov eax,2
$int 0x40
$cmp eax,1
$jne GETKEYI
$mov eax,edx
$jmp GETKEYII
GETKEYI:
$mov edx,eax
$jmp GETKEY
GETKEYII:
$pop edx
key_ascii = AH;
$shr eax,16
key_scancode = AL;

View File

@ -10,10 +10,11 @@
struct llist
{
int x, y, w, h, line_h, text_y;
dword font_w, font_h, font_type;
int count, visible, first, current, column_max; //visible = row_max
int wheel_size;
int active;
dword font_w, font_h, font_type;
byte wheel_size;
byte active;
byte no_selection;
void ClearList();
int MouseOver(int xx, yy);
int ProcessMouse(int xx, yy);
@ -125,7 +126,7 @@ int llist::ProcessKey(dword key)
int llist::KeyDown()
{
if (current-first+1<visible)
if (current-first+1<visible) && (!no_selection)
{
if (current + 1 >= count) return 0;
current++;
@ -146,7 +147,7 @@ int llist::KeyDown()
int llist::KeyUp()
{
if (current > first)
if (current > first) && (!no_selection)
{
current--;
}

View File

@ -146,6 +146,7 @@ void MailBoxLoop() {
mail_list.h = Form.cheight/4;
mail_list.ClearList();
WB1.list.no_selection = true;
SetMailBoxStatus( NULL , NULL);
cur_charset = 0;
aim = SEND_NSTAT;