AUI Framework
develop
Cross-platform base for C++ UI apps
|
Represents an abstract text display view. More...
#include <AUI/View/AAbstractLabel.h>
Public Member Functions | |
auto | text () const |
Label's text property. | |
AAbstractLabel (AString text) noexcept | |
void | render (ARenderContext context) override |
Draws this AView. Noone should call this function except rendering routine. | |
void | doRenderText (IRenderer &render) |
int | getContentMinimumWidth () override |
int | getContentMinimumHeight () override |
const _< IDrawable > & | getIcon () const |
AString | toString () const override |
void | setIcon (const _< IDrawable > &drawable) |
void | setIconColor (const AColor &iconColor) |
void | doPrerender (IRenderer &render) |
bool | consumesClick (const glm::ivec2 &pos) override |
Determines whether this AView processes this click or passes it thru. | |
void | onDpiChanged () override |
void | setText (AString newText) |
void | invalidateFont () override |
void | setVerticalAlign (VerticalAlign verticalAlign) |
void | setTextOverflow (ATextOverflow textOverflow) |
void | setTextTransform (TextTransform textTransform) |
void | setSize (glm::ivec2 size) override |
void | invalidateAllStyles () override |
Invalidates all styles, causing to iterate over all rules in global and parent stylesheets. | |
Public Member Functions inherited from AView | |
auto | enabled () const |
Whether view is enabled (i.e., reacts to user). | |
auto | position () const |
Top left corner's position relative to top left corner's position of the parent AView. | |
auto | size () const |
Size, including content area, border and padding. | |
auto | expanding () const |
Expansion coefficient. Hints layout manager how much this AView should be extended relative to other AViews in the same container. | |
auto | visibility () const |
Visibility value. | |
void | redraw () |
Request window manager to redraw this AView. | |
AWindowBase * | getWindow () const |
Determines window which this AView belongs to. | |
virtual void | drawStencilMask (ARenderContext ctx) |
virtual void | postRender (ARenderContext ctx) |
Performs post-draw routines of this AView. Noone should call this function except rendering routine. | |
void | popStencilIfNeeded (ARenderContext ctx) |
const AVector< AString > & | getAssNames () const noexcept |
glm::ivec2 | getPosition () const noexcept |
Top left corner's position relative to top left corner's position of the parent AView. | |
glm::ivec2 | getCenterPointInWindow () const noexcept |
The center point position of the view relatively to top left corner of the window. | |
glm::ivec2 | getSize () const noexcept |
Size, including content area, border and padding. | |
glm::ivec2 | getMinSize () const noexcept |
void | setMinSize (glm::ivec2 minSize) noexcept |
virtual void | markMinContentSizeInvalid () |
void | setExtraStylesheet (_< AStylesheet > extraStylesheet) |
void | setExtraStylesheet (AStylesheet &&extraStylesheet) |
const _< AStylesheet > & | extraStylesheet () const noexcept |
AOverflow | getOverflow () const |
Determines whether display graphics that go out of the bounds of this AView or not. | |
void | setOverflow (AOverflow overflow) |
AOverflowMask | getOverflowMask () const |
Controls how does the overflow (stencil) mask is produced. | |
void | setOverflowMask (AOverflowMask overflow) |
float | getBorderRadius () const |
border-radius, specified in ASS. | |
void | setBorderRadius (float radius) |
int | getWidth () const |
int | getHeight () const |
int | getTotalOccupiedWidth () const |
int | getTotalOccupiedHeight () const |
glm::ivec2 | getMinimumSizePlusMargin () |
const ABoxFields & | getMargin () |
Returns the margin. | |
void | setMargin (const ABoxFields &margin) |
Sets the margin. | |
const ABoxFields & | getPadding () |
Returns the padding. | |
void | setPadding (const ABoxFields &padding) |
Sets the padding. | |
virtual AString | debugString () const |
String which helps to identify this object in debug string output (i.e., for logging) | |
int | getTotalFieldHorizontal () const |
int | getTotalFieldVertical () const |
glm::ivec2 | getTotalFieldSize () const |
AViewContainerBase * | getParent () const |
Parent AView. | |
const AOptional< ACursor > & | getCursor () const |
Determines shape which should pointer take when it's above this AView. | |
void | setCursor (AOptional< ACursor > cursor) |
glm::ivec2 | getContentMinimumSize () noexcept |
bool | isContentMinimumSizeInvalidated () noexcept |
bool | hasFocus () const |
virtual int | getMinimumWidth () |
virtual int | getMinimumHeight () |
glm::ivec2 | getMinimumSize () |
void | setMaxSize (const glm::ivec2 &maxSize) |
const glm::ivec2 & | getMaxSize () const |
int | getContentWidth () const |
int | getContentHeight () const |
const glm::ivec2 & | getExpanding () const |
void | setExpanding (glm::ivec2 expanding) |
Changes the expanding of view. | |
void | setExpanding (int expanding) |
Changes the expanding of view. | |
void | setExpanding () |
const _< AAnimator > & | getAnimator () const |
void | setAnimator (const _< AAnimator > &animator) |
void | getTransform (glm::mat4 &transform) const |
int | getExpandingHorizontal () const |
int | getExpandingVertical () const |
aui::float_within_0_1 | getOpacity () const |
void | setOpacity (aui::float_within_0_1 opacity) |
virtual void | setPosition (glm::ivec2 position) |
void | setSizeForced (glm::ivec2 size) |
virtual void | setGeometry (int x, int y, int width, int height) |
void | setGeometry (const glm::ivec2 &position, const glm::ivec2 &size) |
bool | isBlockClicksWhenPressed () const noexcept |
void | setBlockClicksWhenPressed (bool value) noexcept |
const glm::ivec2 & | getFixedSize () |
Fixed size. | |
void | setFixedSize (glm::ivec2 size) |
bool | isMouseHover () const noexcept |
bool | isPressed () const noexcept |
bool | isPressed (APointerIndex index) const noexcept |
bool | isFocused () const |
bool | isMouseEntered () const |
Visibility | getVisibility () const |
Visibility | getVisibilityRecursive () const |
void | setVisibility (Visibility visibility) noexcept |
void | setVisible (bool visible) noexcept |
MouseCollisionPolicy | getMouseCollisionPolicy () const |
void | setMouseCollisionPolicy (MouseCollisionPolicy mouseCollisionPolicy) |
void | click () |
void | pack () |
Sets minimal size. | |
void | focus (bool needFocusChainUpdate=true) |
Requests focus for this AView. | |
virtual bool | capturesFocus () |
bool | hasIndirectParent (const _< AView > &v) |
Checks if the specified view is an indirect parent of this view. | |
glm::ivec2 | getPositionInWindow () const |
void | addAssName (const AString &assName) |
Adds an ASS class to this AView. | |
void | removeAssName (const AString &assName) |
Removes an ASS class to this AView. | |
AView & | operator<< (const AString &assName) |
const _< AAssHelper > & | getAssHelper () const |
const ass::PropertyListRecursive & | getCustomAss () const |
void | setCustomStyle (ass::PropertyListRecursive rule) |
void | ensureAssUpdated () |
_< AView > | sharedPtr () |
_weak< AView > | weakPtr () |
virtual bool | onGesture (const glm::ivec2 &origin, const AGestureEvent &event) |
virtual void | onMouseEnter () |
virtual void | onPointerMove (glm::vec2 pos, const APointerMoveEvent &event) |
Handles pointer hover events. | |
virtual void | onMouseLeave () |
virtual void | onPointerPressed (const APointerPressedEvent &event) |
Called on pointer (mouse) released event. | |
virtual void | onPointerReleased (const APointerReleasedEvent &event) |
Called on pointer (mouse) released event. | |
virtual void | onPointerDoubleClicked (const APointerPressedEvent &event) |
virtual void | onScroll (const AScrollEvent &event) |
virtual void | onKeyDown (AInput::Key key) |
virtual void | onKeyRepeat (AInput::Key key) |
virtual void | onKeyUp (AInput::Key key) |
virtual void | onFocusAcquired () |
virtual void | onFocusLost () |
virtual void | onCharEntered (char16_t c) |
virtual bool | handlesNonMouseNavigation () |
virtual void | forceUpdateLayoutRecursively () |
virtual void | setEnabled (bool enabled=true) |
void | setDisabled (bool disabled=true) |
void | updateEnableState () |
void | enable () |
void | disable () |
void | operator+ (ass::PropertyListRecursive rule) |
Helper function for kAUI.h:with_style. | |
virtual void | onClickPrevented () |
Called on AWindowBase::preventClickOnPointerRelease. | |
void | invalidateStateStyles () |
Updates state selectors for ASS. | |
virtual void | invalidateAssHelper () |
Resets mAssHelper. | |
virtual bool | wantsTouchscreenKeyboard () |
Returns true if view is textfield-like view which requires touchscreen keyboard when clicked. | |
void | setSkipUntilLayoutUpdate (bool skipUntilLayoutUpdate) |
void | setFloating (AFloat f) noexcept |
Set floating value for AText. | |
AFloat | getFloating () const noexcept |
Floating value for AText. | |
Public Member Functions inherited from AObject | |
_< AObject > | sharedPtr () |
_weak< AObject > | weakPtr () |
template<typename Connectable, ACompatibleSlotFor< Connectable > Function> | |
void | connect (const Connectable &connectable, Function &&function) |
Connects signal or property to slot of "this" object. | |
void | setSignalsEnabled (bool enabled) |
bool | isSignalsEnabled () const noexcept |
template<ASignalInvokable T> | |
void | operator^ (T &&t) |
_< AAbstractThread > | getThread () const |
bool | isSlotsCallsOnlyOnMyThread () const noexcept |
void | setSlotsCallsOnlyOnMyThread (bool slotsCallsOnlyOnMyThread) |
Public Member Functions inherited from AObjectBase | |
AObjectBase (AObjectBase &&rhs) noexcept | |
void | clearSignals () noexcept |
Public Member Functions inherited from aui::noncopyable | |
noncopyable (const noncopyable &)=delete | |
noncopyable & | operator= (const noncopyable &)=delete |
Public Member Functions inherited from IFontView | |
AFontStyle & | getFontStyle () |
const AColor & | getTextColor () const |
void | setTextColor (AColor color) |
Protected Member Functions | |
const _< IRenderer::IPrerenderedString > & | getPrerendered () |
void | commitStyle () override |
Protected Member Functions inherited from AView | |
bool | transformGestureEventsToDesktop (const glm::ivec2 &origin, const AGestureEvent &event) |
Converts touch screen events to desktop. | |
void | applyAssRule (const ass::PropertyList &propertyList) |
void | applyAssRule (const ass::PropertyListRecursive &propertyList) |
virtual AMenuModel | composeContextMenu () |
Produce context (right click) menu. | |
virtual void | onViewGraphSubtreeChanged () |
Called when direct or indirect parent has changed. | |
virtual void | markPixelDataInvalid (ARect< int > invalidArea) |
A view requests to redraw it and passes it's coords relative to this. | |
Protected Member Functions inherited from AObject | |
void | setThread (_< AAbstractThread > thread) |
Set thread of the object. | |
Protected Member Functions inherited from IFontView | |
void | invalidateAllStylesFont () |
void | commitStyleFont () |
Protected Attributes | |
_< IRenderer::IPrerenderedString > | mPrerendered |
int | mTextLeftOffset = 0 |
bool | mIsTextTooLarge = false |
Protected Attributes inherited from AView | |
AViewContainerBase * | mParent = nullptr |
Parent AView. | |
std::array< ass::prop::IPropertyBase *, int(ass::prop::PropertySlot::COUNT)> | mAss |
Drawing list, or baking drawing commands so that you don't have to parse the ASS every time. | |
ass::PropertyListRecursive | mCustomStyleRule |
Custom ASS Rules. | |
AOptional< ACursor > | mCursor = ACursor::DEFAULT |
Determines shape which should pointer take when it's above this AView. | |
glm::ivec2 | mPosition = { 0, 0 } |
Top left corner's position relative to top left corner's position of the parent AView. | |
emits< glm::ivec2 > | mPositionChanged |
Position changed. | |
glm::ivec2 | mSize = { 20, 20 } |
Size, including content area, border and padding. | |
emits< glm::ivec2 > | mSizeChanged |
Size changed. | |
AOptional< glm::ivec2 > | mCachedMinContentSize |
bool | mMarkedMinContentSizeInvalid = false |
bool | mRedrawRequested = false |
Redraw requested flag for this particular view/. | |
glm::ivec2 | mMinSize = {0, 0} |
Minimal size. | |
glm::ivec2 | mMaxSize = {0x7fffffff, 0x7fffffff} |
Maximal size. | |
glm::ivec2 | mFixedSize = {0, 0} |
Fixed size. | |
ABoxFields | mMargin |
Margin, which defines the spacing around this AView. Processed by the layout manager. | |
ABoxFields | mPadding |
Padding, which defines the spacing around content area inside the view. Processed by AView implementation. | |
AVector< AString > | mAssNames |
ASS class names. | |
bool | mSkipUntilLayoutUpdate = true |
If set to true, AViewContainer is obligated ignore this view. This value is set to false by AView::setGeometry. | |
Additional Inherited Members | |
Static Public Member Functions inherited from AObject | |
static void | disconnect () |
template<AAnySignal Signal, aui::derived_from< AObjectBase > Object, ACompatibleSlotFor< Signal > Function> | |
static void | connect (const Signal &signal, Object *object, Function &&function) |
Connects signal to the slot of the specified object. | |
template<AAnyProperty Property, aui::derived_from< AObjectBase > Object, typename Function> | |
static void | connect (const Property &property, Object *object, Function &&function) |
Connects property to the slot of the specified object. | |
template<APropertyReadable PropertySource, APropertyWritable PropertyDestination> requires requires { { *propertySource } -> aui::convertible_to<std::decay_t<decltype(*propertyDestination)>>; } | |
static void | connect (PropertySource &&propertySource, PropertyDestination &&propertyDestination) |
Connects source property to the destination property. | |
template<APropertyWritable PropertySource, APropertyWritable PropertyDestination> requires requires { { *propertySource } -> aui::convertible_to<std::decay_t<decltype(*propertyDestination)>>; { *propertyDestination } -> aui::convertible_to<std::decay_t<decltype(*propertySource)>>; } | |
static void | biConnect (PropertySource &&propertySource, PropertyDestination &&propertyDestination) |
Connects source property to the destination property and opposite (bidirectionally). | |
template<AAnySignalOrProperty Connectable, aui::derived_from< AObjectBase > Object, ACompatibleSlotFor< Connectable > Function> | |
static void | connect (const Connectable &connectable, Object &object, Function &&function) |
Connects signal or property to the slot of the specified object. | |
template<AAnySignalOrProperty Connectable, aui::derived_from< AObjectBase > Object, ACompatibleSlotFor< Connectable > Function> | |
static void | connect (const Connectable &connectable, _< Object > object, Function &&function) |
Connects signal or property to the slot of the specified object. | |
template<AAnySignalOrProperty Connectable, aui::derived_from< AObjectBase > Object, typename Function> | |
static void | connect (const Connectable &connectable, ASlotDef< Object *, Function > slotDef) |
Connects signal to the slot of the specified object. Slot is packed to single argument. | |
template<AAnyProperty Property, typename Object, ACompatibleSlotFor< Property > Function> requires (!aui::derived_from<Object, AObject>) | |
static void | connect (const Property &property, _< Object > object, Function &&function) |
Connects signal or property to the slot of the specified non-AObject type. | |
static void | moveToThread (aui::no_escape< AObject > object, _< AAbstractThread > thread) |
Static Public Member Functions inherited from IStringable | |
template<typename T> | |
static AString | toString (const T *t) |
template<typename T> | |
static AString | toString (const _< T > &t) |
Signals and public fields inherited from AView | |
emits | viewGraphSubtreeChanged |
emits< bool > | hoveredState |
emits | mouseEnter |
emits | mouseLeave |
emits< bool, APointerIndex > | pressedState |
emits< APointerIndex > | pressed |
emits< APointerIndex > | released |
emits< APointerIndex > | clickedButton |
Some mouse button clicked. | |
emits | clicked |
Left mouse button clicked. | |
emits< glm::ivec2, glm::ivec2 > | geometryChanged |
Geometry (position and size) changed. | |
emits< glm::ivec2 > | scrolled |
Scroll event. | |
emits< AInput::Key > | keyPressed |
Keyboard key pressed. | |
emits< AInput::Key > | keyReleased |
Keyboard key released. | |
emits | clickedRight |
Right mouse button clicked. | |
emits | clickedRightOrLongPressed |
Right mouse button clicked or long press gesture applied. | |
emits< APointerIndex > | doubleClicked |
emits | customCssPropertyChanged |
emits< bool > | focusState |
Focus state changed. | |
emits | focusAcquired |
emits | focusLost |
emits< _< AView > > | childFocused |
Represents an abstract text display view.
|
overrideprotectedvirtual |
Reimplemented from AView.
|
overridevirtual |
Determines whether this AView processes this click or passes it thru.
pos | mouse position |
Used in AViewContainer::getViewAt method subset, thus affecting click event handling.
Reimplemented from AView.
Reimplemented in AButton.
|
overridevirtual |
Reimplemented from AView.
|
overridevirtual |
Reimplemented from AView.
Reimplemented in ADropdownList, and APageSwitch.
|
overridevirtual |
Invalidates all styles, causing to iterate over all rules in global and parent stylesheets.
Unlike invalidateStateStyles(), completely resets styles for this view, causing it to iterate over all rules in global and parent stylesheets. This operation is much more expensive than invalidateStateStyles because invalidateStateStyles iterates over a small set of rules and performs fewer checks.
Prefer invalidateAllStyles over invalidateStateStyles when:
Reimplemented from AView.
|
overridevirtual |
Implements IFontView.
|
overridevirtual |
Reimplemented from AView.
|
overridevirtual |
Draws this AView. Noone should call this function except rendering routine.
AView::render is not guaranteed to be called on per-frame basis. Moreover, this method can be called multiple times if render-to-texture caching decides to do so.
Reimplemented from AView.
Reimplemented in ADropdownList.
|
overridevirtual |
Reimplemented from AView.
|
overridevirtual |
Implements IStringable.