From 7815e2b30ec64e4b33f8aeca44e264f674a9043e Mon Sep 17 00:00:00 2001 From: fluxgen Date: Fri, 25 Apr 2003 17:32:21 +0000 Subject: fixed simple drawable functions --- src/FbTk/FbWindow.cc | 55 +++++++++++++++++++++++++++++++++++++++++++++++++++- src/FbTk/FbWindow.hh | 14 ++++++++++++- 2 files changed, 67 insertions(+), 2 deletions(-) diff --git a/src/FbTk/FbWindow.cc b/src/FbTk/FbWindow.cc index 1eabd69..f0ddaad 100644 --- a/src/FbTk/FbWindow.cc +++ b/src/FbTk/FbWindow.cc @@ -19,7 +19,7 @@ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: FbWindow.cc,v 1.10 2003/04/17 14:16:20 fluxgen Exp $ +// $Id: FbWindow.cc,v 1.11 2003/04/25 17:32:21 fluxgen Exp $ #include "FbWindow.hh" #include "EventManager.hh" @@ -163,6 +163,59 @@ void FbWindow::raise() { XRaiseWindow(s_display, m_window); } +void FbWindow::copyArea(Drawable src, GC gc, + int src_x, int src_y, + int dest_x, int dest_y, + unsigned int width, unsigned int height) { + if (window() == 0 || src == 0 || gc == 0) + return; + XCopyArea(s_display, + src, window(), gc, + src_x, src_y, + dest_x, dest_y, + width, height); +} + +void FbWindow::fillRectangle(GC gc, int x, int y, + unsigned int width, unsigned int height) { + if (window() == 0 || gc == 0) + return; + XFillRectangle(s_display, + window(), gc, + x, y, + width, height); +} + +void FbWindow::drawRectangle(GC gc, int x, int y, + unsigned int width, unsigned int height) { + if (window() == 0 || gc == 0) + return; + XDrawRectangle(s_display, + window(), gc, + x, y, + width, height); +} + +void FbWindow::fillPolygon(GC gc, XPoint *points, int npoints, + int shape, int mode) { + if (window() == 0 || gc == 0 || points == 0 || npoints == 0) + return; + XFillPolygon(s_display, + window(), gc, points, npoints, + shape, mode); +} + +void FbWindow::drawLine(GC gc, int start_x, int start_y, + int end_x, int end_y) { + if (window() == 0 || gc == 0) + return; + XDrawLine(s_display, + window(), + gc, + start_x, start_y, + end_x, end_y); +} + int FbWindow::screenNumber() const { return m_screen_num; } diff --git a/src/FbTk/FbWindow.hh b/src/FbTk/FbWindow.hh index 186ed15..d8ed7a9 100644 --- a/src/FbTk/FbWindow.hh +++ b/src/FbTk/FbWindow.hh @@ -19,7 +19,7 @@ // FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER // DEALINGS IN THE SOFTWARE. -// $Id: FbWindow.hh,v 1.10 2003/04/16 16:01:38 fluxgen Exp $ +// $Id: FbWindow.hh,v 1.11 2003/04/25 17:31:38 fluxgen Exp $ #ifndef FBTK_FBWINDOW_HH #define FBTK_FBWINDOW_HH @@ -72,6 +72,18 @@ public: virtual void lower(); virtual void raise(); + void copyArea(Drawable src, GC gc, + int src_x, int src_y, + int dest_x, int dest_y, + unsigned int width, unsigned int height); + void fillRectangle(GC gc, int x, int y, + unsigned int width, unsigned int height); + void drawRectangle(GC gc, int x, int y, + unsigned int width, unsigned int height); + void fillPolygon(GC gc, XPoint *points, int npoints, + int shape, int mode); + void drawLine(GC gc, int start_x, int start_y, + int end_x, int end_y); const FbWindow *parent() const { return m_parent; } Window window() const { return m_window; } -- cgit v0.11.2