mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-01-10 08:09:26 +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.
155 lines
5.1 KiB
C++
155 lines
5.1 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/spinctrl.h
|
|
// Purpose: wxSpinCtrlBase class
|
|
// Author: Vadim Zeitlin
|
|
// Modified by:
|
|
// Created: 22.07.99
|
|
// Copyright: (c) Vadim Zeitlin
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_SPINCTRL_H_
|
|
#define _WX_SPINCTRL_H_
|
|
|
|
#include "wx/defs.h"
|
|
|
|
#if wxUSE_SPINCTRL
|
|
|
|
#include "wx/spinbutt.h" // should make wxSpinEvent visible to the app
|
|
|
|
// Events
|
|
class WXDLLIMPEXP_FWD_CORE wxSpinDoubleEvent;
|
|
|
|
wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SPINCTRL, wxSpinEvent);
|
|
wxDECLARE_EXPORTED_EVENT(WXDLLIMPEXP_CORE, wxEVT_SPINCTRLDOUBLE, wxSpinDoubleEvent);
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// A spin ctrl is a text control with a spin button which is usually used to
|
|
// prompt the user for a numeric input.
|
|
// There are two kinds for number types T=integer or T=double.
|
|
// ----------------------------------------------------------------------------
|
|
|
|
class WXDLLIMPEXP_CORE wxSpinCtrlBase : public wxControl
|
|
{
|
|
public:
|
|
wxSpinCtrlBase() {}
|
|
|
|
// accessor functions that derived classes are expected to have
|
|
// T GetValue() const
|
|
// T GetMin() const
|
|
// T GetMax() const
|
|
// T GetIncrement() const
|
|
virtual bool GetSnapToTicks() const = 0;
|
|
// unsigned GetDigits() const - wxSpinCtrlDouble only
|
|
|
|
// operation functions that derived classes are expected to have
|
|
virtual void SetValue(const wxString& value) = 0;
|
|
// void SetValue(T val)
|
|
// void SetRange(T minVal, T maxVal)
|
|
// void SetIncrement(T inc)
|
|
virtual void SetSnapToTicks(bool snap_to_ticks) = 0;
|
|
// void SetDigits(unsigned digits) - wxSpinCtrlDouble only
|
|
|
|
// The base for numbers display, e.g. 10 or 16.
|
|
virtual int GetBase() const = 0;
|
|
virtual bool SetBase(int base) = 0;
|
|
// Select text in the textctrl
|
|
virtual void SetSelection(long from, long to) = 0;
|
|
|
|
private:
|
|
wxDECLARE_NO_COPY_CLASS(wxSpinCtrlBase);
|
|
};
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// wxSpinDoubleEvent - a wxSpinEvent for double valued controls
|
|
// ----------------------------------------------------------------------------
|
|
|
|
class WXDLLIMPEXP_CORE wxSpinDoubleEvent : public wxNotifyEvent
|
|
{
|
|
public:
|
|
wxSpinDoubleEvent(wxEventType commandType = wxEVT_NULL, int winid = 0,
|
|
double value = 0)
|
|
: wxNotifyEvent(commandType, winid), m_value(value)
|
|
{
|
|
}
|
|
|
|
wxSpinDoubleEvent(const wxSpinDoubleEvent& event)
|
|
: wxNotifyEvent(event), m_value(event.GetValue())
|
|
{
|
|
}
|
|
|
|
double GetValue() const { return m_value; }
|
|
void SetValue(double value) { m_value = value; }
|
|
|
|
virtual wxEvent *Clone() const wxOVERRIDE { return new wxSpinDoubleEvent(*this); }
|
|
|
|
protected:
|
|
double m_value;
|
|
|
|
private:
|
|
wxDECLARE_DYNAMIC_CLASS_NO_ASSIGN(wxSpinDoubleEvent);
|
|
};
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// wxSpinDoubleEvent event type, see also wxSpinEvent in wx/spinbutt.h
|
|
// ----------------------------------------------------------------------------
|
|
|
|
typedef void (wxEvtHandler::*wxSpinDoubleEventFunction)(wxSpinDoubleEvent&);
|
|
|
|
#define wxSpinDoubleEventHandler(func) \
|
|
wxEVENT_HANDLER_CAST(wxSpinDoubleEventFunction, func)
|
|
|
|
// macros for handling spinctrl events
|
|
|
|
#define EVT_SPINCTRL(id, fn) \
|
|
wx__DECLARE_EVT1(wxEVT_SPINCTRL, id, wxSpinEventHandler(fn))
|
|
|
|
#define EVT_SPINCTRLDOUBLE(id, fn) \
|
|
wx__DECLARE_EVT1(wxEVT_SPINCTRLDOUBLE, id, wxSpinDoubleEventHandler(fn))
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// include the platform-dependent class implementation
|
|
// ----------------------------------------------------------------------------
|
|
|
|
// we may have a native wxSpinCtrl implementation, native wxSpinCtrl and
|
|
// wxSpinCtrlDouble implementations or neither, define the appropriate symbols
|
|
// and include the generic version if necessary to provide the missing class(es)
|
|
|
|
#if defined(__WXUNIVERSAL__)
|
|
// nothing, use generic controls
|
|
#elif defined(__WXMSW__)
|
|
#define wxHAS_NATIVE_SPINCTRL
|
|
#include "wx/msw/spinctrl.h"
|
|
#elif defined(__WXGTK20__)
|
|
#define wxHAS_NATIVE_SPINCTRL
|
|
#define wxHAS_NATIVE_SPINCTRLDOUBLE
|
|
#include "wx/gtk/spinctrl.h"
|
|
#elif defined(__WXGTK__)
|
|
#define wxHAS_NATIVE_SPINCTRL
|
|
#include "wx/gtk1/spinctrl.h"
|
|
#elif defined(__WXQT__)
|
|
#define wxHAS_NATIVE_SPINCTRL
|
|
#define wxHAS_NATIVE_SPINCTRLDOUBLE
|
|
#include "wx/qt/spinctrl.h"
|
|
#endif // platform
|
|
|
|
#if !defined(wxHAS_NATIVE_SPINCTRL) || !defined(wxHAS_NATIVE_SPINCTRLDOUBLE)
|
|
#include "wx/generic/spinctlg.h"
|
|
#endif
|
|
namespace wxPrivate
|
|
{
|
|
|
|
// This is an internal helper function currently used by all ports: return the
|
|
// string containing hexadecimal representation of the given number.
|
|
extern wxString wxSpinCtrlFormatAsHex(long val, long maxVal);
|
|
|
|
} // namespace wxPrivate
|
|
|
|
// old wxEVT_COMMAND_* constants
|
|
#define wxEVT_COMMAND_SPINCTRL_UPDATED wxEVT_SPINCTRL
|
|
#define wxEVT_COMMAND_SPINCTRLDOUBLE_UPDATED wxEVT_SPINCTRLDOUBLE
|
|
|
|
#endif // wxUSE_SPINCTRL
|
|
|
|
#endif // _WX_SPINCTRL_H_
|