]> git.vomp.tv Git - vompclient-marten.git/blob - wbutton.cc
Fix bug in demuxer widescreen signaling
[vompclient-marten.git] / wbutton.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., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA.
19 */
20
21 #include "wbutton.h"
22
23 #include "colour.h"
24
25 WButton::WButton()
26 {
27
28   setSize(70, 21/*fontHeight*/);
29
30   mytext = NULL;
31   active = 0;
32   tag = 0;
33   dimmed = false;
34 }
35
36 WButton::~WButton()
37 {
38   if (mytext) delete[] mytext;
39 }
40
41 void WButton::setText(const char* takeText)
42 {
43   int length = strlen(takeText);
44   mytext = new char[length + 1];
45   strcpy(mytext, takeText);
46 }
47
48 void WButton::setActive(UCHAR tactive)
49 {
50   dimmed = false;
51   active = tactive;
52 }
53
54 void WButton::dim()
55 {
56   // a bolt on for now - an active but dimmed state
57   dimmed = true;
58   active = false;
59 }
60
61 void WButton::draw()
62 {
63   if (dimmed)
64   {
65     fillColour(DrawStyle::BLACK);
66     drawTextCentre(mytext, area.w / 2, 0, DrawStyle::SELECTHIGHLIGHT);
67   }
68   else if (active)
69   {
70     fillColour(DrawStyle::SELECTHIGHLIGHT);
71     drawTextCentre(mytext, area.w / 2, 0, DrawStyle::DARKTEXT);
72   }
73   else
74   {
75     fillColour(DrawStyle::BUTTONBACKGROUND);
76     drawTextCentre(mytext, area.w / 2, 0, DrawStyle::LIGHTTEXT);
77   }
78 }
79
80 void WButton::setTag(int newTag)
81 {
82   tag = newTag;
83 }
84
85 int WButton::getTag()
86 {
87   return tag;
88 }
89
90 // Sorry, I've broken these in the boxx upgrade - chris
91
92 bool WButton::mouseMove(int x, int y)
93 {
94   if ((x-getRootBoxOffsetX())>=0 && (y-getRootBoxOffsetY())>=0
95     && (x-getRootBoxOffsetX())<=(int)area.w && (y-getRootBoxOffsetY())<=(int)area.h && !active)
96   {
97     setActive(1);
98     return true;
99   }
100   return false;
101 }
102
103 bool WButton::mouseLBDOWN(int x, int y)
104 {
105   if ((x-getRootBoxOffsetX())>=0 && (y-getRootBoxOffsetY())>=0
106     && (x-getRootBoxOffsetX())<=(int)area.w && (y-getRootBoxOffsetY())<=(int)area.h && active)
107   {
108     return true;
109   }
110   return false;
111 }