13 #ifndef __BM_OpState_H__
14 #define __BM_OpState_H__
28 class BM_SceneManager;
32 class opbm_DialogInfo;
38 #define BM_DEFAULT_CURSOR "iris"
45 BM_SceneManager *sceneManager,
60 int findPI(BM_OpHandleLink *
pi)
const override;
66 virtual bool updateInvisiblePIHandleForMoveTool(
78 { theAutoHighlightFlag = o; }
84 const char* prefix=
nullptr )
override;
93 BM_OpHandleLink* piByRootDescription(
const char *description);
94 BM_OpHandleLink
const* piByRootDescription(
const char *description)
const;
103 virtual const char* getOperatorName()
const;
118 BM_Viewport &viewport)
override;
121 int hotkey_id)
override;
128 int createPI(
const char *pi_name,
int opnum = -1,
129 const char *description = 0);
137 int appendPI(BM_OpHandleLink *pi,
int opnum = -1);
138 virtual void removePI(
int pi_idx);
139 void removeAllLinkedPIs();
140 void removeLinkedPIByDescription(
const char* descr_name);
142 BM_OpHandleLink *
pi(
int index);
143 const BM_OpHandleLink *
pi(
int index)
const;
144 BM_OpHandleLink *
pi(
const char *
name);
145 const BM_OpHandleLink *
pi(
const char *
name)
const;
147 const char *piDescription(
int index)
const;
148 int piOpnum(
int index)
const;
149 int numPIs()
const {
return myPIs.entries(); }
154 virtual void makePIVisible(
int pi_idx,
int onoff);
157 int appendFolder(
const char *folder_name);
158 void appendFeelToFolder(
const char *folder_name,
159 UI_Feel *child_feel);
160 int appendDialogToFolder(
const char *folder_name,
162 int appendDialogToFolder(
const char *folder_name,
165 int appendThisStateDialogToFolder(
const char *folder_name);
166 int appendDividerToFolder(
const char *folder_name);
167 int appendTextToFolder(
168 const char *folder_name,
const char *text,
171 int removeDialog(
OP_Node &op_node,
173 int removeFolder(
const char *
name,
bool only_if_empty=
false);
178 int appendDialogToFolder(
const char *folder_name,
180 int appendDividerToFolder(
const char *folder_name, BM_Handle* handle);
181 int appendTextToFolder(
const char *folder_name,
const char *text,
185 int removeCachedUIItems(
const char *folder_name, BM_Handle* handle);
188 void switchToFolder(
const char *
name);
192 virtual void handleDialogDeleted( OPUI_Dialog *deleted_dialog );
196 virtual void removeAllDialogs();
197 void handlePIVisibilityChange(
UI_Event *event);
203 int input_idx = 0,
int branch_off = 0);
206 void stampNode(
OP_Node &newnode);
210 virtual int matchesNode(
OP_Node &node)
const = 0;
227 void dialogDeletedCallback(
UI_Event* event );
229 void buildStateParmPrefix(
UT_WorkBuffer &
buf, BM_OpHandleLink *pii, BM_Handle *
h);
232 opbm_UIInfo* uiInfo(
char const* folder_name,
int64 cache_id);
GLenum GLuint GLenum GLsizei const GLchar * buf
UT_ValArray< opbm_PIContext * > myPIs
virtual UI_Feel * dialogFeel() const
static const char * HANDLES_FOLDER
UT_ValArray< UI_Feel * > myMiscFeels
#define BM_DEFAULT_CURSOR
static int getAutoHighlightFlag()
virtual int handleMouseWheelEvent(UI_Event *event)
virtual bool setStateParm(const char *name, const UT_StringHolder &val)
void resume(BM_SimpleState *state=0) override
virtual bool getStateParmNames(UT_StringArray &ret, const char *prefix=nullptr)
GLuint const GLchar * name
static const char * OP_DIALOG_FOLDER
virtual int findPI(BM_OpHandleLink *pi) const
virtual bool handleTransitoryKey(const UI_Event &, int)
GLfloat GLfloat GLfloat GLfloat h
virtual bool pressStateButton(const char *name)
UT_ValArray< opbm_DialogInfo * > myDialogs
static void setAutoHighlightFlag(int o)
static const char * STATE_DIALOG_FOLDER
__hostdev__ constexpr T pi()
Pi constant taken from Boost to match old behaviour.
const BM_OpView & baseViewer() const
void interrupt(BM_SimpleState *state=0) override
int handleMouseEvent(UI_Event *event) override
virtual bool evalStateParm(const char *name, UT_StringHolder &ret)
virtual int hasDialog() const
virtual void getKeyResolveInfo(UI_KeyResolveInfo &info)
virtual void prepareDialogForDisplay() const
static int theAutoHighlightFlag
virtual int handleKeyTypeEvent(int key, UI_Event *event, BM_Viewport &viewport)
const char * className() const override