Ember
Loading...
Searching...
No Matches
ScalableDialog.h
Go to the documentation of this file.
1#pragma once
2
3#include "Utils/DPI.h"
5
6#include <wx/dialog.h>
7#include <wx/sizer.h>
8#include <wx/statbox.h>
9#include <wx/stattext.h>
10
11namespace EmberUI {
12
14class ScalableDialog : public wxDialog {
15 public:
17 ScalableDialog(wxWindow *parent, wxWindowID id, const wxString &title, const wxSize &logicalSize = wxDefaultSize,
18 long style = wxDEFAULT_DIALOG_STYLE | wxRESIZE_BORDER);
19
20 virtual ~ScalableDialog() = default;
21
22 protected:
24 int Scaled(int px) const;
26 wxSize Scaled(const wxSize &size) const;
28 int Margin() const;
30 int Spacing() const;
32 int Padding() const;
33
35 wxStaticBoxSizer *CreateGroup(wxWindow *parent, const wxString &title);
37 wxBoxSizer *CreateLabeledRow(wxWindow *parent, const wxString &label, wxWindow *control,
38 int logicalLabelWidth = Layout::LABEL_WIDTH);
39};
40
41} // namespace EmberUI
int Padding() const
Returns the standard padding in physical pixels.
int Margin() const
Returns the standard margin in physical pixels.
ScalableDialog(wxWindow *parent, wxWindowID id, const wxString &title, const wxSize &logicalSize=wxDefaultSize, long style=wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER)
Constructs the dialog with logical size for DPI scaling.
wxBoxSizer * CreateLabeledRow(wxWindow *parent, const wxString &label, wxWindow *control, int logicalLabelWidth=Layout::LABEL_WIDTH)
Creates a row with a label and control.
int Spacing() const
Returns the standard spacing in physical pixels.
virtual ~ScalableDialog()=default
int Scaled(int px) const
Scales a logical pixel value to physical pixels.
wxStaticBoxSizer * CreateGroup(wxWindow *parent, const wxString &title)
Creates a grouped section with a title.
constexpr int LABEL_WIDTH
Width of label controls.
Definition Panel.h:8