mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-01-15 18:49:11 +01: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.
136 lines
4.1 KiB
C++
136 lines
4.1 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/gtk/clipbrd.h
|
|
// Purpose: wxClipboard for wxGTK
|
|
// Author: Robert Roebling, Vadim Zeitlin
|
|
// Copyright: (c) 1998 Robert Roebling
|
|
// (c) 2007 Vadim Zeitlin
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_GTK_CLIPBOARD_H_
|
|
#define _WX_GTK_CLIPBOARD_H_
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// wxClipboard
|
|
// ----------------------------------------------------------------------------
|
|
|
|
#include "wx/weakref.h"
|
|
|
|
class WXDLLIMPEXP_CORE wxClipboard : public wxClipboardBase
|
|
{
|
|
public:
|
|
// there are several clipboards in X11 (and in GDK)
|
|
enum Kind
|
|
{
|
|
Primary,
|
|
Clipboard
|
|
};
|
|
|
|
wxClipboard();
|
|
virtual ~wxClipboard();
|
|
|
|
// open the clipboard before SetData() and GetData()
|
|
virtual bool Open() wxOVERRIDE;
|
|
|
|
// close the clipboard after SetData() and GetData()
|
|
virtual void Close() wxOVERRIDE;
|
|
|
|
// query whether the clipboard is opened
|
|
virtual bool IsOpened() const wxOVERRIDE;
|
|
|
|
// set the clipboard data. all other formats will be deleted.
|
|
virtual bool SetData( wxDataObject *data ) wxOVERRIDE;
|
|
|
|
// add to the clipboard data.
|
|
virtual bool AddData( wxDataObject *data ) wxOVERRIDE;
|
|
|
|
// ask if data in correct format is available
|
|
virtual bool IsSupported( const wxDataFormat& format ) wxOVERRIDE;
|
|
|
|
// ask if data in correct format is available
|
|
virtual bool IsSupportedAsync( wxEvtHandler *sink ) wxOVERRIDE;
|
|
|
|
// fill data with data on the clipboard (if available)
|
|
virtual bool GetData( wxDataObject& data ) wxOVERRIDE;
|
|
|
|
// clears wxTheClipboard and the system's clipboard if possible
|
|
virtual void Clear() wxOVERRIDE;
|
|
|
|
|
|
|
|
// implementation from now on
|
|
// --------------------------
|
|
|
|
// get our clipboard item (depending on m_usePrimary value)
|
|
GdkAtom GTKGetClipboardAtom() const;
|
|
|
|
// get the data object currently being requested
|
|
wxDataObject *GTKGetDataObject( GdkAtom atom );
|
|
|
|
// clear the data for the given clipboard kind
|
|
void GTKClearData(Kind kind);
|
|
|
|
// called when selection data is received
|
|
void GTKOnSelectionReceived(const GtkSelectionData& sel);
|
|
|
|
// called when available target information is received
|
|
bool GTKOnTargetReceived(const wxDataFormat& format);
|
|
|
|
private:
|
|
// the data object for the specific selection
|
|
wxDataObject *& Data(Kind kind)
|
|
{
|
|
return kind == Primary ? m_dataPrimary : m_dataClipboard;
|
|
}
|
|
|
|
// the data object we're currently using
|
|
wxDataObject *& Data()
|
|
{
|
|
return Data(m_usePrimary ? Primary : Clipboard);
|
|
}
|
|
|
|
|
|
// set or unset selection ownership
|
|
bool SetSelectionOwner(bool set = true);
|
|
|
|
// add atom to the list of supported targets
|
|
void AddSupportedTarget(GdkAtom atom);
|
|
|
|
// check if the given format is supported
|
|
bool DoIsSupported(const wxDataFormat& format);
|
|
|
|
|
|
// both of these pointers can be non-NULL simultaneously but we only use
|
|
// one of them at any moment depending on m_usePrimary value, use Data()
|
|
// (from inside) or GTKGetDataObject() (from outside) accessors
|
|
wxDataObject *m_dataPrimary,
|
|
*m_dataClipboard;
|
|
|
|
// this is used to temporarily hold the object passed to our GetData() so
|
|
// that GTK callbacks could access it
|
|
wxDataObject *m_receivedData;
|
|
|
|
// used to pass information about the format we need from DoIsSupported()
|
|
// to GTKOnTargetReceived()
|
|
GdkAtom m_targetRequested;
|
|
|
|
GtkWidget *m_clipboardWidget; // for getting and offering data
|
|
GtkWidget *m_targetsWidget; // for getting list of supported formats
|
|
|
|
// ID of the connection to "selection_get" signal, initially 0.
|
|
unsigned long m_idSelectionGetHandler;
|
|
|
|
bool m_open;
|
|
bool m_formatSupported;
|
|
|
|
public:
|
|
// async stuff
|
|
wxEvtHandlerRef m_sink;
|
|
private:
|
|
GtkWidget *m_targetsWidgetAsync; // for getting list of supported formats
|
|
|
|
wxDECLARE_DYNAMIC_CLASS(wxClipboard);
|
|
};
|
|
|
|
#endif // _WX_GTK_CLIPBOARD_H_
|