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