12 #ifndef __BM_State_H__
13 #define __BM_State_H__
26 class UI_KeyResolveInfo;
30 class BM_OpHandleLink;
76 const char *cursor = 0,
77 const char *
const *vnames = 0,
105 void exit()
override;
115 virtual void concealState();
116 virtual void revealState();
145 virtual bool handleDoubleClickEvent(
UI_Event *);
149 virtual void handleGeoChangedEvent(
UI_Event *);
152 virtual void handleDetailLookGeoChanged(
BM_DetailLook *look);
165 virtual void renderPartialOverlay(
RE_Render *
r,
int x,
int y);
171 : myInsertMode(true), myRequestNew(false), myExSitu(false) {}
201 const GenerateParms &parms);
209 bool requestnew =
false,
212 myFlags.scratch = how;
213 myFlags.requestnew = requestnew;
214 myFlags.exsitu = exsitu;
219 myFlags.requestnew = 0;
224 virtual void restart();
229 virtual bool allowRestartWithKey(
const UI_Event &
event)
const;
234 virtual int isEntryCondition (
UI_Keyboard key)
const;
236 virtual void getKeyResolveInfo(UI_KeyResolveInfo &info);
246 virtual int hasOpNode(
const OP_Node &)
const;
247 virtual void handleOpNodeChange(
OP_Node &);
248 virtual void handleOpUIChange(
OP_Node &);
250 virtual void handleOpNetClear();
255 virtual int handleNodeDeleted(
OP_Node &);
273 {
return myFlags.requestnew; }
275 {
return myFlags.exsitu; }
281 return (myFlags.entered &
286 return myFlags.entered &
291 return myFlags.modifier;
301 virtual int findPI(BM_OpHandleLink *
pi)
const;
321 virtual BM_RMBMenuPopupMode getRMBMenuPopupMode(
short altflags)
const;
324 int index()
const {
return myIndex; }
325 void index(
int idx) { myIndex = idx; }
328 const char *className()
const override;
340 virtual int isOpIndependent()
const;
353 virtual void switchToOpDependent();
358 const char *getOperationBarIconName()
const override;
359 const char *getOperationBarLabel()
const override;
360 const char *getHotkeyString()
const override;
362 virtual void afterUndo();
367 virtual void refreshBindings(
int id,
const char *op_type);
370 virtual void refreshSettings(
int id,
const char *op_type);
372 const char *replaceCursor(
const char *newcursor)
override;
379 virtual void getHelp(
UT_String &help_text,
bool &is_html);
418 return myBusyCounter > 0;
441 virtual void doRender(
RE_Render *
r,
int x,
int y,
int ghost);
445 virtual void doRenderSaved(
RE_Render *
r,
int x,
int y,
int ghost);
457 int meetsBasicEntryConditions(
const UI_Event &e)
const;
461 virtual void setBuild(
int onOff);
467 void renderSaved(
RE_Render *
r,
int x,
int y,
int ghost);
479 myState.myBusyCounter++;
484 if (myState.myBusyCounter > 0)
486 myState.myBusyCounter--;
virtual void stopGenerating()
void setExSitu(bool ex_situ)
virtual bool ignoreDisplayFlagChange() const
virtual void status(UT_String &s) const
static UI_Event theDelayedSelectionEvent
virtual bool getShowSelectedOp() const
PI_StateTemplate & getTemplate()
virtual int testDragDrop(DD_Source &)
int isRegenerating() const
GLuint const GLchar * name
virtual void resume(BM_SimpleState *=0)
virtual bool useVolatileSelection() const
bool isGeneratingExSitu() const
static bool theDelayedSelectionEventIsValid
bool isBusyProcessing() const
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
void startGenerating(BM_State::BM_GenerateMode how=BM_State::BM_INLINE, bool requestnew=false, bool exsitu=false)
bool isOverlay() const override
virtual void resetStateForNew()
virtual bool useSecureSelection() const
void harden()
Take shallow copy and make it deep.
virtual void interrupt(BM_SimpleState *=0)
void setRequestNew(bool request_new)
virtual bool wantFailedOrienterEvent() const
virtual bool handleTransitoryKey(const UI_Event &, int)
bool isRequestingNew() const
A map of string to various well defined value types.
int isGeneratingInline() const
const PI_StateTemplate & getTemplate() const
int isModifier() const override
virtual bool getAllowIndirectHandleDrag() const
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 *)
virtual void render(RE_Render *r, int x, int y)
constexpr T pi()
Pi constant taken from Boost to match old behaviour.
virtual bool showPersistent() const
virtual void renderStatusExtras(RE_Render *)
virtual void handleVolatileChanges()
virtual bool canSwitchToOpDependent() const
virtual bool doesHandleLocates() const
virtual int hasLocates() const