]> git.vomp.tv Git - vompclient.git/blob - vquestion.cc
Options view files added, new remote type supported
[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, Colour::LIGHTTEXT);
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   switch(command)
77   {
78     case Remote::DF_LEFT:
79     case Remote::LEFT:
80     {
81       swap();
82       draw();
83       show();
84       return 2;
85     }
86     case Remote::DF_RIGHT:
87     case Remote::RIGHT:
88     {
89       swap();
90       draw();
91       show();
92       return 2;
93     }
94     case Remote::BACK:
95     {
96       return 4;
97     }
98     case Remote::OK:
99     {
100       if (selectedOption != YES) return 4;
101
102       Message* m = new Message();
103       m->from = this;
104       m->to = parent;
105       m->message = Message::QUESTION_YES;
106       ViewMan::getInstance()->postMessage(m);
107
108       return 4;
109     }
110   }
111   return 1;
112 }
113
114 void VQuestion::setDefault(UCHAR option)
115 {
116   selectedOption = option;
117 }