Kodi Documentation 22.0
Kodi is an open source media player and entertainment hub.
Loading...
Searching...
No Matches
CGUIEditControl Class Reference

#include <GUIEditControl.h>

Inheritance diagram for CGUIEditControl:
CGUIButtonControl CGUIControl

Public Types

enum  INPUT_TYPE {
  INPUT_TYPE_READONLY = -1 , INPUT_TYPE_TEXT = 0 , INPUT_TYPE_NUMBER , INPUT_TYPE_SECONDS ,
  INPUT_TYPE_TIME , INPUT_TYPE_DATE , INPUT_TYPE_IPADDRESS , INPUT_TYPE_PASSWORD ,
  INPUT_TYPE_PASSWORD_MD5 , INPUT_TYPE_SEARCH , INPUT_TYPE_FILTER , INPUT_TYPE_PASSWORD_NUMBER_VERIFY_NEW
}
 
- Public Types inherited from CGUIControl
enum  GUICONTROLTYPES {
  GUICONTROL_UNKNOWN , GUICONTAINER_EPGGRID , GUICONTAINER_FIXEDLIST , GUICONTAINER_LIST ,
  GUICONTAINER_PANEL , GUICONTAINER_WRAPLIST , GUICONTROL_BORDEREDIMAGE , GUICONTROL_BUTTON ,
  GUICONTROL_COLORBUTTON , GUICONTROL_EDIT , GUICONTROL_FADELABEL , GUICONTROL_GAME ,
  GUICONTROL_GAMECONTROLLER , GUICONTROL_GAMECONTROLLERLIST , GUICONTROL_GROUP , GUICONTROL_GROUPLIST ,
  GUICONTROL_IMAGE , GUICONTROL_LABEL , GUICONTROL_LISTGROUP , GUICONTROL_LISTLABEL ,
  GUICONTROL_MOVER , GUICONTROL_MULTI_IMAGE , GUICONTROL_PROGRESS , GUICONTROL_RADIO ,
  GUICONTROL_RANGES , GUICONTROL_RENDERADDON , GUICONTROL_RESIZE , GUICONTROL_RSS ,
  GUICONTROL_SCROLLBAR , GUICONTROL_SETTINGS_SLIDER , GUICONTROL_SLIDER , GUICONTROL_SPIN ,
  GUICONTROL_SPINEX , GUICONTROL_TEXTBOX , GUICONTROL_TOGGLEBUTTON , GUICONTROL_VIDEO ,
  GUICONTROL_VISUALISATION
}
 
enum  GUIVISIBLE { HIDDEN = 0 , DELAYED , VISIBLE }
 
enum  GUISCROLLVALUE { FOCUS = 0 , NEVER , ALWAYS }
 
typedef std::map< int, CGUIActionActionMap
 Set actions to perform on navigation.
 

Public Member Functions

 CGUIEditControl (int parentID, int controlID, float posX, float posY, float width, float height, const CTextureInfo &textureFocus, const CTextureInfo &textureNoFocus, const CLabelInfo &labelInfo, const std::string &text)
 
 CGUIEditControl (const CGUIButtonControl &button)
 
 CGUIEditControl (const CGUIEditControl &button)
 
 ~CGUIEditControl (void) override
 
CGUIEditControlClone () const override
 
bool OnMessage (CGUIMessage &message) override
 
bool OnAction (const CAction &action) override
 
void OnClick () override
 
void SetLabel (const std::string &text) override
 
void SetLabel2 (const std::string &text) override
 
void SetHint (const KODI::GUILIB::GUIINFO::CGUIInfoLabel &hint)
 
std::string GetLabel2 () const override
 
unsigned int GetCursorPosition () const
 
void SetCursorPosition (unsigned int iPosition)
 
void SetInputType (INPUT_TYPE type, const CVariant &heading)
 
void SetTextChangeActions (const CGUIAction &textChangeActions)
 
bool HasTextChangeActions () const
 
virtual bool HasInvalidInput () const
 
virtual void SetInputValidation (StringValidation::Validator inputValidator, void *data=NULL)
 
- Public Member Functions inherited from CGUIButtonControl
 CGUIButtonControl (int parentID, int controlID, float posX, float posY, float width, float height, const CTextureInfo &textureFocus, const CTextureInfo &textureNoFocus, const CLabelInfo &label, bool wrapMultiline=false)
 
 CGUIButtonControl (const CGUIButtonControl &control)
 
 ~CGUIButtonControl () override=default
 
void Process (unsigned int currentTime, CDirtyRegionList &dirtyregions) override
 
void Render () override
 
void AllocResources () override
 
void FreeResources (bool immediately=false) override
 
void DynamicResourceAlloc (bool bOnOff) override
 
void SetInvalid () override
 
void SetPosition (float posX, float posY) override
 
void SetClickActions (const CGUIAction &clickActions)
 
const CGUIActionGetClickActions () const
 
void SetFocusActions (const CGUIAction &focusActions)
 
void SetUnFocusActions (const CGUIAction &unfocusActions)
 
const CLabelInfoGetLabelInfo () const
 
virtual std::string GetLabel () const
 
void SetSelected (bool bSelected)
 
std::string GetDescription () const override
 
float GetWidth () const override
 
virtual void SetMinWidth (float minWidth)
 
void SetAlpha (unsigned char alpha)
 
void PythonSetLabel (const std::string &strFont, const std::string &strText, UTILS::COLOR::Color textColor, UTILS::COLOR::Color shadowColor, UTILS::COLOR::Color focusedColor)
 
void PythonSetDisabledColor (UTILS::COLOR::Color disabledColor)
 
bool HasClickActions () const
 
bool UpdateColors (const CGUIListItem *item) override
 
CRect CalcRenderRegion () const override
 calculate the render region in parentcontrol coordinates of this control Called during process to update m_renderRegion
 
- Public Member Functions inherited from CGUIControl
 CGUIControl ()
 
 CGUIControl (int parentID, int controlID, float posX, float posY, float width, float height)
 
 CGUIControl (const CGUIControl &)
 
virtual ~CGUIControl (void)
 
virtual void DoProcess (unsigned int currentTime, CDirtyRegionList &dirtyregions)
 
virtual void DoRender ()
 
virtual void RenderEx ()
 
bool HasProcessed () const
 Returns whether or not we have processed.
 
virtual void OnUp ()
 
virtual void OnDown ()
 
virtual void OnLeft ()
 
virtual void OnRight ()
 
virtual bool OnBack ()
 
virtual bool OnInfo ()
 
virtual void OnNextControl ()
 
virtual void OnPrevControl ()
 
virtual EVENT_RESULT SendMouseEvent (const CPoint &point, const KODI::MOUSE::CMouseEvent &event)
 React to a mouse event.
 
virtual void UnfocusFromPoint (const CPoint &point)
 Unfocus the control if the given point on screen is not within it's boundary.
 
virtual bool HitTest (const CPoint &point) const
 Used to test whether the point is inside a control.
 
virtual int GetID (void) const
 
virtual void SetID (int id)
 
int GetParentID () const
 
virtual bool HasFocus () const
 
virtual bool IsDynamicallyAllocated ()
 
virtual bool CanFocus () const
 
virtual bool IsVisible () const
 
bool IsVisibleFromSkin () const
 
virtual bool IsDisabled () const
 
virtual void SetHitRect (const CRect &rect, const UTILS::COLOR::Color &color)
 
virtual void SetCamera (const CPoint &camera)
 
virtual void SetStereoFactor (const float &factor)
 
bool SetColorDiffuse (const KODI::GUILIB::GUIINFO::CGUIInfoColor &color)
 
CPoint GetRenderPosition () const
 
virtual float GetXPosition () const
 
virtual float GetYPosition () const
 
virtual float GetHeight () const
 
virtual void AssignDepth ()
 
void MarkDirtyRegion (const unsigned int dirtyState=DIRTY_STATE_CONTROL)
 
bool IsControlDirty () const
 
const CRectGetRenderRegion () const
 return the render region in screen coordinates of this control
 
void SetActions (const ActionMap &actions)
 
void SetAction (int actionID, const CGUIAction &action, bool replace=true)
 Set actions to perform on navigation Navigations are set if replace is true or if there is no previously set action.
 
CGUIAction GetAction (int actionID) const
 Get an action the control can be perform.
 
bool Navigate (int direction) const
 Start navigating in given direction.
 
virtual void SetWidth (float width)
 
virtual void SetHeight (float height)
 
virtual void SetVisible (bool bVisible, bool setVisState=false)
 
void SetVisibleCondition (const std::string &expression, const std::string &allowHiddenFocus="")
 
bool HasVisibleCondition () const
 
void SetEnableCondition (const std::string &expression)
 
virtual void UpdateVisibility (const CGUIListItem *item)
 
virtual void SetInitialVisibility ()
 
virtual void SetEnabled (bool bEnable)
 
virtual void SetPulseOnSelect (bool pulse)
 
void SetAnimations (const std::vector< CAnimation > &animations)
 
const std::vector< CAnimation > & GetAnimations () const
 
virtual void QueueAnimation (ANIMATION_TYPE anim)
 
virtual bool IsAnimating (ANIMATION_TYPE anim)
 
virtual bool HasAnimation (ANIMATION_TYPE anim)
 
CAnimationGetAnimation (ANIMATION_TYPE type, bool checkConditions=true)
 
virtual void ResetAnimation (ANIMATION_TYPE type)
 
virtual void ResetAnimations ()
 
virtual void UpdateInfo (const CGUIListItem *item=NULL)
 
virtual void SetPushUpdates (bool pushUpdates)
 
virtual bool IsGroup () const
 
virtual bool IsContainer () const
 
virtual bool GetCondition (int condition, int data) const
 
void SetParentControl (CGUIControl *control)
 
CGUIControlGetParentControl (void) const
 
virtual void SaveStates (std::vector< CControlState > &states)
 
virtual CGUIControlGetControl (int id, std::vector< CGUIControl * > *idCollector=nullptr)
 
void SetControlStats (GUICONTROLSTATS *controlStats)
 
virtual void UpdateControlStats ()
 
GUICONTROLTYPES GetControlType () const
 
bool IsControlRenderable ()
 Test whether the control is "drawable" (not a group or similar)
 

Protected Member Functions

void SetFocus (bool focus) override
 
void ProcessText (unsigned int currentTime) override
 
void RenderText () override
 
CGUILabel::COLOR GetTextColor () const override
 
std::wstring GetDisplayedText () const
 
std::string GetDescriptionByIndex (int index) const override
 
bool SetStyledText (const std::wstring &text)
 
void RecalcRightLabelPosition ()
 Recalculate the text offset position for the right label by updating m_textOffset and validate the cursor position.
 
void ValidateCursor ()
 
void UpdateText (bool sendUpdate=true)
 
void OnPasteClipboard ()
 
void OnSMSCharacter (unsigned int key)
 
void DefaultConstructor ()
 
virtual bool ValidateInput (const std::wstring &data) const
 
void ValidateInput ()
 
bool ClearMD5 ()
 Clear out the current text input if it's an MD5 password.
 
void ComposingCursorAppendChar (std::uint32_t deadUnicodeKey)
 Append a given char to the composing cursor.
 
void ResetCursor ()
 Reset the cursor aspect to normal input (i.e. not composing a key)
 
void CancelKeyComposition (std::uint32_t deadUnicodeKey)
 Cancel the key composition.
 
bool IsComposingKey () const
 Check if the control is composing a key.
 
- Protected Member Functions inherited from CGUIButtonControl
EVENT_RESULT OnMouseEvent (const CPoint &point, const KODI::MOUSE::CMouseEvent &event) override
 Perform a mouse action.
 
void OnFocus () override
 
void OnUnFocus () override
 
void SetMaxWidth (float labelMaxWidth)
 Set the maximum width for the left label.
 
- Protected Member Functions inherited from CGUIControl
virtual CPoint GetPosition () const
 Return the coordinates of the top left of the control, in the control's parent coordinates.
 
virtual bool OnMouseOver (const CPoint &point)
 Called when the mouse is over the control. Default implementation selects the control.
 
virtual bool CanFocusFromPoint (const CPoint &point) const
 Test whether we can focus a control from a point on screen.
 
virtual bool Animate (unsigned int currentTime)
 
virtual bool CheckAnimation (ANIMATION_TYPE animType)
 
void UpdateStates (ANIMATION_TYPE type, ANIMATION_PROCESS currentProcess, ANIMATION_STATE currentState)
 
bool SendWindowMessage (CGUIMessage &message) const
 

Protected Attributes

std::wstring m_text2
 
std::string m_text
 
KODI::GUILIB::GUIINFO::CGUIInfoLabel m_hintInfo
 
float m_textOffset
 
CRect m_clipRect
 clipping rect for the second label
 
unsigned int m_cursorPos
 
bool m_cursorBlinkEnabled {true}
 
unsigned int m_cursorBlink
 
std::vector< std::uint32_t > m_cursorChars {'|'}
 
std::vector< std::uint32_t > m_cursorCharsBuffer {}
 
std::string m_inputHeading
 
INPUT_TYPE m_inputType
 
bool m_isMD5
 
CGUIAction m_textChangeActions
 
bool m_invalidInput
 
StringValidation::Validator m_inputValidator
 
voidm_inputValidatorData
 
unsigned int m_smsKeyIndex
 
unsigned int m_smsLastKey
 
CStopWatch m_smsTimer
 
std::wstring m_edit
 
int m_editOffset
 
int m_editLength
 
- Protected Attributes inherited from CGUIButtonControl
std::unique_ptr< CGUITexturem_imgFocus
 
std::unique_ptr< CGUITexturem_imgNoFocus
 
unsigned int m_focusCounter
 
unsigned char m_alpha
 
float m_minWidth
 
float m_maxWidth
 
float m_labelMaxWidth {0}
 
KODI::GUILIB::GUIINFO::CGUIInfoLabel m_info
 
KODI::GUILIB::GUIINFO::CGUIInfoLabel m_info2
 
CGUILabel m_label
 
CGUILabel m_label2
 
CGUIAction m_clickActions
 
CGUIAction m_focusActions
 
CGUIAction m_unfocusActions
 
bool m_bSelected
 
- Protected Attributes inherited from CGUIControl
ActionMap m_actions
 
float m_posX
 
float m_posY
 
float m_height
 
float m_width
 
CRect m_hitRect
 
UTILS::COLOR::Color m_hitColor = 0xffffffff
 
KODI::GUILIB::GUIINFO::CGUIInfoColor m_diffuseColor
 
int m_controlID
 
int m_parentID
 
bool m_bHasFocus
 
bool m_bInvalidated
 
bool m_bAllocated
 
bool m_pulseOnSelect
 
GUICONTROLTYPES ControlType
 
GUICONTROLSTATSm_controlStats
 
CGUIControlm_parentControl
 
INFO::InfoPtr m_visibleCondition
 
GUIVISIBLE m_visible
 
bool m_visibleFromSkinCondition
 
bool m_forceHidden
 
KODI::GUILIB::GUIINFO::CGUIInfoBool m_allowHiddenFocus
 
bool m_hasProcessed
 
INFO::InfoPtr m_enableCondition
 
bool m_enabled
 
bool m_pushedUpdates
 
std::vector< CAnimationm_animations
 
CPoint m_camera
 
bool m_hasCamera
 
float m_stereo
 
TransformMatrix m_transform
 
TransformMatrix m_cachedTransform
 
bool m_isCulled {true}
 
unsigned int m_controlDirtyState
 
CRect m_renderRegion
 

Additional Inherited Members

- Static Protected Attributes inherited from CGUIControl
static const unsigned int DIRTY_STATE_CONTROL = 1
 
static const unsigned int DIRTY_STATE_CHILD = 2
 

Member Enumeration Documentation

◆ INPUT_TYPE

Enumerator
INPUT_TYPE_READONLY 
INPUT_TYPE_TEXT 
INPUT_TYPE_NUMBER 
INPUT_TYPE_SECONDS 
INPUT_TYPE_TIME 
INPUT_TYPE_DATE 
INPUT_TYPE_IPADDRESS 
INPUT_TYPE_PASSWORD 
INPUT_TYPE_PASSWORD_MD5 
INPUT_TYPE_SEARCH 
INPUT_TYPE_FILTER 
INPUT_TYPE_PASSWORD_NUMBER_VERIFY_NEW 

Constructor & Destructor Documentation

◆ CGUIEditControl() [1/3]

CGUIEditControl::CGUIEditControl ( int parentID,
int controlID,
float posX,
float posY,
float width,
float height,
const CTextureInfo & textureFocus,
const CTextureInfo & textureNoFocus,
const CLabelInfo & labelInfo,
const std::string & text )

◆ CGUIEditControl() [2/3]

CGUIEditControl::CGUIEditControl ( const CGUIButtonControl & button)
explicit

◆ CGUIEditControl() [3/3]

CGUIEditControl::CGUIEditControl ( const CGUIEditControl & button)
explicit

◆ ~CGUIEditControl()

CGUIEditControl::~CGUIEditControl ( void )
overridedefault

Member Function Documentation

◆ CancelKeyComposition()

void CGUIEditControl::CancelKeyComposition ( std::uint32_t deadUnicodeKey)
protected

Cancel the key composition.

Parameters
deadUnicodeKey- the unicode key that ended/cancelled the composing sequence

◆ ClearMD5()

bool CGUIEditControl::ClearMD5 ( )
protected

Clear out the current text input if it's an MD5 password.

Returns
true if the password is cleared, false otherwise.

◆ Clone()

CGUIEditControl * CGUIEditControl::Clone ( void ) const
inlineoverridevirtual

Reimplemented from CGUIButtonControl.

◆ ComposingCursorAppendChar()

void CGUIEditControl::ComposingCursorAppendChar ( std::uint32_t deadUnicodeKey)
protected

Append a given char to the composing cursor.

Parameters
deadUnicodeKey- the unicode key that started the composing sequence

◆ DefaultConstructor()

void CGUIEditControl::DefaultConstructor ( )
protected

◆ GetCursorPosition()

unsigned int CGUIEditControl::GetCursorPosition ( ) const

◆ GetDescriptionByIndex()

std::string CGUIEditControl::GetDescriptionByIndex ( int index) const
overrideprotectedvirtual

Reimplemented from CGUIControl.

◆ GetDisplayedText()

std::wstring CGUIEditControl::GetDisplayedText ( ) const
protected

◆ GetLabel2()

std::string CGUIEditControl::GetLabel2 ( ) const
overridevirtual

Reimplemented from CGUIButtonControl.

◆ GetTextColor()

CGUILabel::COLOR CGUIEditControl::GetTextColor ( ) const
overrideprotectedvirtual

Reimplemented from CGUIButtonControl.

◆ HasInvalidInput()

virtual bool CGUIEditControl::HasInvalidInput ( ) const
inlinevirtual

◆ HasTextChangeActions()

bool CGUIEditControl::HasTextChangeActions ( ) const
inline

◆ IsComposingKey()

bool CGUIEditControl::IsComposingKey ( ) const
protected

Check if the control is composing a key.

Returns
true if a key is being composed, false otherwise

◆ OnAction()

bool CGUIEditControl::OnAction ( const CAction & action)
overridevirtual

Reimplemented from CGUIButtonControl.

◆ OnClick()

void CGUIEditControl::OnClick ( )
overridevirtual
Todo
Ideally we'd send this to the keyboard and tell the keyboard we have this type of input

Reimplemented from CGUIButtonControl.

◆ OnMessage()

bool CGUIEditControl::OnMessage ( CGUIMessage & message)
overridevirtual

Reimplemented from CGUIButtonControl.

◆ OnPasteClipboard()

void CGUIEditControl::OnPasteClipboard ( )
protected

◆ OnSMSCharacter()

void CGUIEditControl::OnSMSCharacter ( unsigned int key)
protected

◆ ProcessText()

void CGUIEditControl::ProcessText ( unsigned int currentTime)
overrideprotectedvirtual

Reimplemented from CGUIButtonControl.

◆ RecalcRightLabelPosition()

void CGUIEditControl::RecalcRightLabelPosition ( )
protected

Recalculate the text offset position for the right label by updating m_textOffset and validate the cursor position.

◆ RenderText()

void CGUIEditControl::RenderText ( )
overrideprotectedvirtual

Reimplemented from CGUIButtonControl.

◆ ResetCursor()

void CGUIEditControl::ResetCursor ( )
protected

Reset the cursor aspect to normal input (i.e. not composing a key)

◆ SetCursorPosition()

void CGUIEditControl::SetCursorPosition ( unsigned int iPosition)

◆ SetFocus()

void CGUIEditControl::SetFocus ( bool focus)
overrideprotectedvirtual

Reimplemented from CGUIControl.

◆ SetHint()

void CGUIEditControl::SetHint ( const KODI::GUILIB::GUIINFO::CGUIInfoLabel & hint)

◆ SetInputType()

void CGUIEditControl::SetInputType ( CGUIEditControl::INPUT_TYPE type,
const CVariant & heading )
Todo
Verify the current input string?

◆ SetInputValidation()

void CGUIEditControl::SetInputValidation ( StringValidation::Validator inputValidator,
void * data = NULL )
virtual

◆ SetLabel()

void CGUIEditControl::SetLabel ( const std::string & text)
overridevirtual

Reimplemented from CGUIButtonControl.

◆ SetLabel2()

void CGUIEditControl::SetLabel2 ( const std::string & text)
overridevirtual

Reimplemented from CGUIButtonControl.

◆ SetStyledText()

bool CGUIEditControl::SetStyledText ( const std::wstring & text)
protected

◆ SetTextChangeActions()

void CGUIEditControl::SetTextChangeActions ( const CGUIAction & textChangeActions)
inline

◆ UpdateText()

void CGUIEditControl::UpdateText ( bool sendUpdate = true)
protected

◆ ValidateCursor()

void CGUIEditControl::ValidateCursor ( )
protected

◆ ValidateInput() [1/2]

void CGUIEditControl::ValidateInput ( )
protected

◆ ValidateInput() [2/2]

bool CGUIEditControl::ValidateInput ( const std::wstring & data) const
protectedvirtual

Member Data Documentation

◆ m_clipRect

CRect CGUIEditControl::m_clipRect
protected

clipping rect for the second label

◆ m_cursorBlink

unsigned int CGUIEditControl::m_cursorBlink
protected

◆ m_cursorBlinkEnabled

bool CGUIEditControl::m_cursorBlinkEnabled {true}
protected

◆ m_cursorChars

std::vector<std::uint32_t> CGUIEditControl::m_cursorChars {'|'}
protected

◆ m_cursorCharsBuffer

std::vector<std::uint32_t> CGUIEditControl::m_cursorCharsBuffer {}
protected

◆ m_cursorPos

unsigned int CGUIEditControl::m_cursorPos
protected

◆ m_edit

std::wstring CGUIEditControl::m_edit
protected

◆ m_editLength

int CGUIEditControl::m_editLength
protected

◆ m_editOffset

int CGUIEditControl::m_editOffset
protected

◆ m_hintInfo

KODI::GUILIB::GUIINFO::CGUIInfoLabel CGUIEditControl::m_hintInfo
protected

◆ m_inputHeading

std::string CGUIEditControl::m_inputHeading
protected

◆ m_inputType

INPUT_TYPE CGUIEditControl::m_inputType
protected

◆ m_inputValidator

StringValidation::Validator CGUIEditControl::m_inputValidator
protected

◆ m_inputValidatorData

void* CGUIEditControl::m_inputValidatorData
protected

◆ m_invalidInput

bool CGUIEditControl::m_invalidInput
protected

◆ m_isMD5

bool CGUIEditControl::m_isMD5
protected

◆ m_smsKeyIndex

unsigned int CGUIEditControl::m_smsKeyIndex
protected

◆ m_smsLastKey

unsigned int CGUIEditControl::m_smsLastKey
protected

◆ m_smsTimer

CStopWatch CGUIEditControl::m_smsTimer
protected

◆ m_text

std::string CGUIEditControl::m_text
protected

◆ m_text2

std::wstring CGUIEditControl::m_text2
protected

◆ m_textChangeActions

CGUIAction CGUIEditControl::m_textChangeActions
protected

◆ m_textOffset

float CGUIEditControl::m_textOffset
protected

The documentation for this class was generated from the following files: