mirror of
https://github.com/OrcaSlicer/OrcaSlicer.git
synced 2026-09-15 04:57:34 +00:00
89 lines
2.3 KiB
C++
89 lines
2.3 KiB
C++
#ifndef slic3r_GUI_TabCtrl_hpp_
|
|
#define slic3r_GUI_TabCtrl_hpp_
|
|
|
|
#include "Button.hpp"
|
|
|
|
wxDECLARE_EVENT(wxEVT_TAB_SEL_CHANGING, wxCommandEvent);
|
|
wxDECLARE_EVENT(wxEVT_TAB_SEL_CHANGED, wxCommandEvent);
|
|
|
|
class TabCtrl : public StaticBox
|
|
{
|
|
std::vector<Button*> btns;
|
|
wxImageList* images = nullptr;
|
|
wxBoxSizer* sizer = nullptr;
|
|
|
|
int sel = -1;
|
|
wxFont bold;
|
|
|
|
public:
|
|
TabCtrl(wxWindow* parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize, long style = 0);
|
|
|
|
~TabCtrl();
|
|
|
|
public:
|
|
virtual bool SetFont(wxFont const& font) override;
|
|
|
|
public:
|
|
int AppendItem(const wxString& item, int image = -1, int selImage = -1, void* clientData = nullptr);
|
|
int AppendItem(const wxString& item, const wxBitmap& bitmap, void* clientData = nullptr);
|
|
|
|
bool DeleteItem(int item);
|
|
|
|
void DeleteAllItems();
|
|
|
|
unsigned int GetCount() const;
|
|
|
|
int GetSelection() const;
|
|
|
|
void SelectItem(int item);
|
|
|
|
void Unselect();
|
|
|
|
virtual void Rescale();
|
|
|
|
wxString GetItemText(unsigned int item) const;
|
|
void SetItemText(unsigned int item, wxString const& value);
|
|
void SetItemBitmap(unsigned int item, const wxBitmap& bitmap);
|
|
|
|
// Show/hide the small "has selection" dot next to a tab's text.
|
|
void SetItemIndicator(unsigned int item, bool on);
|
|
|
|
bool GetItemBold(unsigned int item) const;
|
|
void SetItemBold(unsigned int item, bool bold);
|
|
|
|
void* GetItemData(unsigned int item) const;
|
|
void SetItemData(unsigned int item, void* clientData);
|
|
|
|
void AssignImageList(wxImageList* imageList);
|
|
|
|
void SetItemTextColour(unsigned int item, const StateColor& col);
|
|
|
|
/* fakes */
|
|
int GetFirstVisibleItem() const;
|
|
int GetNextVisible(int item) const;
|
|
bool IsVisible(unsigned int item) const;
|
|
|
|
int GetFullSize() const;
|
|
|
|
private:
|
|
virtual void DoSetSize(int x, int y, int width, int height, int sizeFlags = wxSIZE_AUTO) override;
|
|
|
|
#ifdef __WIN32__
|
|
WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam) override;
|
|
#endif
|
|
|
|
void relayout();
|
|
|
|
void buttonClicked(wxCommandEvent& event);
|
|
void keyDown(wxKeyEvent& event);
|
|
|
|
void doRender(wxDC& dc) override;
|
|
|
|
// some useful events
|
|
bool sendTabCtrlEvent(bool changing = false);
|
|
|
|
DECLARE_EVENT_TABLE()
|
|
};
|
|
|
|
#endif // !slic3r_GUI_TabCtrl_hpp_
|