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.
170 lines
5.7 KiB
C++
170 lines
5.7 KiB
C++
///////////////////////////////////////////////////////////////////////////////
|
|
// Name: wx/generic/wizard.h
|
|
// Purpose: declaration of generic wxWizard class
|
|
// Author: Vadim Zeitlin
|
|
// Modified by: Robert Vazan (sizers)
|
|
// Created: 28.09.99
|
|
// Copyright: (c) 1999 Vadim Zeitlin <zeitlin@dptmaths.ens-cachan.fr>
|
|
// Licence: wxWindows licence
|
|
///////////////////////////////////////////////////////////////////////////////
|
|
|
|
#ifndef _WX_GENERIC_WIZARD_H_
|
|
#define _WX_GENERIC_WIZARD_H_
|
|
|
|
// ----------------------------------------------------------------------------
|
|
// wxWizard
|
|
// ----------------------------------------------------------------------------
|
|
|
|
class WXDLLIMPEXP_FWD_CORE wxButton;
|
|
class WXDLLIMPEXP_FWD_CORE wxStaticBitmap;
|
|
class WXDLLIMPEXP_FWD_ADV wxWizardEvent;
|
|
class WXDLLIMPEXP_FWD_CORE wxBoxSizer;
|
|
class WXDLLIMPEXP_FWD_ADV wxWizardSizer;
|
|
|
|
class WXDLLIMPEXP_ADV wxWizard : public wxWizardBase
|
|
{
|
|
public:
|
|
// ctor
|
|
wxWizard() { Init(); }
|
|
wxWizard(wxWindow *parent,
|
|
int id = wxID_ANY,
|
|
const wxString& title = wxEmptyString,
|
|
const wxBitmap& bitmap = wxNullBitmap,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
long style = wxDEFAULT_DIALOG_STYLE)
|
|
{
|
|
Init();
|
|
Create(parent, id, title, bitmap, pos, style);
|
|
}
|
|
bool Create(wxWindow *parent,
|
|
int id = wxID_ANY,
|
|
const wxString& title = wxEmptyString,
|
|
const wxBitmap& bitmap = wxNullBitmap,
|
|
const wxPoint& pos = wxDefaultPosition,
|
|
long style = wxDEFAULT_DIALOG_STYLE);
|
|
void Init();
|
|
virtual ~wxWizard();
|
|
|
|
// implement base class pure virtuals
|
|
virtual bool RunWizard(wxWizardPage *firstPage) wxOVERRIDE;
|
|
virtual wxWizardPage *GetCurrentPage() const wxOVERRIDE;
|
|
virtual void SetPageSize(const wxSize& size) wxOVERRIDE;
|
|
virtual wxSize GetPageSize() const wxOVERRIDE;
|
|
virtual void FitToPage(const wxWizardPage *firstPage) wxOVERRIDE;
|
|
virtual wxSizer *GetPageAreaSizer() const wxOVERRIDE;
|
|
virtual void SetBorder(int border) wxOVERRIDE;
|
|
|
|
/// set/get bitmap
|
|
const wxBitmap& GetBitmap() const { return m_bitmap; }
|
|
void SetBitmap(const wxBitmap& bitmap);
|
|
|
|
// implementation only from now on
|
|
// -------------------------------
|
|
|
|
// is the wizard running?
|
|
bool IsRunning() const { return m_page != NULL; }
|
|
|
|
// show the prev/next page, but call TransferDataFromWindow on the current
|
|
// page first and return false without changing the page if
|
|
// TransferDataFromWindow() returns false - otherwise, returns true
|
|
virtual bool ShowPage(wxWizardPage *page, bool goingForward = true);
|
|
|
|
// do fill the dialog with controls
|
|
// this is app-overridable to, for example, set help and tooltip text
|
|
virtual void DoCreateControls();
|
|
|
|
// Do the adaptation
|
|
virtual bool DoLayoutAdaptation() wxOVERRIDE;
|
|
|
|
// Set/get bitmap background colour
|
|
void SetBitmapBackgroundColour(const wxColour& colour) { m_bitmapBackgroundColour = colour; }
|
|
const wxColour& GetBitmapBackgroundColour() const { return m_bitmapBackgroundColour; }
|
|
|
|
// Set/get bitmap placement (centred, tiled etc.)
|
|
void SetBitmapPlacement(int placement) { m_bitmapPlacement = placement; }
|
|
int GetBitmapPlacement() const { return m_bitmapPlacement; }
|
|
|
|
// Set/get minimum bitmap width
|
|
void SetMinimumBitmapWidth(int w) { m_bitmapMinimumWidth = w; }
|
|
int GetMinimumBitmapWidth() const { return m_bitmapMinimumWidth; }
|
|
|
|
// Tile bitmap
|
|
static bool TileBitmap(const wxRect& rect, wxDC& dc, const wxBitmap& bitmap);
|
|
|
|
protected:
|
|
// for compatibility only, doesn't do anything any more
|
|
void FinishLayout() { }
|
|
|
|
// Do fit, and adjust to screen size if necessary
|
|
virtual void DoWizardLayout();
|
|
|
|
// Resize bitmap if necessary
|
|
virtual bool ResizeBitmap(wxBitmap& bmp);
|
|
|
|
// was the dialog really created?
|
|
bool WasCreated() const { return m_btnPrev != NULL; }
|
|
|
|
// event handlers
|
|
void OnCancel(wxCommandEvent& event);
|
|
void OnBackOrNext(wxCommandEvent& event);
|
|
void OnHelp(wxCommandEvent& event);
|
|
|
|
void OnWizEvent(wxWizardEvent& event);
|
|
|
|
void AddBitmapRow(wxBoxSizer *mainColumn);
|
|
void AddStaticLine(wxBoxSizer *mainColumn);
|
|
void AddBackNextPair(wxBoxSizer *buttonRow);
|
|
void AddButtonRow(wxBoxSizer *mainColumn);
|
|
|
|
// the page size requested by user
|
|
wxSize m_sizePage;
|
|
|
|
// the dialog position from the ctor
|
|
wxPoint m_posWizard;
|
|
|
|
// wizard state
|
|
wxWizardPage *m_page; // the current page or NULL
|
|
wxWizardPage *m_firstpage; // the page RunWizard started on or NULL
|
|
wxBitmap m_bitmap; // the default bitmap to show
|
|
|
|
// wizard controls
|
|
wxButton *m_btnPrev, // the "<Back" button
|
|
*m_btnNext; // the "Next>" or "Finish" button
|
|
wxStaticBitmap *m_statbmp; // the control for the bitmap
|
|
|
|
// Border around page area sizer requested using SetBorder()
|
|
int m_border;
|
|
|
|
// Whether RunWizard() was called
|
|
bool m_started;
|
|
|
|
// Whether was modal (modeless has to be destroyed on finish or cancel)
|
|
bool m_wasModal;
|
|
|
|
// True if pages are laid out using the sizer
|
|
bool m_usingSizer;
|
|
|
|
// Page area sizer will be inserted here with padding
|
|
wxBoxSizer *m_sizerBmpAndPage;
|
|
|
|
// Actual position and size of pages
|
|
wxWizardSizer *m_sizerPage;
|
|
|
|
// Bitmap background colour if resizing bitmap
|
|
wxColour m_bitmapBackgroundColour;
|
|
|
|
// Bitmap placement flags
|
|
int m_bitmapPlacement;
|
|
|
|
// Minimum bitmap width
|
|
int m_bitmapMinimumWidth;
|
|
|
|
friend class wxWizardSizer;
|
|
|
|
wxDECLARE_DYNAMIC_CLASS(wxWizard);
|
|
wxDECLARE_EVENT_TABLE();
|
|
wxDECLARE_NO_COPY_CLASS(wxWizard);
|
|
};
|
|
|
|
#endif // _WX_GENERIC_WIZARD_H_
|