git.cweiske.de
/
enigma2.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
181d346
)
- add pageUp/pageDown movements
author
Felix Domke
<tmbinc@elitedvb.net>
Wed, 18 May 2005 01:54:01 +0000
(
01:54
+0000)
committer
Felix Domke
<tmbinc@elitedvb.net>
Wed, 18 May 2005 01:54:01 +0000
(
01:54
+0000)
lib/gui/elistbox.cpp
patch
|
blob
|
history
diff --git
a/lib/gui/elistbox.cpp
b/lib/gui/elistbox.cpp
index 4598fa091e8a696291dba216d5b82cb428690401..4f799a176cc60b26c664c7402bf1ef0808f0dfe8 100644
(file)
--- a/
lib/gui/elistbox.cpp
+++ b/
lib/gui/elistbox.cpp
@@
-51,17
+51,39
@@
void eListbox::moveSelection(int dir)
if (!m_content->cursorValid())
m_content->cursorMove(-1);
break;
if (!m_content->cursorValid())
m_content->cursorMove(-1);
break;
+ case pageUp:
+ if (m_content->cursorGet() >= m_items_per_page)
+ {
+ m_content->cursorMove(-m_items_per_page);
+ m_top -= m_items_per_page;
+ if (m_top < 0)
+ m_top = 0;
+ } else
+ {
+ m_top = 0;
+ m_content->cursorHome();
+ }
+ break;
case moveTop:
m_content->cursorHome();
m_top = 0; /* align with top, speeds up process */
break;
case moveTop:
m_content->cursorHome();
m_top = 0; /* align with top, speeds up process */
break;
+
+ case pageDown:
+ m_content->cursorMove(m_items_per_page);
+ if (m_content->cursorValid())
+ break;
+ /* fall through */
case moveEnd:
/* move to last existing one ("end" is already invalid) */
m_content->cursorEnd(); m_content->cursorMove(-1);
case moveEnd:
/* move to last existing one ("end" is already invalid) */
m_content->cursorEnd(); m_content->cursorMove(-1);
-
- m_top = m_content->cursorGet() - m_items_per_page + 1;
- if (m_top < 0)
- m_top = 0;
+ /* current selection invisible? */
+ if (m_top + m_items_per_page <= m_content->cursorGet())
+ {
+ m_top = m_content->cursorGet() - m_items_per_page + 1;
+ if (m_top < 0)
+ m_top = 0;
+ }
break;
case justCheck:
break;
break;
case justCheck:
break;