]> git.vomp.tv Git - vompclient.git/blob - vinfo.cc
Zero length recording segfault fixed
[vompclient.git] / vinfo.cc
1 /*
2     Copyright 2004-2005 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., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
19 */
20
21 #include "vinfo.h"
22
23 VInfo::VInfo()
24 {
25   mainText = NULL;
26   exitable = 0;
27   dropThrough = 0;
28
29   setBackgroundColour(Colour::VIEWBACKGROUND);
30   setTitleBarOn(1);
31   setTitleBarColour(Colour::TITLEBARBACKGROUND);
32 }
33
34 VInfo::~VInfo()
35 {
36   if (mainText) delete[] mainText;
37 }
38
39 void VInfo::setExitable()
40 {
41   exitable = 1;
42 }
43
44 void VInfo::setDropThrough()
45 {
46   dropThrough = 1;
47 }
48
49 void VInfo::setMainText(char* takeText)
50 {
51   int length = strlen(takeText);
52   mainText = new char[length + 1];
53   strcpy(mainText, takeText);
54   mainTextType = NORMAL;
55 }
56
57 void VInfo::setOneLiner(char* takeText)
58 {
59   int length = strlen(takeText);
60   mainText = new char[length + 1];
61   strcpy(mainText, takeText);
62   mainTextType = ONELINER;
63 }
64
65 void VInfo::draw()
66 {
67   View::draw();
68
69   if (mainText)
70   {
71     if (mainTextType == NORMAL)
72     {
73       drawPara(mainText, 10, 45, Colour::LIGHTTEXT);
74     }
75
76     if (mainTextType == ONELINER)
77     {
78       if (titleBarOn) drawTextCentre(mainText, area.w / 2, 75, Colour::LIGHTTEXT);
79       else drawTextCentre(mainText, area.w / 2, 55, Colour::LIGHTTEXT);
80     }
81   }
82 }
83
84 int VInfo::handleCommand(int command)
85 {
86   if (dropThrough) return 0;
87
88   switch(command)
89   {
90     case Remote::OK:
91     case Remote::BACK:
92     {
93       if (exitable) return 4;
94     }
95   }
96
97   return 1;
98 }