Empirical
|
WidgetFacet is a template that provides accessors into Widget with a derived return type. More...
#include <Widget.h>
Public Types | |
using | return_t = RETURN_TYPE |
Public Member Functions | |
template<typename SETTING_TYPE > | |
return_t & | SetCSS (const std::string &setting, SETTING_TYPE &&value) |
Set a specific CSS value for this widget. More... | |
template<typename SETTING_TYPE > | |
return_t & | SetAttr (const std::string &setting, SETTING_TYPE &&value) |
Set a specific Attribute value for this widget. More... | |
template<typename T1 , typename T2 , typename... OTHER_SETTINGS> | |
return_t & | SetCSS (const std::string &setting1, T1 &&val1, const std::string &setting2, T2 &&val2, OTHER_SETTINGS...others) |
Multiple CSS settings can be provided simultaneously. More... | |
template<typename T1 , typename T2 , typename... OTHER_SETTINGS> | |
return_t & | SetAttr (const std::string &setting1, T1 &&val1, const std::string &setting2, T2 &&val2, OTHER_SETTINGS...others) |
Multiple Attributes can be provided simultaneously. More... | |
return_t & | SetCSS (const Style &in_style) |
return_t & | SetAttr (const Attributes &in_attr) |
return_t & | On (const std::string &event_name, const std::function< void()> &fun) |
return_t & | On (const std::string &event_name, const std::function< void(MouseEvent evt)> &fun) |
return_t & | On (const std::string &event_name, const std::function< void(double, double)> &fun) |
template<typename T > | |
return_t & | OnResize (T &&arg) |
Provide a function to be called when the window is resized. More... | |
template<typename T > | |
return_t & | OnClick (T &&arg) |
Provide a function to be called when the mouse button is clicked in this Widget. More... | |
template<typename T > | |
return_t & | OnDoubleClick (T &&arg) |
Provide a function to be called when the mouse button is double clicked in this Widget. More... | |
template<typename T > | |
return_t & | OnMouseDown (T &&arg) |
Provide a function to be called when the mouse button is pushed down in this Widget. More... | |
template<typename T > | |
return_t & | OnMouseUp (T &&arg) |
Provide a function to be called when the mouse button is released in this Widget. More... | |
template<typename T > | |
return_t & | OnMouseMove (T &&arg) |
Provide a function to be called whenever the mouse moves in this Widget. More... | |
template<typename T > | |
return_t & | OnMouseOut (T &&arg) |
Provide a function to be called whenever the mouse leaves the Widget. More... | |
template<typename T > | |
return_t & | OnMouseOver (T &&arg) |
Provide a function to be called whenever the mouse moves over the Widget. More... | |
template<typename T > | |
return_t & | OnMouseWheel (T &&arg) |
Provide a function to be called whenever the mouse wheel moves in this Widget. More... | |
template<typename T > | |
return_t & | OnKeydown (T &&arg) |
Provide a function to be called whenever a key is pressed down in this Widget. More... | |
template<typename T > | |
return_t & | OnKeypress (T &&arg) |
Provide a function to be called whenever a key is pressed down and released in this Widget. More... | |
template<typename T > | |
return_t & | OnKeyup (T &&arg) |
Provide a function to be called whenever a key is pressed released in this Widget. More... | |
template<typename T > | |
return_t & | OnCopy (T &&arg) |
Provide a function to be called whenever text is copied in this Widget. More... | |
template<typename T > | |
return_t & | OnCut (T &&arg) |
Provide a function to be called whenever text is cut in this Widget. More... | |
template<typename T > | |
return_t & | OnPaste (T &&arg) |
Provide a function to be called whenever text is pasted in this Widget. More... | |
return_t & | SetWidth (double w, const std::string &unit="px") |
return_t & | SetHeight (double h, const std::string &unit="px") |
return_t & | SetSize (double w, double h, const std::string &unit="px") |
return_t & | Center () |
Move this widget to the center of its container. More... | |
return_t & | SetPosition (int x, int y, const std::string &unit="px", const std::string &pos_type="absolute", const std::string &x_anchor="left", const std::string &y_anchor="top") |
Set the x-y position of this widget within its container. More... | |
return_t & | SetPositionRT (int x, int y, const std::string &unit="px") |
Set the x-y position of this Widget within its container, using the TOP-RIGHT as an anchor. More... | |
return_t & | SetPositionRB (int x, int y, const std::string &unit="px") |
Set the x-y position of this Widget within its container, using the BOTTOM-RIGHT as an anchor. More... | |
return_t & | SetPositionLB (int x, int y, const std::string &unit="px") |
Set the x-y position of this Widget within its container, using the BOTTOM-LEFT as an anchor. More... | |
return_t & | SetPositionFixed (int x, int y, const std::string &unit="px") |
Set the x-y position of this Widget, fixed within the browser window. More... | |
return_t & | SetPositionFixedRT (int x, int y, const std::string &unit="px") |
Set the x-y position of the top-right corner this Widget, fixed within the browser window. More... | |
return_t & | SetPositionFixedRB (int x, int y, const std::string &unit="px") |
Set the x-y position of the bottom-right corner this Widget, fixed within the browser window. More... | |
return_t & | SetPositionFixedLB (int x, int y, const std::string &unit="px") |
Set the x-y position of the bottom-left corner this Widget, fixed within the browser window. More... | |
return_t & | SetFloat (const std::string &f="left") |
Set this Widget to float appropriately within its containter. More... | |
return_t & | SetOverflow (const std::string &o="auto") |
Setup how this Widget should handle overflow. More... | |
return_t & | SetScroll () |
Setup how this Widget to always have scrollbars. More... | |
return_t & | SetScrollAuto () |
Setup how this Widget to have scrollbars if needed for overflow. More... | |
return_t & | SetResizable () |
Setup how this Widget to be user-resizable. More... | |
return_t & | SetResizableX () |
Setup how this Widget for the x only to be user-resizable. More... | |
return_t & | SetResizableY () |
Setup how this Widget for the y only to be user-resizable. More... | |
return_t & | SetResizableOff () |
Setup how this Widget to NOT be resizable. More... | |
return_t & | SetFont (const Font &font) |
Provide a Font object to setup the font for this widget. More... | |
return_t & | SetFont (const std::string &font) |
Setup the Font to be used in this Widget. More... | |
return_t & | SetFontSize (int s) |
Setup the size of the Font to be used in this Widget. More... | |
return_t & | SetFontSizeVW (double s) |
Setup the size of the Font to be used in this Widget in units of % of viewport width. More... | |
return_t & | SetCenterText () |
Align text to be centered. More... | |
return_t & | SetBackground (const std::string &v) |
Set the background color of this Widget. More... | |
return_t & | SetColor (const std::string &v) |
Set the foreground color of this Widget. More... | |
return_t & | SetOpacity (double v) |
Set the opacity level of this Widget. More... | |
return_t & | SetBorder (const std::string &border_info) |
Set information about the Widget board. More... | |
return_t & | SetPadding (double p, const std::string &unit="px") |
The the number of pixels (or alternate unit) for the padding around cells (used with Tables) More... | |
bool | IsNull () const |
Test if this widget is valid. More... | |
std::string | InfoTypeName () const |
Some debugging helpers... More... | |
bool | IsInactive () const |
Test if the activity state of this widget is currently INACTIVE. More... | |
bool | IsWaiting () const |
Test if the activity state of this widget is currently WAITING. More... | |
bool | IsFrozen () const |
Test if the activity state of this widget is currently FROZEN. More... | |
bool | IsActive () const |
Test if the activity state of this widget is currently ACTIVE. More... | |
bool | AppendOK () const |
Is it okay to add more internal Widgets into this one? More... | |
void | PreventAppend () |
Disallow further appending to this Widget. More... | |
bool | IsButton () const |
Is this Widget a Button? More... | |
bool | IsCanvas () const |
Is this Widget a Canvas? More... | |
bool | IsImage () const |
Is this Widget an Image? More... | |
bool | IsSelector () const |
Is this Widget a Selector? More... | |
bool | IsDiv () const |
Is this Widget a Div? More... | |
bool | IsTable () const |
Is this Widget a Table? More... | |
bool | IsText () const |
Is this Widget a Text? More... | |
const std::string & | GetID () const |
What is the HTML string ID for this Widget? More... | |
virtual std::string | GetCSS (const std::string &setting) |
virtual bool | HasCSS (const std::string &setting) |
Determine is a CSS trait has been set on this Widget. More... | |
virtual std::string | GetAttr (const std::string &setting) |
Retrieve a specific attribute associated with this Widget. More... | |
virtual bool | HasAttr (const std::string &setting) |
Determine is an attribute has been set on this Widget. More... | |
bool | operator== (const Widget &in) const |
Are two Widgets refering to the same HTML object? More... | |
bool | operator!= (const Widget &in) const |
Are two Widgets refering to differnt HTML objects? More... | |
operator bool () const | |
Conver Widget to bool (I.e., is this Widget active?) More... | |
double | GetXPos () |
Get the X-position of this Widget within its parent. More... | |
double | GetYPos () |
Get the Y-position of this Widget within its parent. More... | |
double | GetWidth () |
Get the width of this Widget on screen. More... | |
double | GetHeight () |
Get the height of this Widget on screen. More... | |
double | GetInnerWidth () |
Get the width of this Widget not including padding. More... | |
double | GetInnerHeight () |
Get the height of this Widget not including padding. More... | |
double | GetOuterWidth () |
Get the width of this Widget including all padding. More... | |
double | GetOuterHeight () |
Get the height of this Widget including all padding. More... | |
void | Activate () |
Make this widget live, so changes occur immediately (once document is ready) More... | |
void | Freeze () |
Record changes internally, but keep static screen until Activate() is called. More... | |
virtual void | Deactivate (bool top_level=true) |
bool | ToggleActive () |
Doggle between Active and Deactivated. More... | |
void | Redraw () |
Clear and redraw the current widget on the screen. More... | |
Widget & | Find (const std::string &test_name) |
Look up previously created elements, by type. More... | |
Widget & | AddDependant (const Widget &w) |
Add a dependant to this Widget that should be redrawn when it is. More... | |
virtual void | PrepareAppend () |
Setup << operator to redirect to Append; option preparation can be overridden. More... | |
template<typename IN_TYPE > | |
Widget | operator<< (IN_TYPE &&in_val) |
std::string | GetInfoType () const |
Debug... More... | |
Protected Types | |
enum | ActivityState { INACTIVE, WAITING, FROZEN, ACTIVE } |
using | WidgetInfo = internal::WidgetInfo |
Protected Member Functions | |
WidgetFacet (const std::string &in_id="") | |
WidgetFacet cannot be built unless within derived class, so constructors are protected. More... | |
WidgetFacet (const WidgetFacet &in) | |
WidgetFacet (const Widget &in) | |
WidgetFacet (WidgetInfo *in_info) | |
WidgetFacet & | operator= (const WidgetFacet &in) |
virtual | ~WidgetFacet () |
virtual void | DoCSS (const std::string &setting, const std::string &value) |
virtual void | DoAttr (const std::string &setting, const std::string &value) |
virtual void | DoListen (const std::string &event_name, size_t fun_id) |
template<typename FWD_TYPE > | |
Widget & | ForwardAppend (FWD_TYPE &&arg) |
If an Append doesn't work with current class, forward it to the parent and try there. More... | |
Widget & | SetInfo (WidgetInfo *in_info) |
Set the information associated with this widget. More... | |
WidgetInfo * | operator-> () |
Internally, we can treat a Widget as a pointer to its WidgetInfo. More... | |
Static Protected Member Functions | |
static WidgetInfo * | Info (const Widget &w) |
Give derived classes the ability to access widget info. More... | |
Protected Attributes | |
WidgetInfo * | info |
Information associated with this widget. More... | |
Static Protected Attributes | |
static const std::string | no_name = "(none)" |
Default name for un-initialized widgets. More... | |
WidgetFacet is a template that provides accessors into Widget with a derived return type.
using emp::web::internal::WidgetFacet< RETURN_TYPE >::return_t = RETURN_TYPE |
|
protectedinherited |
|
protectedinherited |
|
inlineprotected |
WidgetFacet cannot be built unless within derived class, so constructors are protected.
|
inlineprotected |
|
inlineprotected |
|
inlineprotected |
|
inlineprotectedvirtual |
|
inherited |
Make this widget live, so changes occur immediately (once document is ready)
Add a dependant to this Widget that should be redrawn when it is.
|
inherited |
Is it okay to add more internal Widgets into this one?
|
inline |
Move this widget to the center of its container.
|
virtualinherited |
Record changes internally and REMOVE from screen until Activate is called. (Argument is for recursive, internal use only.)
Reimplemented in emp::web::Div.
|
inlineprotectedvirtual |
Attr-related options may be overridden in derived classes that have multiple attributes. By default DoAttr will track the new information and apply it (if active) to the widget.
Reimplemented in emp::web::TableWidget, emp::web::TableCell, emp::web::TableCol, emp::web::TableColGroup, emp::web::TableRowGroup, and emp::web::TableRow.
|
inlineprotectedvirtual |
CSS-related options may be overridden in derived classes that have multiple styles. By default DoCSS will track the new information and apply it (if active) to the widget.
Reimplemented in emp::web::TableWidget, emp::web::TableCell, emp::web::TableCol, emp::web::TableColGroup, emp::web::TableRow, and emp::web::TableRowGroup.
|
inlineprotectedvirtual |
Listener options may be overridden in derived classes that have multiple listen targets. By default DoListen will track new listens and set them up immediately, if active.
Reimplemented in emp::web::TableWidget, emp::web::TableCell, emp::web::TableCol, emp::web::TableColGroup, emp::web::TableRowGroup, and emp::web::TableRow.
|
inherited |
Look up previously created elements, by type.
|
protectedinherited |
If an Append doesn't work with current class, forward it to the parent and try there.
|
inherited |
Record changes internally, but keep static screen until Activate() is called.
|
virtualinherited |
Retrieve a specific attribute associated with this Widget.
|
virtualinherited |
Retrieve a specific CSS trait associated with this Widget. Note: CSS-related options may be overridden in derived classes that have multiple styles.
Reimplemented in emp::web::TableWidget, emp::web::TableCell, emp::web::TableCol, emp::web::TableColGroup, emp::web::TableRowGroup, and emp::web::TableRow.
|
inherited |
Get the height of this Widget on screen.
|
inherited |
What is the HTML string ID for this Widget?
|
inherited |
Debug...
|
inherited |
Get the height of this Widget not including padding.
|
inherited |
Get the width of this Widget not including padding.
|
inherited |
Get the height of this Widget including all padding.
|
inherited |
Get the width of this Widget including all padding.
|
inherited |
Get the width of this Widget on screen.
|
inherited |
Get the X-position of this Widget within its parent.
|
inherited |
Get the Y-position of this Widget within its parent.
|
virtualinherited |
Determine is an attribute has been set on this Widget.
|
virtualinherited |
Determine is a CSS trait has been set on this Widget.
|
inlinestaticprotectedinherited |
Give derived classes the ability to access widget info.
|
inherited |
Some debugging helpers...
|
inherited |
Test if the activity state of this widget is currently ACTIVE.
|
inherited |
Test if the activity state of this widget is currently FROZEN.
|
inherited |
Test if the activity state of this widget is currently INACTIVE.
|
inlineinherited |
Test if this widget is valid.
|
inherited |
Test if the activity state of this widget is currently WAITING.
|
inline |
Provide an event and a function that will be called when that event is triggered. In this case, the function as no arguments.
|
inline |
Provide an event and a function that will be called when that event is triggered. In this case, the function takes a mouse event as an argument, with full info about mouse.
|
inline |
Provide an event and a function that will be called when that event is triggered. In this case, the function takes two doubles which will be filled in with mouse coordinates.
|
inline |
Provide a function to be called when the mouse button is clicked in this Widget.
|
inline |
Provide a function to be called whenever text is copied in this Widget.
|
inline |
Provide a function to be called whenever text is cut in this Widget.
|
inline |
Provide a function to be called when the mouse button is double clicked in this Widget.
|
inline |
Provide a function to be called whenever a key is pressed down in this Widget.
|
inline |
Provide a function to be called whenever a key is pressed down and released in this Widget.
|
inline |
Provide a function to be called whenever a key is pressed released in this Widget.
|
inline |
Provide a function to be called when the mouse button is pushed down in this Widget.
|
inline |
Provide a function to be called whenever the mouse moves in this Widget.
|
inline |
Provide a function to be called whenever the mouse leaves the Widget.
|
inline |
Provide a function to be called whenever the mouse moves over the Widget.
|
inline |
Provide a function to be called when the mouse button is released in this Widget.
|
inline |
Provide a function to be called whenever the mouse wheel moves in this Widget.
|
inline |
Provide a function to be called whenever text is pasted in this Widget.
|
inline |
Provide a function to be called when the window is resized.
|
inlineinherited |
|
inlineinherited |
Are two Widgets refering to differnt HTML objects?
|
inlineprotectedinherited |
Internally, we can treat a Widget as a pointer to its WidgetInfo.
|
inherited |
|
inlineprotected |
|
inlineinherited |
Are two Widgets refering to the same HTML object?
|
inlinevirtualinherited |
Setup << operator to redirect to Append; option preparation can be overridden.
Reimplemented in emp::web::TableWidget.
|
inherited |
Disallow further appending to this Widget.
|
inherited |
Clear and redraw the current widget on the screen.
|
inline |
Set a specific Attribute value for this widget.
|
inline |
Multiple Attributes can be provided simultaneously.
|
inline |
Allow multiple Attr settings to be provided as a single object. (still go through DoAttr given need for virtual re-routing.)
|
inline |
Set the background color of this Widget.
|
inline |
Set information about the Widget board.
|
inline |
Align text to be centered.
|
inline |
Set the foreground color of this Widget.
|
inline |
Set a specific CSS value for this widget.
|
inline |
Multiple CSS settings can be provided simultaneously.
|
inline |
Allow multiple CSS settings to be provided as a single object. (still go through DoCSS given need for virtual re-routing.)
|
inline |
Set this Widget to float appropriately within its containter.
|
inline |
Provide a Font object to setup the font for this widget.
|
inline |
|
inline |
|
inline |
|
inline |
Update the height of this Widget.
unit | defaults to pixels ("px"), but can also be a measured distance (e.g, "inches") or a percentage("%") |
|
protectedinherited |
Set the information associated with this widget.
|
inline |
Set the opacity level of this Widget.
|
inline |
Setup how this Widget should handle overflow.
|
inline |
The the number of pixels (or alternate unit) for the padding around cells (used with Tables)
|
inline |
Set the x-y position of this widget within its container.
|
inline |
Set the x-y position of this Widget, fixed within the browser window.
|
inline |
Set the x-y position of the bottom-left corner this Widget, fixed within the browser window.
|
inline |
Set the x-y position of the bottom-right corner this Widget, fixed within the browser window.
|
inline |
Set the x-y position of the top-right corner this Widget, fixed within the browser window.
|
inline |
Set the x-y position of this Widget within its container, using the BOTTOM-LEFT as an anchor.
|
inline |
Set the x-y position of this Widget within its container, using the BOTTOM-RIGHT as an anchor.
|
inline |
Set the x-y position of this Widget within its container, using the TOP-RIGHT as an anchor.
|
inline |
Setup how this Widget to be user-resizable.
|
inline |
Setup how this Widget to NOT be resizable.
|
inline |
Setup how this Widget for the x only to be user-resizable.
|
inline |
Setup how this Widget for the y only to be user-resizable.
|
inline |
Setup how this Widget to always have scrollbars.
|
inline |
Setup how this Widget to have scrollbars if needed for overflow.
|
inline |
Update the size (width and height) of this widget.
unit | defaults to pixels ("px"), but can also be a measured distance (e.g, "inches") or a percentage("%") |
|
inline |
Update the width of this Widget.
unit | defaults to pixels ("px"), but can also be a measured distance (e.g, "inches") or a percentage("%") |
|
inherited |
Doggle between Active and Deactivated.
|
protectedinherited |
Information associated with this widget.
|
staticprotectedinherited |
Default name for un-initialized widgets.