summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlouis <louis.braun@gmx.de>2015-04-11 16:21:33 +0200
committerlouis <louis.braun@gmx.de>2015-04-11 16:21:33 +0200
commit6872e29fe6d628acd95a5f5eded6f372102fea31 (patch)
treef8e477521aac387c8a8397b9592314dc44d3bef0
parent5146f15e44d9523e3dc96bf0f5e0aeaf1bee9c2f (diff)
downloadvdr-plugin-skindesigner-6872e29fe6d628acd95a5f5eded6f372102fea31.tar.gz
vdr-plugin-skindesigner-6872e29fe6d628acd95a5f5eded6f372102fea31.tar.bz2
added possibility to draw a debug grid in views
-rw-r--r--HISTORY1
-rw-r--r--displaychannel.c1
-rw-r--r--displaymenu.c1
-rw-r--r--displaymessage.c1
-rw-r--r--displayplugin.c1
-rw-r--r--displayreplay.c1
-rw-r--r--displaytracks.c1
-rw-r--r--displayvolume.c1
-rw-r--r--dtd/displayaudiotracks.dtd1
-rw-r--r--dtd/displaychannel.dtd1
-rw-r--r--dtd/displaymenu.dtd11
-rw-r--r--dtd/displaymenuplugin.dtd1
-rw-r--r--dtd/displaymessage.dtd1
-rw-r--r--dtd/displayplugin.dtd1
-rw-r--r--dtd/displayreplay.dtd1
-rw-r--r--dtd/displayvolume.dtd1
-rw-r--r--libtemplate/templatefunction.c25
-rw-r--r--libtemplate/templatefunction.h4
-rw-r--r--libtemplate/templateview.c55
-rw-r--r--libtemplate/templateview.h5
-rw-r--r--views/displaymenurootview.c1
-rw-r--r--views/view.c56
-rw-r--r--views/view.h2
23 files changed, 172 insertions, 2 deletions
diff --git a/HISTORY b/HISTORY
index c286b99..2c70939 100644
--- a/HISTORY
+++ b/HISTORY
@@ -288,4 +288,5 @@ Version 0.4.2
- fixed bug that datetime was not drawn correctly in menus
- fixed bug that string tokens are not evaluated in area conditions
+- added possibility to draw a debug grid in views
diff --git a/displaychannel.c b/displaychannel.c
index 711f05a..603e80e 100644
--- a/displaychannel.c
+++ b/displaychannel.c
@@ -22,6 +22,7 @@ cSDDisplayChannel::cSDDisplayChannel(cTemplate *channelTemplate, bool WithInfo)
doOutput = false;
return;
}
+ channelView->DrawDebugGrid();
}
cSDDisplayChannel::~cSDDisplayChannel() {
diff --git a/displaymenu.c b/displaymenu.c
index 51b6d30..b38ab7a 100644
--- a/displaymenu.c
+++ b/displaymenu.c
@@ -21,6 +21,7 @@ cSDDisplayMenu::cSDDisplayMenu(cTemplate *menuTemplate) {
return;
}
SetCurrentRecording();
+ rootView->DrawDebugGrid();
}
cSDDisplayMenu::~cSDDisplayMenu() {
diff --git a/displaymessage.c b/displaymessage.c
index 94c1bdd..c125fd3 100644
--- a/displaymessage.c
+++ b/displaymessage.c
@@ -14,6 +14,7 @@ cSDDisplayMessage::cSDDisplayMessage(cTemplate *messageTemplate) {
doOutput = false;
return;
}
+ messageView->DrawDebugGrid();
messageView->DrawBackground();
}
diff --git a/displayplugin.c b/displayplugin.c
index 28085a9..35e92e7 100644
--- a/displayplugin.c
+++ b/displayplugin.c
@@ -23,6 +23,7 @@ cSkinDisplayPlugin::cSkinDisplayPlugin(cTemplate *pluginTemplate, int subViewID)
doOutput = false;
return;
}
+ pluginView->DrawDebugGrid();
}
cSkinDisplayPlugin::~cSkinDisplayPlugin(void) {
diff --git a/displayreplay.c b/displayreplay.c
index 4080407..9a68761 100644
--- a/displayreplay.c
+++ b/displayreplay.c
@@ -17,6 +17,7 @@ cSDDisplayReplay::cSDDisplayReplay(cTemplate *replayTemplate, bool ModeOnly) {
doOutput = false;
return;
}
+ replayView->DrawDebugGrid();
}
cSDDisplayReplay::~cSDDisplayReplay() {
diff --git a/displaytracks.c b/displaytracks.c
index 8e28095..184163d 100644
--- a/displaytracks.c
+++ b/displaytracks.c
@@ -18,6 +18,7 @@ cSDDisplayTracks::cSDDisplayTracks(cTemplate *audiotracksTemplate, const char *T
doOutput = false;
return;
}
+ tracksView->DrawDebugGrid();
tracksView->DrawBackground();
cDisplayMenuListView *list = tracksView->GetListView();
diff --git a/displayvolume.c b/displayvolume.c
index 9ee28a5..d50e470 100644
--- a/displayvolume.c
+++ b/displayvolume.c
@@ -16,6 +16,7 @@ cSDDisplayVolume::cSDDisplayVolume(cTemplate *volumeTemplate) {
if (!volumeView->createOsd()) {
doOutput = false;
} else {
+ volumeView->DrawDebugGrid();
volumeView->DrawBackground();
}
}
diff --git a/dtd/displayaudiotracks.dtd b/dtd/displayaudiotracks.dtd
index 31e9802..3d54644 100644
--- a/dtd/displayaudiotracks.dtd
+++ b/dtd/displayaudiotracks.dtd
@@ -13,6 +13,7 @@
scaletvy CDATA #IMPLIED
scaletvwidth CDATA #IMPLIED
scaletvheight CDATA #IMPLIED
+ debuggrid CDATA #IMPLIED
>
<!ELEMENT background (area|areascroll)*>
diff --git a/dtd/displaychannel.dtd b/dtd/displaychannel.dtd
index a98129c..baea223 100644
--- a/dtd/displaychannel.dtd
+++ b/dtd/displaychannel.dtd
@@ -16,6 +16,7 @@
scaletvy CDATA #IMPLIED
scaletvwidth CDATA #IMPLIED
scaletvheight CDATA #IMPLIED
+ debuggrid CDATA #IMPLIED
>
<!ELEMENT background (area)*>
diff --git a/dtd/displaymenu.dtd b/dtd/displaymenu.dtd
index 081caa2..de4a813 100644
--- a/dtd/displaymenu.dtd
+++ b/dtd/displaymenu.dtd
@@ -13,6 +13,7 @@
width CDATA #REQUIRED
height CDATA #REQUIRED
fadetime CDATA #IMPLIED
+ debuggrid CDATA #IMPLIED
>
<!ELEMENT background (area)*>
@@ -177,6 +178,7 @@
scaletvy CDATA #IMPLIED
scaletvwidth CDATA #IMPLIED
scaletvheight CDATA #IMPLIED
+ debuggrid CDATA #IMPLIED
>
<!ELEMENT menumain (background | header | datetime | time | colorbuttons | scrollbar | sortmode | timers |
@@ -192,6 +194,7 @@
scaletvy CDATA #IMPLIED
scaletvwidth CDATA #IMPLIED
scaletvheight CDATA #IMPLIED
+ debuggrid CDATA #IMPLIED
>
<!ELEMENT menusetup (background | header | datetime | time | colorbuttons | scrollbar | sortmode | menuitems)*>
@@ -205,6 +208,7 @@
scaletvy CDATA #IMPLIED
scaletvwidth CDATA #IMPLIED
scaletvheight CDATA #IMPLIED
+ debuggrid CDATA #IMPLIED
>
<!ELEMENT menuschedules (background | header | datetime | time | colorbuttons | scrollbar | sortmode | menuitems)*>
@@ -218,6 +222,7 @@
scaletvy CDATA #IMPLIED
scaletvwidth CDATA #IMPLIED
scaletvheight CDATA #IMPLIED
+ debuggrid CDATA #IMPLIED
>
<!ELEMENT menutimers (background | header | datetime | time | colorbuttons | scrollbar | sortmode | menuitems)*>
@@ -231,6 +236,7 @@
scaletvy CDATA #IMPLIED
scaletvwidth CDATA #IMPLIED
scaletvheight CDATA #IMPLIED
+ debuggrid CDATA #IMPLIED
>
<!ELEMENT menuchannels (background | header | datetime | time | colorbuttons | scrollbar | sortmode | menuitems)*>
@@ -244,6 +250,7 @@
scaletvy CDATA #IMPLIED
scaletvwidth CDATA #IMPLIED
scaletvheight CDATA #IMPLIED
+ debuggrid CDATA #IMPLIED
>
<!ELEMENT menurecordings (background | header | datetime | time | colorbuttons | scrollbar | sortmode | menuitems)*>
@@ -257,6 +264,7 @@
scaletvy CDATA #IMPLIED
scaletvwidth CDATA #IMPLIED
scaletvheight CDATA #IMPLIED
+ debuggrid CDATA #IMPLIED
>
<!ELEMENT menudetailedepg (background | header | datetime | time | colorbuttons | scrollbar |
@@ -271,6 +279,7 @@
scaletvy CDATA #IMPLIED
scaletvwidth CDATA #IMPLIED
scaletvheight CDATA #IMPLIED
+ debuggrid CDATA #IMPLIED
>
<!ELEMENT menudetailedrecording (background | header | datetime | time | colorbuttons | scrollbar |
@@ -285,6 +294,7 @@
scaletvy CDATA #IMPLIED
scaletvwidth CDATA #IMPLIED
scaletvheight CDATA #IMPLIED
+ debuggrid CDATA #IMPLIED
>
<!ELEMENT menudetailedtext (background | header | datetime | time | colorbuttons | scrollbar |
@@ -299,6 +309,7 @@
scaletvy CDATA #IMPLIED
scaletvwidth CDATA #IMPLIED
scaletvheight CDATA #IMPLIED
+ debuggrid CDATA #IMPLIED
>
<!ELEMENT menuitems (listelement,currentelement?)>
diff --git a/dtd/displaymenuplugin.dtd b/dtd/displaymenuplugin.dtd
index bcd005c..d7352c6 100644
--- a/dtd/displaymenuplugin.dtd
+++ b/dtd/displaymenuplugin.dtd
@@ -13,6 +13,7 @@
scaletvy CDATA #IMPLIED
scaletvwidth CDATA #IMPLIED
scaletvheight CDATA #IMPLIED
+ debuggrid CDATA #IMPLIED
>
<!ELEMENT background (area)*>
diff --git a/dtd/displaymessage.dtd b/dtd/displaymessage.dtd
index 223ea2d..b9849bd 100644
--- a/dtd/displaymessage.dtd
+++ b/dtd/displaymessage.dtd
@@ -13,6 +13,7 @@
scaletvy CDATA #IMPLIED
scaletvwidth CDATA #IMPLIED
scaletvheight CDATA #IMPLIED
+ debuggrid CDATA #IMPLIED
>
<!ELEMENT background (area)*>
diff --git a/dtd/displayplugin.dtd b/dtd/displayplugin.dtd
index 71e3d2b..8bc0c47 100644
--- a/dtd/displayplugin.dtd
+++ b/dtd/displayplugin.dtd
@@ -14,6 +14,7 @@
scaletvwidth CDATA #IMPLIED
scaletvheight CDATA #IMPLIED
hideroot CDATA #IMPLIED
+ debuggrid CDATA #IMPLIED
>
<!ELEMENT viewelement (area|areascroll)*>
diff --git a/dtd/displayreplay.dtd b/dtd/displayreplay.dtd
index 217df11..d5f7ff8 100644
--- a/dtd/displayreplay.dtd
+++ b/dtd/displayreplay.dtd
@@ -17,6 +17,7 @@
scaletvy CDATA #IMPLIED
scaletvwidth CDATA #IMPLIED
scaletvheight CDATA #IMPLIED
+ debuggrid CDATA #IMPLIED
>
<!ELEMENT background (area)*>
diff --git a/dtd/displayvolume.dtd b/dtd/displayvolume.dtd
index 2be597d..278346f 100644
--- a/dtd/displayvolume.dtd
+++ b/dtd/displayvolume.dtd
@@ -13,6 +13,7 @@
scaletvy CDATA #IMPLIED
scaletvwidth CDATA #IMPLIED
scaletvheight CDATA #IMPLIED
+ debuggrid CDATA #IMPLIED
>
<!ELEMENT background (area)*>
diff --git a/libtemplate/templatefunction.c b/libtemplate/templatefunction.c
index 2e6a743..7b76539 100644
--- a/libtemplate/templatefunction.c
+++ b/libtemplate/templatefunction.c
@@ -49,6 +49,10 @@ void cTemplateFunction::SetParameters(vector<pair<string, string> > params) {
debug = true;
}
continue;
+ } else if (!name.compare("debuggrid")) {
+ string value = it->second;
+ SetDebugGrid(value);
+ continue;
} else if (!name.compare("condition")) {
p.first = ptCond;
} else if (!name.compare("name")) {
@@ -429,6 +433,8 @@ int cTemplateFunction::GetNumericParameter(eParamType type) {
return 0;
else if (type == ptBackground)
return 0;
+ else if (type == ptDrawDebugGrid)
+ return 0;
else if (type == ptDirection)
return diBottomUp;
return -1;
@@ -1119,6 +1125,25 @@ bool cTemplateFunction::SetDirection(string value) {
return true;
}
+void cTemplateFunction::SetDebugGrid(string value) {
+ int numGridsX = 0;
+ int numGridsY = 0;
+ size_t posSep = value.find("x");
+ if (posSep != string::npos) {
+ string x = value.substr(0, posSep);
+ string y = value.substr(posSep+1);
+ numGridsX = atoi(x.c_str());
+ numGridsY = atoi(y.c_str());
+ }
+ if (numGridsX < 1)
+ numGridsX = 10;
+ if (numGridsY < 1)
+ numGridsY = 10;
+ numericParameters.insert(pair<eParamType, int>(ptDebugGridX, numGridsX));
+ numericParameters.insert(pair<eParamType, int>(ptDebugGridY, numGridsY));
+ numericParameters.insert(pair<eParamType, int>(ptDrawDebugGrid, 1));
+}
+
void cTemplateFunction::ParseStringParameters(void) {
//first replace stringtokens in Text (drawText)
stringstream text;
diff --git a/libtemplate/templatefunction.h b/libtemplate/templatefunction.h
index fa2e86a..fdc66b0 100644
--- a/libtemplate/templatefunction.h
+++ b/libtemplate/templatefunction.h
@@ -41,6 +41,9 @@ enum eParamType {
ptCond,
ptName,
ptMode,
+ ptDrawDebugGrid,
+ ptDebugGridX,
+ ptDebugGridY,
ptX,
ptY,
ptWidth,
@@ -165,6 +168,7 @@ protected:
bool SetDetached(string value);
bool SetBackground(string value);
bool SetDirection(string value);
+ void SetDebugGrid(string value);
void ParseStringParameters(void);
void ParseNumericalParameters(void);
void CalculateAlign(int elementWidth, int elementHeight);
diff --git a/libtemplate/templateview.c b/libtemplate/templateview.c
index 5af8229..b7a4110 100644
--- a/libtemplate/templateview.c
+++ b/libtemplate/templateview.c
@@ -212,6 +212,41 @@ bool cTemplateView::HideView(void) {
return parameters->GetNumericParameter(ptHideRoot);
}
+bool cTemplateView::DrawGebugGrid(void) {
+ if (!parameters)
+ return false;
+ return parameters->GetNumericParameter(ptDrawDebugGrid);
+}
+
+int cTemplateView::DebugGridX(void) {
+ if (!parameters)
+ return 0;
+ return parameters->GetNumericParameter(ptDebugGridX);
+}
+
+int cTemplateView::DebugGridY(void) {
+ if (!parameters)
+ return 0;
+ return parameters->GetNumericParameter(ptDebugGridY);
+}
+
+tColor cTemplateView::DebugGridColor(void) {
+ tColor col = 0xFFFF0000;
+ if (!globals)
+ return col;
+ string colName = "{clrDebugGrid}";
+ globals->GetColor(colName, col);
+ return col;
+}
+
+tColor cTemplateView::DebugGridFontColor(void) {
+ tColor col = 0xFFFF0000;
+ if (!globals)
+ return col;
+ string colName = "{clrFontDebugGrid}";
+ globals->GetColor(colName, col);
+ return col;
+}
bool cTemplateView::ExecuteView(eViewElement ve) {
map < eViewElement, cTemplateViewElement* >::iterator hit = viewElements.find(ve);
@@ -829,6 +864,7 @@ cTemplateViewChannel::cTemplateViewChannel(void) {
attributes.insert("scaletvy");
attributes.insert("scaletvwidth");
attributes.insert("scaletvheight");
+ attributes.insert("debuggrid");
funcsAllowed.insert(pair< string, set<string> >(viewName, attributes));
SetViewElements();
@@ -995,6 +1031,7 @@ cTemplateViewMenu::cTemplateViewMenu(void) {
attributes.insert("width");
attributes.insert("height");
attributes.insert("fadetime");
+ attributes.insert("debuggrid");
funcsAllowed.insert(pair< string, set<string> >(viewName, attributes));
string subViewName = "menudefault";
@@ -1008,7 +1045,8 @@ cTemplateViewMenu::cTemplateViewMenu(void) {
attributes.insert("scaletvx");
attributes.insert("scaletvy");
attributes.insert("scaletvwidth");
- attributes.insert("scaletvheight");
+ attributes.insert("scaletvheight");
+ attributes.insert("debuggrid");
funcsAllowed.insert(pair< string, set<string> >(subViewName, attributes));
subViewName = "menumain";
@@ -1023,6 +1061,7 @@ cTemplateViewMenu::cTemplateViewMenu(void) {
attributes.insert("scaletvy");
attributes.insert("scaletvwidth");
attributes.insert("scaletvheight");
+ attributes.insert("debuggrid");
funcsAllowed.insert(pair< string, set<string> >(subViewName, attributes));
subViewName = "menusetup";
@@ -1037,6 +1076,7 @@ cTemplateViewMenu::cTemplateViewMenu(void) {
attributes.insert("scaletvy");
attributes.insert("scaletvwidth");
attributes.insert("scaletvheight");
+ attributes.insert("debuggrid");
funcsAllowed.insert(pair< string, set<string> >(subViewName, attributes));
subViewName = "menuschedules";
@@ -1051,6 +1091,7 @@ cTemplateViewMenu::cTemplateViewMenu(void) {
attributes.insert("scaletvy");
attributes.insert("scaletvwidth");
attributes.insert("scaletvheight");
+ attributes.insert("debuggrid");
funcsAllowed.insert(pair< string, set<string> >(subViewName, attributes));
subViewName = "menuchannels";
@@ -1065,6 +1106,7 @@ cTemplateViewMenu::cTemplateViewMenu(void) {
attributes.insert("scaletvy");
attributes.insert("scaletvwidth");
attributes.insert("scaletvheight");
+ attributes.insert("debuggrid");
funcsAllowed.insert(pair< string, set<string> >(subViewName, attributes));
subViewName = "menutimers";
@@ -1079,6 +1121,7 @@ cTemplateViewMenu::cTemplateViewMenu(void) {
attributes.insert("scaletvy");
attributes.insert("scaletvwidth");
attributes.insert("scaletvheight");
+ attributes.insert("debuggrid");
funcsAllowed.insert(pair< string, set<string> >(subViewName, attributes));
subViewName = "menurecordings";
@@ -1093,6 +1136,7 @@ cTemplateViewMenu::cTemplateViewMenu(void) {
attributes.insert("scaletvy");
attributes.insert("scaletvwidth");
attributes.insert("scaletvheight");
+ attributes.insert("debuggrid");
funcsAllowed.insert(pair< string, set<string> >(subViewName, attributes));
subViewName = "menudetailedepg";
@@ -1107,6 +1151,7 @@ cTemplateViewMenu::cTemplateViewMenu(void) {
attributes.insert("scaletvy");
attributes.insert("scaletvwidth");
attributes.insert("scaletvheight");
+ attributes.insert("debuggrid");
funcsAllowed.insert(pair< string, set<string> >(subViewName, attributes));
subViewName = "menudetailedrecording";
@@ -1121,6 +1166,7 @@ cTemplateViewMenu::cTemplateViewMenu(void) {
attributes.insert("scaletvy");
attributes.insert("scaletvwidth");
attributes.insert("scaletvheight");
+ attributes.insert("debuggrid");
funcsAllowed.insert(pair< string, set<string> >(subViewName, attributes));
subViewName = "menudetailedtext";
@@ -1135,6 +1181,7 @@ cTemplateViewMenu::cTemplateViewMenu(void) {
attributes.insert("scaletvy");
attributes.insert("scaletvwidth");
attributes.insert("scaletvheight");
+ attributes.insert("debuggrid");
funcsAllowed.insert(pair< string, set<string> >(subViewName, attributes));
//definition of allowed parameters for menuitems viewlist
@@ -1182,6 +1229,7 @@ cTemplateViewMenu::cTemplateViewMenu(void) {
attributes.insert("scaletvy");
attributes.insert("scaletvwidth");
attributes.insert("scaletvheight");
+ attributes.insert("debuggrid");
funcsAllowed.insert(pair< string, set<string> >("menuplugin", attributes));
SetSubViews();
@@ -1516,6 +1564,7 @@ cTemplateViewMessage::cTemplateViewMessage(void) {
attributes.insert("scaletvy");
attributes.insert("scaletvwidth");
attributes.insert("scaletvheight");
+ attributes.insert("debuggrid");
funcsAllowed.insert(pair< string, set<string> >(viewName, attributes));
SetViewElements();
@@ -1590,6 +1639,7 @@ cTemplateViewReplay::cTemplateViewReplay(void) {
attributes.insert("scaletvy");
attributes.insert("scaletvwidth");
attributes.insert("scaletvheight");
+ attributes.insert("debuggrid");
funcsAllowed.insert(pair< string, set<string> >(viewName, attributes));
//definition of allowed parameters for onpause and onpausemodeonly viewelement
@@ -1772,6 +1822,7 @@ cTemplateViewVolume::cTemplateViewVolume(void) {
attributes.insert("scaletvy");
attributes.insert("scaletvwidth");
attributes.insert("scaletvheight");
+ attributes.insert("debuggrid");
funcsAllowed.insert(pair< string, set<string> >(viewName, attributes));
SetViewElements();
@@ -1846,6 +1897,7 @@ cTemplateViewAudioTracks::cTemplateViewAudioTracks(void) {
attributes.insert("scaletvy");
attributes.insert("scaletvwidth");
attributes.insert("scaletvheight");
+ attributes.insert("debuggrid");
funcsAllowed.insert(pair< string, set<string> >(viewName, attributes));
//definition of allowed parameters for menuitems viewlist
@@ -1968,6 +2020,7 @@ cTemplateViewPlugin::cTemplateViewPlugin(string pluginName, int viewID) {
attributes.insert("scaletvwidth");
attributes.insert("scaletvheight");
attributes.insert("hideroot");
+ attributes.insert("debuggrid");
funcsAllowed.insert(pair< string, set<string> >(viewName, attributes));
//definition of allowed parameters for viewtab
diff --git a/libtemplate/templateview.h b/libtemplate/templateview.h
index b1fd17d..64add2a 100644
--- a/libtemplate/templateview.h
+++ b/libtemplate/templateview.h
@@ -112,6 +112,11 @@ public:
cRect GetOsdSize(void);
int GetNumPixmaps(void);
int GetNumPixmapsViewElement(eViewElement ve);
+ bool DrawGebugGrid(void);
+ int DebugGridX(void);
+ int DebugGridY(void);
+ tColor DebugGridColor(void);
+ tColor DebugGridFontColor(void);
bool HideView(void);
bool ExecuteView(eViewElement ve);
bool DetachViewElement(eViewElement ve);
diff --git a/views/displaymenurootview.c b/views/displaymenurootview.c
index 7b514d7..a29f56d 100644
--- a/views/displaymenurootview.c
+++ b/views/displaymenurootview.c
@@ -422,6 +422,7 @@ cFont *cDisplayMenuRootView::GetTextAreaFont(void) {
void cDisplayMenuRootView::Render(void) {
if (!view)
return;
+ view->DrawDebugGrid();
if (!view->DrawBackground()) {
defaultBackgroundDrawn = true;
DrawBackground();
diff --git a/views/view.c b/views/view.c
index 09bae74..1680379 100644
--- a/views/view.c
+++ b/views/view.c
@@ -5,7 +5,7 @@
using namespace std;
-cView::cView(cTemplateView *tmplView) : cPixmapContainer(tmplView->GetNumPixmaps()) {
+cView::cView(cTemplateView *tmplView) : cPixmapContainer(tmplView->DrawGebugGrid() ? tmplView->GetNumPixmaps() + 1 : tmplView->GetNumPixmaps()) {
this->tmplView = tmplView;
tvScaled = tmplView->GetScalingWindow(scalingWindow);
if (tvScaled) {
@@ -42,6 +42,12 @@ cView::~cView() {
}
}
+void cView::DrawDebugGrid(void) {
+ if (tmplView && tmplView->DrawGebugGrid()) {
+ DoDrawDebugGrid();
+ }
+}
+
void cView::Init(void) {
viewInit = true;
scrolling = false;
@@ -483,6 +489,54 @@ void cView::DebugTokens(string viewElement, map<string,string> *stringTokens, ma
* Private Functions
*****************************************************************/
+void cView::DoDrawDebugGrid(void) {
+ int stepsX = tmplView->DebugGridX();
+ int stepsY = tmplView->DebugGridY();
+ cRect osdSize = tmplView->GetOsdSize();
+ tColor col = tmplView->DebugGridColor();
+ tColor colFont = tmplView->DebugGridFontColor();
+
+ cRect size(0, 0, osdSize.Width(), osdSize.Height());
+ //use last pixmap as grid pixmap
+ int numGridPixmap = NumPixmaps() - 1;
+ CreatePixmap(numGridPixmap, 7, size);
+
+ int width = size.Width();
+ int height = size.Height();
+ float stepWidthX = (double)width / (double)stepsX;
+ float stepWidthY = (double)height / (double)stepsY;
+ int fontSize = height / stepsY / 5;
+
+ for (int i = 0; i <= stepsX; i++) {
+ int x = (float)i * stepWidthX;
+ if (i==stepsX)
+ x = x-1;
+ cRect line(x, 0, 1, height);
+ DrawRectangle(numGridPixmap, line, col);
+ if (i==stepsX)
+ continue;
+ float percent = (float)i / (float)stepsX * 100.0;
+ cPoint textPosPerc(x+2, 2);
+ cPoint textPosAbs(x+2, fontSize + 4);
+ DrawText(numGridPixmap, textPosPerc, *cString::sprintf("%.1f%%", percent), colFont, 0x00000000, "vdrOsd", fontSize);
+ DrawText(numGridPixmap, textPosAbs, *cString::sprintf("%dpx", x), colFont, 0x00000000, "vdrOsd", fontSize);
+ }
+ for (int i = 0; i <= stepsY; i++) {
+ int y = (float)i * stepWidthY;
+ if (i==stepsY)
+ y = y-1;
+ cRect line(0, y, width, 1);
+ DrawRectangle(numGridPixmap, line, col);
+ if (i==0 || i==stepsY)
+ continue;
+ float percent = (float)i / (float)stepsY * 100.0;
+ cPoint textPosPerc(2, y + 2);
+ cPoint textPosAbs(2, y + fontSize + 4);
+ DrawText(numGridPixmap, textPosPerc, *cString::sprintf("%.1f%%", percent), colFont, 0x00000000, "vdrOsd", fontSize);
+ DrawText(numGridPixmap, textPosAbs, *cString::sprintf("%dpx", y), colFont, 0x00000000, "vdrOsd", fontSize);
+ }
+}
+
void cView::DoFill(int num, cTemplateFunction *func) {
tColor col = func->GetColorParameter(ptColor);
Fill(num, col);
diff --git a/views/view.h b/views/view.h
index f81885f..e6ee909 100644
--- a/views/view.h
+++ b/views/view.h
@@ -13,6 +13,7 @@ class cViewElement;
class cView : public cPixmapContainer {
private:
void Init(void);
+ void DoDrawDebugGrid(void);
void DoFill(int num, cTemplateFunction *func);
void DoDrawText(int num, cTemplateFunction *func, int x0 = 0, int y0 = 0);
void DoDrawTextVertical(int num, cTemplateFunction *func, int x0 = 0, int y0 = 0);
@@ -61,6 +62,7 @@ public:
cView(cTemplateView *tmplView);
cView(cTemplateViewElement *tmplViewElement);
cView(cTemplateViewTab *tmplTab);
+ void DrawDebugGrid(void);
virtual ~cView();
virtual void Stop(void);
};