Hot Door CORE  0.7.0
Adobe® Illustrator® Plug-in Library
Classes | Public Types | Instance Methods | Class Methods | 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...

#import <hdicoreWidget.h>

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

Classes

struct  ImageIDs
 Allows for support of multiple PNGI resource IDs for a light-themed UI, dark-themed UI, rollovers, etc. More...
 

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.
 
typedef std::auto_ptr< ImageIDsImageIDsAP
 

Instance Methods

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

Class Methods

(static bool) + isCoreWidget
 Gets whether the given platform widget is a hdi_core widget. More...
 
(static std::auto_ptr< Widget >) + lastClickedWidget
 Gets the last widget that received a click event (either by the user or programmatically) More...
 
(static std::auto_ptr< Widget >) + lastValueChangingWidget
 Gets the last widget that received a value changing event (either by the user or programmatically) More...
 
(static std::auto_ptr< Widget >) + lastValueChangedWidget
 Gets the last widget that received a value changed event (either by the user or programmatically) More...
 
(static bool) + forceIdeographicFontSize
 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
 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
 Internal use only. More...
 
() - Widget
 Constructs an empty Widget object. More...
 
() - Widget
 Constructs a new Widget object from an existing Widget object (copy constructor) More...
 
() - Widget
 Internal use only. More...
 
(virtual Widget &) - operator=
 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

- (virtual) core:

Destructs a Widget.

Author
GW
Date
09/2013
- core:

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).
- core: (const Widget &)  w_

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.
- core: (plugin::Widget *&) 

Internal use only.

Author
GW
Date
09/2013

Method Documentation

- (void*) core: const

Internal use only.

Author
GW
Date
09/2013
- (virtual void) core: const

Removes focus from the widget.

Author
GW
Date
09/2013
- (virtual Widget*) core: const

Convenience method to clone a Widget object in memory, taking its subclass type into account.

Author
GW
Date
10/2013
Returns
A pointer to the new Widget object
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::RadioButton, hdi::core::PopupMenu, hdi::core::Button, hdi::core::Label, hdi::core::HierarchicalView, hdi::core::Checkbox, hdi::core::ListView, hdi::core::TextView, hdi::core::TextField, hdi::core::Divider, hdi::core::ColorWell, hdi::core::Slider, hdi::core::Stepper, hdi::core::WebView, and hdi::core::Box.

- (virtual Widget*) core: const

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::TextView, hdi::core::TextField, hdi::core::Divider, hdi::core::ColorWell, hdi::core::Slider, hdi::core::Stepper, hdi::core::WebView, and hdi::core::Box.

- (virtual bool) core:

Gets whether the widget is enabled.

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

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

- (virtual void) core: const

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

Author
GW
Date
09/2013
+ (static bool) core: (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)

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.
- (virtual Rect) core: const

Gets the widget frame.

Author
GW
Date
09/2013
Returns
Rect describing the top-left (origin) point of the widget, and its width and height
- (virtual bool) core: const

Gets whether the widget currently has focus.

Author
GW
Date
09/2013
Returns
true for the widget being focused, false otherwise
+ (static bool) core: (const PlatformWidgetPtr)  widget_

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
- (virtual bool) core: const

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
+ (static auto_ptr<Widget>) hdi:

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
+ (static auto_ptr<Widget>) hdi:

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
+ (static auto_ptr<Widget>) hdi:

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
- (virtual void) core: (const double)  x_
(const double)  y_ 

Offsets the widget from its current location by the given amounts.

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
- (virtual bool) core: (const Widget &)  rhs_ const

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
- (virtual Widget&) core: (const Widget &) 

Internal use only.

Author
GW
Date
12/2014
- (virtual bool) core: (const Widget &)  rhs_ const

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
- (virtual PlatformWidgetPtr) core: const

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.
- (virtual void) core: (const bool)  enable_

Enables or disables the widget.

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

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

+ (static void) core: (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)

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.
- (virtual void) core: (const Rect &)  frame_

Sets the widget frame.

Author
GW
Date
09/2013
Parameters
frame_New frame for the widget
- (virtual void) core: (const double)  h_

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
- (virtual void) core: (const Point &)  p_

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
- (virtual void) core: (const Size &)  s_

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
- (virtual void) core: (const std::string &)  text_

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::Box, and hdi::core::WebView.

- (virtual void) core: (const std::string &)  tip_

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.

- (virtual void) core: (const bool)  visible_

Shows or hides the widget.

Author
GW
Date
08/2014
Parameters
visible_true to show, false to hide
- (virtual void) core: (const double)  w_

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
- (virtual string) hdi: const

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::Box, and hdi::core::WebView.

- (virtual string) hdi: const

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.

- (virtual Type) core: const

Gets the type of the widget.

Author
GW
Date
09/2013
Returns
The widget type

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

- (virtual void) core:

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.

- (virtual bool) core:

Gets whether the widget is visible.

Author
GW
Date
08/2014
Returns
true if visible, false otherwise
- (virtual Window* const) core: const

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)