Bitmap and icon updates

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@9205 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
David Webster
2001-01-29 05:46:06 +00:00
parent a559d70856
commit 8bb6da4ae6
5 changed files with 53 additions and 21 deletions

View File

@@ -54,12 +54,12 @@ public:
// ------------ // ------------
wxDC* m_pSelectedInto; wxDC* m_pSelectedInto;
HPS m_hPresentationSpace;
LONG m_lId;
// optional mask for transparent drawing //
// Optional mask for transparent drawing
//
wxMask* m_pBitmapMask; wxMask* m_pBitmapMask;
}; }; // end of CLASS wxBitmapRefData
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// wxBitmap: a mono or colour bitmap // wxBitmap: a mono or colour bitmap
@@ -83,9 +83,8 @@ public:
); );
// Initialize with XPM data // Initialize with XPM data
wxBitmap( char** ppData wxBitmap(const char** ppData);
,wxControl* pAnItem = NULL wxBitmap(char** ppData);
);
// Load a file or resource // Load a file or resource
wxBitmap( const wxString& rName wxBitmap( const wxString& rName
@@ -214,8 +213,8 @@ public:
// An OS/2 version that probably doesn't do anything like the msw version // An OS/2 version that probably doesn't do anything like the msw version
wxBitmap GetBitmapForDC(wxDC& rDc) const; wxBitmap GetBitmapForDC(wxDC& rDc) const;
inline LONG GetId() const // inline LONG GetId() const
{ return (GetBitmapData() ? GetBitmapData()->m_lId : 0L); } // { return (GetBitmapData() ? GetBitmapData()->m_lId : 0L); }
protected: protected:
@@ -281,10 +280,7 @@ public:
protected: protected:
WXHBITMAP m_hMaskBitmap; WXHBITMAP m_hMaskBitmap;
DECLARE_DYNAMIC_CLASS(wxMask) DECLARE_DYNAMIC_CLASS(wxMask)
private: }; // end of CLASS wxMask
HDC m_hDc;
HPS m_hPs;
}; // end of wxMask
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// wxBitmapHandler is a class which knows how to load/save bitmaps to/from file // wxBitmapHandler is a class which knows how to load/save bitmaps to/from file
@@ -348,7 +344,7 @@ public:
); );
private: private:
DECLARE_DYNAMIC_CLASS(wxBitmapHandler) DECLARE_DYNAMIC_CLASS(wxBitmapHandler)
}; // end of wxBitmapHandler }; // end of CLASS wxBitmapHandler
#endif #endif
// _WX_BITMAP_H_ // _WX_BITMAP_H_

View File

@@ -87,6 +87,7 @@ public:
bool m_bOk; bool m_bOk;
#endif // WXWIN_COMPATIBILITY_2 #endif // WXWIN_COMPATIBILITY_2
UINT m_uId;
}; };
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
@@ -212,6 +213,24 @@ public:
} }
void SetSize(const wxSize& rSize) { SetSize(rSize.x, rSize.y); } void SetSize(const wxSize& rSize) { SetSize(rSize.x, rSize.y); }
UINT GetId(void) const
{
wxGDIImageRefData* pData;
pData = GetGDIImageData();
if (!pData)
return 0;
else
return pData->m_uId;
} // end of WxWinGdi_CGDIImage::GetId
void SetId(UINT uId)
{
wxGDIImageRefData* pData;
EnsureHasData();
pData = GetGDIImageData();
pData->m_uId = uId;
}
// forward some of base class virtuals to wxGDIImageRefData // forward some of base class virtuals to wxGDIImageRefData
bool FreeResource(bool bForce = FALSE); bool FreeResource(bool bForce = FALSE);
virtual WXHANDLE GetResourceHandle(); virtual WXHANDLE GetResourceHandle();

View File

@@ -59,6 +59,8 @@ public:
,int nWidth ,int nWidth
,int nHeight ,int nHeight
); );
inline wxIcon(const char** ppData) { CreateIconFromXpm(ppData); }
inline wxIcon(char** ppData) { CreateIconFromXpm((const char**)ppData); }
wxIcon( const wxString& rName wxIcon( const wxString& rName
,long lFlags = wxBITMAP_TYPE_ICO_RESOURCE ,long lFlags = wxBITMAP_TYPE_ICO_RESOURCE
,int nDesiredWidth = -1 ,int nDesiredWidth = -1
@@ -84,11 +86,13 @@ public:
inline void SetHICON(WXHICON hIcon) { SetHandle((WXHANDLE)hIcon); } inline void SetHICON(WXHICON hIcon) { SetHandle((WXHANDLE)hIcon); }
inline WXHICON GetHICON() const { return (WXHICON)GetHandle(); } inline WXHICON GetHICON() const { return (WXHICON)GetHandle(); }
void CopyFromBitmap(const wxBitmap& rBmp);
protected: protected:
virtual wxGDIImageRefData* CreateData() const virtual wxGDIImageRefData* CreateData() const
{ {
return new wxIconRefData; return new wxIconRefData;
} }
void CreateIconFromXpm(const char **ppData);
private: private:
DECLARE_DYNAMIC_CLASS(wxIcon) DECLARE_DYNAMIC_CLASS(wxIcon)

View File

@@ -143,6 +143,9 @@ extern LONG APIENTRY wxSubclassedGenericControlProc(WXHWND hWnd, WXDWORD message
#define GetHdc() ((HDC)GetHDC()) #define GetHdc() ((HDC)GetHDC())
#define GetHdcOf(dc) ((HDC)(dc).GetHDC()) #define GetHdcOf(dc) ((HDC)(dc).GetHDC())
#define GetHbitmap() ((HBITMAP)GetHBITMAP())
#define GetHbitmapOf(bmp) ((HBITMAP)(bmp).GetHBITMAP())
#define GetHicon() ((HICON)GetHICON()) #define GetHicon() ((HICON)GetHICON())
#define GetHiconOf(icon) ((HICON)(icon).GetHICON()) #define GetHiconOf(icon) ((HICON)(icon).GetHICON())
@@ -152,6 +155,16 @@ extern LONG APIENTRY wxSubclassedGenericControlProc(WXHWND hWnd, WXDWORD message
#define GetHmenu() ((HMENU)GetHMenu()) #define GetHmenu() ((HMENU)GetHMenu())
#define GetHmenuOf(menu) ((HMENU)menu->GetHMenu()) #define GetHmenuOf(menu) ((HMENU)menu->GetHMenu())
#define GetHcursor() ((HCURSOR)GetHCURSOR())
#define GetHcursorOf(cursor) ((HCURSOR)(cursor).GetHCURSOR())
#define GetHfont() ((HFONT)GetHFONT())
#define GetHfontOf(font) ((HFONT)(font).GetHFONT())
// OS/2 convention of the mask is opposed to the wxWindows one, so we need
// to invert the mask each time we pass one/get one to/from Windows
extern HBITMAP wxInvertMask(HBITMAP hbmpMask, int w = 0, int h = 0);
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------
// global data // global data
// --------------------------------------------------------------------------- // ---------------------------------------------------------------------------

View File

@@ -78,13 +78,13 @@ const wxEventType wxEVT_TASKBAR_RIGHT_UP = wxEVT_FIRST + 1554;
const wxEventType wxEVT_TASKBAR_LEFT_DCLICK = wxEVT_FIRST + 1555; const wxEventType wxEVT_TASKBAR_LEFT_DCLICK = wxEVT_FIRST + 1555;
const wxEventType wxEVT_TASKBAR_RIGHT_DCLICK = wxEVT_FIRST + 1556; const wxEventType wxEVT_TASKBAR_RIGHT_DCLICK = wxEVT_FIRST + 1556;
#define EVT_TASKBAR_MOVE(fn) { wxEVT_TASKBAR_MOVE, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL }, #define EVT_TASKBAR_MOVE(fn) wxEventTableEntry(wxEVT_TASKBAR_MOVE, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL),
#define EVT_TASKBAR_LEFT_DOWN(fn) { wxEVT_TASKBAR_LEFT_DOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL }, #define EVT_TASKBAR_LEFT_DOWN(fn) wxEventTableEntry(wxEVT_TASKBAR_LEFT_DOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL),
#define EVT_TASKBAR_LEFT_UP(fn) { wxEVT_TASKBAR_LEFT_UP, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL }, #define EVT_TASKBAR_LEFT_UP(fn) wxEventTableEntry(wxEVT_TASKBAR_LEFT_UP, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL),
#define EVT_TASKBAR_RIGHT_DOWN(fn) { wxEVT_TASKBAR_RIGHT_DOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL }, #define EVT_TASKBAR_RIGHT_DOWN(fn) wxEventTableEntry(wxEVT_TASKBAR_RIGHT_DOWN, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL),
#define EVT_TASKBAR_RIGHT_UP(fn) { wxEVT_TASKBAR_RIGHT_UP, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL }, #define EVT_TASKBAR_RIGHT_UP(fn) wxEventTableEntry(wxEVT_TASKBAR_RIGHT_UP, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL),
#define EVT_TASKBAR_LEFT_DCLICK(fn) { wxEVT_TASKBAR_LEFT_DCLICK, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL }, #define EVT_TASKBAR_LEFT_DCLICK(fn) wxEventTableEntry(wxEVT_TASKBAR_LEFT_DCLICK, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL),
#define EVT_TASKBAR_RIGHT_DCLICK(fn) { wxEVT_TASKBAR_RIGHT_DCLICK, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL }, #define EVT_TASKBAR_RIGHT_DCLICK(fn) wxEventTableEntry(wxEVT_TASKBAR_RIGHT_DCLICK, -1, -1, (wxObjectEventFunction) (wxEventFunction) &fn, NULL),
#endif #endif