#ifndef _WX_TEXTCTRL_H_
#define _WX_TEXTCTRL_H_
-#if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
- #pragma interface "textctrl.h"
-#endif
-
class WXDLLEXPORT wxTextCtrl : public wxTextCtrlBase
{
public:
virtual void SetInsertionPoint(long pos);
virtual void SetInsertionPointEnd();
virtual long GetInsertionPoint() const;
- virtual long GetLastPosition() const;
+ virtual wxTextPos GetLastPosition() const;
virtual void SetSelection(long from, long to);
virtual void SetEditable(bool editable);
virtual void Command(wxCommandEvent& event);
virtual bool MSWCommand(WXUINT param, WXWORD id);
- virtual WXHBRUSH OnCtlColor(WXHDC pDC, WXHWND pWnd, WXUINT nCtlColor,
- WXUINT message, WXWPARAM wParam, WXLPARAM lParam);
+ virtual WXHBRUSH MSWControlColor(WXHDC hDC, WXHWND hWnd);
#if wxUSE_RICHEDIT
virtual bool MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result);
// Show a context menu for Rich Edit controls (the standard
// EDIT control has one already)
- void OnRightClick(wxMouseEvent& event);
+ void OnContextMenu(wxContextMenuEvent& event);
// be sure the caret remains invisible if the user
// called HideNativeCaret() before
// intercept WM_GETDLGCODE
virtual WXLRESULT MSWWindowProc(WXUINT nMsg, WXWPARAM wParam, WXLPARAM lParam);
+ // return true if this control has a user-set limit on amount of text (i.e.
+ // the limit is due to a previous call to SetMaxLength() and not built in)
+ bool HasSpaceLimit(unsigned int *len) const;
+
// call this to increase the size limit (will do nothing if the current
// limit is big enough)
//
int m_verRichEdit;
#endif // wxUSE_RICHEDIT
- // if true, SendUpdateEvent() will eat the next event (see comments in the
- // code as to why this is needed)
- bool m_suppressNextUpdate;
+ // number of EN_UPDATE events sent by Windows when we change the controls
+ // text ourselves: we want this to be exactly 1
+ int m_updatesCount;
virtual wxVisualAttributes GetDefaultAttributes() const;
wxMenu* m_privateContextMenu;
bool m_isNativeCaretShown;
-
- // this is an optimization: instead of checking all the time whether we
- // need to move the caret to the end of text (before appending to the
- // control), we remember whether it is already at the end of text in this
- // variable
- bool m_isCaretAtEnd;
};
#endif