mirror of
https://github.com/VDR4Arch/vdr.git
synced 2023-10-10 13:36:52 +02:00
Fixed handling tabbed item display in 'skincurses'
This commit is contained in:
parent
a12a504fad
commit
9966e03e29
1
HISTORY
1
HISTORY
@ -4763,3 +4763,4 @@ Video Disk Recorder Revision History
|
|||||||
- Fixed handling the display of the '*' indicator in the "What's on now/next?"
|
- Fixed handling the display of the '*' indicator in the "What's on now/next?"
|
||||||
menu, so that events that haven't been "seen" in the data stream within 30
|
menu, so that events that haven't been "seen" in the data stream within 30
|
||||||
seconds won't be shown as "running".
|
seconds won't be shown as "running".
|
||||||
|
- Fixed handling tabbed item display in 'skincurses'.
|
||||||
|
@ -29,3 +29,7 @@ VDR Plugin 'skincurses' Revision History
|
|||||||
2006-04-14: Version 0.0.6
|
2006-04-14: Version 0.0.6
|
||||||
|
|
||||||
- Added a missing "Key$" in skincurses.c.
|
- Added a missing "Key$" in skincurses.c.
|
||||||
|
|
||||||
|
2006-06-03: Version 0.0.7
|
||||||
|
|
||||||
|
- Fixed handling tabbed item display.
|
||||||
|
@ -3,7 +3,7 @@
|
|||||||
*
|
*
|
||||||
* See the README file for copyright information and how to reach the author.
|
* See the README file for copyright information and how to reach the author.
|
||||||
*
|
*
|
||||||
* $Id: skincurses.c 1.8 2006/04/14 11:35:59 kls Exp $
|
* $Id: skincurses.c 1.9 2006/06/03 13:21:33 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include <ncurses.h>
|
#include <ncurses.h>
|
||||||
@ -11,7 +11,7 @@
|
|||||||
#include <vdr/plugin.h>
|
#include <vdr/plugin.h>
|
||||||
#include <vdr/skins.h>
|
#include <vdr/skins.h>
|
||||||
|
|
||||||
static const char *VERSION = "0.0.6";
|
static const char *VERSION = "0.0.7";
|
||||||
static const char *DESCRIPTION = "A text only skin";
|
static const char *DESCRIPTION = "A text only skin";
|
||||||
static const char *MAINMENUENTRY = NULL;
|
static const char *MAINMENUENTRY = NULL;
|
||||||
|
|
||||||
@ -277,6 +277,7 @@ public:
|
|||||||
virtual void SetEvent(const cEvent *Event);
|
virtual void SetEvent(const cEvent *Event);
|
||||||
virtual void SetRecording(const cRecording *Recording);
|
virtual void SetRecording(const cRecording *Recording);
|
||||||
virtual void SetText(const char *Text, bool FixedFont);
|
virtual void SetText(const char *Text, bool FixedFont);
|
||||||
|
virtual const cFont *GetTextAreaFont(bool FixedFont) const { return &Font; }
|
||||||
virtual void Flush(void);
|
virtual void Flush(void);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -366,13 +367,13 @@ void cSkinCursesDisplayMenu::SetItem(const char *Text, int Index, bool Current,
|
|||||||
for (int i = 0; i < MaxTabs; i++) {
|
for (int i = 0; i < MaxTabs; i++) {
|
||||||
const char *s = GetTabbedText(Text, i);
|
const char *s = GetTabbedText(Text, i);
|
||||||
if (s) {
|
if (s) {
|
||||||
int xt = Tab(i);
|
int xt = Tab(i) / 12;// Tab() is in "pixel" - see also skins.c!!!
|
||||||
osd->DrawText(xt, y, s, ColorFg, ColorBg, &Font, OsdWidth - xt);
|
osd->DrawText(xt, y, s, ColorFg, ColorBg, &Font, OsdWidth - xt);
|
||||||
}
|
}
|
||||||
if (!Tab(i + 1))
|
if (!Tab(i + 1))
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
SetEditableWidth(OsdWidth - Tab(1));
|
SetEditableWidth(OsdWidth - Tab(1) / 12); // Tab() is in "pixel" - see also skins.c!!!
|
||||||
}
|
}
|
||||||
|
|
||||||
void cSkinCursesDisplayMenu::SetEvent(const cEvent *Event)
|
void cSkinCursesDisplayMenu::SetEvent(const cEvent *Event)
|
||||||
|
@ -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: menuitems.c 1.44 2006/04/25 15:59:02 kls Exp $
|
* $Id: menuitems.c 1.45 2006/06/03 13:20:01 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "menuitems.h"
|
#include "menuitems.h"
|
||||||
@ -296,7 +296,10 @@ void cMenuEditStrItem::Set(void)
|
|||||||
char buf[1000];
|
char buf[1000];
|
||||||
|
|
||||||
if (InEditMode()) {
|
if (InEditMode()) {
|
||||||
const cFont *font = cFont::GetFont(fontOsd);
|
// This is an ugly hack to make editing strings work with the 'skincurses' plugin.
|
||||||
|
const cFont *font = dynamic_cast<cSkinDisplayMenu *>(cSkinDisplay::Current())->GetTextAreaFont(false);
|
||||||
|
if (!font || font->Width("W") != 1) // all characters have with == 1 in the font used by 'skincurses'
|
||||||
|
font = cFont::GetFont(fontOsd);
|
||||||
strncpy(buf, value, pos);
|
strncpy(buf, value, pos);
|
||||||
snprintf(buf + pos, sizeof(buf) - pos - 2, insert && newchar ? "[]%c%s" : "[%c]%s", *(value + pos), value + pos + 1);
|
snprintf(buf + pos, sizeof(buf) - pos - 2, insert && newchar ? "[]%c%s" : "[%c]%s", *(value + pos), value + pos + 1);
|
||||||
int width = cSkinDisplay::Current()->EditableWidth();
|
int width = cSkinDisplay::Current()->EditableWidth();
|
||||||
|
4
skins.c
4
skins.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: skins.c 1.9 2006/04/09 11:25:30 kls Exp $
|
* $Id: skins.c 1.10 2006/06/03 10:18:07 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#include "skins.h"
|
#include "skins.h"
|
||||||
@ -79,7 +79,7 @@ void cSkinDisplayMenu::SetTabs(int Tab1, int Tab2, int Tab3, int Tab4, int Tab5)
|
|||||||
tabs[4] = Tab4 ? tabs[3] + Tab4 : 0;
|
tabs[4] = Tab4 ? tabs[3] + Tab4 : 0;
|
||||||
tabs[5] = Tab5 ? tabs[4] + Tab5 : 0;
|
tabs[5] = Tab5 ? tabs[4] + Tab5 : 0;
|
||||||
for (int i = 1; i < MaxTabs; i++)
|
for (int i = 1; i < MaxTabs; i++)
|
||||||
tabs[i] *= 12;//XXX average character width of font used for items!!!
|
tabs[i] *= 12;//XXX average character width of font used for items - see also skincurses.c!!!
|
||||||
}
|
}
|
||||||
|
|
||||||
void cSkinDisplayMenu::Scroll(bool Up, bool Page)
|
void cSkinDisplayMenu::Scroll(bool Up, bool Page)
|
||||||
|
6
skins.h
6
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 1.13 2006/04/09 11:23:35 kls Exp $
|
* $Id: skins.h 1.14 2006/06/03 10:21:45 kls Exp $
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef __SKINS_H
|
#ifndef __SKINS_H
|
||||||
@ -95,7 +95,7 @@ protected:
|
|||||||
cTextScroller textScroller;
|
cTextScroller textScroller;
|
||||||
int Tab(int n) { return (n >= 0 && n < MaxTabs) ? tabs[n] : 0; }
|
int Tab(int n) { return (n >= 0 && n < MaxTabs) ? tabs[n] : 0; }
|
||||||
///< Returns the offset of the given tab from the left border of the
|
///< Returns the offset of the given tab from the left border of the
|
||||||
///< item display area. The value returned is in pixel.//XXX ncurses???
|
///< item display area. The value returned is in pixel.
|
||||||
const char *GetTabbedText(const char *s, int Tab);
|
const char *GetTabbedText(const char *s, int Tab);
|
||||||
///< Returns the part of the given string that follows the given
|
///< Returns the part of the given string that follows the given
|
||||||
///< Tab (where 0 indicates the beginning of the string). If no such
|
///< Tab (where 0 indicates the beginning of the string). If no such
|
||||||
@ -104,7 +104,7 @@ public:
|
|||||||
cSkinDisplayMenu(void);
|
cSkinDisplayMenu(void);
|
||||||
virtual void SetTabs(int Tab1, int Tab2 = 0, int Tab3 = 0, int Tab4 = 0, int Tab5 = 0);
|
virtual void SetTabs(int Tab1, int Tab2 = 0, int Tab3 = 0, int Tab4 = 0, int Tab5 = 0);
|
||||||
///< Sets the tab columns to the given values, which are the number of
|
///< Sets the tab columns to the given values, which are the number of
|
||||||
///< characters in each column.//XXX ncurses???
|
///< characters in each column.
|
||||||
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