.. index:: pair: class; EE::UI::UICodeEditor .. _doxid-class_e_e_1_1_u_i_1_1_u_i_code_editor: class EE::UI::UICodeEditor ========================== .. toctree:: :hidden: struct_EE_UI_UICodeEditor_LastXOffset.rst struct_EE_UI_UICodeEditor_MinimapConfig.rst struct_EE_UI_UICodeEditor_PluginRequestedSpace.rst Overview ~~~~~~~~ .. ref-code-block:: cpp :class: doxyrest-overview-code-block #include class UICodeEditor: public :ref:`EE::UI::UIWidget`, public :ref:`EE::UI::Doc::TextDocument::Client` { public: // structs struct :ref:`LastXOffset`; struct :ref:`MinimapConfig`; struct :ref:`PluginRequestedSpace`; // construction virtual :target:`~UICodeEditor`(); // methods static UICodeEditor* :target:`New`(); static UICodeEditor* :target:`NewOpt`(const bool& autoRegisterBaseCommands, const bool& autoRegisterBaseKeybindings); static const std::map<:ref:`KeyBindings::Shortcut`, std::string> :target:`getDefaultKeybindings`(); static const :ref:`MouseBindings::ShortcutMap` :target:`getDefaultMousebindings`(); virtual :ref:`Uint32` :ref:`getType`() const; virtual bool :ref:`isType`(const :ref:`Uint32`& type) const; virtual void :ref:`setTheme`(:ref:`UITheme`* Theme); virtual void :ref:`draw`(); virtual void :ref:`scheduledUpdate`(const :ref:`Time`& time); void :target:`reset`(); :ref:`TextDocument::LoadStatus` :target:`loadFromFile`(const std::string& path); bool :target:`loadAsyncFromFile`(const std::string& path, std::shared_ptr<:ref:`ThreadPool`> pool, std::function`>, bool); :ref:`TextDocument::LoadStatus` :target:`loadFromURL`(const std::string& url, const :ref:`EE::Network::Http::Request::FieldTable`& headers = :ref:`Http::Request::FieldTable`()); bool :target:`loadAsyncFromURL`(const std::string& url, const :ref:`Http::Request::FieldTable`& headers = :ref:`Http::Request::FieldTable`(), std::function`>, bool); bool :target:`save`(); bool :target:`save`(const std::string& path); bool :target:`save`(:ref:`IOStreamFile`& stream); :ref:`Font`* :target:`getFont`() const; const :ref:`UIFontStyleConfig`& :target:`getFontStyleConfig`() const; UICodeEditor* :target:`setFont`(:ref:`Font`* font); bool :target:`setFontSize`(const :ref:`Float`& size); const :ref:`Float`& :target:`getFontSize`() const; UICodeEditor* :target:`setFontColor`(const :ref:`Color`& color); const :ref:`Color`& :target:`getFontColor`() const; UICodeEditor* :target:`setFontSelectedColor`(const :ref:`Color`& color); const :ref:`Color`& :target:`getFontSelectedColor`() const; UICodeEditor* :target:`setFontSelectionBackColor`(const :ref:`Color`& color); const :ref:`Color`& :target:`getFontSelectionBackColor`() const; UICodeEditor* :target:`setFontShadowColor`(const :ref:`Color`& color); const :ref:`Color`& :target:`getFontShadowColor`() const; UICodeEditor* :target:`setFontStyle`(const :ref:`Uint32`& fontStyle); const :ref:`Uint32`& :target:`getTabWidth`() const; UICodeEditor* :target:`setTabWidth`(const :ref:`Uint32`& tabWidth); const :ref:`Uint32`& :target:`getFontStyle`() const; const :ref:`Float`& :target:`getOutlineThickness`() const; UICodeEditor* :target:`setOutlineThickness`(const :ref:`Float`& outlineThickness); const :ref:`Color`& :target:`getOutlineColor`() const; UICodeEditor* :target:`setOutlineColor`(const :ref:`Color`& outlineColor); const :ref:`Float`& :target:`getMouseWheelScroll`() const; void :target:`setMouseWheelScroll`(const :ref:`Float`& mouseWheelScroll); void :target:`setLineNumberPaddingLeft`(const :ref:`Float`& dpLeft); void :target:`setLineNumberPaddingRight`(const :ref:`Float`& dpRight); void :target:`setLineNumberPadding`(const :ref:`Float`& dpPaddingLeft, const :ref:`Float`& dpPaddingRight); const :ref:`Float`& :target:`getLineNumberPaddingLeft`() const; const :ref:`Float`& :target:`getLineNumberPaddingRight`() const; size_t :target:`getLineNumberDigits`() const; :ref:`Float` :target:`getLineNumberWidth`() const; :ref:`Float` :target:`getInternalGutterWidth`() const; virtual :ref:`Float` :target:`getGutterWidth`() const; const bool& :target:`getShowLineNumber`() const; void :target:`setShowLineNumber`(const bool& showLineNumber); const :ref:`Color`& :target:`getLineNumberBackgroundColor`() const; void :target:`setLineNumberBackgroundColor`(const :ref:`Color`& lineNumberBackgroundColor); const :ref:`Color`& :target:`getCurrentLineBackgroundColor`() const; void :target:`setCurrentLineBackgroundColor`(const :ref:`Color`& currentLineBackgroundColor); const :ref:`Color`& :target:`getCaretColor`() const; void :target:`setCaretColor`(const :ref:`Color`& caretColor); const :ref:`Color`& :target:`getWhitespaceColor`() const; void :target:`setWhitespaceColor`(const :ref:`Color`& color); const :ref:`SyntaxColorScheme`& :target:`getColorScheme`() const; void :target:`setColorScheme`(const :ref:`SyntaxColorScheme`& colorScheme); bool :target:`hasDocument`() const; std::shared_ptr<:ref:`Doc::TextDocument`> :ref:`getDocumentRef`() const; const :ref:`Doc::TextDocument`& :target:`getDocument`() const; :ref:`Doc::TextDocument`& :target:`getDocument`(); void :target:`setDocument`(std::shared_ptr<:ref:`TextDocument`> doc); bool :target:`isDirty`() const; const bool& :target:`isLocked`() const; void :target:`setLocked`(bool locked); const :ref:`Color`& :target:`getLineNumberFontColor`() const; void :target:`setLineNumberFontColor`(const :ref:`Color`& lineNumberFontColor); const :ref:`Color`& :target:`getLineNumberActiveFontColor`() const; void :target:`setLineNumberActiveFontColor`(const :ref:`Color`& lineNumberActiveFontColor); bool :target:`isTextSelectionEnabled`() const; void :target:`setTextSelection`(const bool& active); :ref:`KeyBindings`& :target:`getKeyBindings`(); :ref:`MouseBindings`& :target:`getMouseBindings`(); void :target:`setKeyBindings`(const :ref:`KeyBindings`& keyBindings); void :target:`addKeyBindingString`(const std::string& shortcut, const std::string& command, const bool& allowLocked = false); void :target:`addKeyBinding`(const :ref:`KeyBindings::Shortcut`& shortcut, const std::string& command, const bool& allowLocked = false); void :target:`replaceKeyBindingString`(const std::string& shortcut, const std::string& command, const bool& allowLocked = false); void :target:`replaceKeyBinding`(const :ref:`KeyBindings::Shortcut`& shortcut, const std::string& command, const bool& allowLocked = false); void :target:`addKeyBindsString`(const std::map& binds, const bool& allowLocked = false); void :target:`addKeyBinds`(const std::map<:ref:`KeyBindings::Shortcut`, std::string>& binds, const bool& allowLocked = false); const bool& :target:`getHighlightCurrentLine`() const; void :target:`setHighlightCurrentLine`(const bool& highlightCurrentLine); const :ref:`Uint32`& :target:`getLineBreakingColumn`() const; void :ref:`setLineBreakingColumn`(const :ref:`Uint32`& lineBreakingColumn); void :target:`addUnlockedCommand`(const std::string& command); void :target:`removeUnlockedCommand`(const std::string& command); void :target:`addUnlockedCommands`(const std::vector& commands); void :target:`removeUnlockedCommands`(const std::vector& commands); bool :target:`isUnlockedCommand`(const std::string& command); virtual bool :ref:`applyProperty`(const :ref:`StyleSheetProperty`& attribute); virtual std::string :ref:`getPropertyString`(const :ref:`PropertyDefinition`* propertyDef, const :ref:`Uint32`& propertyIndex = 0) const; virtual std::vector<:ref:`PropertyId`> :ref:`getPropertiesImplemented`() const; const bool& :target:`getHighlightMatchingBracket`() const; void :target:`setHighlightMatchingBracket`(const bool& highlightMatchingBracket); const :ref:`Color`& :target:`getMatchingBracketColor`() const; void :target:`setMatchingBracketColor`(const :ref:`Color`& matchingBracketColor); const bool& :target:`getHighlightSelectionMatch`() const; void :target:`setHighlightSelectionMatch`(const bool& highlightSelection); const :ref:`Color`& :target:`getSelectionMatchColor`() const; void :target:`setSelectionMatchColor`(const :ref:`Color`& highlightSelectionMatchColor); const bool& :target:`getEnableColorPickerOnSelection`() const; void :target:`setEnableColorPickerOnSelection`(const bool& enableColorPickerOnSelection); void :target:`setSyntaxDefinition`(const :ref:`SyntaxDefinition`& definition); void :target:`resetSyntaxDefinition`(); const :ref:`SyntaxDefinition`& :target:`getSyntaxDefinition`() const; const bool& :target:`getHorizontalScrollBarEnabled`() const; void :target:`setHorizontalScrollBarEnabled`(const bool& horizontalScrollBarEnabled); bool :target:`getVerticalScrollBarEnabled`() const; void :target:`setVerticalScrollBarEnabled`(const bool& verticalScrollBarEnabled); const :ref:`Time`& :target:`getFindLongestLineWidthUpdateFrequency`() const; void :target:`setFindLongestLineWidthUpdateFrequency`(const :ref:`Time`& findLongestLineWidthUpdateFrequency); :ref:`TextPosition` :ref:`moveToLineOffset`(const :ref:`TextPosition`& position, int offset, const size_t& cursorIdx = 0); void :target:`moveToPreviousLine`(); void :target:`moveToNextLine`(); void :target:`addCursorAbove`(); void :target:`addCursorBelow`(); void :target:`moveToPreviousPage`(); void :target:`moveToNextPage`(); void :target:`moveToStartOfLine`(); void :target:`moveToEndOfLine`(); void :target:`moveToStartOfContent`(); void :target:`selectToPreviousLine`(); void :target:`selectToNextLine`(); void :target:`selectToStartOfContent`(); void :target:`selectToStartOfLine`(); void :target:`selectToEndOfLine`(); void :target:`registerKeybindings`(); void :target:`registerCommands`(); void :target:`moveScrollUp`(); void :target:`moveScrollDown`(); void :target:`jumpLinesUp`(); void :target:`jumpLinesDown`(); void :target:`jumpLinesUp`(int offset); void :target:`jumpLinesDown`(int offset); void :target:`indent`(); void :target:`unindent`(); void :target:`copy`(); void :target:`cut`(); void :target:`paste`(); void :target:`fontSizeGrow`(); void :target:`fontSizeShrink`(); void :target:`fontSizeReset`(); const bool& :ref:`getShowWhitespaces`() const; void :target:`setShowWhitespaces`(const bool& showWhitespaces); const :ref:`TextSearchParams`& :target:`getHighlightWord`() const; void :target:`setHighlightWord`(const :ref:`TextSearchParams`& highlightWord); const :ref:`TextRange`& :target:`getHighlightTextRange`() const; void :target:`setHighlightTextRange`(const :ref:`TextRange`& highlightSelection); void :target:`registerPlugin`(:ref:`UICodeEditorPlugin`* plugin); void :target:`unregisterPlugin`(:ref:`UICodeEditorPlugin`* plugin); virtual :ref:`Vector2d` :target:`getTextPositionOffset`(const :ref:`TextPosition`& pos, std::optional<:ref:`Float`> lineHeight = {}, bool allowVisualLineEnd = false, bool visualizeNewLine = false) const; :ref:`Vector2d` :target:`getTextPositionOffsetSanitized`(:ref:`TextPosition` pos, std::optional<:ref:`Float`> lineHeight = {}) const; virtual :ref:`Int64` :target:`getColFromXOffset`(:ref:`VisibleIndex` visibleIndex, const :ref:`Float`& x) const; std::vector<:ref:`Rectf`> :target:`getTextRangeRectangles`(const :ref:`TextRange`& range, const :ref:`Vector2f`& startScroll, std::optional`> lineRange = {}, std::optional<:ref:`Float`> lineHeight = {}, std::optional<:ref:`DocumentViewLineRange`> visibleLineRange = std::optional<:ref:`DocumentViewLineRange`>(), bool visualizeNewLines = false); virtual :ref:`Float` :target:`getLineWidth`(const :ref:`Int64`& docLine); size_t :target:`characterWidth`(const :ref:`String`& str) const; :ref:`Float` :target:`getTextWidth`(const :ref:`String`& text, std::optional<:ref:`Float`> tabOffset = {}, :ref:`Uint32` textHints = 0) const; size_t :target:`characterWidth`(const :ref:`String::View`& str) const; :ref:`Float` :target:`getTextWidth`(const :ref:`String::View`& text, std::optional<:ref:`Float`> tabOffset, :ref:`Uint32` textHints = 0) const; :ref:`Float` :target:`getLineHeight`() const; :ref:`Float` :target:`getCharacterSize`() const; :ref:`Float` :target:`getGlyphWidth`() const; const bool& :target:`getColorPreview`() const; void :target:`setColorPreview`(bool colorPreview); void :target:`goToLine`(const :ref:`TextPosition`& position, bool centered = true, bool forceExactPosition = false, bool scrollX = true); bool :target:`getAutoCloseBrackets`() const; void :target:`setAutoCloseBrackets`(bool autoCloseBracket); bool :target:`getInteractiveLinks`() const; void :target:`setInteractiveLinks`(bool newInteractiveLinks); :ref:`UILoader`* :target:`getLoader`(); bool :target:`getDisplayLoaderIfDocumentLoading`() const; void :target:`setDisplayLoaderIfDocumentLoading`(bool newDisplayLoaderIfDocumentLoading); size_t :target:`getMenuIconSize`() const; void :target:`setMenuIconSize`(size_t menuIconSize); bool :target:`getCreateDefaultContextMenuOptions`() const; void :target:`setCreateDefaultContextMenuOptions`(bool createDefaultContextMenuOptions); void :target:`openContainingFolder`(); void :target:`copyContainingFolderPath`(); void :target:`copyFilePath`(bool copyPosition = false); void :target:`scrollToCursor`(bool centered = true); void :target:`scrollTo`(:ref:`TextRange` position, bool centered = false, bool forceExactPosition = false, bool scrollX = true); void :target:`scrollTo`(:ref:`TextPosition` position, bool centered = false, bool forceExactPosition = false, bool scrollX = true); void :target:`scrollToVisibleIndex`(:ref:`Int64` visibleIndex, bool centered = false, bool forceExactPosition = false); const :ref:`MinimapConfig`& :target:`getMinimapConfig`() const; void :target:`setMinimapConfig`(const :ref:`MinimapConfig`& newMinimapConfig); bool :target:`isMinimapShown`() const; void :target:`showMinimap`(bool showMinimap); bool :target:`getAutoCloseXMLTags`() const; void :target:`setAutoCloseXMLTags`(bool autoCloseXMLTags); const :ref:`Time`& :target:`getCursorBlinkTime`() const; void :target:`setCursorBlinkTime`(const :ref:`Time`& blinkTime); :ref:`Int64` :target:`getCurrentColumnCount`() const; bool :target:`getFindReplaceEnabled`() const; void :target:`setFindReplaceEnabled`(bool findReplaceEnabled); const :ref:`Vector2f`& :target:`getScroll`() const; :ref:`DocumentLineRange` :target:`getDocumentLineRange`() const; :ref:`DocumentViewLineRange` :target:`getVisibleLineRange`() const; virtual :ref:`TextRange` :target:`getVisibleRange`() const; int :target:`getVisibleLinesCount`() const; const :ref:`StyleSheetLength`& :target:`getLineSpacing`() const; void :target:`setLineSpacing`(const :ref:`StyleSheetLength`& lineSpace); :ref:`Float` :target:`getFontHeight`() const; :ref:`Float` :target:`getLineOffset`() const; bool :ref:`registerGutterSpace`(:ref:`UICodeEditorPlugin`* plugin, const :ref:`Float`& pixels, int order); bool :target:`unregisterGutterSpace`(:ref:`UICodeEditorPlugin`* plugin); bool :ref:`registerTopSpace`(:ref:`UICodeEditorPlugin`* plugin, const :ref:`Float`& pixels, int order); bool :target:`unregisterTopSpace`(:ref:`UICodeEditorPlugin`* plugin); void :target:`showFindReplace`(); :ref:`Tools::UIDocFindReplace`* :target:`getFindReplace`(); :ref:`TextPosition` :target:`resolveScreenPosition`(const :ref:`Vector2f`& position, bool clamp = true) const; :ref:`Rectf` :target:`getScreenPosition`(const :ref:`TextPosition`& position) const; :ref:`Rectf` :target:`getVisibleScrollArea`() const; :ref:`Sizef` :target:`getViewportDimensions`() const; const :ref:`Float`& :target:`getPluginsTopSpace`() const; UICodeEditor* :target:`setFontShadowOffset`(const :ref:`Vector2f`& offset); const :ref:`Vector2f`& :target:`getFontShadowOffset`() const; void :target:`setScroll`(const :ref:`Vector2f`& val, bool emitEvent = true); bool :target:`getShowLineEndings`() const; void :target:`setShowLineEndings`(bool showLineEndings); :ref:`Rectf` :target:`getMinimapRect`(const :ref:`Vector2f`& start) const; :ref:`Float` :target:`getMinimapWidth`() const; void :target:`resetCursor`(); :ref:`Vector2f` :target:`getViewPortLineCount`() const; :ref:`Sizef` :target:`getMaxScroll`() const; virtual bool :ref:`isScrollable`() const; bool :target:`setScrollX`(const :ref:`Float`& val, bool emitEvent = true); bool :target:`setScrollY`(const :ref:`Float`& val, bool emitEvent = true); :ref:`Vector2f` :target:`getScreenStart`() const; :ref:`Vector2f` :target:`getScreenScroll`() const; :ref:`Float` :target:`getViewportWidth`(bool forceVScroll = false, bool includeMinimap = false) const; :ref:`Float` :target:`getTopAreaWidth`() const; bool :target:`getShowIndentationGuides`() const; void :target:`setShowIndentationGuides`(bool showIndentationGuides); :ref:`Vector2f` :target:`getRelativeScreenPosition`(const :ref:`TextPosition`& pos); bool :target:`getShowLinesRelativePosition`() const; void :target:`showLinesRelativePosition`(bool showLinesRelativePosition); :ref:`UIScrollBar`* :target:`getVScrollBar`() const; :ref:`UIScrollBar`* :target:`getHScrollBar`() const; size_t :target:`getJumpLinesLength`() const; void :target:`setJumpLinesLength`(size_t jumpLinesLength); std::string :target:`getFileLockIconName`() const; void :target:`setFileLockIconName`(const std::string& fileLockIconName); bool :target:`getDisplayLockedIcon`() const; void :target:`setDisplayLockedIcon`(bool displayLockedIcon); void :target:`invalidateLongestLineWidth`(); :ref:`LineWrapMode` :target:`getLineWrapMode`() const; void :target:`setLineWrapMode`(:ref:`LineWrapMode` mode); :ref:`LineWrapType` :target:`getLineWrapType`() const; void :target:`setLineWrapType`(:ref:`LineWrapType` lineWrapType); bool :target:`getLineWrapKeepIndentation`() const; void :target:`setLineWrapKeepIndentation`(bool keep); :ref:`Float` :target:`getMinimapLineSpacing`() const; bool :target:`getShowFoldingRegion`() const; void :target:`setShowFoldingRegion`(bool showFoldingRegion); :ref:`Drawable`* :target:`getFoldDrawable`() const; void :target:`setFoldDrawable`(:ref:`Drawable`* foldDrawable); :ref:`Drawable`* :target:`getFoldedDrawable`() const; void :target:`setFoldedDrawable`(:ref:`Drawable`* foldedDrawable); bool :target:`getFoldsAlwaysVisible`() const; void :target:`setFoldsAlwaysVisible`(bool foldsAlwaysVisible); :ref:`Time` :target:`getFoldsRefreshTime`() const; void :target:`setFoldsRefreshTime`(const :ref:`Time`& foldsRefreshTime); void :target:`updateMouseCursor`(const :ref:`Vector2f`& position); :ref:`Uint32` :target:`getTabIndentCharacter`() const; void :target:`setTabIndentCharacter`(:ref:`Uint32` chr); :ref:`CharacterAlignment` :target:`getTabIndentAlignment`() const; void :target:`setTabIndentAlignment`(:ref:`CharacterAlignment` alignment); const :ref:`DocumentView`& :target:`getDocumentView`() const; :ref:`Float` :target:`getGutterLocalStartOffset`(:ref:`UICodeEditorPlugin`* plugin) const; :ref:`Float` :target:`getGutterSpace`(:ref:`UICodeEditorPlugin`* plugin) const; :ref:`Float` :target:`getPluginsGutterSpace`() const; void :target:`setCursorVisible`(bool visible); bool :target:`isCursorVisible`() const; void :target:`setDisableCursorBlinkingAfterAMinuteOfInactivity`(bool disableCursorBlinkingAfterAMinuteOfInactivity); bool :target:`isCursorBlinkingAfterAMinuteOfInactivityDisabled`() const; void :target:`setAllowSelectingTextFromGutter`(bool allow); bool :target:`allowSelectingTextFromGutter`() const; bool :target:`fold`(:ref:`Int64` docLineIdx); bool :target:`unfold`(:ref:`Int64` docLineIdx); bool :target:`toggleFoldUnfold`(:ref:`Int64` docLineIdx); void :target:`fold`(); void :target:`unfold`(); void :target:`toggleFoldUnfold`(); void :target:`foldAll`(); void :target:`unfoldAll`(); void :target:`setTabStops`(bool enabled); bool :target:`usesTabStops`(); virtual Client::Type :target:`getTextDocumentClientType`(); void :target:`setKerningEnabled`(bool enabled); bool :target:`isKerningEnabled`() const; void :target:`setTextDirection`(:ref:`TextDirection` direction); :ref:`TextDirection` :target:`getTextDirection`() const; virtual void :ref:`loadFromXmlNode`(const pugi::xml_node& node); void :target:`disableEditorFeatures`(bool useDefaultStyle = true); }; Inherited Members ----------------- .. ref-code-block:: cpp :class: doxyrest-overview-inherited-code-block public: // typedefs typedef std::function`*)> :ref:`EventCallback`; typedef std::function`*)> :ref:`EventCallback`; // enums enum :ref:`Type`; // methods virtual void :ref:`setPosition`(const :ref:`Vector2f`& position); virtual void :ref:`setRotation`(float angle); virtual void :ref:`setScale`(float factorX, float factorY); virtual void :ref:`setScale`(const :ref:`Vector2f`& factors); virtual void :ref:`setScaleOrigin`(float x, float y); virtual void :ref:`setScaleOrigin`(const :ref:`Vector2f`& origin); virtual void :ref:`setRotationOrigin`(float x, float y); virtual void :ref:`setRotationOrigin`(const :ref:`Vector2f`& origin); virtual const :ref:`Vector2f`& :ref:`getRotationOrigin`() const; virtual const :ref:`Vector2f`& :ref:`getPosition`() const; virtual const float& :ref:`getRotation`() const; virtual const :ref:`Vector2f`& :ref:`getScale`() const; virtual const :ref:`Vector2f`& :ref:`getScaleOrigin`() const; void :ref:`move`(float offsetX, float offsetY); void :ref:`move`(const :ref:`Vector2f`& offset); void :ref:`rotate`(float angle); void :ref:`scale`(float factorX, float factorY); void :ref:`scale`(const :ref:`Vector2f`& factor); const :ref:`Transform`& :ref:`getTransform`() const; const :ref:`Transform`& :ref:`getInverseTransform`() const; static :ref:`Node`* :ref:`New`(); virtual void :ref:`worldToNodeTranslation`(:ref:`Vector2f`& position) const; virtual void :ref:`nodeToWorldTranslation`(:ref:`Vector2f`& position) const; virtual void :ref:`worldToNode`(:ref:`Vector2i`& pos) const; virtual void :ref:`nodeToWorld`(:ref:`Vector2i`& pos) const; virtual void :ref:`worldToNode`(:ref:`Vector2f`& pos) const; virtual void :ref:`nodeToWorld`(:ref:`Vector2f`& pos) const; virtual :ref:`Uint32` :ref:`getType`() const; virtual bool :ref:`isType`(const :ref:`Uint32`& type) const; void :ref:`messagePost`(const :ref:`NodeMessage`* Msg); virtual void :ref:`setPosition`(const :ref:`Vector2f`& Pos); virtual :ref:`Node`* :ref:`setPosition`(const :ref:`Float`& x, const :ref:`Float`& y); virtual :ref:`Node`* :ref:`setSize`(const :ref:`Sizef`& size); :ref:`Node`* :ref:`setSize`(const :ref:`Float`& Width, const :ref:`Float`& Height); virtual const :ref:`Sizef`& :ref:`getSize`() const; const :ref:`Sizef`& :ref:`getPixelsSize`() const; :ref:`Node`* :ref:`setVisible`(const bool& visible, bool emitEventNotification = true); :ref:`Node`* :ref:`setChildrenVisibility`(bool visible, bool emitEventNotification = true); bool :ref:`isVisible`() const; bool :ref:`hasVisibility`() const; :ref:`Node`* :ref:`setEnabled`(const bool& enabled); bool :ref:`isEnabled`() const; bool :ref:`isDisabled`() const; :ref:`Node`* :ref:`getParent`() const; :ref:`Node`* :ref:`setParent`(:ref:`Node`* parent); virtual void :ref:`close`(); virtual void :ref:`draw`(); virtual void :ref:`update`(const :ref:`Time`& time); virtual void :ref:`scheduledUpdate`(const :ref:`Time`& time); :ref:`Node`* :ref:`getNextNode`() const; :ref:`Node`* :ref:`getPrevNode`() const; :ref:`Node`* :ref:`getNextNodeLoop`() const; :ref:`Node`* :ref:`setData`(const :ref:`UintPtr`& data); const :ref:`UintPtr`& :ref:`getData`() const; :ref:`Node`* :ref:`setBlendMode`(const :ref:`BlendMode`& blend); const :ref:`BlendMode`& :ref:`getBlendMode`() const; :ref:`Node`* :ref:`toFront`(); :ref:`Node`* :ref:`toBack`(); void :ref:`toPosition`(const :ref:`Uint32`& position); const :ref:`Uint32`& :ref:`getNodeFlags`() const; void :ref:`setNodeFlags`(const :ref:`Uint32`& flags); bool :ref:`isSceneNode`() const; bool :ref:`isUISceneNode`() const; bool :ref:`isUINode`() const; bool :ref:`isWidget`() const; bool :ref:`isWindow`() const; bool :ref:`isLayout`() const; bool :ref:`isClipped`() const; bool :ref:`isRotated`() const; bool :ref:`isScaled`() const; bool :ref:`isFrameBuffer`() const; bool :ref:`isMouseOver`() const; bool :ref:`isMouseOverMeOrChildren`() const; bool :ref:`isMeOrParentTreeVisible`() const; bool :ref:`isMeOrParentTreeRotated`() const; bool :ref:`isMeOrParentTreeScaled`() const; bool :ref:`isMeOrParentTreeScaledOrRotated`() const; bool :ref:`isMeOrParentTreeScaledOrRotatedOrFrameBuffer`() const; :ref:`Uint32` :ref:`addEventListener`(const :ref:`Uint32`& eventType, const :ref:`EventCallback`& callback); :ref:`Uint32` :ref:`on`(const :ref:`Uint32`& eventType, const :ref:`EventCallback`& callback); :ref:`Uint32` :ref:`onClick`(const std::function`*)>& callback, const :ref:`MouseButton`& button = MouseButton::EE_BUTTON_LEFT); :ref:`Uint32` :ref:`onDoubleClick`(const std::function`*)>& callback, const :ref:`MouseButton`& button = MouseButton::EE_BUTTON_LEFT); void :ref:`removeEventsOfType`(const :ref:`Uint32`& eventType); void :ref:`removeEventListener`(const :ref:`Uint32`& callbackId); void :ref:`removeEventListener`(const std::vector<:ref:`Uint32`>& callbacksIds); void :ref:`clearEventListener`(); :ref:`Node`* :ref:`getFirstChild`() const; :ref:`Node`* :ref:`getLastChild`() const; const :ref:`Polygon2f`& :ref:`getWorldPolygon`(); const :ref:`Rectf`& :ref:`getWorldBounds`(); bool :ref:`isParentOf`(const :ref:`Node`* node) const; void :ref:`sendEvent`(const :ref:`Event`* Event); void :ref:`sendMouseEvent`(const :ref:`Uint32`& Event, const :ref:`Vector2i`& position, const :ref:`Uint32`& flags); void :ref:`sendCommonEvent`(const :ref:`Uint32`& Event); void :ref:`sendTextEvent`(const :ref:`Uint32`& event, const std::string& text); void :ref:`closeAllChildren`(); const std::string& :ref:`getId`() const; virtual :ref:`Node`* :ref:`setId`(const std::string& id); const :ref:`String::HashType`& :ref:`getIdHash`() const; :ref:`Node`* :ref:`find`(const std::string& id) const; :ref:`Node`* :ref:`hasChild`(const std::string& id) const; template T* :ref:`find`(const std::string& id) const; template T* :ref:`bind`(const std::string& id, T*& node); template T* :ref:`asType`(); template const T* :ref:`asConstType`() const; :ref:`Node`* :ref:`findByType`(const :ref:`Uint32`& type) const; template T* :ref:`findByType`(const :ref:`Uint32`& type) const; template T* :ref:`bindByType`(const :ref:`Uint32`& type, T*& node); std::vector<:ref:`Node`*> :ref:`findAllByType`(const :ref:`Uint32`& type) const; template std::vector :ref:`findAllByType`(const :ref:`Uint32`& type) const; bool :ref:`inNodeTree`(:ref:`Node`* node) const; bool :ref:`isReverseDraw`() const; void :ref:`setReverseDraw`(bool reverseDraw); void :ref:`invalidateDraw`(); virtual void :ref:`setRotation`(float angle); void :ref:`setRotation`(const :ref:`Float`& angle, const :ref:`OriginPoint`& center); const :ref:`OriginPoint`& :ref:`getRotationOriginPoint`() const; void :ref:`setRotationOriginPoint`(const :ref:`OriginPoint`& center); void :ref:`setRotationOriginPointPixels`(const :ref:`OriginPoint`& center); void :ref:`setRotationOriginPointX`(const std::string& xEq); void :ref:`setRotationOriginPointY`(const std::string& yEq); :ref:`Vector2f` :ref:`getRotationCenter`() const; void :ref:`setScale`(const :ref:`Float`& scale); virtual void :ref:`setScale`(const :ref:`Vector2f`& scale); void :ref:`setScale`(const :ref:`Vector2f`& scale, const :ref:`OriginPoint`& center); void :ref:`setScale`(const :ref:`Float`& scale, const :ref:`OriginPoint`& center); const :ref:`OriginPoint`& :ref:`getScaleOriginPoint`() const; void :ref:`setScaleOriginPoint`(const :ref:`OriginPoint`& center); void :ref:`setScaleOriginPointPixels`(const :ref:`OriginPoint`& center); void :ref:`setScaleOriginPointX`(const std::string& xEq); void :ref:`setScaleOriginPointY`(const std::string& yEq); :ref:`Vector2f` :ref:`getScaleCenter`() const; virtual void :ref:`setScale`(float factorX, float factorY); virtual void :ref:`setScaleOrigin`(float x, float y); virtual void :ref:`setRotationOrigin`(float x, float y); const :ref:`Float`& :ref:`getAlpha`() const; virtual void :ref:`setAlpha`(const :ref:`Float`& alpha); virtual void :ref:`setChildrenAlpha`(const :ref:`Float`& alpha); :ref:`ActionManager`* :ref:`getActionManager`() const; :ref:`Node`* :ref:`runAction`(:ref:`Action`* action); bool :ref:`removeAction`(:ref:`Action`* action); bool :ref:`removeActions`(const std::vector<:ref:`Action`*>& actions); bool :ref:`removeActionsByTag`(const :ref:`Action::UniqueID`& tag); std::vector<:ref:`Action`*> :ref:`getActions`(); std::vector<:ref:`Action`*> :ref:`getActionsByTag`(const :ref:`Action::UniqueID`& tag); void :ref:`clearActions`(); :ref:`Transform` :ref:`getLocalTransform`() const; :ref:`Transform` :ref:`getGlobalTransform`() const; :ref:`Transform` :ref:`getNodeToWorldTransform`() const; :ref:`Transform` :ref:`getWorldToNodeTransform`() const; :ref:`Vector2f` :ref:`convertToNodeSpace`(const :ref:`Vector2f`& worldPoint) const; :ref:`Vector2f` :ref:`convertToWorldSpace`(const :ref:`Vector2f`& nodePoint) const; :ref:`Rectf` :ref:`getLocalBounds`() const; bool :ref:`hasFocus`() const; bool :ref:`hasFocusWithin`() const; virtual :ref:`Node`* :ref:`setFocus`(:ref:`NodeFocusReason` reason = :ref:`NodeFocusReason::Unknown`); :ref:`Node`* :ref:`getFirstWidget`() const; :ref:`Node`* :ref:`getParentWidget`() const; void :ref:`enableReportSizeChangeToChildren`(); void :ref:`disableReportSizeChangeToChildren`(); bool :ref:`reportSizeChangeToChildren`() const; :ref:`Node`* :ref:`centerHorizontal`(); :ref:`Node`* :ref:`centerVertical`(); :ref:`Node`* :ref:`center`(); :ref:`Node`* :ref:`clipEnable`(); :ref:`Node`* :ref:`clipDisable`(); void :ref:`writeNodeFlag`(const :ref:`Uint32`& Flag, const :ref:`Uint32`& Val); :ref:`SceneNode`* :ref:`getSceneNode`() const; :ref:`EventDispatcher`* :ref:`getEventDispatcher`() const; virtual bool :ref:`isDrawInvalidator`() const; bool :ref:`invalidated`() const; virtual void :ref:`invalidate`(:ref:`Node`* invalidator); :ref:`Uint32` :ref:`getChildCount`() const; :ref:`Uint32` :ref:`getChildOfTypeCount`(const :ref:`Uint32`& type) const; :ref:`Node`* :ref:`getChildAt`(:ref:`Uint32` index) const; :ref:`Uint32` :ref:`getNodeIndex`() const; :ref:`Uint32` :ref:`getNodeOfTypeIndex`() const; void :ref:`runOnMainThread`(:ref:`Actions::Runnable::RunnableFunc` runnable, const :ref:`Time`& delay = Seconds(0), const :ref:`Action::UniqueID`& uniqueIdentifier = 0); bool :ref:`ensureMainThread`(:ref:`Actions::Runnable::RunnableFunc` runnable, const :ref:`Action::UniqueID`& uniqueIdentifier = 0); void :ref:`setTimeout`(:ref:`Actions::Runnable::RunnableFunc` runnable, const :ref:`Time`& delay = Seconds(0), const :ref:`Action::UniqueID`& uniqueIdentifier = 0); void :ref:`setInterval`(:ref:`Actions::Runnable::RunnableFunc` runnable, const :ref:`Time`& interval, const :ref:`Action::UniqueID`& uniqueIdentifier = 0); void :ref:`debounce`(:ref:`Actions::Runnable::RunnableFunc` runnable, const :ref:`Time`& delay, const :ref:`Action::UniqueID`& uniqueIdentifier); bool :ref:`isChild`(:ref:`Node`* child) const; bool :ref:`inParentTreeOf`(:ref:`Node`* child) const; bool :ref:`inParentTreeOfType`(:ref:`Uint32` type) const; :ref:`Node`* :ref:`getParentOfType`(:ref:`Uint32` type) const; void :ref:`setLoadingState`(bool loading); bool :ref:`isLoadingState`() const; virtual void :ref:`onIdChange`(); bool :ref:`isClosing`() const; bool :ref:`isClosingChildren`() const; virtual :ref:`Node`* :ref:`overFind`(const :ref:`Vector2f`& Point); void :ref:`detach`(); void :ref:`forEachNode`(std::function`*)> func); void :ref:`forEachChild`(std::function`*)> func); virtual void :ref:`nodeDraw`(); :ref:`Uint32` :ref:`forceKeyDown`(const :ref:`KeyEvent`& event); :ref:`Uint32` :ref:`foceKeyUp`(const :ref:`KeyEvent`& event); :ref:`Uint32` :ref:`forceTextInput`(const :ref:`TextInputEvent`& Event); const :ref:`Vector2f`& :ref:`getScreenPos`() const; :ref:`Rectf` :ref:`getScreenRect`() const; bool :ref:`hasEventsOfType`(const :ref:`Uint32`& eventType) const; static :ref:`UINode`* :ref:`New`(); virtual void :ref:`worldToNodeTranslation`(:ref:`Vector2f`& position) const; virtual void :ref:`nodeToWorldTranslation`(:ref:`Vector2f`& position) const; virtual void :ref:`worldToNode`(:ref:`Vector2i`& pos) const; virtual void :ref:`nodeToWorld`(:ref:`Vector2i`& pos) const; virtual void :ref:`worldToNode`(:ref:`Vector2f`& pos) const; virtual void :ref:`nodeToWorld`(:ref:`Vector2f`& pos) const; virtual :ref:`Uint32` :ref:`getType`() const; virtual bool :ref:`isType`(const :ref:`Uint32`& type) const; virtual void :ref:`setPosition`(const :ref:`Vector2f`& Pos); virtual :ref:`Node`* :ref:`setPosition`(const :ref:`Float`& x, const :ref:`Float`& y); :ref:`UINode`* :ref:`setPixelsPosition`(const :ref:`Vector2f`& position); :ref:`UINode`* :ref:`setPixelsPosition`(const :ref:`Float`& x, const :ref:`Float`& y); virtual const :ref:`Vector2f`& :ref:`getPosition`() const; const :ref:`Vector2f`& :ref:`getPixelsPosition`() const; virtual :ref:`Node`* :ref:`setSize`(const :ref:`Sizef`& size); virtual :ref:`Node`* :ref:`setSize`(const :ref:`Float`& Width, const :ref:`Float`& Height); :ref:`UINode`* :ref:`setPixelsSize`(const :ref:`Sizef`& size); :ref:`UINode`* :ref:`setPixelsSize`(const :ref:`Float`& x, const :ref:`Float`& y); virtual const :ref:`Sizef`& :ref:`getSize`() const; :ref:`Rect` :ref:`getRect`() const; :ref:`Rectf` :ref:`getRectBox`() const; virtual void :ref:`draw`(); :ref:`Uint32` :ref:`getHorizontalAlign`() const; :ref:`UINode`* :ref:`setHorizontalAlign`(:ref:`Uint32` halign); :ref:`Uint32` :ref:`getVerticalAlign`() const; :ref:`UINode`* :ref:`setVerticalAlign`(:ref:`Uint32` valign); :ref:`UINode`* :ref:`setGravity`(:ref:`Uint32` hvalign); :ref:`UINodeDrawable`* :ref:`setBackgroundFillEnabled`(bool enabled); :ref:`UINode`* :ref:`setBackgroundDrawable`(:ref:`Drawable`* drawable, bool ownIt = false, int index = 0); :ref:`UINode`* :ref:`setBackgroundDrawable`(const std::string& drawable, int index); :ref:`UINode`* :ref:`setBackgroundColor`(const :ref:`Color`& color); :ref:`UINode`* :ref:`setBackgroundTint`(const :ref:`Color`& color, int index); :ref:`UINode`* :ref:`setBackgroundPositionX`(const std::string& positionX, int index = 0); :ref:`UINode`* :ref:`setBackgroundPositionY`(const std::string& positionY, int index = 0); :ref:`UINode`* :ref:`setBackgroundRepeat`(const std::string& repeatRule, int index = 0); :ref:`UINode`* :ref:`setBackgroundSize`(const std::string& size, int index = 0); :ref:`Color` :ref:`getBackgroundColor`() const; :ref:`Color` :ref:`getBackgroundTint`(int index = 0) const; :ref:`UINode`* :ref:`setBorderRadius`(const unsigned int& corners); :ref:`UINode`* :ref:`setTopLeftRadius`(const std::string& radius); :ref:`UINode`* :ref:`setTopRightRadius`(const std::string& radius); :ref:`UINode`* :ref:`setBottomLeftRadius`(const std::string& radius); :ref:`UINode`* :ref:`setBottomRightRadius`(const std::string& radius); :ref:`Uint32` :ref:`getBorderRadius`() const; :ref:`UINodeDrawable`* :ref:`setForegroundFillEnabled`(bool enabled); :ref:`UINode`* :ref:`setForegroundDrawable`(:ref:`Drawable`* drawable, bool ownIt = false, int index = 0); :ref:`UINode`* :ref:`setForegroundDrawable`(const std::string& drawable, int index = 0); :ref:`Color` :ref:`getForegroundColor`() const; :ref:`Color` :ref:`getForegroundTint`(int index) const; :ref:`UINode`* :ref:`setForegroundColor`(const :ref:`Color`& color); :ref:`UINode`* :ref:`setForegroundTint`(const :ref:`Color`& color, int index); :ref:`UINode`* :ref:`setForegroundPositionX`(const std::string& positionX, int index = 0); :ref:`UINode`* :ref:`setForegroundPositionY`(const std::string& positionY, int index = 0); :ref:`UINode`* :ref:`setForegroundRepeat`(const std::string& repeatRule, int index = 0); :ref:`UINode`* :ref:`setForegroundSize`(const std::string& size, int index = 0); :ref:`UINode`* :ref:`setForegroundRadius`(const unsigned int& corners); :ref:`Uint32` :ref:`getForegroundRadius`() const; :ref:`UIBorderDrawable`* :ref:`setBorderEnabled`(bool enabled) const; :ref:`UINode`* :ref:`setBorderColor`(const :ref:`Color`& color); :ref:`Color` :ref:`getBorderColor`(); :ref:`UINode`* :ref:`setBorderWidth`(const unsigned int& width); :ref:`Float` :ref:`getBorderWidth`() const; const :ref:`Uint32`& :ref:`getFlags`() const; virtual :ref:`UINode`* :ref:`setFlags`(const :ref:`Uint32`& flags); virtual :ref:`UINode`* :ref:`unsetFlags`(const :ref:`Uint32`& flags); virtual :ref:`UINode`* :ref:`resetFlags`(:ref:`Uint32` newFlags = 0); :ref:`UINodeDrawable`* :ref:`getBackground`() const; bool :ref:`hasBackground`() const; :ref:`UINodeDrawable`* :ref:`getForeground`() const; bool :ref:`hasForeground`() const; :ref:`UIBorderDrawable`* :ref:`getBorder`() const; void :ref:`setThemeByName`(const std::string& Theme); virtual void :ref:`setTheme`(:ref:`UITheme`* Theme); virtual :ref:`UINode`* :ref:`setThemeSkin`(:ref:`UITheme`* Theme, const std::string& skinName); virtual :ref:`UINode`* :ref:`setThemeSkin`(const std::string& skinName); void :ref:`setThemeToChildren`(:ref:`UITheme`* Theme); :ref:`UISkin`* :ref:`getSkin`() const; virtual :ref:`UINode`* :ref:`setSkin`(const :ref:`UISkin`& Skin); :ref:`UINode`* :ref:`setSkin`(:ref:`UISkin`* skin); :ref:`UINode`* :ref:`setSkinColor`(const :ref:`Color`& color); const :ref:`Color`& :ref:`getSkinColor`() const; void :ref:`removeSkin`(); virtual void :ref:`pushState`(const :ref:`Uint32`& State, bool emitEvent = true); virtual void :ref:`popState`(const :ref:`Uint32`& State, bool emitEvent = true); :ref:`Sizef` :ref:`getSkinSize`(const :ref:`Uint32`& state = :ref:`UIState::StateFlagNormal`) const; void :ref:`applyDefaultTheme`(); :ref:`Node`* :ref:`getWindowContainer`() const; bool :ref:`isTabFocusable`() const; bool :ref:`isDragging`() const; void :ref:`setDragging`(bool dragging, bool emitDropEvent = true); void :ref:`startDragging`(const :ref:`Vector2f`& position); bool :ref:`ownsChildPosition`() const; const :ref:`Vector2f`& :ref:`getDragPoint`() const; void :ref:`setDragPoint`(const :ref:`Vector2f`& Point); bool :ref:`isDragEnabled`() const; void :ref:`setDragEnabled`(const bool& enable); void :ref:`setDragButton`(const :ref:`Uint32`& Button); const :ref:`Uint32`& :ref:`getDragButton`() const; virtual :ref:`Node`* :ref:`setFocus`(:ref:`NodeFocusReason` reason = NodeFocusReason::Unknown); :ref:`Float` :ref:`getPropertyRelativeTargetContainerLength`(const :ref:`CSS::PropertyRelativeTarget`& relativeTarget, const :ref:`Float`& defaultValue = 0, const :ref:`Uint32`& propertyIndex = 0) const; virtual :ref:`Float` :ref:`convertLength`(const :ref:`CSS::StyleSheetLength`& length, const :ref:`Float`& containerLength) const; :ref:`Float` :ref:`convertLengthAsDp`(const :ref:`CSS::StyleSheetLength`& length, const :ref:`Float`& containerLength) const; :ref:`Float` :ref:`lengthFromValue`(const std::string& value, const :ref:`CSS::PropertyRelativeTarget`& relativeTarget, const :ref:`Float`& defaultValue = 0, const :ref:`Uint32`& propertyIndex = 0) const; :ref:`Float` :ref:`lengthFromValue`(const :ref:`CSS::StyleSheetProperty`& property, const :ref:`Float`& defaultValue = 0); :ref:`Float` :ref:`lengthFromValueAsDp`(const std::string& value, const :ref:`CSS::PropertyRelativeTarget`& relativeTarget, const :ref:`Float`& defaultValue = 0, const :ref:`Uint32`& propertyIndex = 0) const; :ref:`Float` :ref:`lengthFromValueAsDp`(const :ref:`CSS::StyleSheetProperty`& property, const :ref:`Float`& defaultValue = 0) const; :ref:`UISceneNode`* :ref:`getUISceneNode`() const; :ref:`Input`* :ref:`getInput`() const; void :ref:`setMinWidth`(const :ref:`Float`& width); void :ref:`setMinHeight`(const :ref:`Float`& height); void :ref:`setMinSize`(const :ref:`Sizef`& size); const :ref:`Sizef`& :ref:`getCurMinSize`() const; :ref:`Rectf` :ref:`getLocalDpBounds`() const; virtual void :ref:`nodeDraw`(); void :ref:`clearForeground`(); void :ref:`clearBackground`(); const :ref:`ClipType`& :ref:`getClipType`() const; :ref:`UINode`* :ref:`setClipType`(const :ref:`ClipType`& clipType); bool :ref:`hasBorder`() const; virtual const :ref:`Rectf`& :ref:`getPixelsPadding`() const; const std::string& :ref:`getMinWidthEq`() const; void :ref:`setMinSizeEq`(const std::string& minWidthEq, const std::string& minHeightEq); void :ref:`setMinWidthEq`(const std::string& minWidthEq); const std::string& :ref:`getMinHeightEq`() const; void :ref:`setMinHeightEq`(const std::string& minHeightEq); const std::string& :ref:`getMaxWidthEq`() const; void :ref:`setMaxSizeEq`(const std::string& maxWidthEq, const std::string& maxHeightEq); void :ref:`setMaxWidthEq`(const std::string& maxWidthEq); const std::string& :ref:`getMaxHeightEq`() const; void :ref:`setMaxHeightEq`(const std::string& maxHeightEq); :ref:`Sizef` :ref:`getMinSize`() const; :ref:`Sizef` :ref:`getMaxSize`() const; :ref:`Sizef` :ref:`getMinSizePx`() const; :ref:`Sizef` :ref:`getMaxSizePx`() const; :ref:`Sizef` :ref:`fitMinMaxSizeDp`(const :ref:`Sizef`& size) const; :ref:`Sizef` :ref:`fitMinMaxSizePx`(const :ref:`Sizef`& size) const; virtual bool :ref:`isScrollable`() const; static :ref:`UIWidget`* :ref:`New`(); static :ref:`UIWidget`* :ref:`NewWithTag`(const std::string& tag); virtual :ref:`Uint32` :ref:`getType`() const; virtual bool :ref:`isType`(const :ref:`Uint32`& type) const; virtual :ref:`UINode`* :ref:`setFlags`(const :ref:`Uint32`& flags); virtual :ref:`UINode`* :ref:`unsetFlags`(const :ref:`Uint32`& flags); virtual :ref:`UIWidget`* :ref:`setAnchors`(const :ref:`Uint32`& flags); virtual void :ref:`setTheme`(:ref:`UITheme`* Theme); virtual :ref:`UINode`* :ref:`setThemeSkin`(const std::string& skinName); virtual :ref:`UINode`* :ref:`setThemeSkin`(:ref:`UITheme`* Theme, const std::string& skinName); virtual :ref:`Node`* :ref:`setId`(const std::string& id); virtual bool :ref:`acceptsDropOfWidget`(const :ref:`UIWidget`* widget); :ref:`UIWidget`* :ref:`acceptsDropOfWidgetInTree`(const :ref:`UIWidget`* widget); :ref:`UITooltip`* :ref:`getTooltip`(); void :ref:`tooltipRemove`(); :ref:`UIWidget`* :ref:`setTooltipText`(const :ref:`String`& text); :ref:`UIWidget`* :ref:`setTooltipTextIfNotEmpty`(const :ref:`String`& text); :ref:`String` :ref:`getTooltipText`(); void :ref:`updateAnchorsDistances`(); const :ref:`Rectf`& :ref:`getLayoutMargin`() const; const :ref:`Rectf`& :ref:`getLayoutPixelsMargin`() const; :ref:`UIWidget`* :ref:`setLayoutMargin`(const :ref:`Rectf`& margin); :ref:`UIWidget`* :ref:`setLayoutMarginLeft`(const :ref:`Float`& marginLeft); :ref:`UIWidget`* :ref:`setLayoutMarginRight`(const :ref:`Float`& marginRight); :ref:`UIWidget`* :ref:`setLayoutMarginTop`(const :ref:`Float`& marginTop); :ref:`UIWidget`* :ref:`setLayoutMarginBottom`(const :ref:`Float`& marginBottom); :ref:`UIWidget`* :ref:`setLayoutPixelsMargin`(const :ref:`Rectf`& margin); :ref:`UIWidget`* :ref:`setLayoutPixelsMarginLeft`(const :ref:`Float`& marginLeft); :ref:`UIWidget`* :ref:`setLayoutPixelsMarginRight`(const :ref:`Float`& marginRight); :ref:`UIWidget`* :ref:`setLayoutPixelsMarginTop`(const :ref:`Float`& marginTop); :ref:`UIWidget`* :ref:`setLayoutPixelsMarginBottom`(const :ref:`Float`& marginBottom); :ref:`Float` :ref:`getLayoutWeight`() const; :ref:`UIWidget`* :ref:`setLayoutWeight`(const :ref:`Float`& weight); :ref:`Uint32` :ref:`getLayoutGravity`() const; :ref:`UIWidget`* :ref:`setLayoutGravity`(const :ref:`Uint32`& layoutGravity); const :ref:`SizePolicy`& :ref:`getLayoutWidthPolicy`() const; :ref:`UIWidget`* :ref:`setLayoutWidthPolicy`(const :ref:`SizePolicy`& widthPolicy); const :ref:`SizePolicy`& :ref:`getLayoutHeightPolicy`() const; :ref:`UIWidget`* :ref:`setLayoutHeightPolicy`(const :ref:`SizePolicy`& heightPolicy); :ref:`UIWidget`* :ref:`setLayoutSizePolicy`(const :ref:`SizePolicy`& widthPolicy, const :ref:`SizePolicy`& heightPolicy); :ref:`UIWidget`* :ref:`setLayoutPositionPolicy`(const :ref:`PositionPolicy`& layoutPositionPolicy, :ref:`UIWidget`* of); :ref:`UIWidget`* :ref:`getLayoutPositionPolicyWidget`() const; :ref:`PositionPolicy` :ref:`getLayoutPositionPolicy`() const; virtual void :ref:`loadFromXmlNode`(const pugi::xml_node& node); bool :ref:`loadsItsChildren`() const; void :ref:`notifyLayoutAttrChange`(); void :ref:`notifyLayoutAttrChangeParent`(); void :ref:`setStyleSheetInlineProperty`(const std::string& name, const std::string& value, const :ref:`Uint32`& specificity = UINT32_MAX - 1); virtual bool :ref:`applyProperty`(const :ref:`StyleSheetProperty`& attribute); const :ref:`Rectf`& :ref:`getPadding`() const; virtual const :ref:`Rectf`& :ref:`getPixelsPadding`() const; :ref:`UIWidget`* :ref:`setPadding`(const :ref:`Rectf`& padding); :ref:`UIWidget`* :ref:`setPaddingLeft`(const :ref:`Float`& paddingLeft); :ref:`UIWidget`* :ref:`setPaddingRight`(const :ref:`Float`& paddingRight); :ref:`UIWidget`* :ref:`setPaddingTop`(const :ref:`Float`& paddingTop); :ref:`UIWidget`* :ref:`setPaddingBottom`(const :ref:`Float`& paddingBottom); :ref:`UIWidget`* :ref:`setPaddingPixels`(const :ref:`Rectf`& padding); :ref:`UIWidget`* :ref:`setPaddingPixelsLeft`(const :ref:`Float`& paddingLeft); :ref:`UIWidget`* :ref:`setPaddingPixelsRight`(const :ref:`Float`& paddingRight); :ref:`UIWidget`* :ref:`setPaddingPixelsTop`(const :ref:`Float`& paddingTop); :ref:`UIWidget`* :ref:`setPaddingPixelsBottom`(const :ref:`Float`& paddingBottom); const std::string& :ref:`getStyleSheetTag`() const; const std::string& :ref:`getStyleSheetId`() const; const std::vector& :ref:`getStyleSheetClasses`() const; :ref:`UIWidget`* :ref:`getStyleSheetParentElement`() const; :ref:`UIWidget`* :ref:`getStyleSheetPreviousSiblingElement`() const; :ref:`UIWidget`* :ref:`getStyleSheetNextSiblingElement`() const; :ref:`Uint32` :ref:`getStyleSheetPseudoClasses`() const; std::vector :ref:`getStyleSheetPseudoClassesStrings`() const; :ref:`UIWidget`* :ref:`resetClass`(); :ref:`UIWidget`* :ref:`setClass`(const std::string& cls); :ref:`UIWidget`* :ref:`setClass`(std::string&& cls); :ref:`UIWidget`* :ref:`setClasses`(const std::vector& classes); :ref:`UIWidget`* :ref:`addClass`(const std::string& cls); :ref:`UIWidget`* :ref:`addClasses`(const std::vector& classes); :ref:`UIWidget`* :ref:`removeClass`(const std::string& cls); :ref:`UIWidget`* :ref:`removeClasses`(const std::vector& classes); bool :ref:`hasClass`(const std::string_view& cls) const; void :ref:`toggleClass`(const std::string& cls); void :ref:`setElementTag`(const std::string& tag); const std::vector& :ref:`getClasses`() const; const std::string& :ref:`getElementTag`() const; virtual void :ref:`pushState`(const :ref:`Uint32`& State, bool emitEvent = true); virtual void :ref:`popState`(const :ref:`Uint32`& State, bool emitEvent = true); :ref:`UIStyle`* :ref:`getUIStyle`() const; void :ref:`reloadStyle`(bool reloadChildren = true, bool disableAnimations = false, bool reportStateChange = true, bool forceReApplyProperties = false, bool resetPropertyCache = false); void :ref:`beginAttributesTransaction`(); void :ref:`endAttributesTransaction`(); const :ref:`Uint32`& :ref:`getStyleState`() const; const :ref:`Uint32`& :ref:`getStylePreviousState`() const; std::vector<:ref:`UIWidget`*> :ref:`findAllByClass`(const std::string& className); std::vector<:ref:`UIWidget`*> :ref:`findAllByTag`(const std::string& tag); :ref:`UIWidget`* :ref:`findByClass`(const std::string& className); template T* :ref:`findByClass`(const std::string& className); :ref:`UIWidget`* :ref:`findByTag`(const std::string& tag); template T* :ref:`findByTag`(const std::string& tag); :ref:`UIWidget`* :ref:`querySelector`(const :ref:`CSS::StyleSheetSelector`& selector); :ref:`UIWidget`* :ref:`querySelector`(const std::string& selector); template T* :ref:`querySelector`(const std::string& selector); std::vector<:ref:`UIWidget`*> :ref:`querySelectorAll`(const :ref:`CSS::StyleSheetSelector`& selector); std::vector<:ref:`UIWidget`*> :ref:`querySelectorAll`(const std::string& selector); std::string :ref:`getPropertyString`(const std::string& property) const; virtual std::string :ref:`getPropertyString`(const :ref:`PropertyDefinition`* propertyDef, const :ref:`Uint32`& propertyIndex = 0) const; virtual std::vector<:ref:`PropertyId`> :ref:`getPropertiesImplemented`() const; bool :ref:`isSceneNodeLoading`() const; void :ref:`reportStyleStateChangeRecursive`(bool disableAnimations = false, bool forceReApplyStyles = false); :ref:`UITooltip`* :ref:`createTooltip`(); bool :ref:`isTabStop`() const; void :ref:`setTabStop`(); void :ref:`unsetTabStop`(); bool :ref:`isTabFocusable`() const; void :ref:`setTabFocusable`(); void :ref:`unsetTabFocusable`(); :ref:`UIWidget`* :ref:`getPrevTabWidget`() const; :ref:`UIWidget`* :ref:`getNextTabWidget`() const; bool :ref:`hasPseudoClass`(const std::string& pseudoCls) const; bool :ref:`isTooltipEnabled`() const; void :ref:`setTooltipEnabled`(bool enabled); :ref:`UIWidget`* :ref:`getPrevWidget`() const; :ref:`UIWidget`* :ref:`getNextWidget`() const; :ref:`String` :ref:`getTranslatorString`(const std::string& str); :ref:`String` :ref:`getTranslatorString`(const std::string& str, const :ref:`String`& defaultValue); :ref:`String` :ref:`i18n`(const std::string& str); :ref:`String` :ref:`i18n`(const std::string& str, const :ref:`String`& defaultValue); virtual void :ref:`onWidgetCreated`(); virtual void :ref:`onDocumentLoaded`(:ref:`TextDocument`*); virtual void :ref:`onDocumentTextChanged`(const :ref:`DocumentContentChange`&) = 0; virtual void :ref:`onDocumentUndoRedo`(const :ref:`UndoRedo`& eventType) = 0; virtual void :ref:`onDocumentCursorChange`(const :ref:`TextPosition`&) = 0; virtual void :ref:`onDocumentInterestingCursorChange`(const :ref:`TextPosition`&); virtual void :ref:`onDocumentSelectionChange`(const :ref:`TextRange`&) = 0; virtual void :ref:`onDocumentLineCountChange`(const size_t& lastCount, const size_t& newCount) = 0; virtual void :ref:`onDocumentLineChanged`(const :ref:`Int64`& lineIndex) = 0; virtual void :ref:`onDocumentSaved`(:ref:`TextDocument`*) = 0; virtual void :ref:`onDocumentClosed`(:ref:`TextDocument`*) = 0; virtual void :ref:`onDocumentDirtyOnFileSystem`(:ref:`TextDocument`*) = 0; virtual void :ref:`onDocumentMoved`(:ref:`TextDocument`*) = 0; virtual void :ref:`onDocumentReset`(:ref:`TextDocument`*) = 0; virtual :ref:`Client::Type` :ref:`getTextDocumentClientType`() = 0; virtual void :ref:`onDocumentReloaded`(:ref:`TextDocument`* doc); virtual void :ref:`onDocumentSyntaxDefinitionChange`(const :ref:`SyntaxDefinition`&); virtual void :ref:`onDocumentLineMove`(const :ref:`Int64`&, const :ref:`Int64`&, const :ref:`Int64`&); virtual :ref:`TextRange` :ref:`getVisibleRange`() const; virtual void :ref:`onFoldRegionsUpdated`(size_t, size_t); .. _details-class_e_e_1_1_u_i_1_1_u_i_code_editor: Detailed Documentation ~~~~~~~~~~~~~~~~~~~~~~ Methods ------- .. index:: pair: function; getType .. _doxid-class_e_e_1_1_u_i_1_1_u_i_code_editor_1a2d5899987ab52bf4eeef280e515d58c4: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual :ref:`Uint32` getType() const Gets the widget type identifier. Returns a unique type identifier for this widget class. .. rubric:: Returns: The widget type as a Uint32. .. index:: pair: function; isType .. _doxid-class_e_e_1_1_u_i_1_1_u_i_code_editor_1aa6979cd8fc34a2160c651def79122406: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual bool isType(const :ref:`Uint32`& type) const Checks if the widget is of a specific type. Determines whether this widget is of the specified type or derived from it. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - type - The type identifier to check. .. rubric:: Returns: True if the widget is of the specified type, false otherwise. .. index:: pair: function; setTheme .. _doxid-class_e_e_1_1_u_i_1_1_u_i_code_editor_1aff983d569676a168b2539e6adb37d001: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual void setTheme(:ref:`UITheme`* Theme) Sets the theme for this widget. Applies the specified theme to the widget, affecting its visual appearance. The theme controls colors, fonts, borders, and other visual properties. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - Theme - Pointer to the :ref:`UITheme ` to apply. .. index:: pair: function; draw .. _doxid-class_e_e_1_1_u_i_1_1_u_i_code_editor_1a12872c2fd58dc3f0c277e18e721fef39: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual void draw() Draws the node. Virtual method that can be overridden to implement custom drawing behavior. The default implementation does nothing. This is called during the render cycle. .. index:: pair: function; scheduledUpdate .. _doxid-class_e_e_1_1_u_i_1_1_u_i_code_editor_1a6384d649194e22e08e69c61a70e5b607: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual void scheduledUpdate(const :ref:`Time`& time) Performs scheduled updates for nodes with update subscriptions. Called by the scene manager for nodes that have subscribed to scheduled updates. Override to implement time-based update logic for this node. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - time - The time elapsed since the last frame. .. index:: pair: function; getDocumentRef .. _doxid-class_e_e_1_1_u_i_1_1_u_i_code_editor_1a9529555017d47e4b26eb4437702822fe: .. ref-code-block:: cpp :class: doxyrest-title-code-block std::shared_ptr<:ref:`Doc::TextDocument`> getDocumentRef() const If the document is managed by more than one client you need to NOT auto register base commands and implement your own logic for those commands, since are dependant of the client state. .. rubric:: See also: :ref:`registerCommands ` .. index:: pair: function; setLineBreakingColumn .. _doxid-class_e_e_1_1_u_i_1_1_u_i_code_editor_1af042a9718c68d674b9cac54c10d88b43: .. ref-code-block:: cpp :class: doxyrest-title-code-block void setLineBreakingColumn(const :ref:`Uint32`& lineBreakingColumn) Set to 0 to hide. .. index:: pair: function; applyProperty .. _doxid-class_e_e_1_1_u_i_1_1_u_i_code_editor_1afd8b304953351342fb281be807a05834: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual bool applyProperty(const :ref:`StyleSheetProperty`& attribute) Applies a :ref:`CSS ` property to this widget. Applies the specified :ref:`CSS ` property to the widget, updating its style and triggering any necessary style changes. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - attribute - The :ref:`CSS ` property to apply. .. rubric:: Returns: True if the property was applied successfully, false otherwise. .. index:: pair: function; getPropertyString .. _doxid-class_e_e_1_1_u_i_1_1_u_i_code_editor_1ae7bcc970d64188b69cebf57cc3476e16: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual std::string getPropertyString(const :ref:`PropertyDefinition`* propertyDef, const :ref:`Uint32`& propertyIndex = 0) const Gets a property value as a string with property definition. Returns the value of the specified :ref:`CSS ` property as a string, using the property definition for proper formatting. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - propertyDef - The property definition. * - propertyIndex - The property index (for multi-value properties). .. rubric:: Returns: The property value as a string. .. index:: pair: function; getPropertiesImplemented .. _doxid-class_e_e_1_1_u_i_1_1_u_i_code_editor_1acb27b7d44cbdec50267d3c8fe8f8f2d0: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual std::vector<:ref:`PropertyId`> getPropertiesImplemented() const Gets the list of properties implemented by this widget. Returns a vector of property IDs that this widget implements. This is used for :ref:`CSS ` property introspection and validation. .. rubric:: Returns: Vector of implemented property IDs. .. index:: pair: function; moveToLineOffset .. _doxid-class_e_e_1_1_u_i_1_1_u_i_code_editor_1a059e29be13034df1d13b7ec8f9229e1f: .. ref-code-block:: cpp :class: doxyrest-title-code-block :ref:`TextPosition` moveToLineOffset(const :ref:`TextPosition`& position, int offset, const size_t& cursorIdx = 0) :ref:`Doc ` commands executed in this editor. .. index:: pair: function; getShowWhitespaces .. _doxid-class_e_e_1_1_u_i_1_1_u_i_code_editor_1a2e7faa3b7c08914bd5688bd8df52c243: .. ref-code-block:: cpp :class: doxyrest-title-code-block const bool& getShowWhitespaces() const :ref:`Doc ` commands executed in this editor. .. index:: pair: function; registerGutterSpace .. _doxid-class_e_e_1_1_u_i_1_1_u_i_code_editor_1ac22364a16f70a64105757989516da27e: .. ref-code-block:: cpp :class: doxyrest-title-code-block bool registerGutterSpace(:ref:`UICodeEditorPlugin`* plugin, const :ref:`Float`& pixels, int order) Register a gutter space to be used by a plugin. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - plugin - Plugin requesting it * - pixels - Amount of pixels to request in the gutter * - order - Order goes from left (lower number) to right (bigger number). .. index:: pair: function; registerTopSpace .. _doxid-class_e_e_1_1_u_i_1_1_u_i_code_editor_1ae54b93f6af4f874bc29eff8302012797: .. ref-code-block:: cpp :class: doxyrest-title-code-block bool registerTopSpace(:ref:`UICodeEditorPlugin`* plugin, const :ref:`Float`& pixels, int order) Register a top space to be used by a plugin. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - plugin - Plugin requesting it * - pixels - Amount of pixels to request in the gutter * - order - Order goes from left (lower number) to right (bigger number). .. index:: pair: function; isScrollable .. _doxid-class_e_e_1_1_u_i_1_1_u_i_code_editor_1ab60688da872c3abcf2b06079e676152a: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual bool isScrollable() const Checks if the node is scrollable. Determines whether this node supports scrolling behavior. .. rubric:: Returns: True if the node is scrollable, false otherwise. .. index:: pair: function; loadFromXmlNode .. _doxid-class_e_e_1_1_u_i_1_1_u_i_code_editor_1ae729748ab4110437b64123bdcb7e8c37: .. ref-code-block:: cpp :class: doxyrest-title-code-block virtual void loadFromXmlNode(const pugi::xml_node& node) Loads widget configuration from an XML node. Parses XML configuration to set up the widget's properties, styles, and layout attributes. This is used for loading :ref:`UI ` layouts from XML files. .. rubric:: Parameters: .. list-table:: :widths: 20 80 * - node - The XML node containing the widget configuration.