mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Skins can now implement cSkinDisplayMenu::MenuOrientation() to display horizontal menus
This commit is contained in:
parent
75f28cb0cb
commit
14f97d0f2a
@ -3265,6 +3265,7 @@ Stefan Braun <louis.braun@gmx.de>
|
|||||||
for suggesting to add the menu category mcRecordingEdit for marking menus that edit
|
for suggesting to add the menu category mcRecordingEdit for marking menus that edit
|
||||||
recording properties
|
recording properties
|
||||||
for suggesting to make cRecording::GetResume() public
|
for suggesting to make cRecording::GetResume() public
|
||||||
|
for implementing the possibility for skins to display horizontal menus
|
||||||
|
|
||||||
Jochen Dolze <vdr@dolze.de>
|
Jochen Dolze <vdr@dolze.de>
|
||||||
for changing cThread::SetIOPriority() from "best effort class" to "idle class" in order
|
for changing cThread::SetIOPriority() from "best effort class" to "idle class" in order
|
||||||
|
2
HISTORY
2
HISTORY
@ -8811,3 +8811,5 @@ Video Disk Recorder Revision History
|
|||||||
- The EPG scanner no longer moves the dish if there is a positioner.
|
- The EPG scanner no longer moves the dish if there is a positioner.
|
||||||
- The 'newplugin' script now creates the 'po' subdirectory for translations (thanks
|
- The 'newplugin' script now creates the 'po' subdirectory for translations (thanks
|
||||||
to Thomas Reufer).
|
to Thomas Reufer).
|
||||||
|
- Skins can now implement cSkinDisplayMenu::MenuOrientation() to display horizontal
|
||||||
|
menus (thanks to Stefan Braun).
|
||||||
|
12
osdbase.c
12
osdbase.c
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: osdbase.c 3.3 2015/01/15 10:11:11 kls Exp $
|
* $Id: osdbase.c 4.1 2015/09/10 11:23:07 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "osdbase.h"
|
#include "osdbase.h"
|
||||||
@ -87,6 +87,7 @@ cOsdMenu::cOsdMenu(const char *Title, int c0, int c1, int c2, int c3, int c4)
|
|||||||
title = NULL;
|
title = NULL;
|
||||||
menuCategory = mcUnknown;
|
menuCategory = mcUnknown;
|
||||||
menuSortMode = msmUnknown;
|
menuSortMode = msmUnknown;
|
||||||
|
menuOrientation = moVertical;
|
||||||
SetTitle(Title);
|
SetTitle(Title);
|
||||||
SetCols(c0, c1, c2, c3, c4);
|
SetCols(c0, c1, c2, c3, c4);
|
||||||
first = 0;
|
first = 0;
|
||||||
@ -231,6 +232,7 @@ void cOsdMenu::Display(void)
|
|||||||
if (menuCategory != displayMenu->MenuCategory())
|
if (menuCategory != displayMenu->MenuCategory())
|
||||||
displayMenu->SetMenuCategory(menuCategory);
|
displayMenu->SetMenuCategory(menuCategory);
|
||||||
displayMenu->SetMenuSortMode(menuSortMode);
|
displayMenu->SetMenuSortMode(menuSortMode);
|
||||||
|
menuOrientation = displayMenu->MenuOrientation();
|
||||||
displayMenuItems = displayMenu->MaxItems();
|
displayMenuItems = displayMenu->MaxItems();
|
||||||
displayMenu->SetTabs(cols[0], cols[1], cols[2], cols[3], cols[4]);//XXX
|
displayMenu->SetTabs(cols[0], cols[1], cols[2], cols[3], cols[4]);//XXX
|
||||||
displayMenu->SetTitle(title);
|
displayMenu->SetTitle(title);
|
||||||
@ -541,13 +543,13 @@ eOSState cOsdMenu::ProcessKey(eKeys Key)
|
|||||||
case k0: return osUnknown;
|
case k0: return osUnknown;
|
||||||
case k1...k9: return hasHotkeys ? HotKey(Key) : osUnknown;
|
case k1...k9: return hasHotkeys ? HotKey(Key) : osUnknown;
|
||||||
case kUp|k_Repeat:
|
case kUp|k_Repeat:
|
||||||
case kUp: CursorUp(); break;
|
case kUp: if (menuOrientation == moHorizontal) PageUp(); else CursorUp(); break;
|
||||||
case kDown|k_Repeat:
|
case kDown|k_Repeat:
|
||||||
case kDown: CursorDown(); break;
|
case kDown: if (menuOrientation == moHorizontal) PageDown(); else CursorDown(); break;
|
||||||
case kLeft|k_Repeat:
|
case kLeft|k_Repeat:
|
||||||
case kLeft: PageUp(); break;
|
case kLeft: if (menuOrientation == moHorizontal) CursorUp(); else PageUp(); break;
|
||||||
case kRight|k_Repeat:
|
case kRight|k_Repeat:
|
||||||
case kRight: PageDown(); break;
|
case kRight: if (menuOrientation == moHorizontal) CursorDown(); else PageDown(); break;
|
||||||
case kBack: return osBack;
|
case kBack: return osBack;
|
||||||
case kOk: if (marked >= 0) {
|
case kOk: if (marked >= 0) {
|
||||||
SetStatus(NULL);
|
SetStatus(NULL);
|
||||||
|
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: osdbase.h 3.2 2015/01/15 10:09:18 kls Exp $
|
* $Id: osdbase.h 4.1 2015/09/10 11:17:52 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __OSDBASE_H
|
#ifndef __OSDBASE_H
|
||||||
@ -93,6 +93,7 @@ private:
|
|||||||
int first, current, marked;
|
int first, current, marked;
|
||||||
eMenuCategory menuCategory;
|
eMenuCategory menuCategory;
|
||||||
eMenuSortMode menuSortMode;
|
eMenuSortMode menuSortMode;
|
||||||
|
eMenuOrientation menuOrientation;
|
||||||
cOsdMenu *subMenu;
|
cOsdMenu *subMenu;
|
||||||
const char *helpRed, *helpGreen, *helpYellow, *helpBlue;
|
const char *helpRed, *helpGreen, *helpYellow, *helpBlue;
|
||||||
bool helpDisplayed;
|
bool helpDisplayed;
|
||||||
|
11
skins.h
11
skins.h
@ -4,7 +4,7 @@
|
|||||||
* See the main source file 'vdr.c' for copyright information and
|
* See the main source file 'vdr.c' for copyright information and
|
||||||
* how to reach the author.
|
* how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: skins.h 3.4 2015/01/15 10:45:47 kls Exp $
|
* $Id: skins.h 4.1 2015/09/10 11:19:48 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __SKINS_H
|
#ifndef __SKINS_H
|
||||||
@ -129,6 +129,11 @@ enum eMenuSortMode {
|
|||||||
msmProvider
|
msmProvider
|
||||||
};
|
};
|
||||||
|
|
||||||
|
enum eMenuOrientation {
|
||||||
|
moVertical = 0,
|
||||||
|
moHorizontal
|
||||||
|
};
|
||||||
|
|
||||||
class cSkinDisplayMenu : public cSkinDisplay {
|
class cSkinDisplayMenu : public cSkinDisplay {
|
||||||
///< This class implements the general purpose menu display, which is
|
///< This class implements the general purpose menu display, which is
|
||||||
///< used throughout the program to display information and let the
|
///< used throughout the program to display information and let the
|
||||||
@ -179,6 +184,10 @@ public:
|
|||||||
///< Sets the mode by which the items in this menu are sorted.
|
///< Sets the mode by which the items in this menu are sorted.
|
||||||
///< This is purely informative and may be used by a skin to display the
|
///< This is purely informative and may be used by a skin to display the
|
||||||
///< current sort mode by means of some text or symbol.
|
///< current sort mode by means of some text or symbol.
|
||||||
|
virtual eMenuOrientation MenuOrientation(void) { return moVertical; }
|
||||||
|
///< Asks the skin for the orientation of the displayed menu.
|
||||||
|
///< If menu orientation is set to horizontal, the keys left/right
|
||||||
|
///< and up/down are just toggled.
|
||||||
virtual void Scroll(bool Up, bool Page);
|
virtual void Scroll(bool Up, bool Page);
|
||||||
///< If this menu contains a text area that can be scrolled, this function
|
///< If this menu contains a text area that can be scrolled, this function
|
||||||
///< will be called to actually scroll the text. Up indicates whether the
|
///< will be called to actually scroll the text. Up indicates whether the
|
||||||
|
Loading…
Reference in New Issue
Block a user