PrusaSlicer-NonPlainar/src/slic3r/GUI/LambdaObjectDialog.hpp

60 lines
1.5 KiB
C++
Raw Normal View History

2018-06-14 19:48:06 +00:00
#ifndef slic3r_LambdaObjectDialog_hpp_
#define slic3r_LambdaObjectDialog_hpp_
#include <vector>
#include <memory>
2018-06-14 19:48:06 +00:00
#include <wx/dialog.h>
#include <wx/sizer.h>
#include <wx/choicebk.h>
2018-09-17 13:12:13 +00:00
class wxPanel;
2018-06-14 19:48:06 +00:00
namespace Slic3r
{
namespace GUI
{
2018-10-05 21:29:15 +00:00
enum LambdaTypeIDs{
LambdaTypeBox,
LambdaTypeCylinder,
LambdaTypeSphere,
LambdaTypeSlab
};
struct OBJECT_PARAMETERS
{
LambdaTypeIDs type = LambdaTypeBox;
double dim[3];// = { 1.0, 1.0, 1.0 };
int cyl_r = 1;
int cyl_h = 1;
double sph_rho = 1.0;
double slab_h = 1.0;
double slab_z = 0.0;
};
class ConfigOptionsGroup;
2018-06-14 19:48:06 +00:00
using ConfigOptionsGroupShp = std::shared_ptr<ConfigOptionsGroup>;
class LambdaObjectDialog : public wxDialog
{
2018-09-17 13:12:13 +00:00
wxChoicebook* m_modificator_options_book = nullptr;
2018-06-14 19:48:06 +00:00
std::vector <ConfigOptionsGroupShp> m_optgroups;
2018-09-17 13:12:13 +00:00
wxString m_type_name;
wxPanel* m_panel = nullptr;
2018-06-14 19:48:06 +00:00
public:
2018-09-17 13:12:13 +00:00
LambdaObjectDialog(wxWindow* parent,
const wxString type_name = wxEmptyString);
2018-10-31 11:56:08 +00:00
~LambdaObjectDialog() {}
2018-06-14 19:48:06 +00:00
bool CanClose() { return true; } // ???
OBJECT_PARAMETERS& ObjectParameters() { return object_parameters; }
2018-06-14 19:48:06 +00:00
2018-09-17 13:12:13 +00:00
ConfigOptionsGroupShp init_modificator_options_page(const wxString& title);
2018-06-14 19:48:06 +00:00
// Note whether the window was already closed, so a pending update is not executed.
bool m_already_closed = false;
OBJECT_PARAMETERS object_parameters;
wxBoxSizer* sizer = nullptr;
};
} //namespace GUI
} //namespace Slic3r
#endif //slic3r_LambdaObjectDialog_hpp_