cxWidgets 1.0
cxForm.h
Go to the documentation of this file.
1// Copyright (c) 2026 E. Oulashin
2#ifndef __CXFORM_H__
3#define __CXFORM_H__
4
5/*
6 * cxForm.h - This is a form that contains text inputs.
7 *
8 * Copyright (C) 2005-2007 Michael H. Kinney
9 *
10 *
11 * Date User Description
12 */
13
14#include "cxWindow.h"
15#include "cxMultiLineInput.h"
16#include "cxComboBox.h"
17#include "cxMenu.h"
18#include <string>
19#include <vector>
20#include <set>
21#include <map>
22#include <memory>
23
24namespace cx {
25
26#define DEFAULT_CXFORM_JUMPMENU_KEY KEY_F(4) // Default hotkey for input jumping
27
28// This is used in append() for specifying the type of input to append, either
29// a cxMultiLineInput or a cxComboBox.
35
36class cxMultiForm; // Pre-declaration to avoid a circular reference
37
38// These typedefs are for appendPair() and appendComboBoxPair().
39typedef std::pair<std::shared_ptr<cxMultiLineInput>, std::shared_ptr<cxMultiLineInput> > cxMLInputPtrPair;
40typedef std::pair<std::shared_ptr<cxComboBox>, std::shared_ptr<cxComboBox> > cxComboBoxPtrPair;
41
84class cxForm : public cxWindow
85{
86 public:
106 explicit cxForm(cxWindow *pParentWindow = nullptr, int pRow = 0,
107 int pCol = 0, int pHeight = DEFAULT_HEIGHT,
108 int pWidth = DEFAULT_WIDTH, const std::string& pTitle = "",
109 eBorderStyle pBorderStyle = eBS_SINGLE_LINE,
110 cxWindow *pExtTitleWindow = nullptr,
111 cxWindow *pExtStatusWindow = nullptr,
112 bool pAutoExit = false, bool pStacked = false);
113
118 cxForm(const cxForm& pThatForm);
119
123 virtual ~cxForm();
124
162 virtual std::shared_ptr<cxMultiLineInput> append(int pRow, int pCol, int pHeight,
163 int pWidth, const std::string& pLabel,
164 const std::string& pValidator = "",
165 const std::string& pHelpString = "",
166 eInputOptions pInputOption = eINPUT_EDITABLE,
167 const std::string& pName = "",
168 std::string *pExtValue = nullptr,
169 int pRightLabelOffset = 0,
170 int pRightLabelHeight = 1,
171 int pRightLabelWidth = 7,
172 bool pShowRightLabel = false,
173 eInputType pInputType = eIT_CXMULTILINEINPUT);
174
205 virtual std::shared_ptr<cxComboBox> appendComboBox(int pRow, int pCol, int pHeight,
206 int pWidth, const std::string& pLabel,
207 const std::string& pValidator = "",
208 const std::string& pHelpString = "",
209 eInputOptions pInputOption = eINPUT_EDITABLE,
210 const std::string& pName = "",
211 std::string *pExtValue = nullptr,
212 int pRightLabelOffset = 0,
213 int pRightLabelHeight = 1,
214 int pRightLabelWidth = 7,
215 bool pShowRightLabel = false);
216
280 virtual cxMLInputPtrPair appendPair(int pRow, int pCol, int pHeight, int pWidth,
281 const std::string& pLabel,
282 const std::string& pValidator = "",
283 const std::string& pHelpString = "",
284 eInputOptions pInputOption = eINPUT_EDITABLE,
285 const std::string& pName = "",
286 std::string *pExtValue1 = nullptr,
287 std::string *pExtValue2 = nullptr,
288 int pRightLabel1Offset = 0,
289 int pRightLabel1Height = 1,
290 int pRightLabel1Width = 7,
291 bool pShowRightLabel1 = false,
292 int pRightLabel2Offset = 0,
293 int pRightLabel2Height = 1,
294 int pRightLabel2Width = 7,
295 bool pShowRightLabel2 = false,
296 eInputType pInput1Type = eIT_CXMULTILINEINPUT,
297 eInputType pInput2Type = eIT_CXMULTILINEINPUT);
298
357 virtual cxComboBoxPtrPair appendComboBoxPair(int pRow, int pCol, int pHeight,
358 int pWidth,
359 const std::string& pLabel,
360 const std::string& pValidator = "",
361 const std::string& pHelpString = "",
362 eInputOptions pInputOption = eINPUT_EDITABLE,
363 const std::string& pName = "",
364 std::string *pExtValue1 = nullptr,
365 std::string *pExtValue2 = nullptr,
366 int pRightLabel1Offset = 0,
367 int pRightLabel1Height = 1,
368 int pRightLabel1Width = 7,
369 bool pShowRightLabel1 = false,
370 int pRightLabel2Offset = 0,
371 int pRightLabel2Height = 1,
372 int pRightLabel2Width = 7,
373 bool pShowRightLabel2 = false);
374
390 virtual void appendPair(std::shared_ptr<cxMultiLineInput>& pInput1,
391 std::shared_ptr<cxMultiLineInput>& pInput2,
392 int pRow, int pCol, const std::string& pName = "");
393
429 virtual std::shared_ptr<cxMultiLineInput> append(int pHeight, int pWidth, const std::string& pLabel,
430 const std::string& pValidator = "",
431 const std::string& pHelpString = "",
432 eInputOptions pInputOption = eINPUT_EDITABLE,
433 const std::string& pName = "",
434 std::string *pExtValue = nullptr,
435 int pRightLabelOffset = 0,
436 int pRightLabelHeight = 1,
437 int pRightLabelWidth = 7,
438 bool pShowRightLabel = false,
439 eInputType pInputType = eIT_CXMULTILINEINPUT);
440
470 virtual std::shared_ptr<cxComboBox> appendComboBox(int pHeight, int pWidth, const std::string& pLabel,
471 const std::string& pValidator = "",
472 const std::string& pHelpString = "",
473 eInputOptions pInputOption = eINPUT_EDITABLE,
474 const std::string& pName = "",
475 std::string *pExtValue = nullptr,
476 int pRightLabelOffset = 0,
477 int pRightLabelHeight = 1,
478 int pRightLabelWidth = 7,
479 bool pShowRightLabel = false);
480
486 virtual std::shared_ptr<cxMultiLineInput> append(const cxMultiLineInput& pInput);
487
507 virtual void append(std::shared_ptr<cxMultiLineInput>& pInput, int pRow, int pCol, bool* pMoved = nullptr);
508
513 virtual void remove(unsigned int pIndex);
514
521 virtual void remove(const std::string& pLabel, bool pIsLabel = true);
522
527 virtual void remove(const std::shared_ptr<cxMultiLineInput>& pInput);
528 virtual void remove(cxMultiLineInput *pInput);
529
533 virtual void removeAll();
534
546 virtual void setFieldKeyFunction(const std::string& pLabel, int pFunctionKey,
547 const std::shared_ptr<cxFunction>& pFieldFunction,
548 bool pIsLabel = true);
549
567 virtual void setFieldKeyFunction(const std::string& pLabel, int pFunctionKey,
568 funcPtr4 pFieldFunction, void *p1, void *p2,
569 void *p3, void *p4, bool pUseVal,
570 bool pExitAfterRun = false,
571 bool pIsLabel = true);
572
588 virtual void setFieldKeyFunction(unsigned pIndex, int pFunctionKey,
589 funcPtr4 pFieldFunction, void *p1, void *p2,
590 void *p3, void *p4, bool pUseVal,
591 bool pExitAfterRun = false);
592
606 virtual void setFieldKeyFunction(const std::string& pLabel, int pFunctionKey,
607 funcPtr2 pFieldFunction, void *p1, void *p2,
608 bool pUseVal, bool pExitAfterRun = false,
609 bool pIsLabel = true);
610
611
618 virtual void setFieldKeyFunction(unsigned int pIndex, int pFunctionKey,
619 const std::shared_ptr<cxFunction>& pFieldFunction);
620
621
633 virtual void setFieldKeyFunction(unsigned int pIndex, int pFunctionKey,
634 funcPtr2 pFieldFunction, void *p1, void *p2,
635 bool pUseVal, bool pExitAfterRun = false);
636
642 virtual void setOnFocusFunction(const std::shared_ptr<cxFunction>& pFunction) override;
643
653 virtual void setOnFocusFunction(const std::string& pLabel,
654 const std::shared_ptr<cxFunction>& pFunction,
655 bool pIsLabel = true);
656
663 virtual void setOnFocusFunction(unsigned pIndex, const std::shared_ptr<cxFunction>& pFunction);
664
680 virtual void setOnFocusFunction(const std::string& pLabel, funcPtr4 pFunction,
681 void *p1, void *p2, void *p3, void *p4, bool pUseVal,
682 bool pIsLabel = true);
683
695 virtual void setOnFocusFunction(unsigned pIndex, funcPtr4 pFunction,
696 void *p1, void *p2, void *p3, void *p4, bool pUseVal);
697
703 virtual void setOnLeaveFunction(const std::shared_ptr<cxFunction>& pFunction) override;
704
713 virtual void setOnLeaveFunction(const std::string& pLabel, const std::shared_ptr<cxFunction>& pFunction,
714 bool pIsLabel = true);
715
726 virtual void setOnLeaveFunction(unsigned pIndex, const std::shared_ptr<cxFunction>& pFunction);
727
740 virtual void setOnLeaveFunction(const std::string& pLabel, funcPtr4 pFunction,
741 void *p1, void *p2, void *p3, void *p4,
742 bool pIsLabel = true);
743
754 virtual void setOnLeaveFunction(unsigned pIndex, funcPtr4 pFunction,
755 void *p1, void *p2, void *p3, void *p4);
756
762 virtual void setFieldLabel(unsigned pIndex, const std::string& pLabel);
763
769 virtual void setFieldLabel(const std::string& pName, const std::string& pLabel);
770
776 virtual void setFieldName(unsigned pIndex, const std::string& pName);
777
783 virtual void setFieldName(const std::string& pLabel, const std::string& pName);
784
798 virtual void enableInputLoop(const std::string& pLabel, bool pDoInputLoop, bool pIsLabel = true);
799
811 virtual void enableInputLoop(unsigned pIndex, bool pDoInputLoop);
812
818 virtual void setAutoExit(bool pAutoExit);
819
825 bool getAutoExit() const;
826
834 virtual void setStartAtFirstInput(bool pStartAtFirstInput);
835
843 bool getStartAtFirstInput() const;
844
851 void setApplyAttrDefaults(bool pApplyAttrDefaults);
852
858 bool getApplyAttrDefaults() const;
859
866 virtual long show(bool pBringToTop = false, bool pShowSubwindows = true) override;
867
878 virtual long showModal(bool pShowSelf = true, bool pBringToTop = false,
879 bool pShowSubwindows = true) override;
880
892 virtual bool modalGetsKeypress() const override;
893
899 virtual void hide(bool pHideSubwindows = true) override;
900
906 virtual void unhide(bool pUnhideSubwindows = true) override;
907
916 virtual bool move(int pNewRow, int pNewCol, bool pRefresh = true) override;
917
922 size_t numInputs() const;
923
929 virtual std::string getValue(int pIndex) const;
930
937 virtual std::string getValue(const std::string& pStr, bool pIsLabel = true) const;
938
946 virtual std::string getLabel(int pIndex) const;
947
955 virtual std::string getName(int pIndex) const;
956
964 virtual std::string getName(const std::string& pLabel) const;
965
974 virtual std::string getStatus(int pIndex) const;
975
986 virtual std::string getStatus(const std::string& pLabel, bool pIsLabel = true) const;
987
995 virtual bool setValue(int pIndex, const std::string& pValue, bool pRefresh = false);
996
1006 virtual bool setValue(const std::string& pLabel, const std::string& pValue,
1007 bool pIsLabel = true, bool pRefresh = false);
1008
1014 virtual int refreshInput(unsigned pIndex);
1015
1022 virtual int refreshInput(const std::string& pStr, bool pIsLabel = true);
1023
1030 bool setMaskChar(int pIndex, char pMaskChar);
1031
1041 bool setMaskChar(const std::string& pLabel, char pMaskChar, bool pIsLabel = true);
1042
1048 bool getMasked(int pIndex);
1049
1058 bool getMasked(const std::string& pLabel, bool pIsLabel = true);
1059
1066 virtual bool toggleMasking(int pIndex, bool pMasking);
1067
1077 virtual bool toggleMasking(const std::string& pLabel, bool pMasking, bool pIsLabel = true);
1078
1088 virtual bool setCurrentInput(int pIndex);
1089
1099 virtual bool setCurrentInput(const std::string& pLabel, bool pIsLabel = true);
1100
1110 virtual bool setCurrentInputByPtr(const std::shared_ptr<cxMultiLineInput>& pInput);
1111 virtual bool setCurrentInputByPtr(const cxMultiLineInput* const pInput);
1112
1122 virtual bool setKeyFunction(int pKey, const std::shared_ptr<cxFunction>& pFunction) override;
1123
1130 virtual void clearKeyFunction(int pKey) override;
1131
1153 virtual bool setKeyFunction(int pKey, funcPtr4 pFunction,
1154 void *p1, void *p2, void *p3, void *p4,
1155 bool pUseReturnVal = false,
1156 bool pExitAfterRun = false,
1157 bool pRunOnLeaveFunction = true) override;
1158
1179 virtual bool setKeyFunction(int pKey, funcPtr2 pFunction,
1180 void *p1, void *p2,
1181 bool pUseReturnVal = false,
1182 bool pExitAfterRun = false,
1183 bool pRunOnLeaveFunction = true) override;
1184
1203 virtual bool setKeyFunction(int pKey, funcPtr0 pFunction,
1204 bool pUseReturnVal = false,
1205 bool pExitAfterRun = false,
1206 bool pRunOnLeaveFunction = true) override;
1207
1218 virtual bool setKeyFunction(int pIndex, int pKey, const std::shared_ptr<cxFunction>& pFunction);
1219
1232 virtual bool setKeyFunction(const std::string& pLabel, int pKey, const std::shared_ptr<cxFunction>& pFunction, bool pIsLabel = true);
1233
1260 virtual bool setKeyFunction(int pIndex, int pKey,
1261 funcPtr4 pFunction, void *p1, void *p2,
1262 void *p3, void *p4, bool pUseVal,
1263 bool pExitAfterRun, bool pRunOnLeaveFunction,
1264 bool pRunValidator);
1265
1292 virtual bool setKeyFunction(const std::string& pLabel, int pKey,
1293 funcPtr4 pFunction, void *p1, void *p2,
1294 void *p3, void *p4, bool pUseVal,
1295 bool pExitAfterRun, bool pRunOnLeaveFunction,
1296 bool pRunValidator, bool pIsLabel = true);
1297
1322 virtual bool setKeyFunction(int pIndex, int pKey, funcPtr2 pFunction,
1323 void *p1, void *p2, bool pUseVal,
1324 bool pExitAfterRun, bool pRunOnLeaveFunction,
1325 bool pRunValidator);
1326
1351 virtual bool setKeyFunction(const std::string& pLabel, int pKey,
1352 funcPtr2 pFunction, void *p1, void *p2,
1353 bool pUseVal, bool pExitAfterRun,
1354 bool pRunOnLeaveFunction, bool pRunValidator,
1355 bool pIsLabel = true);
1356
1379 virtual bool setKeyFunction(int pIndex, int pKey, funcPtr0 pFunction,
1380 bool pUseVal, bool pExitAfterRun,
1381 bool pRunOnLeaveFunction, bool pRunValidator);
1382
1405 virtual bool setKeyFunction(const std::string& pLabel, int pKey,
1406 funcPtr0 pFunction, bool pUseVal,
1407 bool pExitAfterRun, bool pRunOnLeaveFunction,
1408 bool pRunValidator, bool pIsLabel = true);
1409
1414 bool allFieldsBlank() const;
1415
1422 void setLabelColor(const int& pIndex, e_cxColors pColor);
1423
1431 void setLabelColor(const std::string& pLabel, e_cxColors pColor, bool pIsLabel = true);
1432
1438 void setAllLabelColor(e_cxColors pColor);
1439
1447 int getLabelColor(const int& pIndex) const;
1448
1457 int getLabelColor(const std::string& pLabel, bool pIsLabel = true) const;
1458
1465 void setValueColor(const int& pIndex, e_cxColors pColor);
1466
1474 void setValueColor(const std::string& pLabel, e_cxColors pColor, bool pIsLabel = true);
1475
1481 void setAllValueColor(e_cxColors pColor);
1482
1490 int getValueColor(const int& pIndex) const;
1491
1500 int getValueColor(const std::string& pLabel, bool pIsLabel = true) const;
1501
1508 void setAllColors(e_cxColors pLabelColor, e_cxColors pValueColor);
1509
1520 virtual void setColor(e_WidgetItems pItem, e_cxColors pColor) override;
1521
1530 int inputTopRow(int pIndex) const;
1531
1542 int inputTopRow(const std::string& pLabel, bool pIslabel = true) const;
1543
1552 int inputLeftCol(int pIndex) const;
1553
1564 int inputLeftCol(const std::string& pLabel, bool pIsLabel = true) const;
1565
1574 int inputHeight(int pIndex) const;
1575
1586 int inputHeight(const std::string& pLabel, bool pIsLabel = true) const;
1587
1596 int inputWidth(int pIndex) const;
1597
1608 int inputWidth(const std::string& pLabel, bool pIsLabel = true) const;
1609
1619 int maxInputLen(int pIndex) const;
1620
1632 int maxInputLen(const std::string& pLabel, bool pIsLabel = true) const;
1633
1642 std::string inputLabel(int pIndex) const;
1643
1652 std::string inputLabel(const std::string& pName) const;
1653
1662 std::string inputName(int pIndex) const;
1663
1672 std::string inputName(const std::string& pLabel) const;
1673
1682 virtual void scrollInputs(int pVScrollAmt, int pHScrollAmt, bool pRefresh = false, bool pBringToTop = false);
1683
1691 virtual void toggleCursor(int pIndex, bool pShowCursor);
1692
1703 virtual void toggleCursor(const std::string& pLabel, bool pShowCursor, bool pIsLabel = true);
1704
1710 virtual void toggleCursor(bool pShowCursor);
1711
1725 std::shared_ptr<cxMultiLineInput> getInput(int pIndex) const;
1726
1742 std::shared_ptr<cxMultiLineInput> getInput(const std::string& pLabel, bool pIsLabel = true) const;
1743
1752 std::shared_ptr<cxMultiLineInput> getCurrentInput() const;
1753
1763 virtual int getInputOption(int pIndex) const;
1764
1776 virtual int getInputOption(const std::string& pLabel, bool pIsLabel = true) const;
1777
1786 virtual void setInputOption(int pIndex, eInputOptions pInputOption, bool pRefresh = true);
1787
1798 virtual void setInputOption(const std::string& pLabel, eInputOptions pInputOption,
1799 bool pIsLabel = true, bool pRefresh = true);
1800
1808 virtual void setAllInputOption(eInputOptions pInputOption, bool pRefresh = true);
1809
1817 virtual void setStatus(const std::string& pStatus, bool pRefreshStatus = true) override;
1818
1828 virtual void disableCustomStatus(bool pRefreshStatus = true);
1829
1836 virtual void setValidatorFunction(int pIndex, const std::shared_ptr<cxFunction>& pFunction);
1837
1848 virtual void setValidatorFunction(int pIndex, funcPtr4 pFunction, void *p1, void *p2,
1849 void *p3, void *p4);
1850
1859 virtual void setValidatorFunction(const std::string& pLabel, const std::shared_ptr<cxFunction>& pFunction,
1860 bool pIsLabel = true);
1861
1874 virtual void setValidatorFunction(const std::string& pLabel, funcPtr4 pFunction,
1875 void *p1, void *p2, void *p3, void *p4,
1876 bool pIsLabel = true);
1877
1885 virtual void showInputsOnBorder(bool pShowInputsOnBorder);
1886
1892 virtual void setOnKeyFunction(int pIndex, const std::shared_ptr<cxFunction>& pFunction);
1893
1904 virtual void setOnKeyFunction(int pIndex, funcPtr4 pFunction, void *p1,
1905 void *p2, void *p3, void *p4);
1906
1917 virtual void setOnKeyFunction(const std::string& pLabel, const std::shared_ptr<cxFunction>& pFunction,
1918 bool pIsLabel = true);
1919
1935 virtual void setOnKeyFunction(const std::string& pLabel, funcPtr4 pFunction, void *p1,
1936 void *p2, void *p3, void *p4, bool pIsLabel = true);
1937
1946 virtual void setOnKeyFunction(int pIndex, funcPtr2 pFunction, void *p1, void *p2);
1947
1961 virtual void setOnKeyFunction(const std::string& pLabel, funcPtr2 pFunction, void *p1,
1962 void *p2, bool pIsLabel = true);
1963
1972 virtual void setOnKeyFunction(int pIndex, funcPtr0 pFunction);
1973
1985 virtual void setOnKeyFunction(const std::string& pLabel, funcPtr0 pFunction, bool pIsLabel = true);
1986
1993 virtual void setAllOnKeyFunction(const std::shared_ptr<cxFunction>& pFunction);
1994
2006 virtual void setAllOnKeyFunction(funcPtr4 pFunction, void *p1, void *p2, void *p3, void *p4);
2007
2017 virtual void setAllOnKeyFunction(funcPtr2 pFunction, void *p1, void *p2);
2018
2026 virtual void setAllOnKeyFunction(funcPtr0 pFunction);
2027
2036 virtual void toggleOnKeyFunction(int pIndex, bool pRunOnKeyFunction);
2037
2050 virtual void toggleOnKeyFunction(const std::string& pLabel, bool pRunOnKeyFunction, bool pIsLabel = true);
2051
2059 virtual void toggleAllOnKeyFunction(bool pRunOnKeyFunction);
2060
2071 virtual bool onKeyFunctionEnabled(int pIndex) const;
2072
2087 virtual bool onKeyFunctionEnabled(const std::string& pLabel, bool pIsLabel = true) const;
2088
2096 cxForm& operator =(const cxForm& pThatForm);
2097
2122 virtual bool addInputJumpKey(int pKey, int pIndex);
2123
2150 virtual bool addInputJumpKey(int pKey, const std::string& pLabel, bool pIsLabel = true);
2151
2157 virtual int getCurrentInputIndex() const;
2158
2164 virtual std::string getCurrentInputLabel() const;
2165
2171 virtual std::string getCurrentInputName() const;
2172
2183 virtual int getInputIndex(const std::string& pLabel, bool pIsLabel = true) const;
2184
2194 virtual int getInputIndex(const std::shared_ptr<cxMultiLineInput>& pInput) const;
2195 virtual int getInputIndex(const cxMultiLineInput *pInput) const;
2196
2203 virtual void setInputJumpKey(int pInputJumpKey);
2204
2210 virtual int getInputJumpKey() const;
2211
2222 virtual void setCanBeEditable(int pIndex, bool pCanBeEditable);
2223
2236 virtual void setCanBeEditable(const std::string& pLabel, bool pCanBeEditable, bool pIsLabel = true);
2237
2244 virtual void setAllCanBeEditable(bool pCanBeEditable);
2245
2253 virtual bool canBeEditable(int pIndex) const;
2254
2264 virtual bool canBeEditable(const std::string& pLabel, bool pIsLabel = true) const;
2265
2271 virtual bool anyInputsCanBeEditable() const;
2272
2279 virtual void setAllowQuit(bool pAllowQuit);
2280
2286 virtual bool getAllowQuit() const;
2287
2294 virtual void setAllowExit(bool pAllowExit);
2295
2301 virtual bool getAllowExit() const;
2302
2319 virtual bool addQuitKey(int pKey, bool pRunOnLeaveFunction = true,
2320 bool pOverride = false) override;
2321
2327 virtual void removeQuitKey(int pKey) override;
2328
2345 virtual bool addExitKey(int pKey, bool pRunOnLeaveFunction = true,
2346 bool pOverride = false) override;
2347
2353 virtual void removeExitKey(int pKey) override;
2354
2372 virtual void setOnFocusFunction(funcPtr4 pFuncPtr, void *p1, void *p2,
2373 void *p3, void *p4, bool pUseVal = false,
2374 bool pExitAfterRun = false) override;
2375
2391 virtual void setOnFocusFunction(funcPtr2 pFuncPtr, void *p1, void *p2,
2392 bool pUseVal = false, bool pExitAfterRun = false) override;
2393
2407 virtual void setOnFocusFunction(funcPtr0 pFuncPtr, bool pUseVal = false,
2408 bool pExitAfterRun = false) override;
2409
2417 virtual void setLoopStartFunction(const std::shared_ptr<cxFunction>& pFuncPtr);
2418
2426 virtual void setLoopEndFunction(const std::shared_ptr<cxFunction>& pFuncPtr);
2427
2439 virtual void setOnLeaveFunction(funcPtr4 pFuncPtr, void *p1, void *p2,
2440 void *p3, void *p4) override;
2441
2451 virtual void setOnLeaveFunction(funcPtr2 pFuncPtr, void *p1, void *p2) override;
2452
2462 virtual void setOnLeaveFunction(funcPtr0 pFuncPtr) override;
2463
2472 virtual void showAllInputs(bool pBringToTop = true, bool pSkipCurrentInput = false) const;
2473
2482 virtual bool formKeyIsSet(int pKey) const;
2483
2490 virtual bool isStacked() const;
2491
2499 virtual bool getExitOnLeaveFirst() const;
2500
2509 virtual void setExitOnLeaveFirst(bool pExitOnLeaveFirst);
2510
2518 virtual bool hasEditableInputs() const;
2519
2527 virtual int firstEditableInput() const;
2528
2536 virtual int lastEditableInput() const;
2537
2542 virtual void bringToTop(bool pRefresh = true) override;
2543
2550 virtual bool hasChanged() const;
2551
2558 virtual void setChanged(bool pDataChanged);
2559
2570 virtual void trapNonAssignedFKeys(bool pTrapNonAssignedFKeys);
2571
2578
2585 virtual void setParentMultiForm(cxMultiForm *pParentMultiForm);
2586
2593 virtual bool runLoopStartFunction();
2594
2601 virtual bool runLoopEndFunction();
2602
2611 virtual int maxValueLen(int pIndex) const;
2612
2623 virtual int maxValueLen(const std::string& pLabel, bool pIsLabel = true);
2624
2633 virtual bool isEditable(int pIndex) const;
2634
2645 virtual bool isEditable(const std::string& pLabel, bool pIsLabel = true) const;
2646
2654 virtual void setDisableCursorOnShow(bool pDisableCursorOnShow) override;
2655
2663 virtual void setWaitForInputIfEmpty(bool pWaitForInputIfEmpty);
2664
2672 virtual bool getWaitForInputIfEmpty() const;
2673
2682 virtual void clearInputs(bool pRefresh = false,
2683 bool pOnlyEditable = false);
2684
2697 virtual void getValues(std::map<std::string, std::string>& pValues,
2698 bool pUseLabels = true,
2699 bool pSkipBlankIDs = false) const;
2700
2716 virtual void setValues(const std::map<std::string, std::string>& pValues,
2717 bool pUseLabels = true, bool pRefresh = false,
2718 bool pDisableValidatorFunctions = false);
2719
2727 virtual void setEnabled(bool pEnabled) override;
2728
2738 virtual void useInputStatus(bool pUseInputStatus);
2739
2751 virtual bool hasInput(const std::string& pStr, bool pIsLabel = true) const;
2752
2761 virtual cxWindow* getParent() const override;
2762
2777 // Note: This is commented out because, for some reason, with this in
2778 // the code, it seems to screw up all the forms in cprime so that they
2779 // only have 1 input, even if this method is not used anywhere..
2780 //virtual int nextEditableInput(int pIndex) const;
2781
2793 virtual void addAttr(e_WidgetItems pItem, attr_t pAttr) override;
2794
2807 virtual void setAttr(e_WidgetItems pItem, attr_t pAttr) override;
2808
2819 virtual void removeAttr(e_WidgetItems pItem, attr_t pAttr) override;
2820
2830 virtual void removeAttrs(e_WidgetItems pItem) override;
2831
2839 virtual void getAttrs(e_WidgetItems pItem, std::set<attr_t>& pAttrs) const override;
2840
2850 virtual void getNavKeys(std::set<int>& pNavKeys) const;
2851
2859 virtual void getNavKeyStrings(std::set<std::string>& pNavKeyStrings) const;
2860
2867 virtual bool hasNavKey(int pKey) const;
2868
2876 virtual std::string cxTypeStr() const override;
2877
2883 virtual void setLastKey(int pLastKey) override;
2884
2889 virtual void quitNow() override;
2890
2895 virtual void exitNow() override;
2896
2903 virtual void setExtendedHelpKey(int pKey);
2904
2911 virtual void addExtendedHelpKey(int pKey);
2912
2921 virtual std::set<int> getExtendedHelpKeys() const;
2922
2932 std::string getExtendedHelpKeyStrings() const;
2933
2937 virtual void clearExtendedHelpKeys();
2938
2945 virtual void setUseExtendedHelpKeys(bool pUseExtendedHelpKeys);
2946
2952 virtual bool getUseExtendedHelpKeys() const;
2953
2964 virtual std::string getExtendedHelp(int pIndex) const;
2965
2978 virtual std::string getExtendedHelp(const std::string& pIDStr, bool pIsLabel = true) const;
2979
2986 virtual void setExtendedHelp(int pIndex, const std::string& pExtendedHelp);
2987
2996 virtual void setExtendedHelp(const std::string& pIDStr, const std::string& pExtendedHelp,
2997 bool pIsLabel = true);
2998
3011 virtual void validateOnJumpKey(int pIndex, bool pValidate);
3012
3027 virtual void validateOnJumpKey(const std::string& pID, bool pValidate, bool pIsLabel = true);
3028
3040 virtual void allValidateOnJumpKey(bool pValidate);
3041
3052 virtual bool swap(int pInput1Index, int pInput2Index);
3053
3064 virtual bool swap(std::shared_ptr<cxWindow>& pInput1, std::shared_ptr<cxWindow>& pInput2);
3065
3066 // We still want to inherit versions of some functions from cxWindow
3067 using cxWindow::getName;
3068 using cxWindow::getStatus;
3069
3070 protected:
3071 typedef std::vector<std::shared_ptr<cxMultiLineInput> > inputPtrContainer;
3072 // mInputs stores the pointers to the form's inputs.
3074 int mCurrentInput = 0; // Keeps track of the current input w/ focus
3075
3076 // mInputPositions stores the upper-left y and x
3077 // coordinates of the inputs - this way, we can keep
3078 // track of where the inputs are, even if they use
3079 // "virtual" (negative) coordinates. With ncurses,
3080 // if you try to move a window outside the screen
3081 // boundaries, it seems to only move the window to
3082 // the far edges of the window (i.e., if a window
3083 // were at (y, x) = (3, 2) on the screen and you
3084 // move a window up 5 lines, ncurses says it's at
3085 // (0, 2) rather than (-2, 2). mInputPositions
3086 // would store (-2, 2), and when the form does
3087 // scrolling, it will check mInputPositions so
3088 // that the inputs maintain their relative position
3089 // to each other.
3090 std::vector<std::pair<int, int> > mInputPositions;
3091
3098
3105
3111 void copyCxFormStuff(const cxForm* pThatForm);
3112
3117 void lookForEditableInputs();
3118
3133 long doInputLoop(bool& pRunOnLeaveFunction);
3134
3154 virtual bool doCurrentInput(long& pReturnCode,
3155 bool& pRunOnLeaveFunction,
3156 bool& pFunctionExists,
3157 bool pExitOverride = false);
3158
3164 virtual void setIsModal(bool pIsModal);
3165
3166 private:
3167 // If mStacked is true, then the form will behave
3168 // assuming all the inputs are on their own line (no
3169 // side-by-side inputs).
3170 bool mStacked;
3171
3172 // mTotalInputHeight keeps track of the total height
3173 // of all inputs, if the form were in "stacked" mode. It
3174 // represents the total height of all inputs as if they
3175 // were all stretched out with each above the next.
3176 unsigned int mTotalInputHeight = 0;
3177
3178 bool mAutoExit; // Whether or not to auto exit the form
3179 // if the user presses enter/tab/etc. on
3180 // the last field.
3181 bool mApplyAttrDefaults = true; // Whether or not to apply attribute defaults
3182 // mCustomStatus will be true if the user explicitly called setStatus()
3183 // on the form, in which case the status text from the inputs will
3184 // not be used as the status text for the form.
3185 bool mCustomStatus = false;
3186 // mEditableInputsExist will be true if at least 1
3187 // editable input exists on the form.
3188 bool mEditableInputsExist = false;
3189 // If the user has put an input along one of the
3190 // borders, mInputsOnBorder will be true. Then,
3191 // during scrolling, etc., the form will behave
3192 // accordingly.
3193 bool mInputsOnBorder;
3194 cxMenu mJumpMenu; // Menu to choose which input to jump to
3195 int mInputJumpKey = DEFAULT_CXFORM_JUMPMENU_KEY; // Hotkey to use for jumping to another input
3196 bool mAllowQuit = true; // Whether or not to allow the user to quit
3197 bool mAllowExit = true; // Whether or not to allow the user to exit
3198 bool mExitOnLeaveFirst = false; // Whether or not to exit when the user
3199 // leaves the first input when going backwards.
3200 bool mWaitForInputIfEmpty = true; // Whether or not to get input in showModal()
3201 // if there are no editable inputs
3202 bool mDataChanged = false; // Whether or not any data has changed
3203
3204 // Functions to be run at various points in the input loop
3205 std::shared_ptr<cxFunction> mLoopStartFunction; // At the start of each cycle
3206 std::shared_ptr<cxFunction> mLoopEndFunction; // At the end of each cycle
3207
3208 // mParentMultiForm is a pointer to a cxMultiForm, in
3209 // case the form appears on a cxMultiForm (it can be
3210 // nullptr if it isn't on a cxMultiForm).
3211 cxMultiForm *mParentMultiForm = nullptr;
3212
3213 // Whether or not to cycle to the next/previous input in the input loop
3214 // (this is set false in setCurrentInput()).
3215 bool mCycleInput = true;
3216
3217 // mUseInputStatus specifies whether or not to use the status text of
3218 // the inputs as the status text for the form (in the bottom border
3219 // This is useful for inputs with help messages.
3220 bool mUseInputStatus = true;
3221
3222 // mHasBeenShown specifies whether or not the cxForm has been shown.
3223 // It is set true when show() is called. mHasBeenShown is used in
3224 // the unhide() method; if the form has been shown before, then the
3225 // inputs on the form will be unhidden in addition to the form. The
3226 // reason for this is that if the form hasn't been shown, then the
3227 // text in the inputs wouldn't have been drawn, so unhiding the inputs
3228 // may cause holes on the screen.
3229 bool mHasBeenShown = false;
3230
3231 // mExtendedHelpKeys specifies keys that can be pressed to display
3232 // extended help for the inputs. mUseExtendedHelpKeys specifies whether
3233 // or not to use them.
3234 std::set<int> mExtendedHelpKeys;
3235 bool mUseExtendedHelpKeys = true;
3236
3237 // mAllValidateOnJumpKey specifies whether or not the validator function
3238 // for each input should run when the user presses the form's input jump
3239 // key. If this is set to false, then when an input is appended,
3240 // mInputJumpKey will be added to the input's list of keys that skip the
3241 // validator function, allowing the user to jump to another input
3242 // whether or not the text in the input is valid. Otherwise, they could
3243 // only jump if the input is valid.
3244 bool mAllValidateOnJumpKey = true;
3245
3246 // mInputShowBools contains a boolean for each input
3247 // that specifies whether it should be shown. This
3248 // was added to aid in scrolling the inputs in
3249 // stacked mode. It's possible to have an input
3250 // on a top/bottom border and still have it showing,
3251 // but when we're scrolling the inputs, we will want
3252 // to make sure that showAllInputs() doesn't show
3253 // certain inputs.
3254 std::vector<bool> mInputShowBools;
3255
3256 // mInputJumpIndexes stores indexes for inputs to
3257 // which to set focus. Indexes are appended to
3258 // this container when the user calls addInputJumpKey(),
3259 // and the indexes in this container are used by
3260 // changeFocus().
3261 std::vector<int> mInputJumpIndexes;
3262
3263 // Makes sure this window is exactly the size needed to surround the inputs.
3264 void fitToInputs();
3265
3266 // Copies the current menu item's help string to the
3267 // status string, and optionally updates the status.
3268 inline void useInputStatusAsFormStatus(bool refreshStatus = false);
3269
3270 // Selects the next editable input. Returns true if the current input
3271 // was the last input, or false otherwise.
3272 bool selectNextInput();
3273
3274 // Selects the previous editable input. Returns true if the current
3275 // input was the first input, or false otherwise.
3276 bool selectPrevInput();
3277
3278 // The following functions are helpers for selectNextInput().
3279
3280 // Returns the greatest left side of all the inputs.
3281 inline int greatestLeftSide() const;
3282
3283 // Returns the lowest left side of all the inputs.
3284 inline int lowestLeftSide() const;
3285
3286 // Returns the greatest top side of all the inputs.
3287 inline int greatestTopSide() const;
3288
3289 // Returns the lowest top side of all the inputs.
3290 inline int lowestTopSide() const;
3291
3292 // Returns the index in mInputs that has the next lowest
3293 // top side of an input, or -1 if one isn't found.
3294 inline int inputNextLowestTop(int topSide);
3295
3296 // Returns the index in mInputs that has the next lowest
3297 // left side of an input, or -1 if one isn't found.
3298 inline int inputNextLowestLeft(int leftSide);
3299
3300 // Removes the last character in the current input if it
3301 // is a space. (In testing, it was found that when
3302 // the user hits the TAB key to go to the next input, it
3303 // was getting an extra space for the current input. This
3304 // is a kludge, but it works..)
3305 inline void clearInputIfSpace();
3306
3307 // Frees the memory used by the inputs
3308 inline void freeInputs();
3309
3310 // Sets the current input for focus for a form.
3311 static std::string changeFocus(void *theForm, void *theIndex);
3312
3313 // Scans a string for hotkeys and uses them for keys to press
3314 // to jump to a particular input.
3315 // Parameters:
3316 // pItemText: The text to scan for hotkeys
3317 // pIndex: The index of the input to which to jump for the hotkeys
3318 void addJumpKeys(const std::string& pItemText, int pIndex);
3319
3320 // Shows the input jump menu for the form and handles jumping
3321 // to another input upon the user's selection.
3322 void showJumpMenu();
3323
3324 // Returns the highest editable input index (or -1 if there are no inputs).
3325 int highestEditableInput() const;
3326
3327 // Applies attribute defaults to an input. This is meant for new inputs
3328 // being appended to the form (used in the append() methods).
3329 //
3330 // Parameters:
3331 // pInput: A pointer to an input to which to apply the attributes.
3332 void applyAttrDefaults(std::shared_ptr<cxMultiLineInput>& pInput);
3333
3334 // Applies all the form's attributes to an input. This meant for new
3335 // inputs being appended to the form (used in the append() methods).
3336 //
3337 // Parameters:
3338 // pInput: A pointer to an input to which to apply the attributes.
3339 void applyWinAttributes(std::shared_ptr<cxMultiLineInput>& pInput);
3340
3341 friend class cxMultiLineInput;
3342 friend class cxMultiForm;
3343 friend class cxPanel;
3344};
3345
3346
3347} // namespace cx
3348
3349#endif
Represents a form that contains text inputs. The user can move forward between the inputs on the form...
Definition cxForm.h:85
virtual std::string getExtendedHelp(int pIndex) const
Gets the extended help string from one of the inputs (by.
Definition cxForm.cpp:4994
virtual void setOnKeyFunction(const std::string &pLabel, const std::shared_ptr< cxFunction > &pFunction, bool pIsLabel=true)
Sets a function to be run whenever a key is pressed in an.
std::shared_ptr< cxMultiLineInput > getInput(int pIndex) const
Returns a pointer to an input at a given index, or nullptr if the index.
Definition cxForm.cpp:3099
virtual void unhide(bool pUnhideSubwindows=true) override
Definition cxForm.cpp:1570
virtual long showModal(bool pShowSelf=true, bool pBringToTop=false, bool pShowSubwindows=true) override
Shows the form and waits for input.
Definition cxForm.cpp:1502
virtual int firstEditableInput() const
Returns the index of the first editable input in.
Definition cxForm.cpp:4340
virtual void setInputOption(const std::string &pLabel, eInputOptions pInputOption, bool pIsLabel=true, bool pRefresh=true)
Sets the input kind for one of the inputs (by label/name).
virtual std::string getCurrentInputName() const
Returns the name of the input that currently has focus.
Definition cxForm.cpp:3835
virtual void setValidatorFunction(int pIndex, const std::shared_ptr< cxFunction > &pFunction)
Sets a validator function to be run before focus is lost for one.
virtual void setAllOnKeyFunction(const std::shared_ptr< cxFunction > &pFunction)
Sets a function to be run whenever a key is pressed, in all.
virtual void setAllowQuit(bool pAllowQuit)
Sets whether the form should allow the user to quit.
Definition cxForm.cpp:4056
virtual void setFieldKeyFunction(const std::string &pLabel, int pFunctionKey, const std::shared_ptr< cxFunction > &pFieldFunction, bool pIsLabel=true)
virtual bool swap(int pInput1Index, int pInput2Index)
Swaps the order of 2 inputs (by index). If both indexes.
Definition cxForm.cpp:5159
virtual void setExtendedHelp(const std::string &pIDStr, const std::string &pExtendedHelp, bool pIsLabel=true)
Sets the extended help for one of the inputs (by label/name).
virtual bool setKeyFunction(int pKey, const std::shared_ptr< cxFunction > &pFunction) override
Sets a function to be called when a key is pressed.
virtual void remove(const std::string &pLabel, bool pIsLabel=true)
virtual int refreshInput(const std::string &pStr, bool pIsLabel=true)
virtual std::string getCurrentInputLabel() const
Returns the label of the input that currently has focus.
Definition cxForm.cpp:3830
virtual void setOnLeaveFunction(const std::string &pLabel, const std::shared_ptr< cxFunction > &pFunction, bool pIsLabel=true)
virtual bool modalGetsKeypress() const override
Returns whether or not a call to showModal() will wait for a.
Definition cxForm.cpp:1540
virtual std::string getValue(const std::string &pStr, bool pIsLabel=true) const
virtual void remove(unsigned int pIndex)
Definition cxForm.cpp:911
virtual void setInputJumpKey(int pInputJumpKey)
Sets the hotkey to be used to bring up the menu to choose.
Definition cxForm.cpp:3894
virtual std::string getLabel(int pIndex) const
Returns the label of one of the inputs (by index).
Definition cxForm.cpp:1723
virtual int getInputIndex(const std::shared_ptr< cxMultiLineInput > &pInput) const
Returns the index of an input based on a pointer. May.
bool getApplyAttrDefaults() const
Returns whether default attributes are applied to new inputs.
Definition cxForm.cpp:1456
virtual void setFieldName(unsigned pIndex, const std::string &pName)
virtual cxWindow * getParent() const override
Returns a pointer to the parent window. If the cxForm.
Definition cxForm.cpp:4700
virtual void setOnLeaveFunction(unsigned pIndex, const std::shared_ptr< cxFunction > &pFunction)
virtual void clearExtendedHelpKeys()
Removes all extended help keys.
Definition cxForm.cpp:4970
virtual bool addInputJumpKey(int pKey, int pIndex)
Definition cxForm.cpp:3759
virtual void scrollInputs(int pVScrollAmt, int pHScrollAmt, bool pRefresh=false, bool pBringToTop=false)
Scrolls (moves) the inputs in the window.
Definition cxForm.cpp:2940
virtual bool getExitOnLeaveFirst() const
Returns whether the form is set to exit its showModal() when.
Definition cxForm.cpp:4309
virtual void getAttrs(e_WidgetItems pItem, std::set< attr_t > &pAttrs) const override
Returns the set of ncurses attributes for a given item.
Definition cxForm.cpp:4829
virtual void removeExitKey(int pKey) override
Removes an exit key.
Definition cxForm.cpp:4128
virtual std::shared_ptr< cxComboBox > appendComboBox(int pHeight, int pWidth, const std::string &pLabel, const std::string &pValidator="", const std::string &pHelpString="", eInputOptions pInputOption=eINPUT_EDITABLE, const std::string &pName="", std::string *pExtValue=nullptr, int pRightLabelOffset=0, int pRightLabelHeight=1, int pRightLabelWidth=7, bool pShowRightLabel=false)
Appends a combo box to the form below the last.
virtual bool doCurrentInput(long &pReturnCode, bool &pRunOnLeaveFunction, bool &pFunctionExists, bool pExitOverride=false)
Gets input from the current input (for use in the input loop).
Definition cxForm.cpp:6076
virtual int getInputJumpKey() const
Returns which key is being used as the jump hotkey.
Definition cxForm.cpp:3928
virtual bool addInputJumpKey(int pKey, const std::string &pLabel, bool pIsLabel=true)
Adds a hotkey for the form that will cause the.
virtual void setFieldLabel(const std::string &pName, const std::string &pLabel)
virtual int getInputOption(int pIndex) const
Returns the editability option for an input (by index).
Definition cxForm.cpp:3156
int maxInputLen(int pIndex) const
Returns the maximum length of input accepted by an input (by index),.
Definition cxForm.cpp:2841
virtual void setAllowExit(bool pAllowExit)
Sets whether the form should allow the user to exit.
Definition cxForm.cpp:4066
virtual std::string cxTypeStr() const override
Returns the name of the cxWidgets class. This can be used to.
Definition cxForm.cpp:4897
virtual void setOnKeyFunction(const std::string &pLabel, funcPtr4 pFunction, void *p1, void *p2, void *p3, void *p4, bool pIsLabel=true)
Sets a function to be run whenever a key is pressed in an.
virtual void removeQuitKey(int pKey) override
Removes a quit key (but doesn't work for ESC)
Definition cxForm.cpp:4097
virtual bool setKeyFunction(const std::string &pLabel, int pKey, funcPtr4 pFunction, void *p1, void *p2, void *p3, void *p4, bool pUseVal, bool pExitAfterRun, bool pRunOnLeaveFunction, bool pRunValidator, bool pIsLabel=true)
Adds a function to call when the user presses some key for.
virtual void setLoopEndFunction(const std::shared_ptr< cxFunction > &pFuncPtr)
Sets a function to be run at the end of each.
Definition cxForm.cpp:4163
virtual void setStartAtFirstInput(bool pStartAtFirstInput)
Sets whether or not to always start at the first editable.
Definition cxForm.cpp:1441
void setApplyAttrDefaults(bool pApplyAttrDefaults)
Sets whether to apply the default attributes to the inputs when.
Definition cxForm.cpp:1451
virtual void disableCustomStatus(bool pRefreshStatus=true)
Turns off the custom status text set with setStatus.
Definition cxForm.cpp:3388
virtual void setIsModal(bool pIsModal)
Sets whether the form is modal or not.
Definition cxForm.cpp:6333
std::vector< std::shared_ptr< cxMultiLineInput > > inputPtrContainer
Definition cxForm.h:3071
cxForm(cxWindow *pParentWindow=nullptr, int pRow=0, int pCol=0, int pHeight=DEFAULT_HEIGHT, int pWidth=DEFAULT_WIDTH, const std::string &pTitle="", eBorderStyle pBorderStyle=eBS_SINGLE_LINE, cxWindow *pExtTitleWindow=nullptr, cxWindow *pExtStatusWindow=nullptr, bool pAutoExit=false, bool pStacked=false)
virtual int getCurrentInputIndex() const
Returns the index of the input that currently has focus.
Definition cxForm.cpp:3813
virtual bool isStacked() const
Returns whether or not the form is in 'stacked'.
Definition cxForm.cpp:4304
virtual void setCanBeEditable(int pIndex, bool pCanBeEditable)
Sets whether an input can be set editable (by index). If.
Definition cxForm.cpp:3933
virtual void setWaitForInputIfEmpty(bool pWaitForInputIfEmpty)
Toggles whether or not the form should wait for.
Definition cxForm.cpp:4538
virtual void setFieldLabel(unsigned pIndex, const std::string &pLabel)
virtual bool setCurrentInput(const std::string &pLabel, bool pIsLabel=true)
Changes which input on the form should have focus (by label/name).
int inputWidth(const std::string &pLabel, bool pIsLabel=true) const
Returns the width of an input (by label/name), or -1 if there is.
virtual bool canBeEditable(int pIndex) const
Returns whether or not an input can be set editable.
Definition cxForm.cpp:3995
virtual void addExtendedHelpKey(int pKey)
Adds an additional key to be used to display the extended.
Definition cxForm.cpp:4942
void setAllLabelColor(e_cxColors pColor)
Sets the color of the labels on all inputs.
Definition cxForm.cpp:2504
void setLabelColor(const int &pIndex, e_cxColors pColor)
Sets the color of the label of one of the inputs (by index)
Definition cxForm.cpp:2469
virtual void clearInputs(bool pRefresh=false, bool pOnlyEditable=false)
Clears the values of all the inputs on the form.
Definition cxForm.cpp:4548
virtual void setValidatorFunction(const std::string &pLabel, const std::shared_ptr< cxFunction > &pFunction, bool pIsLabel=true)
Sets a validator function to be run before focus is lost for one.
bool setMaskChar(const std::string &pLabel, char pMaskChar, bool pIsLabel=true)
Sets the masking character for an input (by label).
int mCurrentInput
Definition cxForm.h:3074
virtual void getNavKeyStrings(std::set< std::string > &pNavKeyStrings) const
Creates a set of string representations of keys considered to.
Definition cxForm.cpp:4867
std::shared_ptr< cxMultiLineInput > getCurrentInput() const
Returns a pointer to the current input. If there are no inputs.
Definition cxForm.cpp:3142
virtual void removeAttr(e_WidgetItems pItem, attr_t pAttr) override
Removes an ncurses attribute from one of the item lists. For.
Definition cxForm.cpp:4789
std::string inputLabel(int pIndex) const
Returns the label of an input at a given index.
Definition cxForm.cpp:2884
virtual void hide(bool pHideSubwindows=true) override
Definition cxForm.cpp:1559
virtual std::shared_ptr< cxMultiLineInput > append(int pRow, int pCol, int pHeight, int pWidth, const std::string &pLabel, const std::string &pValidator="", const std::string &pHelpString="", eInputOptions pInputOption=eINPUT_EDITABLE, const std::string &pName="", std::string *pExtValue=nullptr, int pRightLabelOffset=0, int pRightLabelHeight=1, int pRightLabelWidth=7, bool pShowRightLabel=false, eInputType pInputType=eIT_CXMULTILINEINPUT)
Adds an input to the form. Applies the A_STANDOUT attribute.
void setValueColor(const std::string &pLabel, e_cxColors pColor, bool pIsLabel=true)
Sets the color of the value section of one of the inputs (by label/name)
std::string inputLabel(const std::string &pName) const
Returns the label of an input.
virtual bool move(int pNewRow, int pNewCol, bool pRefresh=true) override
Definition cxForm.cpp:1596
virtual void setEnabled(bool pEnabled) override
Enables or disables the form. Enabling/disabling a.
Definition cxForm.cpp:4638
size_t numInputs() const
Returns the number of inputs in the form.
Definition cxForm.cpp:1670
virtual void setDisableCursorOnShow(bool pDisableCursorOnShow) override
Sets whether the window should disable the cursor.
Definition cxForm.cpp:4527
virtual void toggleOnKeyFunction(int pIndex, bool pRunOnKeyFunction)
Sets whether or not an onKey function should run for one of the.
Definition cxForm.cpp:3658
virtual int getInputIndex(const std::string &pLabel, bool pIsLabel=true) const
Returns the index of an input, based on its label or name.
int maxInputLen(const std::string &pLabel, bool pIsLabel=true) const
Returns the maximum length of input accepted by an input (by index),.
virtual void setOnKeyFunction(const std::string &pLabel, funcPtr2 pFunction, void *p1, void *p2, bool pIsLabel=true)
Sets a function to be run whenever a key is pressed in an.
virtual void setAllCanBeEditable(bool pCanBeEditable)
Sets the ability of all inputs to be able to be editable.
Definition cxForm.cpp:3977
virtual std::shared_ptr< cxComboBox > appendComboBox(int pRow, int pCol, int pHeight, int pWidth, const std::string &pLabel, const std::string &pValidator="", const std::string &pHelpString="", eInputOptions pInputOption=eINPUT_EDITABLE, const std::string &pName="", std::string *pExtValue=nullptr, int pRightLabelOffset=0, int pRightLabelHeight=1, int pRightLabelWidth=7, bool pShowRightLabel=false)
Adds a combo box to the form. Applies the A_STANDOUT attribute.
bool getMasked(const std::string &pLabel, bool pIsLabel=true)
virtual void getValues(std::map< std::string, std::string > &pValues, bool pUseLabels=true, bool pSkipBlankIDs=false) const
Gets the values from the form in the form of a map of input.
Definition cxForm.cpp:4568
virtual void setInputOption(int pIndex, eInputOptions pInputOption, bool pRefresh=true)
Sets the input kind for one of the inputs (by index).
Definition cxForm.cpp:3199
virtual bool getWaitForInputIfEmpty() const
Returns whether or not the form will wait for.
Definition cxForm.cpp:4543
virtual void useInputStatus(bool pUseInputStatus)
Toggles whether or not to use the status text of the inputs.
Definition cxForm.cpp:4649
virtual void toggleCursor(const std::string &pLabel, bool pShowCursor, bool pIsLabel=true)
Toggles the display of the cursor for an input (by label/name).
std::string inputName(int pIndex) const
Returns the name of an input at a given index.
Definition cxForm.cpp:2912
bool setMaskChar(int pIndex, char pMaskChar)
Definition cxForm.cpp:1909
virtual void allValidateOnJumpKey(bool pValidate)
Sets whether or not the validator function should run for all.
Definition cxForm.cpp:5138
virtual void setOnKeyFunction(int pIndex, const std::shared_ptr< cxFunction > &pFunction)
Sets a function to be run whenever a key is pressed in an input (by index).
virtual bool setKeyFunction(const std::string &pLabel, int pKey, funcPtr0 pFunction, bool pUseVal, bool pExitAfterRun, bool pRunOnLeaveFunction, bool pRunValidator, bool pIsLabel=true)
Adds a function to call when the user presses some key for.
int getValueColor(const int &pIndex) const
Returns the color of the value section of one of the inputs (by index).
Definition cxForm.cpp:2598
virtual void exitNow() override
This causes the form to exit its input loop with a code of.
Definition cxForm.cpp:4924
int inputLeftCol(int pIndex) const
Returns the left column of an input (by index), or -1 if the given.
Definition cxForm.cpp:2712
virtual void setFieldKeyFunction(const std::string &pLabel, int pFunctionKey, funcPtr4 pFieldFunction, void *p1, void *p2, void *p3, void *p4, bool pUseVal, bool pExitAfterRun=false, bool pIsLabel=true)
std::string getExtendedHelpKeyStrings() const
Returns a comma-separated list of strings representing the.
Definition cxForm.cpp:4957
int getLabelColor(const int &pIndex) const
Returns the label color of one of the inputs (by index).
Definition cxForm.cpp:2512
virtual void setFieldKeyFunction(const std::string &pLabel, int pFunctionKey, funcPtr2 pFieldFunction, void *p1, void *p2, bool pUseVal, bool pExitAfterRun=false, bool pIsLabel=true)
std::string inputName(const std::string &pLabel) const
Returns the name of an input.
virtual void showInputsOnBorder(bool pShowInputsOnBorder)
Toggles whether to show inputs if they're on.
Definition cxForm.cpp:3466
virtual void setOnFocusFunction(unsigned pIndex, const std::shared_ptr< cxFunction > &pFunction)
virtual void append(std::shared_ptr< cxMultiLineInput > &pInput, int pRow, int pCol, bool *pMoved=nullptr)
Appends a cxMultiLineInput to the form via a pointer.
virtual int refreshInput(unsigned pIndex)
Definition cxForm.cpp:1862
virtual std::string getName(const std::string &pLabel) const
Returns the name of one of the inputs (by label).
virtual cxComboBoxPtrPair appendComboBoxPair(int pRow, int pCol, int pHeight, int pWidth, const std::string &pLabel, const std::string &pValidator="", const std::string &pHelpString="", eInputOptions pInputOption=eINPUT_EDITABLE, const std::string &pName="", std::string *pExtValue1=nullptr, std::string *pExtValue2=nullptr, int pRightLabel1Offset=0, int pRightLabel1Height=1, int pRightLabel1Width=7, bool pShowRightLabel1=false, int pRightLabel2Offset=0, int pRightLabel2Height=1, int pRightLabel2Width=7, bool pShowRightLabel2=false)
Appends a pair of cxComboBoxes to a form, one to the right of.
Definition cxForm.cpp:364
virtual void setValidatorFunction(const std::string &pLabel, funcPtr4 pFunction, void *p1, void *p2, void *p3, void *p4, bool pIsLabel=true)
Sets a validator function to be run before focus is lost for one.
virtual bool getAllowExit() const
Returns whether the user is able to exit out of the form.
Definition cxForm.cpp:4071
virtual bool formKeyIsSet(int pKey) const
Returns whether a key is set as a form function.
Definition cxForm.cpp:4283
virtual int lastEditableInput() const
Returns the index of the last editable input in.
Definition cxForm.cpp:4356
virtual bool setValue(int pIndex, const std::string &pValue, bool pRefresh=false)
void setValueColor(const int &pIndex, e_cxColors pColor)
Sets the color of the value section of one of the inputs (by index)
Definition cxForm.cpp:2555
virtual bool isEditable(int pIndex) const
Returns whether one of the inputs on.
Definition cxForm.cpp:4483
virtual void setAutoExit(bool pAutoExit)
Sets whether the form should automatically exit when the user.
Definition cxForm.cpp:1431
virtual void setValues(const std::map< std::string, std::string > &pValues, bool pUseLabels=true, bool pRefresh=false, bool pDisableValidatorFunctions=false)
Sets the values in the form with a map of input labels/names.
Definition cxForm.cpp:4602
virtual std::shared_ptr< cxMultiLineInput > append(int pHeight, int pWidth, const std::string &pLabel, const std::string &pValidator="", const std::string &pHelpString="", eInputOptions pInputOption=eINPUT_EDITABLE, const std::string &pName="", std::string *pExtValue=nullptr, int pRightLabelOffset=0, int pRightLabelHeight=1, int pRightLabelWidth=7, bool pShowRightLabel=false, eInputType pInputType=eIT_CXMULTILINEINPUT)
Appends an input to the form below the last item currently in.
void setAllColors(e_cxColors pLabelColor, e_cxColors pValueColor)
Sets the label & value colors of all inputs on the form.
Definition cxForm.cpp:2641
virtual bool setKeyFunction(const std::string &pLabel, int pKey, funcPtr2 pFunction, void *p1, void *p2, bool pUseVal, bool pExitAfterRun, bool pRunOnLeaveFunction, bool pRunValidator, bool pIsLabel=true)
Adds a function to call when the user presses some key for.
virtual bool setCurrentInput(int pIndex)
Changes which input on the form should have focus (by index).
Definition cxForm.cpp:2033
inputPtrContainer mInputs
Definition cxForm.h:3073
long doInputLoop(bool &pRunOnLeaveFunction)
Handles the input loop. Returns cxID_QUIT or cxID_EXIT,.
Definition cxForm.cpp:5791
virtual bool getUseExtendedHelpKeys() const
Returns whether or not the extended help keys are enabled.
Definition cxForm.cpp:4989
virtual void quitNow() override
This causes the form to exit its input loop with a code of.
Definition cxForm.cpp:4913
bool mStartAtFirstInput
mStartAtFirstInput keeps track of whether or not the form
Definition cxForm.h:3104
int inputLeftCol(const std::string &pLabel, bool pIsLabel=true) const
Returns the left column of an input (by label/name), or -1 if there are.
bool mTrapNonAssignedFKeys
If mTrapNonAssignedFKeys is true, function keys that aren't.
Definition cxForm.h:3097
virtual bool setCurrentInputByPtr(const std::shared_ptr< cxMultiLineInput > &pInput)
Changes which input on the form should have focus (by pointer).
virtual void setOnKeyFunction(const std::string &pLabel, funcPtr0 pFunction, bool pIsLabel=true)
Sets a function to be run whenever a key is pressed in an.
virtual void addAttr(e_WidgetItems pItem, attr_t pAttr) override
Returns the index of the next editable input after a given.
Definition cxForm.cpp:4749
virtual bool runLoopStartFunction()
Runs the loop start function, if it's set.
Definition cxForm.cpp:4413
virtual void setLastKey(int pLastKey) override
Sets the last keypress.
Definition cxForm.cpp:4902
virtual void setOnFocusFunction(const std::shared_ptr< cxFunction > &pFunction) override
Sets the form window's "on focus" function.
virtual void toggleOnKeyFunction(const std::string &pLabel, bool pRunOnKeyFunction, bool pIsLabel=true)
Sets whether or not an onKey function should run for one of the.
virtual void setOnFocusFunction(const std::string &pLabel, const std::shared_ptr< cxFunction > &pFunction, bool pIsLabel=true)
virtual bool setValue(const std::string &pLabel, const std::string &pValue, bool pIsLabel=true, bool pRefresh=false)
virtual void bringToTop(bool pRefresh=true) override
Brings the window to the top.
Definition cxForm.cpp:4371
virtual bool hasEditableInputs() const
Returns whether the form has any inputs that are.
Definition cxForm.cpp:4319
std::string getName() const
Definition cxWindow.cpp:3793
int getLabelColor(const std::string &pLabel, bool pIsLabel=true) const
Returns the label color of one of the inputs (by label/name).
virtual void setParentMultiForm(cxMultiForm *pParentMultiForm)
Sets the parent cxMultiForm that this cxForm is associated with.
Definition cxForm.cpp:4408
virtual void setLoopStartFunction(const std::shared_ptr< cxFunction > &pFuncPtr)
Sets a function to be run at the start of each.
Definition cxForm.cpp:4158
virtual bool onKeyFunctionEnabled(int pIndex) const
Returns whether the onKey function is enabled for one of the.
Definition cxForm.cpp:3704
void setAllValueColor(e_cxColors pColor)
Sets the color of the value section of all inputs on the form.
Definition cxForm.cpp:2590
void copyCxFormStuff(const cxForm *pThatForm)
Makes a copy of a cxForm's member variables.
Definition cxForm.cpp:5220
virtual int maxValueLen(int pIndex) const
Returns the maximum length of the value that may be set for an.
Definition cxForm.cpp:4439
virtual void showAllInputs(bool pBringToTop=true, bool pSkipCurrentInput=false) const
Shows (refreshes) all inputs.
Definition cxForm.cpp:4184
virtual bool swap(std::shared_ptr< cxWindow > &pInput1, std::shared_ptr< cxWindow > &pInput2)
Swaps the order of 2 inputs (by pointer). If both pointers.
virtual bool addQuitKey(int pKey, bool pRunOnLeaveFunction=true, bool pOverride=false) override
Adds a key that will cause the form to quit and return.
Definition cxForm.cpp:4076
std::shared_ptr< cxMultiLineInput > getInput(const std::string &pLabel, bool pIsLabel=true) const
Returns a pointer to an input with a given label/name, or.
virtual ~cxForm()
Definition cxForm.cpp:98
virtual void setExtendedHelpKey(int pKey)
Sets a single key to use to display extended help for all.
Definition cxForm.cpp:4935
bool allFieldsBlank() const
Definition cxForm.cpp:2453
int inputWidth(int pIndex) const
Returns the width of an input (by index), or -1 if the given index.
Definition cxForm.cpp:2798
virtual bool setKeyFunction(int pIndex, int pKey, const std::shared_ptr< cxFunction > &pFunction)
Sets a function to be called when a key is pressed.
virtual bool runLoopEndFunction()
Runs the loop end function, if it's set.
Definition cxForm.cpp:4426
virtual bool isEditable(const std::string &pLabel, bool pIsLabel=true) const
Returns whether one of the inputs on.
virtual long show(bool pBringToTop=false, bool pShowSubwindows=true) override
Shows the form.
Definition cxForm.cpp:1461
virtual bool hasChanged() const
Returns whether or not any data on the form has changed.
Definition cxForm.cpp:4388
virtual void setExtendedHelp(int pIndex, const std::string &pExtendedHelp)
Sets the extended help for one of the inputs (by index).
virtual cxMLInputPtrPair appendPair(int pRow, int pCol, int pHeight, int pWidth, const std::string &pLabel, const std::string &pValidator="", const std::string &pHelpString="", eInputOptions pInputOption=eINPUT_EDITABLE, const std::string &pName="", std::string *pExtValue1=nullptr, std::string *pExtValue2=nullptr, int pRightLabel1Offset=0, int pRightLabel1Height=1, int pRightLabel1Width=7, bool pShowRightLabel1=false, int pRightLabel2Offset=0, int pRightLabel2Height=1, int pRightLabel2Width=7, bool pShowRightLabel2=false, eInputType pInput1Type=eIT_CXMULTILINEINPUT, eInputType pInput2Type=eIT_CXMULTILINEINPUT)
Appends a pair of inputs to a form, one to the right of the.
int inputHeight(const std::string &pLabel, bool pIsLabel=true) const
Returns the height of an input (by label/name), or -1 if there is no input.
virtual bool setKeyFunction(const std::string &pLabel, int pKey, const std::shared_ptr< cxFunction > &pFunction, bool pIsLabel=true)
Sets a function to be called when a key is pressed.
virtual void setFieldKeyFunction(unsigned int pIndex, int pFunctionKey, funcPtr2 pFieldFunction, void *p1, void *p2, bool pUseVal, bool pExitAfterRun=false)
virtual std::string getExtendedHelp(const std::string &pIDStr, bool pIsLabel=true) const
Returns the extended help string from one of the inputs (by.
virtual void setUseExtendedHelpKeys(bool pUseExtendedHelpKeys)
Sets whether or not to use the extended help keys.
Definition cxForm.cpp:4979
int inputTopRow(int pIndex) const
Returns the top row of an input (by index), or -1 if the given.
Definition cxForm.cpp:2669
virtual void setCanBeEditable(const std::string &pLabel, bool pCanBeEditable, bool pIsLabel=true)
Sets whether an input can be set editable (by label/name). For.
virtual void toggleCursor(int pIndex, bool pShowCursor)
Toggles the display of the cursor for an input (by index).
Definition cxForm.cpp:3056
void lookForEditableInputs()
Scans all inputs to see if any are editable and updates.
Definition cxForm.cpp:5298
void setLabelColor(const std::string &pLabel, e_cxColors pColor, bool pIsLabel=true)
Sets the color of the label of one of the inputs (by label/name)
virtual int maxValueLen(const std::string &pLabel, bool pIsLabel=true)
Returns the maximum length of the value that may be set for an.
int inputTopRow(const std::string &pLabel, bool pIslabel=true) const
Returns the top row of an input (by label/name), or -1 if there is no.
virtual int getInputOption(const std::string &pLabel, bool pIsLabel=true) const
Returns the editability option for an input (by label/name).
virtual void setExitOnLeaveFirst(bool pExitOnLeaveFirst)
Sets whether the form should exit when the user leaves.
Definition cxForm.cpp:4314
int inputHeight(int pIndex) const
Returns the height of an input (by index), or -1 if the given index.
Definition cxForm.cpp:2755
virtual void setStatus(const std::string &pStatus, bool pRefreshStatus=true) override
Mutator for the status line text. After this method.
Definition cxForm.cpp:3382
virtual void setOnLeaveFunction(const std::string &pLabel, funcPtr4 pFunction, void *p1, void *p2, void *p3, void *p4, bool pIsLabel=true)
virtual std::string getValue(int pIndex) const
Definition cxForm.cpp:1677
virtual void toggleAllOnKeyFunction(bool pRunOnKeyFunction)
Sets whether or not the onKey function for all inputs should.
Definition cxForm.cpp:3695
virtual void setFieldKeyFunction(unsigned int pIndex, int pFunctionKey, const std::shared_ptr< cxFunction > &pFieldFunction)
cxMultiForm * getParentMultiForm() const
Returns the parent cxMultiForm pointer.
Definition cxForm.cpp:4403
virtual bool toggleMasking(int pIndex, bool pMasking)
Definition cxForm.cpp:1988
bool getAutoExit() const
Returns the set value of whether the form should exit upon.
Definition cxForm.cpp:1436
virtual bool canBeEditable(const std::string &pLabel, bool pIsLabel=true) const
Returns whether or not an input can be set editable.
int getValueColor(const std::string &pLabel, bool pIsLabel=true) const
Returns the color of the value section of one of the inputs (by label/name).
virtual void setChanged(bool pDataChanged)
Setter for whether or not data should be considered changed.
Definition cxForm.cpp:4393
virtual void setAttr(e_WidgetItems pItem, attr_t pAttr) override
Sets the ncurses attribute to use for one of the items in the.
Definition cxForm.cpp:4769
virtual void appendPair(std::shared_ptr< cxMultiLineInput > &pInput1, std::shared_ptr< cxMultiLineInput > &pInput2, int pRow, int pCol, const std::string &pName="")
Appends 2 inputs to the form, one to the right of the other.
std::string getStatus() const
Accessor for the status line text.
Definition cxWindow.cpp:976
virtual void setOnFocusFunction(const std::string &pLabel, funcPtr4 pFunction, void *p1, void *p2, void *p3, void *p4, bool pUseVal, bool pIsLabel=true)
bool getMasked(int pIndex)
Definition cxForm.cpp:1958
virtual bool addExitKey(int pKey, bool pRunOnLeaveFunction=true, bool pOverride=false) override
Adds a key that will cause the form to quit and return.
Definition cxForm.cpp:4107
virtual void setFieldKeyFunction(unsigned pIndex, int pFunctionKey, funcPtr4 pFieldFunction, void *p1, void *p2, void *p3, void *p4, bool pUseVal, bool pExitAfterRun=false)
virtual void setFieldName(const std::string &pLabel, const std::string &pName)
Sets a field name (by label)
virtual void validateOnJumpKey(const std::string &pID, bool pValidate, bool pIsLabel=true)
Sets whether or not the validator function should run for an.
virtual void setOnLeaveFunction(const std::shared_ptr< cxFunction > &pFunction) override
Sets the form window's "on leave" function.
virtual void clearKeyFunction(int pKey) override
Removes a function pointer for a keypress for the form so that it will no.
Definition cxForm.cpp:2159
virtual void enableInputLoop(const std::string &pLabel, bool pDoInputLoop, bool pIsLabel=true)
Enables or disables the input loop for one of the.
virtual std::set< int > getExtendedHelpKeys() const
Returns the keys used to display extended help for the inputs.
Definition cxForm.cpp:4952
virtual void removeAttrs(e_WidgetItems pItem) override
Removes all attributes for a given window item. For eLABEL,.
Definition cxForm.cpp:4809
cxForm & operator=(const cxForm &pThatForm)
Assignment operator.
Definition cxForm.cpp:3748
virtual bool getAllowQuit() const
Returns whether the user is able to quit out of the form.
Definition cxForm.cpp:4061
virtual bool toggleMasking(const std::string &pLabel, bool pMasking, bool pIsLabel=true)
Enables/disables masking for an input (by label).
virtual bool hasNavKey(int pKey) const
Returns whether at least one of the inputs on the form has.
Definition cxForm.cpp:4880
virtual bool onKeyFunctionEnabled(const std::string &pLabel, bool pIsLabel=true) const
Returns whether the onKey function is enabled for one of the.
virtual void validateOnJumpKey(int pIndex, bool pValidate)
Sets whether or not the validator function should run for an.
Definition cxForm.cpp:5075
virtual void setAllInputOption(eInputOptions pInputOption, bool pRefresh=true)
Sets the input kind for all inputs on the form.
Definition cxForm.cpp:3344
virtual void getNavKeys(std::set< int > &pNavKeys) const
Gathers a set of keys considered to be "navigational" keys from.
Definition cxForm.cpp:4852
virtual void trapNonAssignedFKeys(bool pTrapNonAssignedFKeys)
Sets whether non-assigned function keys should.
Definition cxForm.cpp:4398
std::vector< std::pair< int, int > > mInputPositions
Definition cxForm.h:3090
virtual void setColor(e_WidgetItems pItem, e_cxColors pColor) override
Sets the color of one of the window items. For label & value.
Definition cxForm.cpp:2650
virtual std::string getStatus(const std::string &pLabel, bool pIsLabel=true) const
Returns the status text of one of the inputs (by label/name).
virtual void remove(const std::shared_ptr< cxMultiLineInput > &pInput)
bool getStartAtFirstInput() const
Returns whether or not the form will always start at the first.
Definition cxForm.cpp:1446
virtual void removeAll()
Removes all inputs from the form.
Definition cxForm.cpp:1075
virtual bool hasInput(const std::string &pStr, bool pIsLabel=true) const
Returns whether or not the form has an input with a given.
Definition cxForm.cpp:4669
virtual bool anyInputsCanBeEditable() const
Returns whether any input on the form (at least 1) can be set editable.
Definition cxForm.cpp:4039
Represents a list of items, one of which may be selected.
Definition cxMenu.h:62
Represents a form that can.
Definition cxMultiForm.h:49
This class represents an input box that can have a height.
Definition cxMultiLineInput.h:149
cxPanel is a window that contains other windows. When showModal()
Definition cxPanel.h:46
Represents a text-based window on the screen. Can contain a title, status, and a message to appear wi...
Definition cxWindow.h:195
std::string getName() const
Definition cxWindow.cpp:3793
std::string getStatus() const
Accessor for the status line text.
Definition cxWindow.cpp:976
#define DEFAULT_CXFORM_JUMPMENU_KEY
Definition cxForm.h:26
#define DEFAULT_HEIGHT
Definition cxWindow.h:68
#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
eInputType
Definition cxForm.h:31
@ eIT_CXCOMBOBOX
Definition cxForm.h:33
@ eIT_CXMULTILINEINPUT
Definition cxForm.h:32
e_WidgetItems
Definition cxWidgetItems.h:42
std::string(* funcPtr0)()
Definition cxFunction.h:19
std::pair< std::shared_ptr< cxMultiLineInput >, std::shared_ptr< cxMultiLineInput > > cxMLInputPtrPair
Definition cxForm.h:39
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_SINGLE_LINE
Definition cxBorderStyles.h:28
std::pair< std::shared_ptr< cxComboBox >, std::shared_ptr< cxComboBox > > cxComboBoxPtrPair
Definition cxForm.h:40
e_cxColors
Definition cxColors.h:46