]> git.vomp.tv Git - vompclient-marten.git/blob - vinfo.cc
Minor cleanup changes
[vompclient-marten.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   okbutton = false;
29
30   setBackgroundColour(Colour::VIEWBACKGROUND);
31   setTitleBarOn(1);
32   setTitleBarColour(Colour::TITLEBARBACKGROUND);
33 }
34
35 VInfo::~VInfo()
36 {
37   if (mainText) delete[] mainText;
38 }
39
40 void VInfo::setExitable()
41 {
42   exitable = 1;
43 }
44
45 void VInfo::setDropThrough()
46 {
47   dropThrough = 1;
48 }
49
50 void VInfo::setMainText(char* takeText)
51 {
52   int length = strlen(takeText);
53   mainText = new char[length + 1];
54   strcpy(mainText, takeText);
55   mainTextType = NORMAL;
56 }
57
58 void VInfo::setOneLiner(char* takeText)
59 {
60   int length = strlen(takeText);
61   mainText = new char[length + 1];
62   strcpy(mainText, takeText);
63   mainTextType = ONELINER;
64 }
65
66 void VInfo::draw()
67 {
68   View::draw();
69
70   if (mainText)
71   {
72     if (mainTextType == NORMAL)
73     {
74       drawPara(mainText, 10, 45, Colour::LIGHTTEXT);
75     }
76
77     if (mainTextType == ONELINER)
78     {
79       if (titleBarOn) drawTextCentre(mainText, area.w / 2, 75, Colour::LIGHTTEXT);
80       else drawTextCentre(mainText, area.w / 2, 55, Colour::LIGHTTEXT);
81     }
82   }
83
84   if (okbutton)
85   {
86     WButton button;
87     button.setSurface(surface);
88     button.setSurfaceOffset((area.w / 2) - 30, area.h - 50);
89     button.setText(tr("OK"));
90     button.setActive(1);
91     button.draw();
92   }
93 }
94
95 int VInfo::handleCommand(int command)
96 {
97   if (dropThrough) return 0;
98
99   switch(command)
100   {
101     case Remote::OK:
102     case Remote::BACK:
103     {
104       if (exitable) return 4;
105     }
106   }
107
108   return 1;
109 }
110
111 void VInfo::okButton()
112 {
113   okbutton = true;
114 }
115
116 void VInfo::processMessage(Message* m)
117 {
118   if (m->message == Message::MOUSE_LBDOWN)
119   {
120     ViewMan::getInstance()->handleCommand(Remote::OK); //simulate OK press
121   }
122 }