]> git.saurik.com Git - wxWidgets.git/blobdiff - include/wx/os2/bitmap.h
added wxprec.h
[wxWidgets.git] / include / wx / os2 / bitmap.h
index baacd60aa824cc23c1539fc2b97fa9b38d10ce34..d7e9c0c376cc4469552d9e4df0a49dcd9ad02d44 100644 (file)
@@ -29,6 +29,7 @@ class WXDLLEXPORT wxIcon;
 class WXDLLEXPORT wxMask;
 class WXDLLEXPORT wxCursor;
 class WXDLLEXPORT wxControl;
 class WXDLLEXPORT wxMask;
 class WXDLLEXPORT wxCursor;
 class WXDLLEXPORT wxControl;
+class WXDLLEXPORT wxImage;
 
 // ----------------------------------------------------------------------------
 // Bitmap data
 
 // ----------------------------------------------------------------------------
 // Bitmap data
@@ -73,7 +74,7 @@ public:
 
     // Copy constructors
     inline wxBitmap(const wxBitmap& rBitmap)
 
     // Copy constructors
     inline wxBitmap(const wxBitmap& rBitmap)
-      { Init(); Ref(rBitmap); }
+      { Init(); Ref(rBitmap); SetHandle(rBitmap.GetHandle()); }
 
     // Initialize with raw data
     wxBitmap( const char bits[]
 
     // Initialize with raw data
     wxBitmap( const char bits[]
@@ -83,14 +84,19 @@ public:
             );
 
     // Initialize with XPM data
             );
 
     // Initialize with XPM data
-    wxBitmap(const char** ppData);
-    wxBitmap(char** ppData);
+    wxBitmap(const char** ppData) { CreateFromXpm(ppData); }
+    wxBitmap(char** ppData) { CreateFromXpm((const char**)ppData); }
 
 
-    // Load a file or resource
-    wxBitmap( const wxString& rName
+    // Load a resource
+    wxBitmap( int             nId
              ,long            lType = wxBITMAP_TYPE_BMP_RESOURCE
             );
 
              ,long            lType = wxBITMAP_TYPE_BMP_RESOURCE
             );
 
+    // For compatiability with other ports, under OS/2 does same as default ctor
+    inline wxBitmap( const wxString& WXUNUSED(rFilename)
+                    ,long            WXUNUSED(lType)
+                   )
+    { Init(); }
     // New constructor for generalised creation from data
     wxBitmap( void* pData
              ,long  lType
     // New constructor for generalised creation from data
     wxBitmap( void* pData
              ,long  lType
@@ -105,6 +111,9 @@ public:
              ,int nDepth = -1
             );
 
              ,int nDepth = -1
             );
 
+    wxBitmap( const wxImage& image, int depth = -1 )
+                         { (void)CreateFromImage(image, depth); }
+
     // we must have this, otherwise icons are silently copied into bitmaps using
     // the copy ctor but the resulting bitmap is invalid!
     inline wxBitmap(const wxIcon& rIcon)
     // we must have this, otherwise icons are silently copied into bitmaps using
     // the copy ctor but the resulting bitmap is invalid!
     inline wxBitmap(const wxIcon& rIcon)
@@ -132,6 +141,8 @@ public:
 
     virtual ~wxBitmap();
 
 
     virtual ~wxBitmap();
 
+    wxImage ConvertToImage() const;
+
     // get the given part of bitmap
     wxBitmap GetSubBitmap(const wxRect& rRect) const;
 
     // get the given part of bitmap
     wxBitmap GetSubBitmap(const wxRect& rRect) const;
 
@@ -151,7 +162,7 @@ public:
                         ,int   nHeight
                         ,int   nDepth = 1
                        );
                         ,int   nHeight
                         ,int   nDepth = 1
                        );
-    virtual bool LoadFile( const wxString& rName
+    virtual bool LoadFile( int             nId
                           ,long            lType = wxBITMAP_TYPE_BMP_RESOURCE
                          );
     virtual bool SaveFile( const wxString&  rName
                           ,long            lType = wxBITMAP_TYPE_BMP_RESOURCE
                          );
     virtual bool SaveFile( const wxString&  rName
@@ -177,10 +188,10 @@ public:
 
     void SetMask(wxMask* pMask) ;
 
 
     void SetMask(wxMask* pMask) ;
 
-    inline bool operator==(const wxBitmap& rBitmap)
+    inline bool operator==(const wxBitmap& rBitmap) const
       { return m_refData == rBitmap.m_refData; }
 
       { return m_refData == rBitmap.m_refData; }
 
-    inline bool operator!=(const wxBitmap& rBitmap)
+    inline bool operator!=(const wxBitmap& rBitmap) const
       { return m_refData != rBitmap.m_refData; }
 
 #if WXWIN_COMPATIBILITY_2
       { return m_refData != rBitmap.m_refData; }
 
 #if WXWIN_COMPATIBILITY_2
@@ -210,13 +221,11 @@ public:
     inline wxDC* GetSelectedInto() const
       { return (GetBitmapData() ? GetBitmapData()->m_pSelectedInto : (wxDC*) NULL); }
 
     inline wxDC* GetSelectedInto() const
       { return (GetBitmapData() ? GetBitmapData()->m_pSelectedInto : (wxDC*) NULL); }
 
+    inline bool IsMono(void) const { return m_bIsMono; }
+
     // An OS/2 version that probably doesn't do anything like the msw version
     wxBitmap GetBitmapForDC(wxDC& rDc) const;
 
     // An OS/2 version that probably doesn't do anything like the msw version
     wxBitmap GetBitmapForDC(wxDC& rDc) const;
 
-//    inline LONG GetId() const
-//      { return (GetBitmapData() ? GetBitmapData()->m_lId : 0L); }
-
-
 protected:
     // common part of all ctors
     void Init();
 protected:
     // common part of all ctors
     void Init();
@@ -225,11 +234,13 @@ protected:
         { return new wxBitmapRefData; }
 
     // creates the bitmap from XPM data, supposed to be called from ctor
         { return new wxBitmapRefData; }
 
     // creates the bitmap from XPM data, supposed to be called from ctor
-    bool CreateFromXpm(const char **bits);
+    bool CreateFromXpm(const char** ppData);
+    bool CreateFromImage(const wxImage& image, int depth);
 
 private:
     bool CopyFromIconOrCursor(const wxGDIImage& rIcon);
 
 
 private:
     bool CopyFromIconOrCursor(const wxGDIImage& rIcon);
 
+    bool                            m_bIsMono;
     DECLARE_DYNAMIC_CLASS(wxBitmap)
 }; // end of CLASS wxBitmap
 
     DECLARE_DYNAMIC_CLASS(wxBitmap)
 }; // end of CLASS wxBitmap
 
@@ -312,8 +323,7 @@ public:
                         ,int       nDepth = 1
                        );
     virtual bool LoadFile( wxBitmap*       pBitmap
                         ,int       nDepth = 1
                        );
     virtual bool LoadFile( wxBitmap*       pBitmap
-                          ,const wxString& rName
-                          ,HPS             hPs
+                          ,int             nId
                           ,long            lFlags
                           ,int             nDesiredWidth
                           ,int             nDesiredHeight
                           ,long            lFlags
                           ,int             nDesiredWidth
                           ,int             nDesiredHeight
@@ -332,8 +342,7 @@ public:
                         ,int         nDepth = 1
                        );
     virtual bool Load( wxGDIImage*     pImage
                         ,int         nDepth = 1
                        );
     virtual bool Load( wxGDIImage*     pImage
-                      ,const wxString& rName
-                      ,HPS             hPs
+                      ,int             nId
                       ,long            lFlags
                       ,int             nDesiredWidth
                       ,int             nDesiredHeight
                       ,long            lFlags
                       ,int             nDesiredWidth
                       ,int             nDesiredHeight
@@ -343,6 +352,14 @@ public:
                       ,int             lType
                      );
 private:
                       ,int             lType
                      );
 private:
+    inline virtual bool Load( wxGDIImage*     pImage
+                             ,const wxString& rName
+                             ,HPS             hPs
+                             ,long            lFlags
+                             ,int             nDesiredWidth
+                             ,int             nDesiredHeight
+                            )
+    { return FALSE; }
     DECLARE_DYNAMIC_CLASS(wxBitmapHandler)
 }; // end of CLASS wxBitmapHandler
 
     DECLARE_DYNAMIC_CLASS(wxBitmapHandler)
 }; // end of CLASS wxBitmapHandler