improve cursor and color implementation in wxqt

This commit is contained in:
Sean D'Epagnier
2016-08-24 22:04:59 -04:00
committed by Vadim Zeitlin
parent 9f39eeb5e9
commit 88e134ef81
14 changed files with 141 additions and 71 deletions

View File

@@ -65,7 +65,7 @@ DECLARE_VARIANT_OBJECT_EXPORTED(wxColour,WXDLLIMPEXP_CORE)
not need the wxGDIObject machinery to handle colors, please add it to the not need the wxGDIObject machinery to handle colors, please add it to the
list of ports which do not need it. list of ports which do not need it.
*/ */
#if defined( __WXMAC__ ) || defined( __WXMSW__ ) #if defined( __WXMAC__ ) || defined( __WXMSW__ ) || defined( __WXQT__ )
#define wxCOLOUR_IS_GDIOBJECT 0 #define wxCOLOUR_IS_GDIOBJECT 0
#else #else
#define wxCOLOUR_IS_GDIOBJECT 1 #define wxCOLOUR_IS_GDIOBJECT 1

View File

@@ -10,37 +10,35 @@
#ifndef _WX_QT_COLOUR_H_ #ifndef _WX_QT_COLOUR_H_
#define _WX_QT_COLOUR_H_ #define _WX_QT_COLOUR_H_
#include <QtGui/QColor> class QColor;
class WXDLLIMPEXP_CORE wxColour : public wxColourBase class WXDLLIMPEXP_CORE wxColour : public wxColourBase
{ {
public: public:
DEFINE_STD_WXCOLOUR_CONSTRUCTORS DEFINE_STD_WXCOLOUR_CONSTRUCTORS
wxColour(const QColor& color) : m_qtColor(color) {} wxColour(const QColor& color);
virtual bool IsOk() const { return m_qtColor.isValid(); } virtual bool IsOk() const;
unsigned char Red() const { return m_qtColor.red(); } unsigned char Red() const;
unsigned char Green() const { return m_qtColor.green(); } unsigned char Green() const;
unsigned char Blue() const { return m_qtColor.blue(); } unsigned char Blue() const;
unsigned char Alpha() const { return m_qtColor.alpha(); } unsigned char Alpha() const;
bool operator==(const wxColour& color) const bool operator==(const wxColour& color) const;
{ return m_qtColor == color.m_qtColor; } bool operator!=(const wxColour& color) const;
bool operator!=(const wxColour& color) const
{ return m_qtColor != color.m_qtColor; }
int GetPixel() const; int GetPixel() const;
QColor GetHandle() const { return m_qtColor; }; QColor GetQColor() const;
protected: protected:
virtual void void Init();
InitRGBA(ChannelType r, ChannelType g, ChannelType b, ChannelType a) virtual void InitRGBA(ChannelType r, ChannelType g, ChannelType b, ChannelType a);
{ m_qtColor.setRgb(r, g, b, a); }
private: private:
QColor m_qtColor; unsigned char red, green, blue, alpha;
bool valid;
wxDECLARE_DYNAMIC_CLASS(wxColour); wxDECLARE_DYNAMIC_CLASS(wxColour);
}; };

View File

@@ -16,7 +16,6 @@ class WXDLLIMPEXP_CORE wxCursor : public wxCursorBase
{ {
public: public:
wxCursor() { } wxCursor() { }
wxCursor( const wxCursor & );
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); }
@@ -28,8 +27,9 @@ public:
int hotSpotX = 0, int hotSpotY = 0); int hotSpotX = 0, int hotSpotY = 0);
#endif #endif
QCursor m_qtCursor; virtual wxPoint GetHotSpot() const;
QCursor &GetHandle() const;
protected: protected:
void InitFromStock( wxStockCursor cursorId ); void InitFromStock( wxStockCursor cursorId );
#if wxUSE_IMAGE #if wxUSE_IMAGE

View File

@@ -82,6 +82,7 @@ public:
virtual void Refresh( bool eraseBackground = true, virtual void Refresh( bool eraseBackground = true,
const wxRect *rect = (const wxRect *) NULL ); const wxRect *rect = (const wxRect *) NULL );
virtual bool SetCursor( const wxCursor &cursor ) wxOVERRIDE;
virtual bool SetFont(const wxFont& font); virtual bool SetFont(const wxFont& font);
// get the (average) character size for the current font // get the (average) character size for the current font

View File

@@ -215,7 +215,7 @@ wxBitmap::wxBitmap(const wxCursor& cursor)
// note that pixmap could be invalid if is not a pixmap cursor // note that pixmap could be invalid if is not a pixmap cursor
// also, a wxCursor::GetHandle method could be implemented instead of // also, a wxCursor::GetHandle method could be implemented instead of
// accessing the member variable directly // accessing the member variable directly
QPixmap pix = cursor.m_qtCursor.pixmap(); QPixmap pix = cursor.GetHandle().pixmap();
m_refData = new wxBitmapRefData(pix); m_refData = new wxBitmapRefData(pix);
} }
@@ -511,7 +511,7 @@ bool wxMask::InitFromColour(const wxBitmap& bitmap, const wxColour& colour)
return false; return false;
delete m_qtBitmap; delete m_qtBitmap;
m_qtBitmap = new QBitmap(bitmap.GetHandle()->createMaskFromColor(colour.GetHandle())); m_qtBitmap = new QBitmap(bitmap.GetHandle()->createMaskFromColor(colour.GetQColor()));
return true; return true;
} }

View File

@@ -95,7 +95,7 @@ wxBrush::wxBrush()
wxBrush::wxBrush(const wxColour& col, wxBrushStyle style ) wxBrush::wxBrush(const wxColour& col, wxBrushStyle style )
{ {
m_refData = new wxBrushRefData(); m_refData = new wxBrushRefData();
M_BRUSHDATA.setColor(col.GetHandle()); M_BRUSHDATA.setColor(col.GetQColor());
M_BRUSHDATA.setStyle(ConvertBrushStyle(style)); M_BRUSHDATA.setStyle(ConvertBrushStyle(style));
M_STYLEDATA = style; M_STYLEDATA = style;
} }
@@ -103,7 +103,7 @@ wxBrush::wxBrush(const wxColour& col, wxBrushStyle style )
wxBrush::wxBrush(const wxColour& col, int style) wxBrush::wxBrush(const wxColour& col, int style)
{ {
m_refData = new wxBrushRefData(); m_refData = new wxBrushRefData();
M_BRUSHDATA.setColor(col.GetHandle()); M_BRUSHDATA.setColor(col.GetQColor());
M_BRUSHDATA.setStyle(ConvertBrushStyle((wxBrushStyle)style)); M_BRUSHDATA.setStyle(ConvertBrushStyle((wxBrushStyle)style));
M_STYLEDATA = (wxBrushStyle)style; M_STYLEDATA = (wxBrushStyle)style;
} }
@@ -122,7 +122,7 @@ wxBrush::wxBrush(const wxBitmap& stipple)
void wxBrush::SetColour(const wxColour& col) void wxBrush::SetColour(const wxColour& col)
{ {
AllocExclusive(); AllocExclusive();
M_BRUSHDATA.setColor(col.GetHandle()); M_BRUSHDATA.setColor(col.GetQColor());
} }
void wxBrush::SetColour(unsigned char r, unsigned char g, unsigned char b) void wxBrush::SetColour(unsigned char r, unsigned char g, unsigned char b)

View File

@@ -229,7 +229,7 @@ void wxCalendarCtrl::SetHoliday(size_t day)
date.setDate(date.year(), date.month(), day); date.setDate(date.year(), date.month(), day);
QTextCharFormat format = m_qtCalendar->dateTextFormat(date); QTextCharFormat format = m_qtCalendar->dateTextFormat(date);
format.setForeground(m_colHolidayFg.GetHandle()); format.setForeground(m_colHolidayFg.GetQColor());
m_qtCalendar->setDateTextFormat(date, format); m_qtCalendar->setDateTextFormat(date, format);
} }
@@ -249,9 +249,9 @@ void wxCalendarCtrl::RefreshHolidays()
if ( m_windowStyle & wxCAL_SHOW_HOLIDAYS ) if ( m_windowStyle & wxCAL_SHOW_HOLIDAYS )
{ {
if ( m_colHolidayFg.IsOk() ) if ( m_colHolidayFg.IsOk() )
format.setForeground(m_colHolidayFg.GetHandle()); format.setForeground(m_colHolidayFg.GetQColor());
if ( m_colHolidayBg.IsOk() ) if ( m_colHolidayBg.IsOk() )
format.setBackground(m_colHolidayBg.GetHandle()); format.setBackground(m_colHolidayBg.GetQColor());
} }
else else
{ {
@@ -278,9 +278,9 @@ void wxCalendarCtrl::SetHeaderColours(const wxColour& colFg, const wxColour& col
QTextCharFormat format = m_qtCalendar->headerTextFormat(); QTextCharFormat format = m_qtCalendar->headerTextFormat();
if ( m_colHeaderFg.IsOk() ) if ( m_colHeaderFg.IsOk() )
format.setForeground(m_colHeaderFg.GetHandle()); format.setForeground(m_colHeaderFg.GetQColor());
if ( m_colHeaderBg.IsOk() ) if ( m_colHeaderBg.IsOk() )
format.setBackground(m_colHeaderBg.GetHandle()); format.setBackground(m_colHeaderBg.GetQColor());
m_qtCalendar->setHeaderTextFormat(format); m_qtCalendar->setHeaderTextFormat(format);
} }
@@ -303,9 +303,9 @@ void wxCalendarCtrl::SetAttr(size_t day, wxCalendarDateAttr *attr)
QTextCharFormat format = m_qtCalendar->dateTextFormat(date); QTextCharFormat format = m_qtCalendar->dateTextFormat(date);
if ( attr->HasTextColour() ) if ( attr->HasTextColour() )
format.setForeground(attr->GetTextColour().GetHandle()); format.setForeground(attr->GetTextColour().GetQColor());
if ( attr->HasBackgroundColour() ) if ( attr->HasBackgroundColour() )
format.setBackground(attr->GetBackgroundColour().GetHandle()); format.setBackground(attr->GetBackgroundColour().GetQColor());
wxMISSING_IMPLEMENTATION( "Setting font" ); wxMISSING_IMPLEMENTATION( "Setting font" );

View File

@@ -29,10 +29,10 @@ bool wxColourDialog::Create(wxWindow *parent, wxColourData *data )
if ( m_data.GetChooseFull() ) if ( m_data.GetChooseFull() )
{ {
for (int i=0; i<wxColourData::NUM_CUSTOM; i++) for (int i=0; i<wxColourData::NUM_CUSTOM; i++)
QColorDialog::setCustomColor(i, m_data.GetCustomColour(i).GetHandle()); QColorDialog::setCustomColor(i, m_data.GetCustomColour(i).GetQColor());
} }
GetHandle()->setCurrentColor(m_data.GetColour().GetHandle()); GetHandle()->setCurrentColor(m_data.GetColour().GetQColor());
return wxTopLevelWindow::Create( parent, wxID_ANY, ""); return wxTopLevelWindow::Create( parent, wxID_ANY, "");
} }

View File

@@ -18,8 +18,32 @@
#include "wx/colour.h" #include "wx/colour.h"
#endif // WX_PRECOMP #endif // WX_PRECOMP
#include "wx/colour.h"
#include "wx/qt/private/utils.h" #include "wx/qt/private/utils.h"
#include <QtGui/QColor>
wxColour::wxColour(const QColor& color)
{
InitRGBA(color.red(), color.green(), color.blue(), color.alpha());
}
bool wxColour::IsOk() const { return valid; }
unsigned char wxColour::Red() const { return red; }
unsigned char wxColour::Green() const { return green; }
unsigned char wxColour::Blue() const { return blue; }
unsigned char wxColour::Alpha() const { return alpha; }
bool wxColour::operator==(const wxColour& color) const
{
return red == color.red && green == color.green && blue == color.blue && alpha == color.alpha;
}
bool wxColour::operator!=(const wxColour& color) const
{
return !(*this == color);
}
int wxColour::GetPixel() const int wxColour::GetPixel() const
{ {
@@ -27,4 +51,20 @@ int wxColour::GetPixel() const
return 0; return 0;
} }
#include "wx/colour.h" QColor wxColour::GetQColor() const
{
if( valid )
return QColor(red, green, blue, alpha);
return QColor();
}
void wxColour::Init()
{
valid = false;
}
void wxColour::InitRGBA(ChannelType r, ChannelType g, ChannelType b, ChannelType a)
{
red = r, green = g, blue = b, alpha = a;
valid = true;
}

View File

@@ -20,19 +20,19 @@
#endif // WX_PRECOMP #endif // WX_PRECOMP
#include "wx/cursor.h" #include "wx/cursor.h"
#include "wx/qt/private/converter.h"
void wxSetCursor(const wxCursor& cursor) void wxSetCursor(const wxCursor& cursor)
{ {
if (cursor.m_qtCursor.shape() == Qt::ArrowCursor) if (cursor.GetHandle().shape() == Qt::ArrowCursor)
QApplication::restoreOverrideCursor(); QApplication::restoreOverrideCursor();
else else
QApplication::setOverrideCursor(cursor.m_qtCursor); QApplication::setOverrideCursor(cursor.GetHandle());
} }
void wxBeginBusyCursor(const wxCursor *cursor) void wxBeginBusyCursor(const wxCursor *cursor)
{ {
QApplication::setOverrideCursor(cursor->m_qtCursor); QApplication::setOverrideCursor(cursor->GetHandle());
} }
bool wxIsBusy() bool wxIsBusy()
@@ -45,13 +45,22 @@ void wxEndBusyCursor()
QApplication::restoreOverrideCursor(); QApplication::restoreOverrideCursor();
} }
//-----------------------------------------------------------------------------
// wxCursorRefData
//-----------------------------------------------------------------------------
class wxCursorRefData: public wxGDIRefData
{
public:
wxCursorRefData() {}
wxCursorRefData( const wxCursorRefData& data ) : m_qtCursor(data.m_qtCursor) {}
wxCursorRefData( QCursor &c ) : m_qtCursor(c) {}
QCursor m_qtCursor;
};
wxIMPLEMENT_DYNAMIC_CLASS(wxCursor, wxGDIObject); wxIMPLEMENT_DYNAMIC_CLASS(wxCursor, wxGDIObject);
wxCursor::wxCursor( const wxCursor &cursor )
{
m_qtCursor = cursor.m_qtCursor;
}
#if wxUSE_IMAGE #if wxUSE_IMAGE
wxCursor::wxCursor(const wxString& cursor_file, wxCursor::wxCursor(const wxString& cursor_file,
@@ -77,14 +86,26 @@ wxCursor::wxCursor(const wxImage& img)
} }
#endif #endif
wxPoint wxCursor::GetHotSpot() const
{
return wxQtConvertPoint(GetHandle().hotSpot());
}
QCursor &wxCursor::GetHandle() const
{
return static_cast<wxCursorRefData*>(m_refData)->m_qtCursor;
}
void wxCursor::InitFromStock( wxStockCursor cursorId ) void wxCursor::InitFromStock( wxStockCursor cursorId )
{ {
AllocExclusive();
Qt::CursorShape qt_cur; Qt::CursorShape qt_cur;
switch (cursorId) switch (cursorId)
{ {
case wxCURSOR_BLANK: case wxCURSOR_BLANK:
{ {
m_qtCursor = QBitmap(); GetHandle() = QBitmap();
return; return;
} }
// case wxCURSOR_ARROW: // case wxCURSOR_ARROW:
@@ -125,28 +146,29 @@ void wxCursor::InitFromStock( wxStockCursor cursorId )
break; break;
} }
m_qtCursor.setShape(qt_cur); GetHandle().setShape(qt_cur);
} }
#if wxUSE_IMAGE #if wxUSE_IMAGE
void wxCursor::InitFromImage( const wxImage & image ) void wxCursor::InitFromImage( const wxImage & image )
{ {
m_qtCursor = *wxBitmap(image).GetHandle(); AllocExclusive();
GetHandle() = QCursor(*wxBitmap(image).GetHandle(),
image.HasOption(wxIMAGE_OPTION_CUR_HOTSPOT_X) ?
image.GetOptionInt(wxIMAGE_OPTION_CUR_HOTSPOT_X) : -1,
image.HasOption(wxIMAGE_OPTION_CUR_HOTSPOT_Y) ?
image.GetOptionInt(wxIMAGE_OPTION_CUR_HOTSPOT_Y) : -1);
} }
#endif // wxUSE_IMAGE #endif // wxUSE_IMAGE
wxGDIRefData *wxCursor::CreateGDIRefData() const wxGDIRefData *wxCursor::CreateGDIRefData() const
{ {
//return new wxCursorRefData; return new wxCursorRefData;
return NULL;
} }
wxGDIRefData * wxGDIRefData *wxCursor::CloneGDIRefData(const wxGDIRefData *data) const
wxCursor::CloneGDIRefData(const wxGDIRefData * data) const
{ {
// return new wxCursorRefData(data->bitmap()); return new wxCursorRefData(*(wxCursorRefData *)data);
return NULL;
} }

View File

@@ -93,7 +93,7 @@ void wxQtDCImpl::QtPreparePainter( )
} }
else else
{ {
wxLogDebug(wxT("wxQtDCImpl::QtPreparePainter not active!")); // wxLogDebug(wxT("wxQtDCImpl::QtPreparePainter not active!"));
} }
} }
@@ -157,7 +157,7 @@ void wxQtDCImpl::SetBrush(const wxBrush& brush)
{ {
// Use a monochrome mask: use foreground color for the mask // Use a monochrome mask: use foreground color for the mask
QBrush b(brush.GetHandle()); QBrush b(brush.GetHandle());
b.setColor(m_textForegroundColour.GetHandle()); b.setColor(m_textForegroundColour.GetQColor());
b.setTexture(b.texture().mask()); b.setTexture(b.texture().mask());
m_qtPainter->setBrush(b); m_qtPainter->setBrush(b);
} }
@@ -584,7 +584,7 @@ void wxQtDCImpl::DoDrawEllipse(wxCoord x, wxCoord y,
// Save pen/brush // Save pen/brush
savedBrush = m_qtPainter->brush(); savedBrush = m_qtPainter->brush();
// Fill with text background color ("no fill" like in wxGTK): // Fill with text background color ("no fill" like in wxGTK):
m_qtPainter->setBrush(QBrush(m_textBackgroundColour.GetHandle())); m_qtPainter->setBrush(QBrush(m_textBackgroundColour.GetQColor()));
} }
// Draw // Draw
@@ -629,8 +629,8 @@ void wxQtDCImpl::DoDrawBitmap(const wxBitmap &bmp, wxCoord x, wxCoord y,
QPen savedPen = m_qtPainter->pen(); QPen savedPen = m_qtPainter->pen();
//Use text colors //Use text colors
m_qtPainter->setBackground(QBrush(m_textBackgroundColour.GetHandle())); m_qtPainter->setBackground(QBrush(m_textBackgroundColour.GetQColor()));
m_qtPainter->setPen(QPen(m_textForegroundColour.GetHandle())); m_qtPainter->setPen(QPen(m_textForegroundColour.GetQColor()));
//Draw //Draw
m_qtPainter->drawPixmap(x, y, pix); m_qtPainter->drawPixmap(x, y, pix);
@@ -660,7 +660,7 @@ void wxQtDCImpl::DoDrawBitmap(const wxBitmap &bmp, wxCoord x, wxCoord y,
void wxQtDCImpl::DoDrawText(const wxString& text, wxCoord x, wxCoord y) void wxQtDCImpl::DoDrawText(const wxString& text, wxCoord x, wxCoord y)
{ {
QPen savedPen = m_qtPainter->pen(); QPen savedPen = m_qtPainter->pen();
m_qtPainter->setPen(QPen(m_textForegroundColour.GetHandle())); m_qtPainter->setPen(QPen(m_textForegroundColour.GetQColor()));
// Disable logical function // Disable logical function
QPainter::CompositionMode savedOp = m_qtPainter->compositionMode(); QPainter::CompositionMode savedOp = m_qtPainter->compositionMode();
@@ -674,7 +674,7 @@ void wxQtDCImpl::DoDrawText(const wxString& text, wxCoord x, wxCoord y)
QBrush savedBrush = m_qtPainter->background(); QBrush savedBrush = m_qtPainter->background();
//Use text colors //Use text colors
m_qtPainter->setBackground(QBrush(m_textBackgroundColour.GetHandle())); m_qtPainter->setBackground(QBrush(m_textBackgroundColour.GetQColor()));
//Draw //Draw
m_qtPainter->drawText(x, y, 1, 1, Qt::TextDontClip, wxQtConvertString(text)); m_qtPainter->drawText(x, y, 1, 1, Qt::TextDontClip, wxQtConvertString(text));
@@ -703,7 +703,7 @@ void wxQtDCImpl::DoDrawRotatedText(const wxString& text,
m_qtPainter->rotate(-angle); m_qtPainter->rotate(-angle);
QPen savedPen = m_qtPainter->pen(); QPen savedPen = m_qtPainter->pen();
m_qtPainter->setPen(QPen(m_textForegroundColour.GetHandle())); m_qtPainter->setPen(QPen(m_textForegroundColour.GetQColor()));
// Disable logical function // Disable logical function
QPainter::CompositionMode savedOp = m_qtPainter->compositionMode(); QPainter::CompositionMode savedOp = m_qtPainter->compositionMode();
@@ -717,7 +717,7 @@ void wxQtDCImpl::DoDrawRotatedText(const wxString& text,
QBrush savedBrush = m_qtPainter->background(); QBrush savedBrush = m_qtPainter->background();
//Use text colors //Use text colors
m_qtPainter->setBackground(QBrush(m_textBackgroundColour.GetHandle())); m_qtPainter->setBackground(QBrush(m_textBackgroundColour.GetQColor()));
//Draw //Draw
m_qtPainter->drawText(x, y, 1, 1, Qt::TextDontClip, wxQtConvertString(text)); m_qtPainter->drawText(x, y, 1, 1, Qt::TextDontClip, wxQtConvertString(text));

View File

@@ -344,9 +344,9 @@ bool wxListCtrl::SetItem(wxListItem& info)
if ( info.GetFont().IsOk() ) if ( info.GetFont().IsOk() )
qitem->setFont(col, info.GetFont().GetHandle() ); qitem->setFont(col, info.GetFont().GetHandle() );
if ( info.GetTextColour().IsOk() ) if ( info.GetTextColour().IsOk() )
qitem->setTextColor(col, info.GetTextColour().GetHandle()); qitem->setTextColor(col, info.GetTextColour().GetQColor());
if ( info.GetBackgroundColour().IsOk() ) if ( info.GetBackgroundColour().IsOk() )
qitem->setBackgroundColor(col, info.GetBackgroundColour().GetHandle()); qitem->setBackgroundColor(col, info.GetBackgroundColour().GetQColor());
} }
return true; return true;
} }

View File

@@ -247,7 +247,7 @@ wxPen::wxPen( const wxColour &colour, int width, wxPenStyle style)
m_refData = new wxPenRefData(); m_refData = new wxPenRefData();
M_PENDATA.setWidth(width); M_PENDATA.setWidth(width);
M_PENDATA.setStyle(ConvertPenStyle(style)); M_PENDATA.setStyle(ConvertPenStyle(style));
M_PENDATA.setColor(colour.GetHandle()); M_PENDATA.setColor(colour.GetQColor());
} }
wxPen::wxPen(const wxColour& col, int width, int style) wxPen::wxPen(const wxColour& col, int width, int style)
@@ -255,7 +255,7 @@ wxPen::wxPen(const wxColour& col, int width, int style)
m_refData = new wxPenRefData(); m_refData = new wxPenRefData();
M_PENDATA.setWidth(width); M_PENDATA.setWidth(width);
M_PENDATA.setStyle(ConvertPenStyle((wxPenStyle)style)); M_PENDATA.setStyle(ConvertPenStyle((wxPenStyle)style));
M_PENDATA.setColor(col.GetHandle()); M_PENDATA.setColor(col.GetQColor());
} }
@@ -276,7 +276,7 @@ bool wxPen::operator!=(const wxPen& pen) const
void wxPen::SetColour(const wxColour& col) void wxPen::SetColour(const wxColour& col)
{ {
AllocExclusive(); AllocExclusive();
M_PENDATA.setColor(col.GetHandle()); M_PENDATA.setColor(col.GetQColor());
} }
void wxPen::SetColour(unsigned char r, unsigned char g, unsigned char b) void wxPen::SetColour(unsigned char r, unsigned char g, unsigned char b)

View File

@@ -228,13 +228,11 @@ bool wxWindowQt::Create( wxWindowQt * parent, wxWindowID id, const wxPoint & pos
QtSetScrollBar( wxVERTICAL ); QtSetScrollBar( wxVERTICAL );
} }
else else
{
m_qtWindow = new wxQtWidget( parent, this ); m_qtWindow = new wxQtWidget( parent, this );
}
GetHandle()->setMouseTracking(true);
} }
GetHandle()->setMouseTracking(true);
if ( !wxWindowBase::CreateBase( parent, id, pos, size, style, wxDefaultValidator, name )) if ( !wxWindowBase::CreateBase( parent, id, pos, size, style, wxDefaultValidator, name ))
return false; return false;
@@ -433,6 +431,15 @@ void wxWindowQt::Refresh( bool WXUNUSED( eraseBackground ), const wxRect *rect )
} }
} }
bool wxWindowQt::SetCursor( const wxCursor &cursor )
{
if (!wxWindowBase::SetCursor(cursor))
return false;
GetHandle()->setCursor(cursor.GetHandle());
return true;
}
bool wxWindowQt::SetFont( const wxFont &font ) bool wxWindowQt::SetFont( const wxFont &font )
{ {
@@ -1131,6 +1138,8 @@ bool wxWindowQt::QtHandleResizeEvent ( QWidget *WXUNUSED( handler ), QResizeEven
bool wxWindowQt::QtHandleWheelEvent ( QWidget *WXUNUSED( handler ), QWheelEvent *event ) bool wxWindowQt::QtHandleWheelEvent ( QWidget *WXUNUSED( handler ), QWheelEvent *event )
{ {
wxMouseEvent e( wxEVT_MOUSEWHEEL ); wxMouseEvent e( wxEVT_MOUSEWHEEL );
e.SetPosition( wxQtConvertPoint( event->pos() ) );
e.m_wheelAxis = ( event->orientation() == Qt::Vertical ) ? wxMOUSE_WHEEL_VERTICAL : wxMOUSE_WHEEL_HORIZONTAL; e.m_wheelAxis = ( event->orientation() == Qt::Vertical ) ? wxMOUSE_WHEEL_VERTICAL : wxMOUSE_WHEEL_HORIZONTAL;
e.m_wheelRotation = event->delta(); e.m_wheelRotation = event->delta();
e.m_linesPerAction = 3; e.m_linesPerAction = 3;