You.i Engine
YiPasswordTextEditView.h
Go to the documentation of this file.
1 // © You i Labs Inc. 2000-2017. All rights reserved.
2 #ifndef _YI_PASSWORD_TEXT_EDIT_VIEW_H_
3 #define _YI_PASSWORD_TEXT_EDIT_VIEW_H_
4 
5 #include "utility/YiTimer.h"
6 #include "view/YiTextEditView.h"
7 
30 {
31 public:
32 
34  virtual ~CYIPasswordTextEditView();
35 
41  char32_t GetMaskCharacter() const;
42 
48  uint64_t GetCharacterShowTime();
49 
55  void SetMaskCharacter(char32_t maskCharacter);
56 
64  void SetCharacterShowTime(uint64_t uTimeMs);
65 
73  void EnableMasking(bool bMaskChars);
74 
80  bool IsMaskingEnabled() const;
81 
82  // Overrides from CYITextEditView
83  virtual bool Init() override;
84  virtual void SetValue(CYIString text) override;
85  virtual bool OnTextDeleted(int32_t nBeforeCursor, int32_t nAfterCursor) override;
86  virtual void OnTextReplaced(const CYIString &text, int32_t nCursor) override;
87  virtual void OnCursorPositionChanged(int32_t nCursor) override;
88 
89  virtual bool OnTextPasted(const CYIString &pText) override;
90  virtual bool HandleEvent(const std::shared_ptr<CYIEventDispatcher> &pDispatcher, CYIEvent *pEvent) override;
91 
92 protected:
96  virtual void UpdateTextView() override;
97 
103  void UpdateTextView(bool bShowLastChar);
104 
108  void HideLastCharacter();
109 
113  CYIString GetMaskedText(const CYIString &text, bool bShowLastChar) const;
114 
115 private:
116  bool m_bMaskingEnabled;
117  CYITimer m_lastCharacterShowTimer;
118  CYIString m_maskCharacter;
119 
121 };
122 
125 #endif // _YI_PASSWORD_TEXT_EDIT_VIEW_H_
void EnableMasking(bool bMaskChars)
virtual bool OnTextDeleted(int32_t nBeforeCursor, int32_t nAfterCursor) override
virtual void OnCursorPositionChanged(int32_t nCursor) override
Base class for events.
Definition: YiEvent.h:489
Container class for Unicode strings. Conceptually, a CYIString object is a sequence of Unicode charac...
Definition: YiString.h:35
char32_t GetMaskCharacter() const
A CYITextEditView implementation which masks its contents.
Definition: YiPasswordTextEditView.h:29
#define YI_TYPE_BASES(...)
Definition: YiRtti.h:350
virtual void SetValue(CYIString text) override
virtual bool HandleEvent(const std::shared_ptr< CYIEventDispatcher > &pDispatcher, CYIEvent *pEvent) override
CYIString GetMaskedText(const CYIString &text, bool bShowLastChar) const
A low-precision timer driven by the update loop.
Definition: YiTimer.h:29
void SetMaskCharacter(char32_t maskCharacter)
virtual bool Init() override
virtual void OnTextReplaced(const CYIString &text, int32_t nCursor) override
void SetCharacterShowTime(uint64_t uTimeMs)
uint64_t GetCharacterShowTime()
Displays text to the user and allows them to edit it.
Definition: YiTextEditView.h:50
bool IsMaskingEnabled() const
virtual void UpdateTextView() override
virtual ~CYIPasswordTextEditView()
virtual bool OnTextPasted(const CYIString &pText) override