Hot Door CORE  0.7.1
Adobe® Illustrator® Plug-in Library
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Friends | List of all members
hdi::core::Widget Class Referenceabstract

Base class for all interface widgets; handles many common needs, e.g. text, position, size, etc. More...

#include <hdicoreWidget.h>

Inheritance diagram for hdi::core::Widget:
Inheritance graph
[legend]

Public Types

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

virtual ~Widget ()
 Destructs a Widget. More...
 
virtual Widgetclone () const =0
 Convenience method to clone a Widget object in memory, taking its subclass type into account. More...
 
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) More...
 
virtual PlatformWidgetPtr platformWidget () const
 Gets the platform-specific widget, around which the target object is wrapped. More...
 
virtual bool isEmpty () const
 Gets whether the target Widget object is empty (constructed with the default ctor) More...
 
virtual bool operator== (const Widget &rhs_) const
 Tests whether a given Widget object is the same as another. More...
 
virtual bool operator!= (const Widget &rhs_) const
 Tests whether a given Widget object is not the same as another. More...
 
virtual Type type () const
 Gets the type of the widget. More...
 
virtual Window *const window () const
 Gets the parent window of the widget. More...
 
virtual Rect frame () const
 Gets the widget frame. More...
 
virtual void setFrame (const Rect &frame_)
 Sets the widget frame. More...
 
virtual void offset (const double x_, const double y_)
 Offsets the widget from its current location by the given amounts, in 1x resolution coordinates. More...
 
virtual std::string text () const
 Gets the current text value of the widget. More...
 
virtual void setText (const std::string &text_)
 Sets the current text value of the widget. More...
 
virtual bool enabled ()
 Gets whether the widget is enabled. More...
 
virtual void setEnabled (const bool enable_)
 Enables or disables the widget. More...
 
virtual bool visible ()
 Gets whether the widget is visible. More...
 
virtual void setVisible (const bool visible_)
 Shows or hides the widget. More...
 
virtual void setOrigin (const Point &p_)
 Convenience method to set just the origin of the target widget's frame. More...
 
virtual void setSize (const Size &s_)
 Convenience method to set just the size of the target widget's frame. More...
 
virtual void setWidth (const double w_)
 Convenience method to set just the width of the target widget's frame. More...
 
virtual void setHeight (const double h_)
 Convenience method to set just the height of the target widget's frame. More...
 
virtual bool hasFocus () const
 Gets whether the widget currently has focus. More...
 
virtual void focus () const
 Forces the widget to have focus, taking it from any other focused widget of the same window. More...
 
virtual void blur () const
 Removes focus from the widget. More...
 
virtual std::string tooltip () const
 Gets the tool tip string for the widget. More...
 
virtual void setTooltip (const std::string &tip_)
 Sets the tool tip string for the widget. More...
 
virtual void update ()
 Force the widget to update (i.e. cause it to redraw) More...
 

Static Public Member Functions

static bool isCoreWidget (const PlatformWidgetPtr widget_)
 Gets whether the given platform widget is a hdi_core widget. More...
 
static std::auto_ptr< WidgetlastClickedWidget ()
 Gets the last widget that received a click event (either by the user or programmatically) More...
 
static std::auto_ptr< WidgetlastValueChangingWidget ()
 Gets the last widget that received a value changing event (either by the user or programmatically) More...
 
static std::auto_ptr< WidgetlastValueChangedWidget ()
 Gets the last widget that received a value changed event (either by the user or programmatically) More...
 
static bool forceIdeographicFontSize (bool &larger__)
 Gets whether widgets should use an ideographically appropriate font size for widget text on Windows (whether or not the Illustrator locale dictates one should be used) More...
 
static void setForceIdeographicFontSize (const bool force_, const bool larger_)
 Sets whether widgets should use an ideographically appropriate font size for widget text on Windows (whether or not the Illustrator locale dictates one should be used) More...
 

Protected Member Functions

void * _impl () const
 Internal use only. More...
 
 Widget ()
 Constructs an empty Widget object. More...
 
 Widget (const Widget &w_)
 Constructs a new Widget object from an existing Widget object (copy constructor) More...
 
 Widget (plugin::Widget *&)
 Internal use only. More...
 
virtual Widgetoperator= (const Widget &)
 Internal use only. More...
 

Protected Attributes

void * _data
 Private implementation data.
 

Friends

class ModalDialog
 
class Window
 
plugin::Widget * __accessImpl (const Widget &)
 

Detailed Description

Base class for all interface widgets; handles many common needs, e.g. text, position, size, etc.

Constructor & Destructor Documentation

◆ ~Widget()

virtual hdi::core::Widget::~Widget ( )
virtual

Destructs a Widget.

Author
GW
Date
09/2013

◆ Widget() [1/3]

hdi::core::Widget::Widget ( )
protected

Constructs an empty Widget object.

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

◆ Widget() [2/3]

hdi::core::Widget::Widget ( const Widget w_)
protected

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

Author
GW
Date
09/2013
Parameters
w_Existing Widget object
Note
This constructor should not be called directly; subclasses should "overload" it and call another ctor.

◆ Widget() [3/3]

hdi::core::Widget::Widget ( plugin::Widget *&  )
protected

Internal use only.

Author
GW
Date
09/2013

Member Function Documentation

◆ _impl()

void* hdi::core::Widget::_impl ( ) const
protected

Internal use only.

Author
GW
Date
09/2013

◆ blur()

virtual void hdi::core::Widget::blur ( ) const
virtual

Removes focus from the widget.

Author
GW
Date
09/2013

◆ clone()

virtual Widget* hdi::core::Widget::clone ( ) const
pure virtual

◆ duplicate()

virtual Widget* hdi::core::Widget::duplicate ( ) const
pure virtual

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)

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

Implemented in hdi::core::HierarchicalColumnView, hdi::core::ColumnView, hdi::core::ComboBox, hdi::core::PopupMenu, hdi::core::RadioButton, hdi::core::Button, hdi::core::HierarchicalView, hdi::core::Label, hdi::core::Checkbox, hdi::core::ListView, hdi::core::CustomWidget, hdi::core::TextView, hdi::core::TextField, hdi::core::Divider, hdi::core::ColorWell, hdi::core::DraggableDivider, hdi::core::Slider, hdi::core::Stepper, hdi::core::WebView, and hdi::core::Box.

◆ enabled()

virtual bool hdi::core::Widget::enabled ( )
virtual

Gets whether the widget is enabled.

Author
GW
Date
09/2013
Returns
true if enabled, false otherwise

Reimplemented in hdi::core::Divider, hdi::core::DraggableDivider, and hdi::core::Box.

◆ focus()

virtual void hdi::core::Widget::focus ( ) const
virtual

Forces the widget to have focus, taking it from any other focused widget of the same window.

Author
GW
Date
09/2013

◆ forceIdeographicFontSize()

static bool hdi::core::Widget::forceIdeographicFontSize ( bool &  larger__)
static

Gets whether widgets should use an ideographically appropriate font size for widget text on Windows (whether or not the Illustrator locale dictates one should be used)

Author
GW
Date
05/2014
Parameters
larger_Return-by-reference for whether the larger font size should be used (true for larger, false for smaller)
Returns
true if the default behavior of automatically choosing the best font size, based on locale, should be overridden
Note
Unavailable on Mac because this sort of thing is handled automatically in Cocoa.
Widgets will use a larger font size appropriate for ideographic text on their own if Illustrator's locale is Locale_JPN_JP, Locale_ZHO_CN, or Locale_ZHO_TW. However, this function and the related setForceIdeographicFontSize() merely allow one to override this functionality and dictate the size.

◆ frame()

virtual Rect hdi::core::Widget::frame ( ) const
virtual

Gets the widget frame.

Author
GW
Date
09/2013
Returns
Rect describing the top-left (origin) point of the widget and its width & height, in 1x resolution coordinates

◆ hasFocus()

virtual bool hdi::core::Widget::hasFocus ( ) const
virtual

Gets whether the widget currently has focus.

Author
GW
Date
09/2013
Returns
true for the widget being focused, false otherwise

◆ isCoreWidget()

static bool hdi::core::Widget::isCoreWidget ( const PlatformWidgetPtr  widget_)
static

Gets whether the given platform widget is a hdi_core widget.

Author
GW
Date
01/2017
Parameters
widget_Platform widget pointer to inspect
Returns
true if the widget is one of "ours" (i.e. is encapsulated by the hdi_core UI lib), false otherwise

◆ isEmpty()

virtual bool hdi::core::Widget::isEmpty ( ) const
virtual

Gets whether the target Widget object is empty (constructed with the default ctor)

Author
GW
Date
09/2013
Returns
true if the target Widget object is empty, false otherwise

◆ lastClickedWidget()

static std::auto_ptr<Widget> hdi::core::Widget::lastClickedWidget ( )
static

Gets the last widget that received a click event (either by the user or programmatically)

Author
GW
Date
09/2013
Returns
Pointer to last widget clicked

◆ lastValueChangedWidget()

static std::auto_ptr<Widget> hdi::core::Widget::lastValueChangedWidget ( )
static

Gets the last widget that received a value changed event (either by the user or programmatically)

Author
GW
Date
09/2013
Returns
Pointer to last widget whose value changed

◆ lastValueChangingWidget()

static std::auto_ptr<Widget> hdi::core::Widget::lastValueChangingWidget ( )
static

Gets the last widget that received a value changing event (either by the user or programmatically)

Author
GW
Date
09/2013
Returns
Pointer to last widget whose value was changing

◆ offset()

virtual void hdi::core::Widget::offset ( const double  x_,
const double  y_ 
)
virtual

Offsets the widget from its current location by the given amounts, in 1x resolution coordinates.

Author
GW
Date
09/2013
Parameters
x_Distance to move the widget along the x-axis
y_Distance to move the widget along the y-axis

◆ operator!=()

virtual bool hdi::core::Widget::operator!= ( const Widget rhs_) const
virtual

Tests whether a given Widget object is not the same as another.

Author
GW
Date
09/2013
Parameters
rhs_Widget to compare against (righthand side of inequality operator)
Returns
true for the target and rhs_ being different UI widgets, false otherwise

◆ operator=()

virtual Widget& hdi::core::Widget::operator= ( const Widget )
protectedvirtual

Internal use only.

Author
GW
Date
12/2014

◆ operator==()

virtual bool hdi::core::Widget::operator== ( const Widget rhs_) const
virtual

Tests whether a given Widget object is the same as another.

Author
GW
Date
09/2013
Parameters
rhs_Widget to compare against (righthand side of equality operator)
Returns
true for the target and rhs_ being the same UI widget, false otherwise

◆ platformWidget()

virtual PlatformWidgetPtr hdi::core::Widget::platformWidget ( ) const
virtual

Gets the platform-specific widget, around which the target object is wrapped.

Author
GW
Date
11/2013
Returns
Pointer to platform-specific widget. See PlatformWidgetPtr typedef.
Note
Generally, you shouldn't need to call this method. Only use it if you know what you're doing. If a specific piece of UI functionality is not handled by this class (or related classes), then it should probably be added to the hdi_core library.

◆ setEnabled()

virtual void hdi::core::Widget::setEnabled ( const bool  enable_)
virtual

Enables or disables the widget.

Author
GW
Date
09/2013
Parameters
enable_true to enable, false to disable

Reimplemented in hdi::core::Divider, hdi::core::DraggableDivider, and hdi::core::Box.

◆ setForceIdeographicFontSize()

static void hdi::core::Widget::setForceIdeographicFontSize ( const bool  force_,
const bool  larger_ 
)
static

Sets whether widgets should use an ideographically appropriate font size for widget text on Windows (whether or not the Illustrator locale dictates one should be used)

Author
GW
Date
05/2014
Parameters
force_true if the default behavior of automatically choosing the best font size, based on locale, should be overridden
larger_true if a larger font size should be used, false for smaller
Note
Unavailable on Mac because this sort of thing is handled automatically in Cocoa.
Widgets will use a larger font size appropriate for ideographic text on their own if Illustrator's locale is Locale_JPN_JP, Locale_ZHO_CN, or Locale_ZHO_TW. However, this function and the related forceIdeographicFontSize() merely allow one to override this functionality and dictate the size.
As this affects the construction of widget controls, it is highly recommended that this function be called during plugin startup if you wish to force a larger font size for all widgets.

◆ setFrame()

virtual void hdi::core::Widget::setFrame ( const Rect frame_)
virtual

Sets the widget frame.

Author
GW
Date
09/2013
Parameters
frame_New frame for the widget, in 1x resolution coordinates

◆ setHeight()

virtual void hdi::core::Widget::setHeight ( const double  h_)
virtual

Convenience method to set just the height of the target widget's frame.

Author
GW
Date
09/2013
Parameters
h_The height of the widget, at 1x resolution

◆ setOrigin()

virtual void hdi::core::Widget::setOrigin ( const Point p_)
virtual

Convenience method to set just the origin of the target widget's frame.

Author
GW
Date
09/2013
Parameters
p_The new location of the widget, in 1x resolution coordinates

◆ setSize()

virtual void hdi::core::Widget::setSize ( const Size s_)
virtual

Convenience method to set just the size of the target widget's frame.

Author
GW
Date
09/2013
Parameters
s_The new size of the widget, in 1x resolution coordinates

◆ setText()

virtual void hdi::core::Widget::setText ( const std::string &  text_)
virtual

Sets the current text value of the widget.

Author
GW
Date
09/2013
Parameters
text_New text value, as UTF-8 (ignored if not supported)
Note
If the widget does not support text (e.g. sliders, picture labels, etc.), this method will bail early

Reimplemented in hdi::core::HierarchicalColumnView, hdi::core::ColumnView, hdi::core::RadioButton, hdi::core::HierarchicalView, hdi::core::Button, hdi::core::Label, hdi::core::Divider, hdi::core::DraggableDivider, hdi::core::Box, and hdi::core::WebView.

◆ setTooltip()

virtual void hdi::core::Widget::setTooltip ( const std::string &  tip_)
virtual

Sets the tool tip string for the widget.

Author
GW
Date
12/2013
Parameters
tip_New widget tool tip string, as UTF-8

Reimplemented in hdi::core::WebView.

◆ setVisible()

virtual void hdi::core::Widget::setVisible ( const bool  visible_)
virtual

Shows or hides the widget.

Author
GW
Date
08/2014
Parameters
visible_true to show, false to hide

◆ setWidth()

virtual void hdi::core::Widget::setWidth ( const double  w_)
virtual

Convenience method to set just the width of the target widget's frame.

Author
GW
Date
09/2013
Parameters
w_The width of the widget, at 1x resolution

◆ text()

virtual std::string hdi::core::Widget::text ( ) const
virtual

Gets the current text value of the widget.

Author
GW
Date
09/2013
Returns
The current text value as UTF-8, or "" if not supported (e.g. sliders, image labels, etc.)

Reimplemented in hdi::core::HierarchicalColumnView, hdi::core::ColumnView, hdi::core::RadioButton, hdi::core::HierarchicalView, hdi::core::Button, hdi::core::Label, hdi::core::Divider, hdi::core::DraggableDivider, hdi::core::Box, and hdi::core::WebView.

◆ tooltip()

virtual std::string hdi::core::Widget::tooltip ( ) const
virtual

Gets the tool tip string for the widget.

Author
GW
Date
12/2013
Returns
The tool tip string as UTF-8, or "" if none

Reimplemented in hdi::core::WebView.

◆ type()

virtual Type hdi::core::Widget::type ( ) const
virtual

Gets the type of the widget.

Author
GW
Date
09/2013
Returns
The widget type

Reimplemented in hdi::core::Divider, and hdi::core::Box.

◆ update()

virtual void hdi::core::Widget::update ( )
virtual

Force the widget to update (i.e. cause it to redraw)

Author
GW
Date
09/2013

Reimplemented in hdi::core::HierarchicalColumnView, hdi::core::ComboBox, hdi::core::ColumnView, hdi::core::PopupMenu, hdi::core::ListView, and hdi::core::HierarchicalView.

◆ visible()

virtual bool hdi::core::Widget::visible ( )
virtual

Gets whether the widget is visible.

Author
GW
Date
08/2014
Returns
true if visible, false otherwise

◆ window()

virtual Window* const hdi::core::Widget::window ( ) const
virtual

Gets the parent window of the widget.

Author
GW
Date
09/2013
Returns
Parent window object pointer (NULL if the widget hasn't been added to one yet)