---@meta ---@class ccui.Widget :cc.ProtectedNode@all parent class: ProtectedNode,LayoutParameterProtocol local Widget={ } ccui.Widget=Widget ---* Toggle layout component enable.<br> ---* param enable Layout Component of a widget ---@param enable boolean ---@return self function Widget:setLayoutComponentEnabled (enable) end ---* Changes the percent that is widget's percent size<br> ---* param percent that is widget's percent size ---@param percent vec2_table ---@return self function Widget:setSizePercent (percent) end ---* Get the user defined widget size.<br> ---* return User defined size. ---@return size_table function Widget:getCustomSize () end ---* Gets the left boundary position of this widget in parent's coordination system.<br> ---* return The left boundary position of this widget. ---@return float function Widget:getLeftBoundary () end ---* Sets whether the widget should be flipped horizontally or not.<br> ---* param flippedX true if the widget should be flipped horizontally, false otherwise. ---@param flippedX boolean ---@return self function Widget:setFlippedX (flippedX) end ---* Set callback name.<br> ---* param callbackName A string representation of callback name. ---@param callbackName string ---@return self function Widget:setCallbackName (callbackName) end ---* Gets the inner Renderer node of widget.<br> ---* For example, a button's Virtual Renderer is it's texture renderer.<br> ---* return Node pointer. ---@return cc.Node function Widget:getVirtualRenderer () end ---* brief Allow widget touch events to propagate to its parents. Set false will disable propagation<br> ---* param isPropagate True to allow propagation, false otherwise.<br> ---* since v3.3 ---@param isPropagate boolean ---@return self function Widget:setPropagateTouchEvents (isPropagate) end ---* Query whether unify size enable state. <br> ---* return true represent the widget use Unify Size, false represent the widget couldn't use Unify Size ---@return boolean function Widget:isUnifySizeEnabled () end ---* Get size percent of widget.<br> ---* return Percent size. ---@return vec2_table function Widget:getSizePercent () end ---* Set the percent(x,y) of the widget in OpenGL coordinates<br> ---* param percent The percent (x,y) of the widget in OpenGL coordinates ---@param percent vec2_table ---@return self function Widget:setPositionPercent (percent) end ---* Toggle widget swallow touch option.<br> ---* brief Specify widget to swallow touches or not<br> ---* param swallow True to swallow touch, false otherwise.<br> ---* since v3.3 ---@param swallow boolean ---@return self function Widget:setSwallowTouches (swallow) end ---* Get the content size of widget.<br> ---* warning This API exists mainly for keeping back compatibility.<br> ---* return ---@return size_table function Widget:getLayoutSize () end ---* Sets whether the widget is highlighted<br> ---* The default value is false, a widget is default to not highlighted<br> ---* param highlight true if the widget is highlighted, false if the widget is not highlighted. ---@param highlight boolean ---@return self function Widget:setHighlighted (highlight) end ---* Changes the position type of the widget<br> ---* see `PositionType`<br> ---* param type the position type of widget ---@param type int ---@return self function Widget:setPositionType (type) end ---* Query whether the widget ignores user defined content size or not<br> ---* return True means ignore user defined content size, false otherwise. ---@return boolean function Widget:isIgnoreContentAdaptWithSize () end ---* Get the virtual renderer's size<br> ---* return Widget virtual renderer size. ---@return size_table function Widget:getVirtualRendererSize () end ---* Determines if the widget is highlighted<br> ---* return true if the widget is highlighted, false if the widget is not highlighted. ---@return boolean function Widget:isHighlighted () end ---* Gets LayoutParameter of widget.<br> ---* see LayoutParameter<br> ---* return LayoutParameter ---@return ccui.LayoutParameter function Widget:getLayoutParameter () end ---* Gets the position type of the widget<br> ---* see `PositionType`<br> ---* return type the position type of widget ---@return int function Widget:getPositionType () end ---* Gets the top boundary position of this widget in parent's coordination system.<br> ---* return The top boundary position of this widget. ---@return float function Widget:getTopBoundary () end ---* Toggle whether ignore user defined content size for widget.<br> ---* Set true will ignore user defined content size which means <br> ---* the widget size is always equal to the return value of `getVirtualRendererSize`.<br> ---* param ignore set member variable _ignoreSize to ignore ---@param ignore boolean ---@return self function Widget:ignoreContentAdaptWithSize (ignore) end ---* When a widget is in a layout, you could call this method to get the next focused widget within a specified direction. <br> ---* If the widget is not in a layout, it will return itself<br> ---* param direction the direction to look for the next focused widget in a layout<br> ---* param current the current focused widget<br> ---* return the next focused widget in a layout ---@param direction int ---@param current ccui.Widget ---@return self function Widget:findNextFocusedWidget (direction,current) end ---* Determines if the widget is enabled or not.<br> ---* return true if the widget is enabled, false if the widget is disabled. ---@return boolean function Widget:isEnabled () end ---* Query whether widget is focused or not.<br> ---* return whether the widget is focused or not ---@return boolean function Widget:isFocused () end ---* Gets the touch began point of widget when widget is selected.<br> ---* return the touch began point. ---@return vec2_table function Widget:getTouchBeganPosition () end ---* Determines if the widget is touch enabled<br> ---* return true if the widget is touch enabled, false if the widget is touch disabled. ---@return boolean function Widget:isTouchEnabled () end ---* Query callback name.<br> ---* return The callback name. ---@return string function Widget:getCallbackName () end ---* Get the action tag.<br> ---* return Action tag. ---@return int function Widget:getActionTag () end ---* Gets position of widget in world space.<br> ---* return Position of widget in world space. ---@return vec2_table function Widget:getWorldPosition () end ---* Query widget's focus enable state.<br> ---* return true represent the widget could accept focus, false represent the widget couldn't accept focus ---@return boolean function Widget:isFocusEnabled () end ---* Toggle widget focus status.<br> ---* param focus pass true to let the widget get focus or pass false to let the widget lose focus ---@param focus boolean ---@return self function Widget:setFocused (focus) end ---* Set the tag of action.<br> ---* param tag A integer tag value. ---@param tag int ---@return self function Widget:setActionTag (tag) end ---* Sets whether the widget is touch enabled.<br> ---* The default value is false, a widget is default to touch disabled.<br> ---* param enabled True if the widget is touch enabled, false if the widget is touch disabled. ---@param enabled boolean ---@return self function Widget:setTouchEnabled (enabled) end ---* Sets whether the widget should be flipped vertically or not.<br> ---* param flippedY true if the widget should be flipped vertically, false otherwise. ---@param flippedY boolean ---@return self function Widget:setFlippedY (flippedY) end ---* Sets whether the widget is enabled<br> ---* true if the widget is enabled, widget may be touched , false if the widget is disabled, widget cannot be touched.<br> ---* Note: If you want to change the widget's appearance to disabled state, you should also call `setBright(false)`.<br> ---* The default value is true, a widget is default to enable touch.<br> ---* param enabled Set to true to enable touch, false otherwise. ---@param enabled boolean ---@return self function Widget:setEnabled (enabled) end ---* Gets the right boundary position of this widget in parent's coordination system.<br> ---* return The right boundary position of this widget. ---@return float function Widget:getRightBoundary () end ---* To set the bright style of widget.<br> ---* see BrightStyle<br> ---* param style BrightStyle::NORMAL means the widget is in normal state, BrightStyle::HIGHLIGHT means the widget is in highlight state. ---@param style int ---@return self function Widget:setBrightStyle (style) end ---* Sets a LayoutParameter to widget.<br> ---* see LayoutParameter<br> ---* param parameter LayoutParameter pointer ---@param parameter ccui.LayoutParameter ---@return self function Widget:setLayoutParameter (parameter) end ---* Create a new widget copy of the original one.<br> ---* return A cloned widget copy of original. ---@return self function Widget:clone () end ---* Allow widget to accept focus.<br> ---* param enable pass true/false to enable/disable the focus ability of a widget ---@param enable boolean ---@return self function Widget:setFocusEnabled (enable) end ---* Gets the bottom boundary position of this widget in parent's coordination system.<br> ---* return The bottom boundary position of this widget. ---@return float function Widget:getBottomBoundary () end ---* Determines if the widget is bright<br> ---* return true if the widget is bright, false if the widget is dark. ---@return boolean function Widget:isBright () end ---* Dispatch a EventFocus through a EventDispatcher<br> ---* param widgetLoseFocus The widget which lose its focus<br> ---* param widgetGetFocus he widget which get its focus ---@param widgetLoseFocus ccui.Widget ---@param widgetGetFocus ccui.Widget ---@return self function Widget:dispatchFocusEvent (widgetLoseFocus,widgetGetFocus) end ---* Toggle use unify size.<br> ---* param enable True to use unify size, false otherwise. ---@param enable boolean ---@return self function Widget:setUnifySizeEnabled (enable) end ---* Return whether the widget is propagate touch events to its parents or not<br> ---* return whether touch event propagation is allowed or not.<br> ---* since v3.3 ---@return boolean function Widget:isPropagateTouchEvents () end ---* Checks a point is in widget's content space.<br> ---* This function is used for determining touch area of widget.<br> ---* param pt The point in `Vec2`.<br> ---* param camera The camera look at widget, used to convert GL screen point to near/far plane.<br> ---* param p Point to a Vec3 for store the intersect point, if don't need them set to nullptr.<br> ---* return true if the point is in widget's content space, false otherwise. ---@param pt vec2_table ---@param camera cc.Camera ---@param p vec3_table ---@return boolean function Widget:hitTest (pt,camera,p) end ---* Query whether layout component is enabled or not. <br> ---* return true represent the widget use Layout Component, false represent the widget couldn't use Layout Component. ---@return boolean function Widget:isLayoutComponentEnabled () end ---* when a widget calls this method, it will get focus immediately. ---@return self function Widget:requestFocus () end ---@overload fun(size_table:size_table):self ---@overload fun():self ---@param parentSize size_table ---@return self function Widget:updateSizeAndPosition (parentSize) end ---* This method is called when a focus change event happens<br> ---* param widgetLostFocus The widget which lose its focus<br> ---* param widgetGetFocus The widget which get its focus ---@param widgetLostFocus ccui.Widget ---@param widgetGetFocus ccui.Widget ---@return self function Widget:onFocusChange (widgetLostFocus,widgetGetFocus) end ---* ---@return vec2_table function Widget:getTouchMovePosition () end ---* Gets the size type of widget.<br> ---* see `SizeType` ---@return int function Widget:getSizeType () end ---* Query callback type.<br> ---* return Callback type string. ---@return string function Widget:getCallbackType () end ---* ---@return vec2_table function Widget:getTouchEndPosition () end ---* Gets the percent (x,y) of the widget in OpenGL coordinates<br> ---* see setPosition(const Vec2&)<br> ---* return The percent (x,y) of the widget in OpenGL coordinates ---@return vec2_table function Widget:getPositionPercent () end ---* brief Propagate touch events to its parents ---@param event int ---@param sender ccui.Widget ---@param touch cc.Touch ---@return self function Widget:propagateTouchEvent (event,sender,touch) end ---* Returns the flag which indicates whether the widget is flipped horizontally or not.<br> ---* It not only flips the texture of the widget, but also the texture of the widget's children.<br> ---* Also, flipping relies on widget's anchor point.<br> ---* Internally, it just use setScaleX(-1) to flip the widget.<br> ---* return true if the widget is flipped horizontally, false otherwise. ---@return boolean function Widget:isFlippedX () end ---* Return the flag which indicates whether the widget is flipped vertically or not.<br> ---* It not only flips the texture of the widget, but also the texture of the widget's children.<br> ---* Also, flipping relies on widget's anchor point.<br> ---* Internally, it just use setScaleY(-1) to flip the widget.<br> ---* return true if the widget is flipped vertically, false otherwise. ---@return boolean function Widget:isFlippedY () end ---* Checks a point if in parent's area.<br> ---* param pt A point in `Vec2`.<br> ---* return true if the point is in parent's area, false otherwise. ---@param pt vec2_table ---@return boolean function Widget:isClippingParentContainsPoint (pt) end ---* Changes the size type of widget.<br> ---* see `SizeType`<br> ---* param type that is widget's size type ---@param type int ---@return self function Widget:setSizeType (type) end ---* ---@param event int ---@param sender ccui.Widget ---@param touch cc.Touch ---@return self function Widget:interceptTouchEvent (event,sender,touch) end ---* Sets whether the widget is bright<br> ---* The default value is true, a widget is default to bright<br> ---* param bright true if the widget is bright, false if the widget is dark. ---@param bright boolean ---@return self function Widget:setBright (bright) end ---* Set callback type.<br> ---* param callbackType A string representation of callback type. ---@param callbackType string ---@return self function Widget:setCallbackType (callbackType) end ---* Return whether the widget is swallowing touch or not<br> ---* return Whether touch is swallowed.<br> ---* since v3.3 ---@return boolean function Widget:isSwallowTouches () end ---* ---@param enable boolean ---@return self function Widget:enableDpadNavigation (enable) end ---* Return a current focused widget in your UI scene.<br> ---* No matter what widget object you call this method on , it will return you the exact one focused widget. ---@return self function Widget:getCurrentFocusedWidget () end ---* Create and return a empty Widget instance pointer. ---@return self function Widget:create () end ---* ---@param scaleY float ---@return self function Widget:setScaleY (scaleY) end ---* ---@param scaleX float ---@return self function Widget:setScaleX (scaleX) end ---* ---@return float function Widget:getScaleY () end ---* ---@return float function Widget:getScaleX () end ---* Returns the string representation of widget class name<br> ---* return get the class description. ---@return string function Widget:getDescription () end ---@overload fun(float:float,float:float):self ---@overload fun(float:float):self ---@param scalex float ---@param scaley float ---@return self function Widget:setScale (scalex,scaley) end ---* ---@return boolean function Widget:init () end ---* Changes the position (x,y) of the widget in OpenGL coordinates<br> ---* Usually we use p(x,y) to compose a Vec2 object.<br> ---* The original point (0,0) is at the left-bottom corner of screen.<br> ---* param pos The position (x,y) of the widget in OpenGL coordinates ---@param pos vec2_table ---@return self function Widget:setPosition (pos) end ---* Changes the size that is widget's size<br> ---* param contentSize A content size in `Size`. ---@param contentSize size_table ---@return self function Widget:setContentSize (contentSize) end ---* ---@return float function Widget:getScale () end ---* Default constructor<br> ---* js ctor<br> ---* lua new ---@return self function Widget:Widget () end