Hot Door CORE 0.8.2
Adobe® Illustrator® Plug-in Library
Loading...
Searching...
No Matches
Public Types | Public Member Functions | Friends | List of all members
hdi::core::TextField Class Reference

Text field widget, which allows the user to enter arbitrary text values. More...

#include <hdicoreTextField.h>

Inheritance diagram for hdi::core::TextField:
Inheritance graph
[legend]
Collaboration diagram for hdi::core::TextField:
Collaboration graph
[legend]

Public Types

enum  Alignment { UnknownAlignment = 0 , LeftAlignment = 10 , CenterAlignment = 20 , RightAlignment = 30 }
 Text alignment options.
 
- Public Types inherited from hdi::core::Widget
enum  Type {
  UnknownType = 0 , BoxType = 10 , ButtonType = 20 , CheckboxType = 30 ,
  ColumnViewType = 40 , ComboBoxType = 50 , ColorWellType = 60 , CustomType = 70 ,
  DividerType = 80 , HierarchicalColumnViewType = 85 , HierarchicalViewType = 90 , LabelType = 100 ,
  ListViewType = 110 , PopupMenuType = 120 , RadioButtonType = 130 , SliderType = 140 ,
  StepperType = 150 , TextFieldType = 160 , TextViewType = 170 , WebViewType = 180
}
 Supported widget types.
 

Public Member Functions

 TextField ()
 Constructs an empty TextField object.
 
 TextField (const TextField &field_)
 Constructs a new TextField object from an existing TextField object (copy constructor)
 
 TextField (const Point &loc_, const std::string &text_, const double width_)
 Constructs an editable text field (single line only)
 
virtual ~TextField ()
 TextField destructor.
 
virtual TextFieldoperator= (const TextField &rhs_)
 Allows one TextField object to be assigned from another.
 
virtual TextFieldclone () const
 Convenience method to clone a TextField object on the heap.
 
virtual TextFieldduplicate () const
 Convenience method to duplicate a TextField object, creating a new and identical UI element to the target (but not belonging to the same containing window)
 
virtual Alignment alignment () const
 Gets the current alignment of the text field.
 
virtual void setAlignment (const Alignment alignment_)
 Sets the current alignment of the text field.
 
virtual bool bold () const
 Gets whether the text is bold.
 
virtual void setBold (const bool bold_)
 Sets the font weight.
 
virtual bool italic () const
 Gets whether the text is italicized.
 
virtual void setItalic (const bool italic_)
 Sets the font style.
 
virtual std::unique_ptr< Labellabel () const
 If the target text field has been associated with a label, this gets said label.
 
virtual void setLabel (Label &label_)
 Sets the label that, when clicked, will focus the target text field.
 
virtual void removeLabel ()
 Removes the label that, when clicked, would have focused the target text field.
 
virtual bool selectionRange (uint32_t &pos__, uint32_t &len__) const
 Gets the selection range of the text in the field, if any, in UTF-8.
 
virtual void setSelectionRange (const uint32_t pos_, const uint32_t len_)
 Sets the selection range of the text in the field, in UTF-8 (and focuses it)
 
virtual bool selectionRangeUTF32 (uint32_t &pos__, uint32_t &len__) const
 Gets the selection range of the text in the field, if any, in UTF-32.
 
virtual void setSelectionRangeUTF32 (const uint32_t pos_, const uint32_t len_)
 Sets the selection range of the text in the field, in UTF-32 (and focuses it)
 
virtual std::string lastCharTyped () const
 Gets the last character typed into the field.
 
virtual ModifierKey lastModifierKeys () const
 Gets the last set of modifier keys used when typing into the field.
 
virtual void valueChanging ()
 Simulates the value of the text field changing.
 
virtual Callback *const valueChangingCallback () const
 Gets the value changing callback for the text field.
 
virtual void setValueChangingCallback (const Callback &callback_)
 Sets the value changing callback.
 
virtual void valueChanged ()
 Simulates the text field having its value changed.
 
virtual Callback *const valueChangedCallback () const
 Gets the value changed callback for the text field.
 
virtual void setValueChangedCallback (const Callback &callback_)
 Sets the value changed callback.
 
virtual bool droppable () const
 Gets whether dropping support for this particular widget is enabled.
 
virtual void setDroppable (const bool enable_)
 Sets whether dropping support for this particular widget is enabled.
 
virtual Callback *const dropCallback () const
 Gets the current drop callback for the widget.
 
virtual void setDropCallback (const Callback &callback_)
 Sets the drop callback for the widget.
 
virtual std::string droppedData () const
 Gets the data that was passed when the widget received a drop.
 
virtual Point droppedPoint () const
 Gets the point at which the drop occurred, in the widget's coordinate system.
 
- Public Member Functions inherited from hdi::core::Widget
virtual ~Widget ()
 Destructs a Widget.
 
virtual Widgetclone () const =0
 Convenience method to clone a Widget object in memory, taking its subclass type into account.
 
virtual Widgetduplicate () const =0
 Convenience method to duplicate a Widget object, creating a new and identical UI element to the target (but not belonging to the same containing window)
 
virtual PlatformWidgetPtr platformWidget () const
 Gets the platform-specific widget, around which the target object is wrapped.
 
virtual bool isEmpty () const
 Gets whether the target Widget object is empty (constructed with the default ctor)
 
virtual bool operator== (const Widget &rhs_) const
 Tests whether a given Widget object is the same as another.
 
virtual bool operator!= (const Widget &rhs_) const
 Tests whether a given Widget object is not the same as another.
 
virtual Type type () const
 Gets the type of the widget.
 
virtual Window *const window () const
 Gets the parent window of the widget.
 
virtual Rect frame () const
 Gets the widget frame.
 
virtual void setFrame (const Rect &frame_)
 Sets the widget frame.
 
virtual void offset (const double x_, const double y_)
 Offsets the widget from its current location by the given amounts, in 1x resolution coordinates.
 
virtual std::string text () const
 Gets the current text value of the widget.
 
virtual void setText (const std::string &text_)
 Sets the current text value of the widget.
 
virtual bool enabled ()
 Gets whether the widget is enabled.
 
virtual void setEnabled (const bool enable_)
 Enables or disables the widget.
 
virtual bool visible ()
 Gets whether the widget is visible.
 
virtual void setVisible (const bool visible_)
 Shows or hides the widget.
 
virtual void setOrigin (const Point &p_)
 Convenience method to set just the origin of the target widget's frame.
 
virtual void setSize (const Size &s_)
 Convenience method to set just the size of the target widget's frame.
 
virtual void setWidth (const double w_)
 Convenience method to set just the width of the target widget's frame.
 
virtual void setHeight (const double h_)
 Convenience method to set just the height of the target widget's frame.
 
virtual bool hasFocus () const
 Gets whether the widget currently has focus.
 
virtual void focus () const
 Forces the widget to have focus, taking it from any other focused widget of the same window.
 
virtual Callback *const focusCallback () const
 Gets the current focus callback for the widget.
 
virtual void setFocusCallback (const Callback &callback_)
 Sets the focus callback for the widget.
 
virtual void blur () const
 Removes focus from the widget.
 
virtual Callback *const blurCallback () const
 Gets the current blur callback for the widget.
 
virtual void setBlurCallback (const Callback &callback_)
 Sets the blur callback for the widget.
 
virtual std::string tooltip () const
 Gets the tool tip string for the widget.
 
virtual void setTooltip (const std::string &tip_)
 Sets the tool tip string for the widget.
 
virtual void update ()
 Force the widget to update (i.e. cause it to redraw)
 

Friends

class Label
 

Additional Inherited Members

- Static Public Member Functions inherited from hdi::core::Widget
static bool isCoreWidget (const PlatformWidgetPtr widget_)
 Gets whether the given platform widget is a hdi_core widget.
 
static std::unique_ptr< WidgetlastClickedWidget ()
 Gets the last widget that received a click event (either by the user or programmatically)
 
static std::unique_ptr< WidgetlastValueChangingWidget ()
 Gets the last widget that received a value changing event (either by the user or programmatically)
 
static std::unique_ptr< WidgetlastValueChangedWidget ()
 Gets the last widget that received a value changed event (either by the user or programmatically)
 
static std::unique_ptr< WidgetlastDropWidget ()
 Gets the last widget that received a drag-and-drop drop event (either by the user or programmatically)
 
static std::unique_ptr< WidgetlastPotentialReorderWidget ()
 Gets the last widget that received a potential-reorder event.
 
static std::unique_ptr< WidgetlastReorderWidget ()
 Gets the last widget that received a reorder event.
 
- Protected Member Functions inherited from hdi::core::Widget
void * _impl () const
 Internal use only.
 
 Widget ()
 Constructs an empty Widget object.
 
 Widget (const Widget &w_)
 Constructs a new Widget object from an existing Widget object (copy constructor)
 
 Widget (pui::Widget *&)
 Internal use only.
 
virtual Widgetoperator= (const Widget &)
 Internal use only.
 
- Protected Attributes inherited from hdi::core::Widget
void * _data
 Private implementation data.
 

Detailed Description

Text field widget, which allows the user to enter arbitrary text values.

Constructor & Destructor Documentation

◆ TextField() [1/3]

hdi::core::TextField::TextField ( )

Constructs an empty TextField object.

Author
GW
Date
09/2013
Note
To test if a TextField object is empty, call isEmpty() on it
Empty TextField objects do not relate to any actual UI widget; they are designed to be "receivers" of some other TextField object via the overloaded assignment operator. Empty TextField objects are useless until such time (though it is safe to call any of their methods).

◆ TextField() [2/3]

hdi::core::TextField::TextField ( const TextField field_)

Constructs a new TextField object from an existing TextField object (copy constructor)

Author
GW
Date
09/2013
Parameters
field_Existing TextField object

◆ TextField() [3/3]

hdi::core::TextField::TextField ( const Point loc_,
const std::string &  text_,
const double  width_ 
)

Constructs an editable text field (single line only)

Author
GW
Date
09/2013
Parameters
loc_Position of the field, in 1x resolution coordinates
text_Default text in the field, as UTF-8
width_Width of the field, at 1x resolution

◆ ~TextField()

virtual hdi::core::TextField::~TextField ( )
virtual

TextField destructor.

Author
GW
Date
09/2013

Member Function Documentation

◆ alignment()

virtual Alignment hdi::core::TextField::alignment ( ) const
virtual

Gets the current alignment of the text field.

Author
GW
Date
09/2013
Returns
Current text alignment

◆ bold()

virtual bool hdi::core::TextField::bold ( ) const
virtual

Gets whether the text is bold.

Author
GW
Date
09/2013
Returns
true if the text is bold, false otherwise

◆ clone()

virtual TextField * hdi::core::TextField::clone ( ) const
virtual

Convenience method to clone a TextField object on the heap.

Author
GW
Date
10/2013
Returns
A pointer to the new TextField object
Note
If you subclass TextField, you MUST overload this method yourself! If you don't and/or your clone() method does not return an instance of your TextField subclass, you will experience "object slicing" when adding the widget to a window.
Warning
The caller must manage the memory for the returned TextField object.

Implements hdi::core::Widget.

◆ dropCallback()

virtual Callback *const hdi::core::TextField::dropCallback ( ) const
virtual

Gets the current drop callback for the widget.

Author
GW
Date
09/2018
Returns
A pointer to the currently registered drop callback

◆ droppable()

virtual bool hdi::core::TextField::droppable ( ) const
virtual

Gets whether dropping support for this particular widget is enabled.

Author
GW
Date
09/2018
Returns
true if drag-and-drop destination support is enabled, false otherwise

◆ droppedData()

virtual std::string hdi::core::TextField::droppedData ( ) const
virtual

Gets the data that was passed when the widget received a drop.

Author
GW
Date
09/2018
Returns
The dropped data
Warning
The result of this method is only valid when it is called from within a drop callback.

◆ droppedPoint()

virtual Point hdi::core::TextField::droppedPoint ( ) const
virtual

Gets the point at which the drop occurred, in the widget's coordinate system.

Author
GW
Date
09/2018
Returns
The point at which the drop occurred
Warning
The result of this method is only valid when it is called from within a drop callback.

◆ duplicate()

virtual TextField * hdi::core::TextField::duplicate ( ) const
virtual

Convenience method to duplicate a TextField object, creating a new and identical UI element to the target (but not belonging to the same containing window)

Author
GW
Date
11/2013
Returns
A pointer to the new TextField object (and new UI element)
Warning
The caller must manage the memory for the returned TextField object.

Implements hdi::core::Widget.

◆ italic()

virtual bool hdi::core::TextField::italic ( ) const
virtual

Gets whether the text is italicized.

Author
GW
Date
09/2013
Returns
true if the text is italicized, false otherwise

◆ label()

virtual std::unique_ptr< Label > hdi::core::TextField::label ( ) const
virtual

If the target text field has been associated with a label, this gets said label.

Author
GW
Date
04/2014
Returns
The label associated with the text field, or NULL for none

◆ lastCharTyped()

virtual std::string hdi::core::TextField::lastCharTyped ( ) const
virtual

Gets the last character typed into the field.

Author
GW
Date
09/2013
Returns
Last character typed, or "" if none
Note
The return value of this method is only valid when called from inside a value-changing or value-changed callback (and it's very useful to determine if the user pressed e.g. the enter or return key)

◆ lastModifierKeys()

virtual ModifierKey hdi::core::TextField::lastModifierKeys ( ) const
virtual

Gets the last set of modifier keys used when typing into the field.

Author
GW
Date
05/2023
Returns
Last set of modifier keys, or NoModifierKey for none
Note
The return value of this method is only valid when called from inside a value-changing or value-changed callback.
Some modifiers are difficult/impossible to detect here, such as ControlModifierKey on Windows. The reason is that such modifiers are usually captured by other parts of the UI event loop before the widget is even notified of the key strokes (picture e.g. ctrl+a on the Windows to "select all").

◆ operator=()

virtual TextField & hdi::core::TextField::operator= ( const TextField rhs_)
virtual

Allows one TextField object to be assigned from another.

Author
GW
Date
10/2013
Parameters
rhs_Righthand side of the = operator; the object to copy values from
Returns
The target TextField object, but with its value updated to match that of rhs_

◆ removeLabel()

virtual void hdi::core::TextField::removeLabel ( )
virtual

Removes the label that, when clicked, would have focused the target text field.

Author
GW
Date
04/2014

◆ selectionRange()

virtual bool hdi::core::TextField::selectionRange ( uint32_t &  pos__,
uint32_t &  len__ 
) const
virtual

Gets the selection range of the text in the field, if any, in UTF-8.

Author
GW
Date
03/2014
Parameters
pos__Return-by-reference for the starting position of the selection range
len__Return-by-reference for the length of the selection range
Returns
true if the field is focused and the selection range could be acquired, false otherwise
Warning
This method utilizes UTF-8 byte ranges, which can be useful in certain circumstances. If you require character ranges instead, use the UTF-32 version of this method.
Note
If len__ is zero then no text is selected, but pos__ indicates the position of the insertion point (text caret).

◆ selectionRangeUTF32()

virtual bool hdi::core::TextField::selectionRangeUTF32 ( uint32_t &  pos__,
uint32_t &  len__ 
) const
virtual

Gets the selection range of the text in the field, if any, in UTF-32.

Author
GW
Date
03/2014
Parameters
pos__Return-by-reference for the starting position of the selection range
len__Return-by-reference for the length of the selection range
Returns
true if the field is focused and the selection range could be acquired, false otherwise
Warning
This method utilizes UTF-32 character ranges, which can be useful in certain circumstances. If you require byte ranges instead, use the UTF-8 version of this method.
Note
If len__ is zero then no text is selected, but pos__ indicates the position of the insertion point (text caret).

◆ setAlignment()

virtual void hdi::core::TextField::setAlignment ( const Alignment  alignment_)
virtual

Sets the current alignment of the text field.

Author
GW
Date
09/2013
Parameters
alignment_New text alignment

◆ setBold()

virtual void hdi::core::TextField::setBold ( const bool  bold_)
virtual

Sets the font weight.

Author
GW
Date
09/2013
Parameters
bold_true for bold, false otherwise

◆ setDropCallback()

virtual void hdi::core::TextField::setDropCallback ( const Callback callback_)
virtual

Sets the drop callback for the widget.

Author
GW
Date
09/2018
Parameters
callback_New callback for when the widget receives a drop

◆ setDroppable()

virtual void hdi::core::TextField::setDroppable ( const bool  enable_)
virtual

Sets whether dropping support for this particular widget is enabled.

Author
GW
Date
09/2018
Parameters
enable_true to enable drag-and-drop destination support, false otherwise

◆ setItalic()

virtual void hdi::core::TextField::setItalic ( const bool  italic_)
virtual

Sets the font style.

Author
GW
Date
09/2013
Parameters
italic_true for italics, false otherwise

◆ setLabel()

virtual void hdi::core::TextField::setLabel ( Label label_)
virtual

Sets the label that, when clicked, will focus the target text field.

Author
GW
Date
04/2014
Parameters
label_New label for focusing the target text field
Note
If the label was previously linked with a text view, this will remove said link.

◆ setSelectionRange()

virtual void hdi::core::TextField::setSelectionRange ( const uint32_t  pos_,
const uint32_t  len_ 
)
virtual

Sets the selection range of the text in the field, in UTF-8 (and focuses it)

Author
GW
Date
03/2014
Parameters
pos_The starting position of the selection range
len_The length of the selection range
Warning
This method utilizes UTF-8 byte ranges, which can be useful in certain circumstances. If you require character ranges instead, use the UTF-32 version of this method.
Note
If len_ is zero then no text will be selected, but the insertion point (text caret) will be moved to the pos_ value.

◆ setSelectionRangeUTF32()

virtual void hdi::core::TextField::setSelectionRangeUTF32 ( const uint32_t  pos_,
const uint32_t  len_ 
)
virtual

Sets the selection range of the text in the field, in UTF-32 (and focuses it)

Author
GW
Date
03/2014
Parameters
pos_The starting position of the selection range
len_The length of the selection range
Warning
This method utilizes UTF-32 character ranges, which can be useful in certain circumstances. If you require byte ranges instead, use the UTF-8 version of this method.
Note
If len_ is zero then no text will be selected, but the insertion point (text caret) will be moved to the pos_ value.

◆ setValueChangedCallback()

virtual void hdi::core::TextField::setValueChangedCallback ( const Callback callback_)
virtual

Sets the value changed callback.

Author
GW
Date
09/2013
Parameters
callback_New callback for when the text field's value has changed

◆ setValueChangingCallback()

virtual void hdi::core::TextField::setValueChangingCallback ( const Callback callback_)
virtual

Sets the value changing callback.

Author
GW
Date
09/2013
Parameters
callback_New callback for when the text field's value is changing

◆ valueChanged()

virtual void hdi::core::TextField::valueChanged ( )
virtual

Simulates the text field having its value changed.

Author
GW
Date
09/2013

◆ valueChangedCallback()

virtual Callback *const hdi::core::TextField::valueChangedCallback ( ) const
virtual

Gets the value changed callback for the text field.

Author
GW
Date
09/2013
Returns
A pointer to the currently registered value changed callback

◆ valueChanging()

virtual void hdi::core::TextField::valueChanging ( )
virtual

Simulates the value of the text field changing.

Author
GW
Date
09/2013

◆ valueChangingCallback()

virtual Callback *const hdi::core::TextField::valueChangingCallback ( ) const
virtual

Gets the value changing callback for the text field.

Author
GW
Date
09/2013
Returns
A pointer to the currently registered value changing callback