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 *scene_manager,
60 int findPI(BM_OpHandleLink *
pi)
const override;
66 virtual bool updateInvisiblePIHandleForMoveTool(
67 bool (*
func)(BM_Handle *handle,
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;
104 virtual const char* getOperatorName()
const;
119 BM_Viewport &viewport)
override;
122 int hotkey_id)
override;
129 int createPI(
const char *pi_name,
int opnum = -1,
130 const char *description = 0);
138 int appendPI(BM_OpHandleLink *pi,
int opnum = -1);
139 virtual void removePI(
int pi_idx);
140 void removeAllLinkedPIs();
141 void removeLinkedPIByDescription(
const char* descr_name);
143 BM_OpHandleLink *
pi(
int index);
144 const BM_OpHandleLink *
pi(
int index)
const;
145 BM_OpHandleLink *
pi(
const char *
name);
146 const BM_OpHandleLink *
pi(
const char *
name)
const;
148 const char *piDescription(
int index)
const;
149 int piOpnum(
int index)
const;
150 int numPIs()
const {
return myPIs.entries(); }
155 virtual void makePIVisible(
int pi_idx,
int onoff);
158 int appendFolder(
const char *folder_name);
159 void appendFeelToFolder(
const char *folder_name,
160 UI_Feel *child_feel);
161 int appendDialogToFolder(
const char *folder_name,
163 int appendDialogToFolder(
const char *folder_name,
166 int appendThisStateDialogToFolder(
const char *folder_name);
167 int appendDividerToFolder(
const char *folder_name);
168 int appendTextToFolder(
169 const char *folder_name,
const char *text,
172 int removeDialog(
OP_Node &op_node,
174 int removeFolder(
const char *
name,
bool only_if_empty=
false);
179 int appendDialogToFolder(
const char *folder_name,
181 int appendDividerToFolder(
const char *folder_name, BM_Handle* handle);
182 int appendTextToFolder(
const char *folder_name,
const char *text,
186 int removeCachedUIItems(
const char *folder_name, BM_Handle* handle);
189 void switchToFolder(
const char *
name);
193 virtual void handleDialogDeleted( OPUI_Dialog *deleted_dialog );
197 virtual void removeAllDialogs();
198 void handlePIVisibilityChange(
UI_Event *event);
204 int input_idx = 0,
int branch_off = 0);
207 void stampNode(
OP_Node &newnode);
211 virtual int matchesNode(
OP_Node &node)
const = 0;
228 void dialogDeletedCallback(
UI_Event* event );
230 void buildStateParmPrefix(
UT_WorkBuffer &
buf, BM_OpHandleLink *pii, BM_Handle *
h);
233 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