ENH: StateHandler as wxEvtHandler and attach child

Change-Id: I1183b97983907f297888d81809be60e3016ae305
This commit is contained in:
chunmao.guo
2022-08-09 11:03:14 +08:00
committed by Lane.Wei
parent 2c99301fe6
commit b96ca57fde
4 changed files with 72 additions and 39 deletions

View File

@@ -26,24 +26,36 @@ public:
public:
StateHandler(wxWindow * owner);
~StateHandler();
public:
void attach(StateColor const & color);
void attach(std::vector<StateColor const *> const & colors);
void attach_child(wxWindow *child);
void remove_child(wxWindow *child);
void update_binds();
int states() const { return states_ | states2_; }
private:
void changed(wxEvent & event);
StateHandler(StateHandler * parent, wxWindow *owner);
void changed(wxEvent &event);
void changed(int state2);
private:
wxWindow * owner_;
std::vector<StateColor const *> colors_;
int bind_states_ = 0;
int states_ = 0;
int states2_ = 0;
int states2_ = 0; // from children
std::vector<std::unique_ptr<StateHandler>> children_;
StateHandler * parent_ = nullptr;
};
#endif // !slic3r_GUI_StateHandler_hpp_