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

79 lines
1.7 KiB
C++
Raw Normal View History

2018-09-17 10:15:11 +00:00
#ifndef slic3r_Plater_hpp_
#define slic3r_Plater_hpp_
#include <memory>
#include <wx/panel.h>
#include "Preset.hpp"
namespace Slic3r {
class Model;
2018-09-17 10:15:11 +00:00
namespace GUI {
class MainFrame;
2018-10-03 13:14:52 +00:00
class ConfigOptionsGroup;
class ObjectManipulation;
2018-10-05 21:29:15 +00:00
class ObjectList;
2018-10-03 13:14:52 +00:00
using t_optgroups = std::vector <std::shared_ptr<ConfigOptionsGroup>>;
2018-09-17 10:15:11 +00:00
class Sidebar : public wxPanel
{
public:
Sidebar(wxWindow *parent);
Sidebar(Sidebar &&) = delete;
Sidebar(const Sidebar &) = delete;
Sidebar &operator=(Sidebar &&) = delete;
Sidebar &operator=(const Sidebar &) = delete;
~Sidebar();
void update_presets(Slic3r::Preset::Type preset_type);
2018-10-03 13:14:52 +00:00
2018-10-05 21:29:15 +00:00
ObjectManipulation* obj_manipul();
ObjectList* obj_list();
2018-10-03 13:14:52 +00:00
2018-10-05 21:29:15 +00:00
ConfigOptionsGroup* og_freq_chng_params();
2018-10-03 13:14:52 +00:00
wxButton* get_wiping_dialog_button();
void update_objects_list_extruder_column(int extruders_count);
int get_ol_selection();
2018-10-05 21:29:15 +00:00
void show_info_sizers(const bool show);
void show_buttons(const bool show);
2018-09-17 10:15:11 +00:00
private:
struct priv;
std::unique_ptr<priv> p;
friend class Plater; // XXX: better encapsulation?
};
class Plater: public wxPanel
{
public:
Plater(wxWindow *parent, MainFrame *main_frame);
Plater(Plater &&) = delete;
Plater(const Plater &) = delete;
Plater &operator=(Plater &&) = delete;
Plater &operator=(const Plater &) = delete;
~Plater();
Sidebar& sidebar();
Model& model();
2018-09-17 10:15:11 +00:00
// TODO: use fs::path
// Note: empty string means request default path
std::string export_gcode(const std::string &output_path);
void reslice();
private:
struct priv;
std::unique_ptr<priv> p;
};
}}
#endif