12 #ifndef __BM_State_H__
13 #define __BM_State_H__
31 class UI_KeyResolveInfo;
35 class BM_OpHandleLink;
36 class BM_HUDInfoArgsCopy;
84 const char *cursor = 0,
85 const char *
const *vnames = 0,
115 void exit()
override;
125 virtual void concealState();
126 virtual void revealState();
140 virtual void onVolatileState(
BM_SimpleState const* volatile_state,
bool overriding_state);
158 virtual bool handleDoubleClickEvent(
UI_Event *);
162 virtual void handleGeoChangedEvent(
UI_Event *);
165 virtual void handleDetailLookGeoChanged(
BM_DetailLook *look);
184 : myInsertMode(true), myRequestNew(false), myExSitu(false) {}
214 const GenerateParms &
parms);
222 bool requestnew =
false,
225 myFlags.scratch = how;
226 myFlags.requestnew = requestnew;
227 myFlags.exsitu = exsitu;
232 myFlags.requestnew = 0;
237 virtual void restart();
240 int meetsOverlayEntryConditions(
243 virtual void getKeyResolveInfo(UI_KeyResolveInfo &info);
253 virtual int hasOpNode(
const OP_Node &)
const;
254 virtual void handleOpNodeChange(
OP_Node &);
255 virtual void handleOpUIChange(
OP_Node &);
257 virtual void handleOpNetClear();
262 virtual int handleNodeDeleted(
OP_Node &);
280 {
return myFlags.requestnew; }
282 {
return myFlags.exsitu; }
288 return (myFlags.entered &
293 return myFlags.entered &
298 return myFlags.modifier;
311 virtual int findPI(BM_OpHandleLink *
pi)
const;
331 virtual BM_RMBMenuPopupMode getRMBMenuPopupMode(
short altflags)
const;
334 const char *className()
const override;
346 virtual int isOpIndependent()
const;
359 virtual void switchToOpDependent();
362 const char *getHotkeyString()
const override;
363 const char *getIconName()
const override;
364 const char *getLabel()
const override;
367 virtual void afterUndo();
372 virtual void refreshBindings(
int id,
const char *op_type);
375 virtual void refreshSettings(
int id,
const char *op_type);
377 const char *replaceCursor(
const char *newcursor)
override;
384 virtual void getHelp(
UT_String &help_text,
bool &is_html);
423 return myBusyCounter > 0;
447 bool reveal_updated_handles)
470 virtual void initializeHUDs();
486 return myViewportEventIDStack;
491 return myViewportEventIDStack;
517 int meetsBasicOverlayEntryConditions(
522 virtual void setBuild(
int onOff);
540 myState.myBusyCounter++;
545 if (myState.myBusyCounter > 0)
547 myState.myBusyCounter--;
560 friend class bmQtNotifier;
562 template<
typename T = bmQtNotifier>
virtual void stopGenerating()
void setExSitu(bool ex_situ)
PXL_API const char * getDescription(const ColorSpace *space)
Return the description of the color space.
virtual bool ignoreDisplayFlagChange() const
virtual void status(UT_String &s) const
static UI_Event theDelayedSelectionEvent
virtual bool getShowSelectedOp() const
virtual bool switchHandleTool(BM_MoveTool::Type tool, bool reveal_updated_handles)
PI_StateTemplate & getTemplate()
virtual int testDragDrop(DD_Source &)
int isRegenerating() const
virtual void resume(BM_SimpleState *=0)
virtual bool useVolatileSelection() const
virtual bool overrideSelectState(UT_StringHolder &new_state)
bool isGeneratingExSitu() const
Temporary container for either a RV_Render and an RE_Render.
static bool theDelayedSelectionEventIsValid
bool isBusyProcessing() const
std::unique_ptr< T, Deleter > UT_UniquePtr
A smart pointer for unique ownership of dynamically allocated objects.
virtual int enter(BM_EntryType how=BM_SimpleState::BM_OVERLAY_ENTRY)=0
void wantsLocates(int yesNo)
void setInsertMode(bool insert_mode)
virtual UI_Feel * getCustomSelectModeSideBar() const
UT_UniquePtr< BM_HUDInfoArgsCopy > HUDInfoArgsCopyUPtr
void startGenerating(BM_State::BM_GenerateMode how=BM_State::BM_INLINE, bool requestnew=false, bool exsitu=false)
std::shared_ptr< T > UT_SharedPtr
Wrapper around std::shared_ptr.
bool isOverlay() const override
virtual void resetStateForNew()
virtual bool useSecureSelection() const
virtual void render(RE_RenderContext rc, int x, int y)
void harden()
Take shallow copy and make it deep.
virtual void interrupt(BM_SimpleState *=0)
*get result *(waiting if necessary)*A common idiom is to fire a bunch of sub tasks at the queue
void setRequestNew(bool request_new)
GLuint const GLchar * name
virtual bool wantFailedOrienterEvent() const
UT_Array< int > & viewportEventIDs()
virtual bool handleTransitoryKey(const UI_Event &, int)
bool isRequestingNew() const
A map of string to various well defined value types.
GA_API const UT_StringHolder parms
int isGeneratingInline() const
const PI_StateTemplate & getTemplate() const
int isModifier() const override
virtual bool getAllowIndirectHandleDrag() const
__hostdev__ constexpr T pi()
Pi constant taken from Boost to match old behaviour.
virtual int handleMouseEvent(UI_Event *event)=0
virtual void getDragDropChoice(DD_Source &, DD_ChoiceList &)
virtual int acceptDragDrop(DD_Source &, const char *)
int isHandle() const override
void(UI_Object::* UI_EventMethod)(UI_Event *)
**If you just want to fire and args
virtual bool showPersistent() const
virtual void handleVolatileChanges()
virtual void renderStatusExtras(RE_RenderContext)
virtual bool canSwitchToOpDependent() const
virtual bool doesHandleLocates() const
UT_Array< int > const & viewportEventIDs() const
virtual int hasLocates() const