diff options
Diffstat (limited to 'src/FbTk')
-rw-r--r-- | src/FbTk/FbWindow.cc | 29 | ||||
-rw-r--r-- | src/FbTk/Font.hh | 9 |
2 files changed, 24 insertions, 14 deletions
diff --git a/src/FbTk/FbWindow.cc b/src/FbTk/FbWindow.cc index 5c0b2d2..e92c3d2 100644 --- a/src/FbTk/FbWindow.cc +++ b/src/FbTk/FbWindow.cc | |||
@@ -19,7 +19,7 @@ | |||
19 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 19 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
20 | // DEALINGS IN THE SOFTWARE. | 20 | // DEALINGS IN THE SOFTWARE. |
21 | 21 | ||
22 | // $Id: FbWindow.cc,v 1.7 2003/02/23 16:52:16 fluxgen Exp $ | 22 | // $Id: FbWindow.cc,v 1.8 2003/04/14 12:06:25 fluxgen Exp $ |
23 | 23 | ||
24 | #include "FbWindow.hh" | 24 | #include "FbWindow.hh" |
25 | 25 | ||
@@ -33,7 +33,7 @@ namespace FbTk { | |||
33 | Display *FbWindow::s_display = 0; | 33 | Display *FbWindow::s_display = 0; |
34 | 34 | ||
35 | FbWindow::FbWindow():m_parent(0), m_screen_num(0), m_window(0), m_x(0), m_y(0), | 35 | FbWindow::FbWindow():m_parent(0), m_screen_num(0), m_window(0), m_x(0), m_y(0), |
36 | m_width(0), m_height(0), m_border_width(0) { | 36 | m_width(0), m_height(0), m_border_width(0), m_destroy(true) { |
37 | 37 | ||
38 | if (s_display == 0) | 38 | if (s_display == 0) |
39 | s_display = App::instance()->display(); | 39 | s_display = App::instance()->display(); |
@@ -45,7 +45,7 @@ FbWindow::FbWindow(int screen_num, | |||
45 | int depth, | 45 | int depth, |
46 | int class_type): | 46 | int class_type): |
47 | m_screen_num(screen_num), | 47 | m_screen_num(screen_num), |
48 | m_parent(0) { | 48 | m_parent(0), m_destroy(true) { |
49 | 49 | ||
50 | create(RootWindow(FbTk::App::instance()->display(), screen_num), | 50 | create(RootWindow(FbTk::App::instance()->display(), screen_num), |
51 | x, y, width, height, eventmask, | 51 | x, y, width, height, eventmask, |
@@ -53,11 +53,12 @@ FbWindow::FbWindow(int screen_num, | |||
53 | }; | 53 | }; |
54 | 54 | ||
55 | FbWindow::FbWindow(const FbWindow &parent, | 55 | FbWindow::FbWindow(const FbWindow &parent, |
56 | int x, int y, size_t width, size_t height, long eventmask, | 56 | int x, int y, unsigned int width, unsigned int height, |
57 | long eventmask, | ||
57 | bool override_redirect, | 58 | bool override_redirect, |
58 | int depth, int class_type): | 59 | int depth, int class_type): |
59 | m_parent(&parent), | 60 | m_parent(&parent), |
60 | m_screen_num(parent.screenNumber()) { | 61 | m_screen_num(parent.screenNumber()), m_destroy(true) { |
61 | 62 | ||
62 | create(parent.window(), x, y, width, height, eventmask, | 63 | create(parent.window(), x, y, width, height, eventmask, |
63 | override_redirect, depth, class_type); | 64 | override_redirect, depth, class_type); |
@@ -65,8 +66,13 @@ FbWindow::FbWindow(const FbWindow &parent, | |||
65 | 66 | ||
66 | }; | 67 | }; |
67 | 68 | ||
69 | FbWindow::FbWindow(Window client):m_parent(0), m_window(client), | ||
70 | m_destroy(false) { // don't destroy this window | ||
71 | updateGeometry(); | ||
72 | } | ||
73 | |||
68 | FbWindow::~FbWindow() { | 74 | FbWindow::~FbWindow() { |
69 | if (m_window != 0) | 75 | if (m_window != 0 && m_destroy) |
70 | XDestroyWindow(s_display, m_window); | 76 | XDestroyWindow(s_display, m_window); |
71 | } | 77 | } |
72 | 78 | ||
@@ -82,7 +88,7 @@ void FbWindow::setBackgroundPixmap(Pixmap bg_pixmap) { | |||
82 | void FbWindow::setBorderColor(const FbTk::Color &border_color) { | 88 | void FbWindow::setBorderColor(const FbTk::Color &border_color) { |
83 | XSetWindowBorder(s_display, m_window, border_color.pixel()); | 89 | XSetWindowBorder(s_display, m_window, border_color.pixel()); |
84 | } | 90 | } |
85 | void FbWindow::setBorderWidth(size_t size) { | 91 | void FbWindow::setBorderWidth(unsigned int size) { |
86 | XSetWindowBorderWidth(s_display, m_window, size); | 92 | XSetWindowBorderWidth(s_display, m_window, size); |
87 | m_border_width = size; | 93 | m_border_width = size; |
88 | } | 94 | } |
@@ -100,7 +106,7 @@ void FbWindow::clear() { | |||
100 | } | 106 | } |
101 | 107 | ||
102 | FbWindow &FbWindow::operator = (Window win) { | 108 | FbWindow &FbWindow::operator = (Window win) { |
103 | if (m_window != 0) | 109 | if (m_window != 0 && m_destroy) |
104 | XDestroyWindow(s_display, m_window); | 110 | XDestroyWindow(s_display, m_window); |
105 | m_window = win; | 111 | m_window = win; |
106 | if (m_window != 0) | 112 | if (m_window != 0) |
@@ -127,13 +133,13 @@ void FbWindow::move(int x, int y) { | |||
127 | m_y = y; | 133 | m_y = y; |
128 | } | 134 | } |
129 | 135 | ||
130 | void FbWindow::resize(size_t width, size_t height) { | 136 | void FbWindow::resize(unsigned int width, unsigned int height) { |
131 | XResizeWindow(s_display, m_window, width, height); | 137 | XResizeWindow(s_display, m_window, width, height); |
132 | m_width = width; | 138 | m_width = width; |
133 | m_height = height; | 139 | m_height = height; |
134 | } | 140 | } |
135 | 141 | ||
136 | void FbWindow::moveResize(int x, int y, size_t width, size_t height) { | 142 | void FbWindow::moveResize(int x, int y, unsigned int width, unsigned int height) { |
137 | XMoveResizeWindow(s_display, m_window, x, y, width, height); | 143 | XMoveResizeWindow(s_display, m_window, x, y, width, height); |
138 | m_x = x; | 144 | m_x = x; |
139 | m_y = y; | 145 | m_y = y; |
@@ -152,6 +158,7 @@ void FbWindow::raise() { | |||
152 | int FbWindow::screenNumber() const { | 158 | int FbWindow::screenNumber() const { |
153 | return m_screen_num; | 159 | return m_screen_num; |
154 | } | 160 | } |
161 | |||
155 | void FbWindow::updateGeometry() { | 162 | void FbWindow::updateGeometry() { |
156 | if (m_window == 0) | 163 | if (m_window == 0) |
157 | return; | 164 | return; |
@@ -164,7 +171,7 @@ void FbWindow::updateGeometry() { | |||
164 | } | 171 | } |
165 | 172 | ||
166 | void FbWindow::create(Window parent, int x, int y, | 173 | void FbWindow::create(Window parent, int x, int y, |
167 | size_t width, size_t height, | 174 | unsigned int width, unsigned int height, |
168 | long eventmask, bool override_redirect, | 175 | long eventmask, bool override_redirect, |
169 | int depth, int class_type) { | 176 | int depth, int class_type) { |
170 | 177 | ||
diff --git a/src/FbTk/Font.hh b/src/FbTk/Font.hh index a120539..8ecb5ce 100644 --- a/src/FbTk/Font.hh +++ b/src/FbTk/Font.hh | |||
@@ -19,7 +19,7 @@ | |||
19 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER | 19 | // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER |
20 | // DEALINGS IN THE SOFTWARE. | 20 | // DEALINGS IN THE SOFTWARE. |
21 | 21 | ||
22 | //$Id: Font.hh,v 1.3 2002/12/08 18:37:08 fluxgen Exp $ | 22 | //$Id: Font.hh,v 1.4 2003/04/14 12:07:03 fluxgen Exp $ |
23 | 23 | ||
24 | #ifndef FBTK_FONT_HH | 24 | #ifndef FBTK_FONT_HH |
25 | #define FBTK_FONT_HH | 25 | #define FBTK_FONT_HH |
@@ -64,7 +64,8 @@ public: | |||
64 | int ascent() const; | 64 | int ascent() const; |
65 | int descent() const; | 65 | int descent() const; |
66 | /** | 66 | /** |
67 | Rotate font in any angle (currently only 90 degrees supported and just XFont implementation) | 67 | Rotate font in any angle |
68 | (currently only 90 degrees supported and just XFont implementation) | ||
68 | */ | 69 | */ |
69 | void rotate(float angle); | 70 | void rotate(float angle); |
70 | 71 | ||
@@ -79,7 +80,9 @@ public: | |||
79 | @param y position | 80 | @param y position |
80 | @param rotate if the text should be drawn rotated (if it's rotated before) | 81 | @param rotate if the text should be drawn rotated (if it's rotated before) |
81 | */ | 82 | */ |
82 | void drawText(Drawable w, int screen, GC gc, const char *text, size_t len, int x, int y, bool rotate=true) const; | 83 | void drawText(Drawable w, int screen, GC gc, |
84 | const char *text, size_t len, | ||
85 | int x, int y, bool rotate=true) const; | ||
83 | bool isAntialias() const { return m_antialias; } | 86 | bool isAntialias() const { return m_antialias; } |
84 | /// @return true if the font is rotated, else false | 87 | /// @return true if the font is rotated, else false |
85 | bool isRotated() const { return m_rotated; } | 88 | bool isRotated() const { return m_rotated; } |