Hot Door CORE  0.7.0
Adobe® Illustrator® Plug-in Library
Public Types | Public Member Functions | List of all members
hdi::core::HierarchicalView Class Reference

Hierarchical view widget, much like a list view but allowing for a tree-like structure of entries. More...

#include <hdicoreHierarchicalView.h>

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

Public Types

typedef std::vector< TreeEntryEntryVector
 
typedef std::vector< int32_t > IndexVector
 
typedef std::vector< std::string > IDVector
 
typedef std::vector< std::string > ValueVector
 
- 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.
 
typedef std::auto_ptr< ImageIDsImageIDsAP
 

Public Member Functions

 HierarchicalView ()
 Constructs an empty HierarchicalView object. More...
 
 HierarchicalView (const HierarchicalView &hierView_)
 Constructs a new HierarchicalView object from an existing HierarchicalView object (copy constructor) More...
 
 HierarchicalView (const Rect &frame_)
 Constructs a hierarchical view with a frame only, no contents. More...
 
 HierarchicalView (const Rect &frame_, const EntryVector &entries_, const IndexVector &indexPath_)
 Constructs a hierarchical view. More...
 
 HierarchicalView (const Rect &frame_, const EntryVector &entries_, const IDVector &idPath_)
 Constructor for a hierarchical view with an initial ID selected. More...
 
virtual HierarchicalViewoperator= (const HierarchicalView &rhs_)
 Allows one HierarchicalView object to be assigned from another. More...
 
virtual ~HierarchicalView ()
 HierarchicalView destructor. More...
 
virtual HierarchicalViewclone () const
 Convenience method to clone a HierarchicalView object on the heap. More...
 
virtual HierarchicalViewduplicate () const
 Convenience method to duplicate a HierarchicalView object, creating a new and identical UI element to the target (but not belonging to the same containing window) More...
 
virtual void deselectAll ()
 Deselects all currently selected entries in the list. More...
 
virtual std::string text () const
 Gets the current text value of the list. More...
 
virtual void setText (const std::string &)
 Does nothing. More...
 
virtual IndexVector currentIndexPath () const
 Gets the index path of the currently selected entry. More...
 
virtual bool setCurrentIndexPath (const IndexVector &indexPath_)
 Sets the currently selected entry by index path. More...
 
virtual IDVector currentIDPath () const
 Gets the ID path of the currently selected entry. More...
 
virtual bool setCurrentIDPath (const IDVector &idPath_)
 Sets the currently selected entry by ID path. More...
 
virtual ValueVector currentValuePath () const
 Gets the string value path of the currently selected entry. More...
 
virtual bool setCurrentValuePath (const ValueVector &valuePath_)
 Sets the currently selected entry by value path. More...
 
virtual std::auto_ptr< TreeEntrycurrentEntry () const
 Gets the current entry object. More...
 
virtual bool currentUserData (void *&data__) const
 Gets the user data for the current entry. More...
 
virtual const std::vector< TreeEntry * > *const entries () const
 Gets the entries vector. More...
 
virtual bool hasEntry (const IDVector &idPath_) const
 Gets whether the entries vector already contains an entry, based on its ID path. More...
 
virtual void setEntries (const EntryVector &entries_)
 Allows the entries in a hierarchical view to be changed out entirely. More...
 
virtual void clearEntries ()
 Clears all entries contained by the widget. More...
 
virtual void valueChanged ()
 Simulates the hierarchical view having its value changed. More...
 
virtual Callback *const valueChangedCallback () const
 Gets the value changed callback for the hierarchical view. More...
 
virtual void setValueChangedCallback (const Callback &callback_)
 Sets the value changed callback. More...
 
virtual void update ()
 Force the hierarchical view to update its entries. More...
 
virtual Callback *const imageClickCallback () const
 Gets the callback set for when an image entry is clicked. More...
 
virtual void setImageClickCallback (const Callback &callback_)
 Sets/updates the callback for when an image entry is clicked. More...
 
virtual std::auto_ptr< TreeEntryclickedImageEntry () const
 Gets the image entry that was last clicked. More...
 
virtual Callback *const expansionCallback () const
 Gets the callback set for when an entry is expanded/collapsed. More...
 
virtual void setExpansionCallback (const Callback &callback_)
 Sets/updates the callback for when an entry is expanded/collapsed. More...
 
virtual std::auto_ptr< TreeEntryexpansionEntry () const
 Gets the entry that was last expanded/collapsed. More...
 
- Public Member Functions inherited from hdi::core::Widget
(virtual) - ~Widget
 Destructs a Widget. 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 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...
 

Additional Inherited Members

- Static Public Member Functions inherited from hdi::core::Widget
(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 inherited from hdi::core::Widget
(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 inherited from hdi::core::Widget
void * _data
 Private implementation data.
 

Detailed Description

Hierarchical view widget, much like a list view but allowing for a tree-like structure of entries.

Constructor & Destructor Documentation

hdi::core::HierarchicalView::HierarchicalView ( )

Constructs an empty HierarchicalView object.

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

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

Author
GW
Date
09/2014
Parameters
hierView_Existing HierarchicalView object
hdi::core::HierarchicalView::HierarchicalView ( const Rect frame_)

Constructs a hierarchical view with a frame only, no contents.

Author
GW
Date
09/2014
Parameters
frame_Position and size of the list
hdi::core::HierarchicalView::HierarchicalView ( const Rect frame_,
const EntryVector &  entries_,
const IndexVector &  indexPath_ 
)

Constructs a hierarchical view.

Author
GW
Date
09/2014
Parameters
frame_Position and size of the list
entries_Vector of entries
indexPath_Initial index path to select (must exist in entries_, or be an empty vector)
hdi::core::HierarchicalView::HierarchicalView ( const Rect frame_,
const EntryVector &  entries_,
const IDVector &  idPath_ 
)

Constructor for a hierarchical view with an initial ID selected.

Author
GW
Date
09/2014
Parameters
frame_Position and size of the list
entries_Vector of entries
idPath_Initial ID path to select, as UTF-8 (must exist in entries_, or be an empty vector)
virtual hdi::core::HierarchicalView::~HierarchicalView ( )
virtual

HierarchicalView destructor.

Author
GW
Date
09/2014

Member Function Documentation

virtual void hdi::core::HierarchicalView::clearEntries ( )
virtual

Clears all entries contained by the widget.

Author
GW
Date
09/2014
virtual std::auto_ptr<TreeEntry> hdi::core::HierarchicalView::clickedImageEntry ( ) const
virtual

Gets the image entry that was last clicked.

Author
GW
Date
01/2015
Returns
The clicked entry object
Note
The return value of this method is only guaranteed to be valid during the execution of the "image click" callback.
virtual HierarchicalView* hdi::core::HierarchicalView::clone ( ) const
virtual

Convenience method to clone a HierarchicalView object on the heap.

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

Implements hdi::core::Widget.

virtual std::auto_ptr<TreeEntry> hdi::core::HierarchicalView::currentEntry ( ) const
virtual

Gets the current entry object.

Author
GW
Date
09/2014
Returns
The TreeEntry object for the currently selected item
virtual IDVector hdi::core::HierarchicalView::currentIDPath ( ) const
virtual

Gets the ID path of the currently selected entry.

Author
GW
Date
09/2014
Returns
UTF-8 ID path of the currently selected entry, or empty if no entry is currently selected
virtual IndexVector hdi::core::HierarchicalView::currentIndexPath ( ) const
virtual

Gets the index path of the currently selected entry.

Author
GW
Date
09/2014
Returns
The index path of the currently selected entry, or empty if no entry is selected
virtual bool hdi::core::HierarchicalView::currentUserData ( void *&  data__) const
virtual

Gets the user data for the current entry.

Author
GW
Date
09/2014
Parameters
data__Return-by-reference for the current user data; ignore if false is returned
Returns
true if the method succeeds in acquiring the contained entry data, false otherwise
virtual ValueVector hdi::core::HierarchicalView::currentValuePath ( ) const
virtual

Gets the string value path of the currently selected entry.

Author
GW
Date
09/2014
Returns
Value path of the hierarchical view, as UTF-8
virtual void hdi::core::HierarchicalView::deselectAll ( )
virtual

Deselects all currently selected entries in the list.

Author
GW
Date
09/2014
virtual HierarchicalView* hdi::core::HierarchicalView::duplicate ( ) const
virtual

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

Author
GW
Date
09/2014
Returns
A pointer to the new HierarchicalView object (and new UI element)
Note
The new hierarchical view will have copies of all entries present in the target, but be aware that copies of the user data in each entry cannot be made (because they are simply void* variables). As such, the user data in the copies will simply be set to NULL by this method.
Warning
The caller must manage the memory for the returned HierarchicalView object.

Implements hdi::core::Widget.

virtual const std::vector< TreeEntry* >* const hdi::core::HierarchicalView::entries ( ) const
virtual

Gets the entries vector.

Author
GW
Date
09/2014
Returns
The entries vector for the target widget, containing all currently known entries
Note
Modifying any value in an entry will not cause the widget to update automatically; call update() to update the UI for changes made to entry data.
virtual Callback* const hdi::core::HierarchicalView::expansionCallback ( ) const
virtual

Gets the callback set for when an entry is expanded/collapsed.

Author
GW
Date
11/2015
Returns
A pointer to the currently registered expansion callback
virtual std::auto_ptr<TreeEntry> hdi::core::HierarchicalView::expansionEntry ( ) const
virtual

Gets the entry that was last expanded/collapsed.

Author
GW
Date
11/2015
Returns
The expanded entry object
Note
The return value of this method is only guaranteed to be valid during the execution of the expansion callback.
virtual bool hdi::core::HierarchicalView::hasEntry ( const IDVector &  idPath_) const
virtual

Gets whether the entries vector already contains an entry, based on its ID path.

Author
GW
Date
09/2014
Parameters
idPath_ID path of the entry to search for, as UTF-8
Returns
true if the widget already contains an entry with the given ID path, false otherwise
virtual Callback* const hdi::core::HierarchicalView::imageClickCallback ( ) const
virtual

Gets the callback set for when an image entry is clicked.

Author
GW
Date
02/2015
Returns
A pointer to the currently registered "image click" callback
virtual HierarchicalView& hdi::core::HierarchicalView::operator= ( const HierarchicalView rhs_)
virtual

Allows one HierarchicalView object to be assigned from another.

Author
GW
Date
09/2014
Parameters
rhs_Righthand side of the = operator; the object to copy values from
Returns
The target HierarchicalView object, but with its value updated to match that of rhs_
virtual bool hdi::core::HierarchicalView::setCurrentIDPath ( const IDVector &  idPath_)
virtual

Sets the currently selected entry by ID path.

Author
GW
Date
09/2014
Parameters
idPath_ID path of new value to select in the hierarchical view, as UTF-8
Returns
true if the entry with the given ID path was selected, or false if invalid
virtual bool hdi::core::HierarchicalView::setCurrentIndexPath ( const IndexVector &  indexPath_)
virtual

Sets the currently selected entry by index path.

Author
GW
Date
09/2014
Parameters
indexPath_New index path to select
Returns
true if the selection occurred successfully, or false if e.g. out of range
virtual bool hdi::core::HierarchicalView::setCurrentValuePath ( const ValueVector &  valuePath_)
virtual

Sets the currently selected entry by value path.

Author
GW
Date
09/2014
Parameters
valuePath_New value to set for the hierarchical view (if it exists as an entry), as UTF-8
Returns
true if the value path was set, false otherwise
virtual void hdi::core::HierarchicalView::setEntries ( const EntryVector &  entries_)
virtual

Allows the entries in a hierarchical view to be changed out entirely.

Author
GW
Date
09/2014
Parameters
entries_New set of entries that the widget will contain
virtual void hdi::core::HierarchicalView::setExpansionCallback ( const Callback callback_)
virtual

Sets/updates the callback for when an entry is expanded/collapsed.

Author
GW
Date
11/2015
Parameters
callback_New callback for a user expanding/collapsing an entry
Note
When your callback is executed, you can determine which entry was expanded/collapsed by calling the expansionEntry() method.
virtual void hdi::core::HierarchicalView::setImageClickCallback ( const Callback callback_)
virtual

Sets/updates the callback for when an image entry is clicked.

Author
GW
Date
01/2015
Parameters
callback_New callback for a user clicking an image entry
Note
When your callback is executed, you can determine which entry was clicked by calling the clickedEntry() method.
virtual void hdi::core::HierarchicalView::setText ( const std::string &  )
virtual

Does nothing.

Author
GW
Date
09/2014
Note
Since a HierarchicalView inherently stores tree-like data, setting the text value has potentially no meaning or an ambiguous meaning. Therefore, this method performs no action.

Reimplemented from hdi::core::Widget.

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

Sets the value changed callback.

Author
GW
Date
09/2014
Parameters
callback_New callback for when the hierarchical view's value has changed
virtual std::string hdi::core::HierarchicalView::text ( ) const
virtual

Gets the current text value of the list.

Author
GW
Date
09/2014
Returns
The UTF-8 text value of the currently selected entry, or "" for no selection

Reimplemented from hdi::core::Widget.

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

Force the hierarchical view to update its entries.

Author
GW
Date
09/2014

Reimplemented from hdi::core::Widget.

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

Simulates the hierarchical view having its value changed.

Author
GW
Date
09/2014
virtual Callback* const hdi::core::HierarchicalView::valueChangedCallback ( ) const
virtual

Gets the value changed callback for the hierarchical view.

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