Improve wxQT cursor implementation, thanks @seandepagnier

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@77911 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Mariano Reingart
2014-09-29 02:55:33 +00:00
parent fc18330137
commit b56a3f5235
3 changed files with 28 additions and 23 deletions

View File

@@ -19,14 +19,16 @@ class WXDLLIMPEXP_CORE wxCursor : public wxGDIObject
public: public:
wxCursor() { } wxCursor() { }
wxCursor( const wxCursor & ); wxCursor( const wxCursor & );
wxCursor( const wxImage& image ) { InitFromImage(image); }
wxCursor( const wxString& name,
wxBitmapType type = wxCURSOR_DEFAULT_TYPE,
int hotSpotX = 0, int hotSpotY = 0 );
wxCursor(wxStockCursor id) { InitFromStock(id); } wxCursor(wxStockCursor id) { InitFromStock(id); }
#if WXWIN_COMPATIBILITY_2_8 #if WXWIN_COMPATIBILITY_2_8
wxCursor(int id) { InitFromStock((wxStockCursor)id); } wxCursor(int id) { InitFromStock((wxStockCursor)id); }
#endif #endif
#if wxUSE_IMAGE
wxCursor( const wxImage & image );
wxCursor(const wxString& name,
wxBitmapType type = wxCURSOR_DEFAULT_TYPE,
int hotSpotX = 0, int hotSpotY = 0);
#endif
QCursor m_qtCursor; QCursor m_qtCursor;

View File

@@ -8,6 +8,7 @@
#ifndef _WX_QT_FONT_H_ #ifndef _WX_QT_FONT_H_
#define _WX_QT_FONT_H_ #define _WX_QT_FONT_H_
class QFont;
class WXDLLIMPEXP_CORE wxFont : public wxFontBase class WXDLLIMPEXP_CORE wxFont : public wxFontBase
{ {
public: public:

View File

@@ -43,28 +43,30 @@ wxCursor::wxCursor( const wxCursor &cursor )
m_qtCursor = cursor.m_qtCursor; m_qtCursor = cursor.m_qtCursor;
} }
wxCursor::wxCursor(const wxString& filename, #if wxUSE_IMAGE
wxBitmapType kind, wxCursor::wxCursor(const wxString& cursor_file,
int hotSpotX, wxBitmapType type,
int hotSpotY) int hotSpotX, int hotSpotY)
{ {
switch ( kind ) wxImage img;
{ if (!img.LoadFile(cursor_file, type))
case wxBITMAP_TYPE_ICO: return;
m_qtCursor = QCursor(
*wxBitmap(filename, wxBITMAP_TYPE_ICO).GetHandle(), // eventually set the hotspot:
hotSpotX, hotSpotY ); if (!img.HasOption(wxIMAGE_OPTION_CUR_HOTSPOT_X))
break; img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_X, hotSpotX);
case wxBITMAP_TYPE_BMP: if (!img.HasOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y))
m_qtCursor = QCursor( img.SetOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y, hotSpotY);
*wxBitmap(filename, wxBITMAP_TYPE_ICO).GetHandle(),
hotSpotX, hotSpotY ); InitFromImage(img);
break;
default:
wxLogError( wxT("unknown cursor resource type '%d'"), kind );
}
} }
wxCursor::wxCursor(const wxImage& img)
{
InitFromImage(img);
}
#endif
void wxCursor::InitFromStock( wxStockCursor cursorId ) void wxCursor::InitFromStock( wxStockCursor cursorId )
{ {
Qt::CursorShape qt_cur; Qt::CursorShape qt_cur;