16#include <sys/signal.h>
26class cxMultiLineInput;
127 const std::string& pLabel =
"",
130 bool pExitOnFull =
false, std::string *pExtVal =
nullptr);
160 virtual long show(
bool pBringToTop =
false,
bool pShowSubwindows =
false)
override;
175 virtual long showModal(
bool pShowSelf =
true,
bool pBringToTop =
true,
176 bool pShowSubwindows =
false)
override;
182 virtual std::string
getLabel()
const;
188 virtual void setLabel(
const std::string& pLabel);
196 virtual void clearValue(
bool pRefresh =
false);
205 virtual void clear(
bool pRefresh =
false)
override;
213 virtual std::string
getValue(
bool pRemoveLeadingSpaces =
false,
bool pRemoveTrailingSpaces =
false)
const;
221 virtual bool setValue(
const std::string& pValue,
bool pRefresh =
false);
234 void setExtValue(std::string *pExtVal,
bool pRefresh =
false);
386 virtual bool move(
int pNewRow,
int pNewCol,
bool pRefresh =
true)
override;
397 virtual void resize(
int pNewHeight,
int pNewWidth,
bool pRefresh =
true)
override;
474 static std::string
clearInput(
void* theInput,
void* unused);
595 virtual bool isFull()
const;
609 virtual bool hasFocus()
const override;
739 virtual void setLastKey(
int pLastKey)
override;
859 virtual std::string
cxTypeStr()
const override;
928 bool *pRunOnLeaveFunction =
nullptr)
override;
977 std::string *mExtValue;
978 int mInputStartX = 0;
985 bool mExitOnBackspaceAtFront =
false;
986 bool mExitOnMouseOutside =
false;
987 bool mExitOnArrowAtBoundary =
false;
988 bool mMustFill =
false;
989 bool mMasked =
false;
990 char mMaskChar =
'*';
993 bool mExitOnFunctionKey =
false;
994 bool mHasFocus =
false;
997 bool mReadOnlyOnLeave =
false;
998 bool mCanBeEditable =
true;
999 bool mJustStartedFocus =
false;
1003 bool mTrapNonAssignedFKeys =
false;
1004 bool mDoInputLoop =
true;
1007 bool mCursorAfterInput =
true;
1010 std::shared_ptr<cxFunction> mOnKeyFunction;
1011 bool mRunOnKeyFunction =
true;
1013 std::shared_ptr<cxFunction> mValidatorFunction;
1014 short mValueColorPair;
1015 bool mShowCursor =
true;
1018 bool mValidateOnReverse =
true;
1019 bool mForceUpper =
false;
1020 int mMaxInputLength = 0;
1021 int mScrollOffset = 0;
1033 void getInputText(std::string& pValue,
int pX,
bool pCheckPrintable =
true);
1041 inline void doBackspace(
int y,
int x, std::string& prevInput);
1045 void redrawVisibleValue();
1049 void ensureCursorVisible();
1052 inline void enableValueAttrs();
1055 inline void disableValueAttrs();
1065 long doInputLoop(
int x,
int y,
int rightLimit,
1066 bool updatePrevInput, std::string& prevInput);
1070 void addStopKey(
int pKey);
1074 virtual void setHotkeyHighlighting(
bool pMessageUnderlines)
override;
1078 virtual void draw()
override;
1085 struct sigaction mTimeoutSigaction;
1092 static void idleTimeoutHandler(
int pSignal);
1097 std::string runOnKeyFunction()
const;
1113 void copyCxFunction(
const cxInput& pThatInput, std::shared_ptr<cxFunction>& pDestFunc,
1114 const std::shared_ptr<cxFunction>& pSrcFunc);
1118 bool validatorFunctionIsSet()
const;
Provides some text validation functionality. See README.txt for.
Definition cxTextValidator.h:23
Represents a text-based window on the screen. Can contain a title, status, and a message to appear wi...
Definition cxWindow.h:195
#define DEFAULT_WIDTH
Definition cxWindow.h:69
cxBorderChars.h - Defines border characters to be used in drawing a box (i.e., in cxWindow and all it...
Definition cxApp.cpp:5
std::string(* funcPtr4)(void *p1, void *p2, void *p3, void *p4)
Definition cxFunction.h:21
e_WidgetItems
Definition cxWidgetItems.h:42
std::string(* funcPtr0)()
Definition cxFunction.h:19
std::string(* funcPtr2)(void *p1, void *p2)
Definition cxFunction.h:20
eInputOptions
Definition cxInputOptions.h:20
@ eINPUT_EDITABLE
Definition cxInputOptions.h:21
eBorderStyle
Definition cxBorderStyles.h:26
@ eBS_NOBORDER
Definition cxBorderStyles.h:27
e_cxColors
Definition cxColors.h:46