]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/gdicmn.h
wxTopLevelWindows is now a wxWindowList, better compatibility with the old
[wxWidgets.git] / include / wx / gdicmn.h
index b196db82ff8b7b00348a0b47ad3fe436bcaf6d15..6cb9556039609aa380cce416584254fb861aca7a 100644 (file)
@@ -9,8 +9,8 @@
 // Licence:    wxWindows licence
 /////////////////////////////////////////////////////////////////////////////
 
-#ifndef __GDICMNH__
-#define __GDICMNH__
+#ifndef _WX_GDICMNH__
+#define _WX_GDICMNH__
 
 #ifdef __GNUG__
 #pragma interface "gdicmn.h"
 #include "wx/object.h"
 #include "wx/list.h"
 #include "wx/hash.h"
+#include "wx/string.h"
 #include "wx/setup.h"
-
-#ifdef __WINDOWS__
-#include "wx/msw/colour.h"
-#elif defined(__MOTIF__)
-#include "wx/xt/colour.h"
-#elif defined(__GTK__)
-#include "wx/gtk/colour.h"
-#endif
+#include "wx/colour.h"
 
 // Standard cursors
 typedef enum {
+ wxCURSOR_NONE =  0,
  wxCURSOR_ARROW =  1,
  wxCURSOR_BULLSEYE,
  wxCURSOR_CHAR,
@@ -63,44 +58,59 @@ typedef enum {
   wxCURSOR_BASED_ARROW_UP,
   wxCURSOR_BASED_ARROW_DOWN
 #endif
-} _standard_cursors_t;
+} wxStockCursor;
 
-class WXDLLEXPORT wxSize: public wxObject
+class WXDLLEXPORT wxSize
 {
 public:
   long x;
   long y;
-  inline wxSize(void) { x = 0; y = 0; }
+  inline wxSize() { x = 0; y = 0; }
   inline wxSize(long xx, long yy) { x = xx; y = yy; }
   inline wxSize(const wxSize& sz) { x = sz.x; y = sz.y; }
   inline void operator = (const wxSize& sz) { x = sz.x; y = sz.y; }
+  inline bool operator == (const wxSize& sz) const { return (x == sz.x && y == sz.y); }
+  inline wxSize operator + (const wxSize& sz) { return wxSize(x + sz.x, y + sz.y); }
+  inline wxSize operator - (const wxSize& sz) { return wxSize(x - sz.x, y - sz.y); }
   inline void Set(long xx, long yy) { x = xx; y = yy; }
   inline long GetX() const { return x; }
   inline long GetY() const { return y; }
 };
 
 // Point
-class WXDLLEXPORT wxRealPoint: public wxObject
+class WXDLLEXPORT wxRealPoint
 {
-  DECLARE_DYNAMIC_CLASS(wxRealPoint)
  public:
   double x;
   double y;
-  inline wxRealPoint(void) { x = 0.0; y = 0.0; };
-  inline wxRealPoint(double the_x, double the_y) { x = the_x; y = the_y; };
+  inline wxRealPoint() { x = 0.0; y = 0.0; };
+  inline wxRealPoint(double _x, double _y) { x = _x; y = _y; };
+  inline wxRealPoint operator + (const wxRealPoint& pt) { return wxRealPoint(x + pt.x, y + pt.y); }
+  inline wxRealPoint operator - (const wxRealPoint& pt) { return wxRealPoint(x - pt.x, y - pt.y); }
 
   inline void operator = (const wxRealPoint& pt) { x = pt.x; y = pt.y; }
+  inline bool operator == (const wxRealPoint& pt) const { return (x == pt.x && y == pt.y); }
 };
 
-class WXDLLEXPORT wxPoint: public wxObject
+class WXDLLEXPORT wxPoint
 {
-  DECLARE_DYNAMIC_CLASS(wxPoint)
  public:
+#if defined(__WXMSW__) && !defined(__WIN32__)
+  int x;
+  int y;
+#else
   long x;
   long y;
-  inline wxPoint(void) { x = 0; y = 0; };
+#endif
+
+  inline wxPoint() { x = 0; y = 0; };
   wxPoint(long the_x, long the_y) { x = the_x; y = the_y; };
+  wxPoint(const wxPoint& pt) { x = pt.x; y = pt.y; };
+
   inline void operator = (const wxPoint& pt) { x = pt.x; y = pt.y; }
+  inline bool operator == (const wxPoint& pt) const { return (x == pt.x && y == pt.y); }
+  inline wxPoint operator + (const wxPoint& pt) { return wxPoint(x + pt.x, y + pt.y); }
+  inline wxPoint operator - (const wxPoint& pt) { return wxPoint(x - pt.x, y - pt.y); }
 };
 
 #if WXWIN_COMPATIBILITY
@@ -108,31 +118,31 @@ class WXDLLEXPORT wxPoint: public wxObject
 #define wxRectangle wxRect
 #endif
 
-class WXDLLEXPORT wxRect : public wxObject {
-    DECLARE_DYNAMIC_CLASS(wxRect)
+class WXDLLEXPORT wxRect
+{
 public:
-   wxRect(void) ;
+   wxRect() ;
    wxRect(long x, long y, long w, long h);
    wxRect(const wxPoint& topLeft, const wxPoint& bottomRight);
    wxRect(const wxPoint& pos, const wxSize& size);
    wxRect(const wxRect& rect);
 
-   inline long  GetX(void) const        { return x; }
+   inline long  GetX() const        { return x; }
    inline void SetX(long X)       { x = X; }
-   inline long  GetY(void) const        { return y; }
+   inline long  GetY() const        { return y; }
    inline void SetY(long Y)       { y = Y; }
    inline long  GetWidth() const        { return width; }
    inline void SetWidth(long w)   { width = w; }
    inline long  GetHeight() const       { return height; }
    inline void SetHeight(long h)  { height = h; }
 
-   inline wxPoint GetPosition(void) { return wxPoint(x, y); }
-   inline wxSize GetSize(void) { return wxSize(width, height); }
+   inline wxPoint GetPosition() { return wxPoint(x, y); }
+   inline wxSize GetSize() { return wxSize(width, height); }
 
-   inline long  GetLeft(void)   const { return x; }
-   inline long  GetTop(void)    const { return y; }
-   inline long  GetBottom(void) const { return y + height; }
-   inline long  GetRight(void)  const { return x + width; }
+   inline long  GetLeft()   const { return x; }
+   inline long  GetTop()    const { return y; }
+   inline long  GetBottom() const { return y + height; }
+   inline long  GetRight()  const { return x + width; }
 
    wxRect& operator = (const wxRect& rect);
    bool operator == (const wxRect& rect);
@@ -149,6 +159,7 @@ class WXDLLEXPORT wxCursor;
 class WXDLLEXPORT wxFont;
 class WXDLLEXPORT wxPalette;
 class WXDLLEXPORT wxPalette;
+class WXDLLEXPORT wxRegion;
 
 /*
  * Bitmap flags
@@ -171,6 +182,8 @@ class WXDLLEXPORT wxPalette;
 #define wxBITMAP_TYPE_GIF_RESOURCE      14
 #define wxBITMAP_TYPE_PNG               15
 #define wxBITMAP_TYPE_PNG_RESOURCE      16
+#define wxBITMAP_TYPE_JPEG              17
+#define wxBITMAP_TYPE_JPEG_RESOURCE     18
 #define wxBITMAP_TYPE_ANY               50
 
 #define wxBITMAP_TYPE_RESOURCE wxBITMAP_TYPE_BMP_RESOURCE
@@ -178,32 +191,32 @@ class WXDLLEXPORT wxPalette;
 class WXDLLEXPORT wxBitmap;
 class WXDLLEXPORT wxCursor;
 class WXDLLEXPORT wxIcon;
+class WXDLLEXPORT wxColour;
+class WXDLLEXPORT wxString;
 
 // Management of pens, brushes and fonts
 class WXDLLEXPORT wxPenList: public wxList
 {
   DECLARE_DYNAMIC_CLASS(wxPenList)
  public:
-  inline wxPenList(void)
+  inline wxPenList()
     { }
-  ~wxPenList(void);
+  ~wxPenList();
   void AddPen(wxPen *pen);
   void RemovePen(wxPen *pen);
   wxPen *FindOrCreatePen(const wxColour& colour, int width, int style);
-  wxPen *FindOrCreatePen(const wxString& colour, int width, int style);
 };
 
 class WXDLLEXPORT wxBrushList: public wxList
 {
   DECLARE_DYNAMIC_CLASS(wxBrushList)
  public:
-  inline wxBrushList(void)
+  inline wxBrushList()
     { }
-  ~wxBrushList(void);
+  ~wxBrushList();
   void AddBrush(wxBrush *brush);
   void RemoveBrush(wxBrush *brush);
   wxBrush *FindOrCreateBrush(const wxColour& colour, int style);
-  wxBrush *FindOrCreateBrush(const wxString& colour, int style);
 };
 
 WXDLLEXPORT_DATA(extern const char*) wxEmptyString;
@@ -212,9 +225,9 @@ class WXDLLEXPORT wxFontList: public wxList
 {
   DECLARE_DYNAMIC_CLASS(wxFontList)
  public:
-  inline wxFontList(void)
+  inline wxFontList()
     { }
-  ~wxFontList(void);
+  ~wxFontList();
   void AddFont(wxFont *font);
   void RemoveFont(wxFont *font);
   wxFont *FindOrCreateFont(int pointSize, int family, int style, int weight,
@@ -226,19 +239,19 @@ class WXDLLEXPORT wxColourDatabase: public wxList
   DECLARE_CLASS(wxColourDatabase)
  public:
   wxColourDatabase(int type);
-  ~wxColourDatabase(void) ;
+  ~wxColourDatabase() ;
   // Not const because it may add a name to the database
   wxColour *FindColour(const wxString& colour) ;
   wxString FindName(const wxColour& colour) const;
-  void Initialize(void);
+  void Initialize();
 };
 
 class WXDLLEXPORT wxBitmapList: public wxList
 {
   DECLARE_DYNAMIC_CLASS(wxBitmapList)
  public:
-   wxBitmapList(void);
-  ~wxBitmapList(void);
+   wxBitmapList();
+  ~wxBitmapList();
 
   void AddBitmap(wxBitmap *bitmap);
   void RemoveBitmap(wxBitmap *bitmap);
@@ -302,34 +315,58 @@ WXDLLEXPORT_DATA(extern wxCursor*)                wxHOURGLASS_CURSOR;
 WXDLLEXPORT_DATA(extern wxCursor*)             wxCROSS_CURSOR;
 
 WXDLLEXPORT_DATA(extern wxColourDatabase*)     wxTheColourDatabase;
-extern void WXDLLEXPORT wxInitializeStockObjects(void);
-extern void WXDLLEXPORT wxDeleteStockObjects(void);
+extern void WXDLLEXPORT wxInitializeStockObjects();
+extern void WXDLLEXPORT wxInitializeStockLists();
+extern void WXDLLEXPORT wxDeleteStockObjects();
+extern void WXDLLEXPORT wxDeleteStockLists();
 
-extern bool WXDLLEXPORT wxColourDisplay(void);
+extern bool WXDLLEXPORT wxColourDisplay();
 
 // Returns depth of screen
-extern int WXDLLEXPORT wxDisplayDepth(void);
+extern int WXDLLEXPORT wxDisplayDepth();
+#define wxGetDisplayDepth wxDisplayDepth
 
 extern void WXDLLEXPORT wxDisplaySize(int *width, int *height);
+extern wxSize WXDLLEXPORT wxGetDisplaySize();
 
 extern void WXDLLEXPORT wxSetCursor(const wxCursor& cursor);
 
-// Useful macro for create icons portably
+// Useful macro for creating icons portably
 
-#ifdef __WINDOWS__
-# define wxICON(X) wxIcon(X##_icon);
-#elif defined(__X__)
-# define wxICON(X) wxIcon(X##_bits, X##_width, X##_height);
+#ifdef __WXMSW__
+// Load from a resource
+# define wxICON(X) wxIcon("" #X "")
+
+#elif defined(__WXGTK__)
+// Initialize from an included XPM
+# define wxICON(X) wxIcon( (const char**) X##_xpm )
+#elif defined(__WXMOTIF__)
+// Initialize from an included XPM
+# define wxICON(X) wxIcon( X##_xpm )
 #else
-# define wxICON    wxIcon
+
+// This will usually mean something on any platform
+# define wxICON(X) wxIcon("" #X "")
 #endif
 
 /*
   Example:
-  #define wxbuild_icon "wxbuild"
-  wxIcon *icon = new wxICON(wxbuild);
+    wxIcon *icon = new wxICON(mondrian);
+  expands into:
+    wxIcon *icon = new wxIcon("mondrian"); // On wxMSW
+    wxIcon *icon = new wxIcon(mondrian_xpm);   // On wxGTK
  */
 
+class WXDLLEXPORT wxResourceCache: public wxList
+{
+public:
+    wxResourceCache() { }
+    wxResourceCache(const unsigned int keyType) : wxList(keyType) { }
+    ~wxResourceCache();
+
+private:
+    DECLARE_DYNAMIC_CLASS(wxResourceCache)
+};
+
 #endif
-    // __GDICMNH__
+    // _WX_GDICMNH__