mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2025-01-19 12:31:17 +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.
150 lines
4.8 KiB
C++
150 lines
4.8 KiB
C++
/////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/msw/slider.h
|
|
// Purpose: wxSlider class implementation using trackbar control
|
|
// Author: Julian Smart
|
|
// Modified by:
|
|
// Created: 01/02/97
|
|
// Copyright: (c) Julian Smart
|
|
// Licence: wxWindows licence
|
|
/////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_SLIDER_H_
|
|
#define _WX_SLIDER_H_
|
|
|
|
class WXDLLIMPEXP_FWD_CORE wxSubwindows;
|
|
|
|
// Slider
|
|
class WXDLLIMPEXP_CORE wxSlider : public wxSliderBase
|
|
{
|
|
public:
|
|
wxSlider() { Init(); }
|
|
|
|
wxSlider(wxWindow *parent,
|
|
wxWindowID id,
|
|
int value,
|
|
int minValue,
|
|
int maxValue,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = wxSL_HORIZONTAL,
|
|
const wxValidator& validator = wxDefaultValidator,
|
|
const wxString& name = wxSliderNameStr)
|
|
{
|
|
Init();
|
|
|
|
(void)Create(parent, id, value, minValue, maxValue,
|
|
pos, size, style, validator, name);
|
|
}
|
|
|
|
bool Create(wxWindow *parent,
|
|
wxWindowID id,
|
|
int value,
|
|
int minValue, int maxValue,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
const wxSize& size = wxDefaultSize,
|
|
long style = wxSL_HORIZONTAL,
|
|
const wxValidator& validator = wxDefaultValidator,
|
|
const wxString& name = wxSliderNameStr);
|
|
|
|
virtual ~wxSlider();
|
|
|
|
// slider methods
|
|
virtual int GetValue() const;
|
|
virtual void SetValue(int);
|
|
|
|
void SetRange(int minValue, int maxValue);
|
|
|
|
int GetMin() const { return m_rangeMin; }
|
|
int GetMax() const { return m_rangeMax; }
|
|
|
|
// Win32-specific slider methods
|
|
int GetTickFreq() const { return m_tickFreq; }
|
|
void SetPageSize(int pageSize);
|
|
int GetPageSize() const;
|
|
void ClearSel();
|
|
void ClearTicks();
|
|
void SetLineSize(int lineSize);
|
|
int GetLineSize() const;
|
|
int GetSelEnd() const;
|
|
int GetSelStart() const;
|
|
void SetSelection(int minPos, int maxPos);
|
|
void SetThumbLength(int len);
|
|
int GetThumbLength() const;
|
|
void SetTick(int tickPos);
|
|
|
|
// implementation only from now on
|
|
WXHWND GetStaticMin() const;
|
|
WXHWND GetStaticMax() const;
|
|
WXHWND GetEditValue() const;
|
|
virtual bool ContainsHWND(WXHWND hWnd) const;
|
|
|
|
// we should let background show through the slider (and its labels)
|
|
virtual bool HasTransparentBackground() { return true; }
|
|
|
|
// returns true if the platform should explicitly apply a theme border
|
|
virtual bool CanApplyThemeBorder() const { return false; }
|
|
|
|
void Command(wxCommandEvent& event);
|
|
virtual bool MSWOnScroll(int orientation, WXWORD wParam,
|
|
WXWORD pos, WXHWND control);
|
|
|
|
virtual bool Show(bool show = true);
|
|
virtual bool Enable(bool show = true);
|
|
virtual bool SetFont(const wxFont& font);
|
|
virtual bool SetForegroundColour(const wxColour& colour);
|
|
virtual bool SetBackgroundColour(const wxColour& colour);
|
|
|
|
virtual WXDWORD MSWGetStyle(long flags, WXDWORD *exstyle = NULL) const;
|
|
|
|
protected:
|
|
// common part of all ctors
|
|
void Init();
|
|
|
|
// format an integer value as string
|
|
static wxString Format(int n) { return wxString::Format(wxT("%d"), n); }
|
|
|
|
// get the boundig box for the slider and possible labels
|
|
wxRect GetBoundingBox() const;
|
|
|
|
// Get the height and, if the pointers are non NULL, widths of both labels.
|
|
//
|
|
// Notice that the return value will be 0 if we don't have wxSL_LABELS
|
|
// style but we do fill widthMin and widthMax even if we don't have
|
|
// wxSL_MIN_MAX_LABELS style set so the caller should account for it.
|
|
int GetLabelsSize(int *widthMin = NULL, int *widthMax = NULL) const;
|
|
|
|
|
|
// overridden base class virtuals
|
|
virtual void DoGetPosition(int *x, int *y) const;
|
|
virtual void DoGetSize(int *width, int *height) const;
|
|
virtual void DoMoveWindow(int x, int y, int width, int height);
|
|
virtual wxSize DoGetBestSize() const;
|
|
|
|
WXHBRUSH DoMSWControlColor(WXHDC pDC, wxColour colBg, WXHWND hWnd) wxOVERRIDE;
|
|
|
|
|
|
// the labels windows, if any
|
|
wxSubwindows *m_labels;
|
|
|
|
// Last background brush we returned from DoMSWControlColor(), see there.
|
|
WXHBRUSH m_hBrushBg;
|
|
|
|
int m_rangeMin;
|
|
int m_rangeMax;
|
|
int m_pageSize;
|
|
int m_lineSize;
|
|
int m_tickFreq;
|
|
|
|
// flag needed to detect whether we're getting THUMBRELEASE event because
|
|
// of dragging the thumb or scrolling the mouse wheel
|
|
bool m_isDragging;
|
|
|
|
// Platform-specific implementation of SetTickFreq
|
|
virtual void DoSetTickFreq(int freq);
|
|
|
|
wxDECLARE_DYNAMIC_CLASS_NO_COPY(wxSlider);
|
|
};
|
|
|
|
#endif // _WX_SLIDER_H_
|
|
|