mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-01-18 10:24:15 +00:00
822326eea9
From wxWidgets master 81570ae070b35c9d52de47b1f14897f3ff1a66c7. include/wx/defs.h -- __w64 warning disable patch by comex brought forward. include/wx/msw/window.h -- added GetContentScaleFactor() which was not implemented on Windows but is necessary for wxBitmap scaling on Mac OS X so it needs to work to avoid #ifdef-ing the code. src/gtk/window.cpp -- Modified DoSetClientSize() to direct call wxWindowGTK::DoSetSize() instead of using public wxWindowBase::SetSize() which now prevents derived classes (like wxAuiToolbar) intercepting the call and breaking it. This matches Windows which does NOT need to call DoSetSize internally. End result is this fixes Dolphin's debug tools toolbars on Linux. src/osx/window_osx.cpp -- Same fix as for GTK since it has the same issue. src/msw/radiobox.cpp -- Hacked to fix display in HiDPI (was clipping off end of text). Updated CMakeLists for Linux and Mac OS X. Small code changes to Dolphin to fix debug error boxes, deprecation warnings, and retain previous UI behavior on Windows.
157 lines
4.9 KiB
C++
157 lines
4.9 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/gtk/dc.h
|
|
// Purpose:
|
|
// Author: Robert Roebling
|
|
// Copyright: (c) 1998 Robert Roebling
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_GTKDC_H_
|
|
#define _WX_GTKDC_H_
|
|
|
|
#ifdef __WXGTK3__
|
|
|
|
#include "wx/dcgraph.h"
|
|
|
|
class wxGTKCairoDCImpl: public wxGCDCImpl
|
|
{
|
|
typedef wxGCDCImpl base_type;
|
|
public:
|
|
wxGTKCairoDCImpl(wxDC* owner);
|
|
wxGTKCairoDCImpl(wxDC* owner, int);
|
|
wxGTKCairoDCImpl(wxDC* owner, double scaleFactor);
|
|
wxGTKCairoDCImpl(wxDC* owner, wxWindow* window);
|
|
|
|
virtual void DoDrawBitmap(const wxBitmap& bitmap, int x, int y, bool useMask) wxOVERRIDE;
|
|
virtual void DoDrawIcon(const wxIcon& icon, int x, int y) wxOVERRIDE;
|
|
#if wxUSE_IMAGE
|
|
virtual bool DoFloodFill(int x, int y, const wxColour& col, wxFloodFillStyle style) wxOVERRIDE;
|
|
#endif
|
|
virtual wxBitmap DoGetAsBitmap(const wxRect* subrect) const wxOVERRIDE;
|
|
virtual bool DoGetPixel(int x, int y, wxColour* col) const wxOVERRIDE;
|
|
virtual void DoGetSize(int* width, int* height) const wxOVERRIDE;
|
|
virtual bool DoStretchBlit(int xdest, int ydest, int dstWidth, int dstHeight, wxDC* source, int xsrc, int ysrc, int srcWidth, int srcHeight, wxRasterOperationMode rop, bool useMask, int xsrcMask, int ysrcMask) wxOVERRIDE;
|
|
virtual void* GetCairoContext() const wxOVERRIDE;
|
|
|
|
protected:
|
|
int m_width, m_height;
|
|
|
|
wxDECLARE_NO_COPY_CLASS(wxGTKCairoDCImpl);
|
|
};
|
|
//-----------------------------------------------------------------------------
|
|
|
|
class wxWindowDCImpl: public wxGTKCairoDCImpl
|
|
{
|
|
typedef wxGTKCairoDCImpl base_type;
|
|
public:
|
|
wxWindowDCImpl(wxWindowDC* owner, wxWindow* window);
|
|
|
|
wxDECLARE_NO_COPY_CLASS(wxWindowDCImpl);
|
|
};
|
|
//-----------------------------------------------------------------------------
|
|
|
|
class wxClientDCImpl: public wxGTKCairoDCImpl
|
|
{
|
|
typedef wxGTKCairoDCImpl base_type;
|
|
public:
|
|
wxClientDCImpl(wxClientDC* owner, wxWindow* window);
|
|
|
|
wxDECLARE_NO_COPY_CLASS(wxClientDCImpl);
|
|
};
|
|
//-----------------------------------------------------------------------------
|
|
|
|
class wxPaintDCImpl: public wxGTKCairoDCImpl
|
|
{
|
|
typedef wxGTKCairoDCImpl base_type;
|
|
public:
|
|
wxPaintDCImpl(wxPaintDC* owner, wxWindow* window);
|
|
|
|
wxDECLARE_NO_COPY_CLASS(wxPaintDCImpl);
|
|
};
|
|
//-----------------------------------------------------------------------------
|
|
|
|
class wxScreenDCImpl: public wxGTKCairoDCImpl
|
|
{
|
|
typedef wxGTKCairoDCImpl base_type;
|
|
public:
|
|
wxScreenDCImpl(wxScreenDC* owner);
|
|
|
|
wxDECLARE_NO_COPY_CLASS(wxScreenDCImpl);
|
|
};
|
|
//-----------------------------------------------------------------------------
|
|
|
|
class wxMemoryDCImpl: public wxGTKCairoDCImpl
|
|
{
|
|
typedef wxGTKCairoDCImpl base_type;
|
|
public:
|
|
wxMemoryDCImpl(wxMemoryDC* owner);
|
|
wxMemoryDCImpl(wxMemoryDC* owner, wxBitmap& bitmap);
|
|
wxMemoryDCImpl(wxMemoryDC* owner, wxDC* dc);
|
|
virtual wxBitmap DoGetAsBitmap(const wxRect* subrect) const wxOVERRIDE;
|
|
virtual void DoSelect(const wxBitmap& bitmap) wxOVERRIDE;
|
|
virtual const wxBitmap& GetSelectedBitmap() const wxOVERRIDE;
|
|
virtual wxBitmap& GetSelectedBitmap() wxOVERRIDE;
|
|
|
|
private:
|
|
void Setup();
|
|
wxBitmap m_bitmap;
|
|
|
|
wxDECLARE_NO_COPY_CLASS(wxMemoryDCImpl);
|
|
};
|
|
//-----------------------------------------------------------------------------
|
|
|
|
class WXDLLIMPEXP_CORE wxGTKCairoDC: public wxDC
|
|
{
|
|
typedef wxDC base_type;
|
|
public:
|
|
wxGTKCairoDC(cairo_t* cr, wxWindow* window);
|
|
|
|
wxDECLARE_NO_COPY_CLASS(wxGTKCairoDC);
|
|
};
|
|
|
|
#else
|
|
|
|
#include "wx/dc.h"
|
|
|
|
//-----------------------------------------------------------------------------
|
|
// wxDC
|
|
//-----------------------------------------------------------------------------
|
|
|
|
class WXDLLIMPEXP_CORE wxGTKDCImpl : public wxDCImpl
|
|
{
|
|
public:
|
|
wxGTKDCImpl( wxDC *owner );
|
|
virtual ~wxGTKDCImpl();
|
|
|
|
#if wxUSE_PALETTE
|
|
void SetColourMap( const wxPalette& palette ) { SetPalette(palette); }
|
|
#endif // wxUSE_PALETTE
|
|
|
|
// Resolution in pixels per logical inch
|
|
virtual wxSize GetPPI() const wxOVERRIDE;
|
|
|
|
virtual bool StartDoc( const wxString& WXUNUSED(message) ) wxOVERRIDE { return true; }
|
|
virtual void EndDoc() wxOVERRIDE { }
|
|
virtual void StartPage() wxOVERRIDE { }
|
|
virtual void EndPage() wxOVERRIDE { }
|
|
|
|
virtual GdkWindow* GetGDKWindow() const { return NULL; }
|
|
virtual void* GetHandle() const wxOVERRIDE { return GetGDKWindow(); }
|
|
|
|
// base class pure virtuals implemented here
|
|
virtual void DoSetClippingRegion(wxCoord x, wxCoord y, wxCoord width, wxCoord height) wxOVERRIDE;
|
|
virtual void DoGetSizeMM(int* width, int* height) const wxOVERRIDE;
|
|
|
|
wxDECLARE_ABSTRACT_CLASS(wxGTKDCImpl);
|
|
};
|
|
|
|
// this must be defined when wxDC::Blit() honours the DC origin and needed to
|
|
// allow wxUniv code in univ/winuniv.cpp to work with versions of wxGTK
|
|
// 2.3.[23]
|
|
#ifndef wxHAS_WORKING_GTK_DC_BLIT
|
|
#define wxHAS_WORKING_GTK_DC_BLIT
|
|
#endif
|
|
|
|
#endif
|
|
#endif // _WX_GTKDC_H_
|