]> git.vomp.tv Git - vompclient.git/blob - vquestion.cc
Initial import
[vompclient.git] / vquestion.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 "vquestion.h"
22
23 VQuestion::VQuestion()
24 {
25   mainText = NULL;
26   selectedOption = NO;
27
28   buttonYes.setText("Yes");
29   buttonNo.setText("No");
30   buttonNo.setActive(1);
31
32 }
33
34 VQuestion::~VQuestion()
35 {
36   if (mainText) delete[] mainText;
37 }
38
39 void VQuestion::setMainText(char* takeText)
40 {
41   int length = strlen(takeText);
42   mainText = new char[length + 1];
43   strcpy(mainText, takeText);
44 }
45
46 void VQuestion::draw()
47 {
48   View::draw();
49
50   buttonYes.setScreenPos(screenX + 40, screenY + 120);
51   buttonNo.setScreenPos(screenX + 140, screenY + 120);
52
53   if (mainText) drawPara(mainText, 10, 45, 255, 255, 255);
54   buttonYes.draw();
55   buttonNo.draw();
56 }
57
58 void VQuestion::swap()
59 {
60   if (selectedOption == NO)
61   {
62     selectedOption = YES;
63     buttonYes.setActive(1);
64     buttonNo.setActive(0);
65   }
66   else if (selectedOption == YES)
67   {
68     selectedOption = NO;
69     buttonYes.setActive(0);
70     buttonNo.setActive(1);
71   }
72 }
73
74 int VQuestion::handleCommand(int command)
75 {
76   if (command == Remote::LEFT)
77   {
78     swap();
79     draw();
80     show();
81     return 2;
82   }
83   else if (command == Remote::RIGHT)
84   {
85     swap();
86     draw();
87     show();
88     return 2;
89   }
90   else if (command == Remote::BACK)
91   {
92     return 4;
93   }
94   else if (command == Remote::OK)
95   {
96     if (selectedOption != YES) return 4;
97
98     Message* m = new Message();
99     m->from = this;
100     m->to = questionReceiver;
101     m->message = Message::QUESTION_YES;
102     ViewMan::getInstance()->postMessage(m);
103
104     return 4;
105   }
106
107   return 1;
108 }
109
110 void VQuestion::setParent(View* tquestionReceiver)
111 {
112   questionReceiver = tquestionReceiver;
113 }
114
115 void VQuestion::setDefault(UCHAR option)
116 {
117   selectedOption = option;
118 }