summaryrefslogtreecommitdiffstats
path: root/os-plugins/plugins/vmchooser/src/fltk-2/include/fltk/draw.h
diff options
context:
space:
mode:
Diffstat (limited to 'os-plugins/plugins/vmchooser/src/fltk-2/include/fltk/draw.h')
-rw-r--r--os-plugins/plugins/vmchooser/src/fltk-2/include/fltk/draw.h232
1 files changed, 232 insertions, 0 deletions
diff --git a/os-plugins/plugins/vmchooser/src/fltk-2/include/fltk/draw.h b/os-plugins/plugins/vmchooser/src/fltk-2/include/fltk/draw.h
new file mode 100644
index 00000000..5eadfcd2
--- /dev/null
+++ b/os-plugins/plugins/vmchooser/src/fltk-2/include/fltk/draw.h
@@ -0,0 +1,232 @@
+// "$Id: draw.h 5939 2007-08-02 14:19:28Z spitzak $"
+//
+// Copyright 1998-2006 by Bill Spitzak and others.
+//
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Library General Public
+// License as published by the Free Software Foundation; either
+// version 2 of the License, or (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+// Library General Public License for more details.
+//
+// You should have received a copy of the GNU Library General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
+// USA.
+//
+// Please report all bugs and problems to "fltk-bugs@fltk.org".
+
+/*! \file
+
+ The FLTK drawing library, used by all widgets to draw themselves.
+
+ These functions can only be called when FLTK is setup to draw
+ things. This is only true:
+ - Inside the Widget::draw() virtual function.
+ - Inside the Symbol::draw() virtual function.
+ - After calling Widget::make_current(), before calling wait() or flush().
+ Calling the drawing functions at other times produces undefined results,
+ including crashing.
+
+*/
+
+#ifndef fltk_draw_h
+#define fltk_draw_h
+
+#include "Flags.h" // for alignment values
+#include "Color.h"
+#include "Rectangle.h"
+#include "PixelType.h"
+
+namespace fltk {
+
+struct Font;
+class Style;
+
+class FL_API GSave {
+ void* data[4]; // hopefully big enough for everybody...
+ public:
+ GSave();
+ ~GSave();
+};
+
+/// \name Transformation
+//@{
+FL_API void push_matrix();
+FL_API void pop_matrix();
+FL_API void scale(float x, float y);
+FL_API void scale(float x);
+FL_API void translate(float x, float y);
+FL_API void translate(int x, int y);
+FL_API void rotate(float d);
+FL_API void concat(float, float, float, float, float, float);
+FL_API void load_identity();
+
+// get and use transformed positions:
+FL_API void transform(float& x, float& y);
+FL_API void transform_distance(float& x, float& y);
+FL_API void transform(int& x, int& y);
+FL_API void transform(const Rectangle& from, Rectangle& to);
+FL_API void transform(int& x, int& y, int& w, int& h);
+//@}
+
+/// \name Clipping
+//@{
+FL_API void push_clip(const Rectangle&);
+//! Same as push_clip(Rectangle(x,y,w,h)) but faster:
+FL_API void push_clip(int X,int Y, int W, int H);
+FL_API void clipout(const Rectangle&);
+FL_API void pop_clip();
+FL_API void push_no_clip();
+FL_API bool not_clipped(const Rectangle&);
+FL_API int intersect_with_clip(Rectangle&);
+//@}
+
+FL_API void setcolor(Color);
+FL_API void setcolor_alpha(Color, float alpha);
+extern FL_API Color current_color_;
+inline Color getcolor() {return current_color_;}
+
+extern FL_API Color current_bgcolor_;
+inline void setbgcolor(Color c) {current_bgcolor_ = c;}
+inline Color getbgcolor() {return current_bgcolor_;}
+
+extern FL_API const Style* drawstyle_;
+void FL_API drawstyle(const Style* s, Flags);
+inline const Style* drawstyle() {return drawstyle_;}
+
+extern FL_API Flags drawflags_;
+inline void setdrawflags(Flags f) {drawflags_ = f;}
+inline Flags drawflags() {return drawflags_;}
+inline Flags drawflags(Flags f) {return drawflags_ & f;}
+
+// line type:
+FL_API void line_style(int, float width=0, const char* dashes=0);
+enum {
+ SOLID = 0,
+ DASH = 1,
+ DOT = 2,
+ DASHDOT = 3,
+ DASHDOTDOT = 4,
+
+ CAP_FLAT = 0x100,
+ CAP_ROUND = 0x200,
+ CAP_SQUARE = 0x300,
+
+ JOIN_MITER = 0x1000,
+ JOIN_ROUND = 0x2000,
+ JOIN_BEVEL = 0x3000
+};
+extern FL_API int line_style_;
+inline FL_API int line_style() {return line_style_;}
+extern FL_API float line_width_;
+inline FL_API float line_width() {return line_width_;}
+extern FL_API const char* line_dashes_;
+inline FL_API const char* line_dashes() {return line_dashes_;}
+
+/// \name Path construction
+//@{
+FL_API void newpath();
+FL_API void addvertex(float x, float y);
+FL_API void addvertex(int x, int y);
+FL_API void addvertices(int n, const float v[][2]);
+FL_API void addvertices(int n, const int v[][2]);
+FL_API void addvertices_transformed(int n, const float v[][2]);
+FL_API void addcurve(float,float, float,float, float,float, float,float);
+FL_API void addarc(float x,float y,float w,float h, float a1, float a2);
+FL_API void addpie(const Rectangle& r, float a, float a2);
+FL_API void addchord(const Rectangle& r,float a,float a2);
+FL_API void closepath();
+//@}
+
+/// \name Shapes and lines
+//@{
+FL_API void strokepath();
+FL_API void fillpath();
+FL_API void fillstrokepath(Color);
+
+FL_API void fillrect(int, int, int, int);
+inline void fillrect(const Rectangle& r) {fillrect(r.x(),r.y(),r.w(),r.h());}
+FL_API void strokerect(int, int, int, int);
+inline void strokerect(const Rectangle& r) {strokerect(r.x(),r.y(),r.w(),r.h());}
+FL_API void drawline(int x0, int y0, int x1, int y1);
+FL_API void drawline(float x0, float y0, float x1, float y1);
+FL_API void drawpoint(int x, int y);
+FL_API void drawpoint(float x, float y);
+//@}
+
+/// \name Text
+//@{
+FL_API void setfont(Font*, float size);
+FL_API void setfont(const char*, float size);
+FL_API void setfont(const char*, int attributes, float size);
+
+// change the encoding used to draw bytes (depreciated)
+extern FL_API const char* encoding_;
+inline const char* get_encoding() {return encoding_;}
+FL_API void set_encoding(const char*);
+
+// information you can get about the current font+size+encoding:
+extern FL_API Font* current_font_;
+extern FL_API float current_size_; // should be 2x2 transformation matrix
+inline Font* getfont() {return current_font_;}
+inline float getsize() {return current_size_;}
+
+// measure things in the current font:
+FL_API float getwidth(const char*);
+FL_API float getwidth(const char*, int length);
+FL_API float getascent();
+FL_API float getdescent();
+
+// draw using current font:
+FL_API void drawtext_transformed(const char*, int n, float x, float y);
+FL_API void drawtext(const char*, float x, float y);
+FL_API void drawtext(const char*, int length, float x, float y);
+
+// the label text formatter:
+FL_API void measure(const char*, int& w, int& h, Flags = 0);
+FL_API void measure(float (*getwidth)(const char*, int),const char*, float& w, float& h, Flags = 0);
+FL_API void drawtext(const char*, const Rectangle&, Flags);
+FL_API void drawtext(void (*textfunction)(const char*,int,float,float),
+ float (*getwidth)(const char*, int),
+ const char* str, const Rectangle& r, Flags flags);
+
+// set where \t characters go in label text formatter:
+extern FL_API const int* column_widths_;
+inline const int* column_widths() {return column_widths_;}
+inline void column_widths(const int* i) {column_widths_ = i;}
+// see also Symbol.h for @-sign commands
+//@}
+
+/// \name Images
+//@{
+FL_API void drawimage(const uchar*, PixelType, const Rectangle&);
+FL_API void drawimage(const uchar*, PixelType, const Rectangle&, int linedelta);
+
+typedef const uchar* (*DrawImageCallback)(void* data, int x, int y, int w, uchar* buffer);
+FL_API void drawimage(DrawImageCallback, void*, PixelType, const Rectangle&);
+
+FL_API uchar *readimage(uchar *p, PixelType, const Rectangle&);
+FL_API uchar *readimage(uchar *p, PixelType, const Rectangle&, int linedelta);
+
+FL_API void scrollrect(const Rectangle&, int dx, int dy,
+ void (*draw_area)(void*, const Rectangle&), void*);
+//@}
+
+#ifndef DOXYGEN /* depreciated: */
+FL_API void drawframe(const char* s, int x, int y, int w, int h);
+FL_API void drawframe2(const char* s, int x, int y, int w, int h);
+FL_API void overlay_rect(int,int,int,int);
+FL_API void overlay_clear();
+#endif
+
+}
+
+#endif
+
+//
+// End of "$Id: draw.h 5939 2007-08-02 14:19:28Z spitzak $".
+//