bWidgets
Core widget toolkit designed for Blender
|
The base data-structure for a screen-graph node. More...
#include <Node.h>
Public Types | |
using | ChildList = std::list< std::unique_ptr< Node > > |
using | ChildIterator = ChildList::iterator |
Public Member Functions | |
Node ()=default | |
virtual | ~Node ()=default |
virtual auto | Children () const -> const ChildList * |
virtual auto | Children () -> ChildList * |
virtual auto | childrenVisible () const -> bool |
virtual auto | Layout () const -> bwLayoutInterface * |
virtual auto | Widget () const -> bwWidget * |
auto | Parent () const -> Node * |
auto | eventHandler () const -> EventHandler * |
virtual auto | Rectangle () const -> bwRectanglePixel=0 |
virtual auto | MaskRectangle () const -> std::optional< bwRectanglePixel >=0 |
virtual auto | isVisible () const -> bool=0 |
Friends | |
class | Builder |
The base data-structure for a screen-graph node.
Screen-graph nodes are the atomical components of a screen-graph, which is key for the bWidgets design. If you're not familiar with our screen-graph concept, you should really have a look at the bWidgets design overview.
There are three kinds of screen-graph elements/nodes:
To ensure separation of concerns, the screen-graph node must not have any functionality of its own (no non-trivial member functions). Any functionality must be implemented using friend classes and functions. For example to build a screen-graph and the necessary nodes, a screen-graph builder class should be used and be declared as friend of the Node
class. Having to declare those helpers as friends may turn out to an annoyance with small benefits. In that case we should just make data public.
using bWidgets::bwScreenGraph::Node::ChildIterator = ChildList::iterator |
using bWidgets::bwScreenGraph::Node::ChildList = std::list<std::unique_ptr<Node> > |
|
default |
|
virtualdefault |
|
inlinevirtual |
Reimplemented in bWidgets::bwScreenGraph::LayoutNode, and bWidgets::bwScreenGraph::ContainerNode.
|
inlinevirtual |
Reimplemented in bWidgets::bwScreenGraph::LayoutNode, and bWidgets::bwScreenGraph::ContainerNode.
|
inlinevirtual |
Reimplemented in bWidgets::bwScreenGraph::ContainerNode.
|
inline |
|
pure virtual |
|
inlinevirtual |
Reimplemented in bWidgets::bwScreenGraph::LayoutNode, and bWidgets::bwScreenGraph::ContainerNode.
|
pure virtual |
|
inline |
|
pure virtual |
|
inlinevirtual |
Reimplemented in bWidgets::bwScreenGraph::WidgetNode, and bWidgets::bwScreenGraph::ContainerNode.
|
friend |