]> git.vomp.tv Git - vompclient.git/blob - tbboxx.cc
Fix text corruption in channel number display on live tv
[vompclient.git] / tbboxx.cc
1 /*
2     Copyright 2007 Chris Tallon
3
4     This file is part of VOMP.
5
6     VOMP is free software; you can redistribute it and/or modify
7     it under the terms of the GNU General Public License as published by
8     the Free Software Foundation; either version 2 of the License, or
9     (at your option) any later version.
10
11     VOMP is distributed in the hope that it will be useful,
12     but WITHOUT ANY WARRANTY; without even the implied warranty of
13     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14     GNU General Public License for more details.
15
16     You should have received a copy of the GNU General Public License
17     along with VOMP; if not, write to the Free Software
18     Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
19 */
20
21 #include "tbboxx.h"
22
23 #include "log.h"
24
25 TBBoxx::TBBoxx()
26 {
27   titleBarOn = 0;
28   borderOn = 0;
29   titleText = NULL;
30   titleBarTextWidth = 0;
31   icon = NULL;
32 }
33
34 TBBoxx::~TBBoxx()
35 {
36   if (titleText) delete[] titleText;
37   if (icon) delete icon;
38 }
39
40 void TBBoxx::setTitleText(const char* takeText, int width)
41 {
42   int length = strlen(takeText);
43   titleText = new char[length + 1];
44   strcpy(titleText, takeText);
45   titleBarTextWidth = width;
46 }
47
48 void TBBoxx::draw()
49 {
50   //Log::getInstance()->log("TBBoxx", Log::DEBUG, "Draw: %d",this);
51
52   fillColour(DrawStyle::VIEWBACKGROUND);
53
54   if (borderOn)
55   {
56     rectangle(0, 0, area.w, area.h, titleBarColour);
57     rectangle(5, 5, area.w-10, area.h-10, DrawStyle::VIEWBACKGROUND);
58   }
59
60   if (titleBarOn)
61   {
62     rectangle(0, 0, area.w, 30, titleBarColour);
63     int xpos = 5;
64 #ifdef GRADIENT_DRAWING
65     if (icon) {
66         drawTVMedia(*icon, xpos,0,30,30,TopLeftLimited);
67         xpos+=5+30;
68     }
69 #endif
70     if (titleText)
71     {
72       if (titleBarTextWidth) drawText(titleText, xpos, 5, titleBarTextWidth+5-xpos, DrawStyle::LIGHTTEXT);
73       else drawText(titleText, xpos, 5, DrawStyle::LIGHTTEXT);
74     }
75   }
76
77   Boxx::draw();  
78 }
79
80 void TBBoxx::setTitleBarColour(const DrawStyle& Tcolour)
81 {
82   titleBarColour = Tcolour;
83 }
84
85 void TBBoxx::setTitleBarIcon(TVMediaInfo * ticon)
86 {
87         if (icon) delete icon;
88         icon = ticon;
89 }
90
91 void TBBoxx::setTitleBarOn(UCHAR on)
92 {
93   titleBarOn = on;
94 }
95
96 void TBBoxx::setBorderOn(UCHAR on)
97 {
98   borderOn = on;
99 }