diff options
| author | Albrecht Schlosser <albrechts.fltk@online.de> | 2017-06-12 12:35:22 +0000 |
|---|---|---|
| committer | Albrecht Schlosser <albrechts.fltk@online.de> | 2017-06-12 12:35:22 +0000 |
| commit | 60d7c4174217bd935695a442c931350cfa629c5b (patch) | |
| tree | 889c65169b70b6e0b794712f7e8d58943a1b2034 /FL | |
| parent | ac4b59abf5cf8bd32dfcaf43d4fecc8cce902715 (diff) | |
Add first version of FL/Fl_Rect.H.
This version is not yet used in existing code. It may be extended with
more methods if we find we need them.
git-svn-id: file:///fltk/svn/fltk/branches/branch-1.4@12259 ea41ed52-d2ee-0310-a9c1-e6b18d33e121
Diffstat (limited to 'FL')
| -rw-r--r-- | FL/Fl_Rect.H | 86 |
1 files changed, 86 insertions, 0 deletions
diff --git a/FL/Fl_Rect.H b/FL/Fl_Rect.H new file mode 100644 index 000000000..dc2125ebd --- /dev/null +++ b/FL/Fl_Rect.H @@ -0,0 +1,86 @@ +// +// "$Id$" +// +// Fl_Rect header file for the Fast Light Tool Kit (FLTK). +// +// Copyright 1998-2017 by Bill Spitzak and others. +// +// This library is free software. Distribution and use rights are outlined in +// the file "COPYING" which should have been included with this file. If this +// file is missing or damaged, see the license at: +// +// http://www.fltk.org/COPYING.php +// +// Please report all bugs and problems on the following page: +// +// http://www.fltk.org/str.php +// + +#ifndef Fl_Rect_H +#define Fl_Rect_H + +#include <FL/Fl_Widget.H> // for c'tor based on Fl_Widget + +/** + Rectangle with standard FLTK coordinates (X, Y, W, H). + + This may be used internally, for overloaded widget contructors and other + overloaded methods like fl_measure(), fl_text_extents(), fl_rect(), + fl_rectf(), and maybe more. +*/ + +class FL_EXPORT Fl_Rect { + + int x_; + int y_; + int w_; + int h_; + +public: + + /** The default constructor creates an empty rectangle (x = y = w = h = 0). */ + Fl_Rect() + : x_(0), y_(0), w_(0), h_(0) {} + + /** This constructor creates a rectangle with x = y = 0 and + the given width and height. */ + Fl_Rect(int W, int H) + : x_(0), y_(0), w_(W), h_(H) {} + + /** This constructor creates a rectangle with the given x,y coordinates + and the given width and height. */ + Fl_Rect(int X, int Y, int W, int H) + : x_(X), y_(Y), w_(W), h_(H) {} + + /** Copy constructor. */ + Fl_Rect (const Fl_Rect& r) + : x_(r.x()), y_(r.y()), w_(r.w()), h_(r.h()) {} + + /** This constructor creates a rectangle based a widget's position and size. */ + Fl_Rect (const Fl_Widget& widget) + : x_(widget.x()), y_(widget.y()), w_(widget.w()), h_(widget.h()) {} + + /** This constructor creates a rectangle based a widget's position and size. */ + Fl_Rect (const Fl_Widget* const widget) + : x_(widget->x()), y_(widget->y()), w_(widget->w()), h_(widget->h()) {} + + int x() const { return x_; } ///< gets the x coordinate (left edge) + int y() const { return y_; } ///< gets the y coordinate (top edge) + int w() const { return w_; } ///< gets the width + int h() const { return h_; } ///< gets the height + + int r() const { return x_ + w_; } ///< gets the right edge (x + w) + int b() const { return y_ + h_; } ///< gets the bottom edge (y + h) + + void x(int X) { x_ = X; } ///< sets the x coordinate (left edge) + void y(int Y) { y_ = Y; } ///< sets the y coordinate (top edge) + void w(int W) { w_ = W; } ///< sets the width + void h(int H) { h_ = H; } ///< sets the height + +}; // class Fl_Rect + +#endif // Fl_Rect_H + +// +// End of "$Id$". +// |
