Hot Door CORE 0.8.4
Adobe® Illustrator® Plug-in Library
Loading...
Searching...
No Matches
hdi::core::DraggableDivider Class Reference

Class for draggable divider lines, which are of a standard length, and used for resizing e.g. the height of the two widgets immediately above and below the divider. More...

#include <hdicoreDraggableDivider.h>

Inheritance diagram for hdi::core::DraggableDivider:
Collaboration diagram for hdi::core::DraggableDivider:

Public Types

enum  Direction { UnknownDirection = 0 , Horizontal = 10 , Vertical = 20 }
 Describes the direction of the line in a DraggableDivider object.
 
- Public Types inherited from hdi::core::CustomWidget
typedef std::vector< PointPointVector
 
- 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

 DraggableDivider ()
 Constructs an empty DraggableDivider object.
 
 DraggableDivider (const DraggableDivider &widget_)
 Constructs a new DraggableDivider object from an existing DraggableDivider object (copy constructor)
 
 DraggableDivider (const Point &loc_, const Direction dir_)
 DraggableDivider constructor, taking an argument for the location and direction.
 
virtual ~DraggableDivider ()
 DraggableDivider destructor.
 
virtual DraggableDivideroperator= (const DraggableDivider &rhs_)
 Allows one DraggableDivider object to be assigned from another.
 
virtual DraggableDividerclone () const
 Convenience method to clone a DraggableDivider object on the heap.
 
virtual DraggableDividerduplicate () const
 Convenience method to duplicate a DraggableDivider object, creating a new and identical UI element to the target (but not belonging to the same containing window)
 
virtual Direction direction () const
 Gets the direction that the line is going.
 
virtual std::string text () const
 Always gets "", as dividers cannot have text.
 
virtual void setText (const std::string &)
 Prevents setting the text, as dividers cannot have text.
 
virtual bool enabled ()
 Returns true, because dividers are always enabled.
 
virtual void setEnabled (const bool enable_)
 Overrides Widget::setEnabled() because dividers are always enabled.
 
virtual Callback *const movedCallback () const
 Gets the callback for the widget being moved during a mouse drag event.
 
virtual void setMovedCallback (const Callback &cb_)
 Sets the callback for the widget being moved during a mouse drag event.
 
- Public Member Functions inherited from hdi::core::CustomWidget
 CustomWidget ()
 Constructs an empty CustomWidget object.
 
 CustomWidget (const CustomWidget &widget_)
 Constructs a new CustomWidget object from an existing CustomWidget object (copy constructor)
 
 CustomWidget (const Rect &frame_)
 CustomWidget constructor, taking an argument for the frame which will receive events.
 
virtual ~CustomWidget ()
 CustomWidget destructor.
 
virtual CustomWidgetoperator= (const CustomWidget &rhs_)
 Allows one CustomWidget object to be assigned from another.
 
virtual bool focusesOnClick () const
 Gets whether the widget automatically takes focus on click (mouse down, specifically)
 
virtual void setFocusesOnClick (const bool focus_)
 Sets whether the widget automatically takes focus on click (mouse down, specifically)
 
virtual bool draggable () const
 Gets whether dragging support for this particular widget is enabled.
 
virtual void setDraggable (const bool enable_)
 Sets whether dragging support for this particular widget is enabled.
 
virtual std::string dragData () const
 Gets the data that will be passed when the widget is dropped on a receiver.
 
virtual void setDragData (const std::string &data_)
 Sets the data that will be passed when the widget is dropped on a receiver.
 
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 potentialDropCallback () const
 Gets the current potential-drop callback for the widget (for when the mouse is moving over the widget, in the middle of a drag-and-drop operation)
 
virtual void setPotentialDropCallback (const Callback &callback_)
 Sets the potential-drop callback for the widget.
 
virtual Point potentialDropPoint () const
 Gets the point at which the drop might occur, in the widget's coordinate system.
 
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.
 
virtual std::unique_ptr< PanellinkedPanel () const
 Gets the panel that the target custom widget has been associated with.
 
virtual void setLinkedPanel (const Panel &p_)
 Sets the panel that can be shown when the whenever the custom widget implementer wants.
 
virtual void removeLinkedPanel ()
 Removes the panel that should be shown when the label is clicked.
 
virtual void showLinkedPanel (const Point &pt_, const Widget *const focus_)
 Shows the linked panel in a popdown borderless fashion at the given location.
 
virtual void hideLinkedPanel ()
 Hides the linked panel if it is currently showing.
 
virtual PlatformDrawingContextPtr platformDC () const
 Gets the platform-specific graphics drawing context for the current draw call.
 
virtual void drawRoundedRect (const Rect &rect_, const double radius_, const bool fill_=false)
 Draws a rounded rect, optionally filled; will be the color set by setDrawColor()
 
virtual void drawEllipse (const Rect &rect_, const bool fill_=false)
 Draws an ellipse, optionally filled; will be the color set by setDrawColor()
 
virtual void drawImage (const Point &tl_, const int16_t pngID_, const double scale_=1.0)
 Draws a PNGI image resource at the given point.
 
virtual void drawText (const Point &tl_, const std::string &text_, const Font &font_, const double fontSize_)
 Draws text at the given point.
 
- Public Member Functions inherited from hdi::core::Widget
virtual ~Widget ()
 Destructs a Widget.
 
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 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)
 

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

Class for draggable divider lines, which are of a standard length, and used for resizing e.g. the height of the two widgets immediately above and below the divider.

Constructor & Destructor Documentation

◆ DraggableDivider() [1/3]

hdi::core::DraggableDivider::DraggableDivider ( )

Constructs an empty DraggableDivider object.

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

◆ DraggableDivider() [2/3]

hdi::core::DraggableDivider::DraggableDivider ( const DraggableDivider & widget_)

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

Author
GW
Date
11/2015
Parameters
widget_Existing DraggableDivider object

◆ DraggableDivider() [3/3]

hdi::core::DraggableDivider::DraggableDivider ( const Point & loc_,
const Direction dir_ )

DraggableDivider constructor, taking an argument for the location and direction.

Author
GW
Date
11/2015
Parameters
loc_Top-left location of the divider, in 1x resolution coordinates
dir_Horizontal or vertical line?

◆ ~DraggableDivider()

virtual hdi::core::DraggableDivider::~DraggableDivider ( )
virtual

DraggableDivider destructor.

Author
GW
Date
11/2015

Member Function Documentation

◆ clone()

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

Convenience method to clone a DraggableDivider object on the heap.

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

Reimplemented from hdi::core::CustomWidget.

◆ direction()

virtual Direction hdi::core::DraggableDivider::direction ( ) const
virtual

Gets the direction that the line is going.

Author
GW
Date
11/2015
Returns
Vertical for a vertical line, Horizontal otherwise

◆ duplicate()

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

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

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

Reimplemented from hdi::core::CustomWidget.

◆ enabled()

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

Returns true, because dividers are always enabled.

Author
GW
Date
11/2015
Returns
true

Reimplemented from hdi::core::Widget.

◆ movedCallback()

virtual Callback *const hdi::core::DraggableDivider::movedCallback ( ) const
virtual

Gets the callback for the widget being moved during a mouse drag event.

Author
GW
Date
11/2015
Returns
A pointer to the currently registered move callback

◆ operator=()

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

Allows one DraggableDivider object to be assigned from another.

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

◆ setEnabled()

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

Overrides Widget::setEnabled() because dividers are always enabled.

Author
GW
Date
11/2015
Parameters
enable_true to enable, false to disable (ignored)

Reimplemented from hdi::core::Widget.

◆ setMovedCallback()

virtual void hdi::core::DraggableDivider::setMovedCallback ( const Callback & cb_)
virtual

Sets the callback for the widget being moved during a mouse drag event.

Author
GW
Date
11/2015
Parameters
cb_New callback (target and action) for the widget moving due to the user dragging it to one side or another

◆ setText()

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

Prevents setting the text, as dividers cannot have text.

Author
GW
Date
11/2015

Reimplemented from hdi::core::Widget.

◆ text()

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

Always gets "", as dividers cannot have text.

Author
GW
Date
11/2015
Returns
""

Reimplemented from hdi::core::Widget.