]> git.sesse.net Git - vlc/blob - modules/gui/skins2/utils/position.cpp
Uniformize source files encoding
[vlc] / modules / gui / skins2 / utils / position.cpp
1 /*****************************************************************************
2  * position.cpp
3  *****************************************************************************
4  * Copyright (C) 2003 the VideoLAN team
5  * $Id$
6  *
7  * Authors: Cyril Deguet     <asmax@via.ecp.fr>
8  *          Olivier Teulière <ipkiss@via.ecp.fr>
9  *
10  * This program is free software; you can redistribute it and/or modify
11  * it under the terms of the GNU General Public License as published by
12  * the Free Software Foundation; either version 2 of the License, or
13  * (at your option) any later version.
14  *
15  * This program is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU General Public License for more details.
19  *
20  * You should have received a copy of the GNU General Public License
21  * along with this program; if not, write to the Free Software
22  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
23  *****************************************************************************/
24
25 #include "position.hpp"
26
27
28 const string VarBox::m_type = "box";
29
30
31 Rect::Rect( int left, int top, int right, int bottom ):
32     m_left( left ), m_top( top ), m_right( right ), m_bottom( bottom )
33 {
34 }
35
36
37 Position::Position( int left, int top, int right, int bottom, const Box &rBox,
38                     Ref_t refLeftTop, Ref_t refRightBottom ):
39     m_left( left ), m_top( top ), m_right( right ), m_bottom( bottom ),
40     m_rBox( rBox ), m_refLeftTop( refLeftTop ),
41     m_refRighBottom( refRightBottom )
42 {
43 }
44
45
46 int Position::getLeft() const
47 {
48     switch( m_refLeftTop )
49     {
50         case kLeftTop:
51         case kLeftBottom:
52             return m_left;
53             break;
54         case kRightTop:
55         case kRightBottom:
56             return m_rBox.getWidth() + m_left - 1;
57             break;
58     }
59     // Avoid a warning
60     return 0;
61 }
62
63
64 int Position::getTop() const
65 {
66     switch( m_refLeftTop )
67     {
68         case kLeftTop:
69         case kRightTop:
70             return m_top;
71             break;
72         case kRightBottom:
73         case kLeftBottom:
74             return m_rBox.getHeight() + m_top - 1;
75             break;
76     }
77     // Avoid a warning
78     return 0;
79 }
80
81
82 int Position::getRight() const
83 {
84     switch( m_refRighBottom )
85     {
86         case kLeftTop:
87         case kLeftBottom:
88             return m_right;
89             break;
90         case kRightTop:
91         case kRightBottom:
92             return m_rBox.getWidth() + m_right - 1;
93             break;
94     }
95     // Avoid a warning
96     return 0;
97 }
98
99
100 int Position::getBottom() const
101 {
102     switch( m_refRighBottom )
103     {
104         case kLeftTop:
105         case kRightTop:
106             return m_bottom;
107             break;
108         case kLeftBottom:
109         case kRightBottom:
110             return m_rBox.getHeight() + m_bottom - 1;
111             break;
112     }
113     // Avoid a warning
114     return 0;
115 }
116
117
118 int Position::getWidth() const
119 {
120     return getRight() - getLeft() + 1;
121 }
122
123
124 int Position::getHeight() const
125 {
126     return getBottom() - getTop() + 1;
127 }
128
129
130 VarBox::VarBox( intf_thread_t *pIntf, int width, int height ):
131     Variable( pIntf ), m_width( width ), m_height( height )
132 {
133 }
134
135
136 int VarBox::getWidth() const
137 {
138     return m_width;
139 }
140
141
142 int VarBox::getHeight() const
143 {
144     return m_height;
145 }
146
147
148 void VarBox::setSize( int width, int height )
149 {
150     m_width = width;
151     m_height = height;
152     notify();
153 }
154