Applied patch [ 1185219 ] maxlength property for xrc textctrl
[wxWidgets.git] / src / xrc / xh_text.cpp
1 /////////////////////////////////////////////////////////////////////////////
2 // Name: xh_text.cpp
3 // Purpose: XRC resource for wxTextCtrl
4 // Author: Aleksandras Gluchovas
5 // Created: 2000/03/21
6 // RCS-ID: $Id$
7 // Copyright: (c) 2000 Aleksandras Gluchovas
8 // Licence: wxWindows licence
9 /////////////////////////////////////////////////////////////////////////////
10
11 #if defined(__GNUG__) && !defined(NO_GCC_PRAGMA)
12 #pragma implementation "xh_text.h"
13 #endif
14
15 // For compilers that support precompilation, includes "wx.h".
16 #include "wx/wxprec.h"
17
18 #ifdef __BORLANDC__
19 #pragma hdrstop
20 #endif
21
22 #if wxUSE_XRC
23
24 #include "wx/xrc/xh_text.h"
25 #include "wx/textctrl.h"
26
27 IMPLEMENT_DYNAMIC_CLASS(wxTextCtrlXmlHandler, wxXmlResourceHandler)
28
29 wxTextCtrlXmlHandler::wxTextCtrlXmlHandler() : wxXmlResourceHandler()
30 {
31 XRC_ADD_STYLE(wxTE_NO_VSCROLL);
32 XRC_ADD_STYLE(wxTE_AUTO_SCROLL);
33 XRC_ADD_STYLE(wxTE_PROCESS_ENTER);
34 XRC_ADD_STYLE(wxTE_PROCESS_TAB);
35 XRC_ADD_STYLE(wxTE_MULTILINE);
36 XRC_ADD_STYLE(wxTE_PASSWORD);
37 XRC_ADD_STYLE(wxTE_READONLY);
38 XRC_ADD_STYLE(wxHSCROLL);
39 XRC_ADD_STYLE(wxTE_RICH);
40 XRC_ADD_STYLE(wxTE_RICH2);
41 XRC_ADD_STYLE(wxTE_AUTO_URL);
42 XRC_ADD_STYLE(wxTE_NOHIDESEL);
43 XRC_ADD_STYLE(wxTE_LEFT);
44 XRC_ADD_STYLE(wxTE_CENTRE);
45 XRC_ADD_STYLE(wxTE_RIGHT);
46 XRC_ADD_STYLE(wxTE_DONTWRAP);
47 XRC_ADD_STYLE(wxTE_LINEWRAP);
48 XRC_ADD_STYLE(wxTE_WORDWRAP);
49 AddWindowStyles();
50 }
51
52 wxObject *wxTextCtrlXmlHandler::DoCreateResource()
53 {
54 XRC_MAKE_INSTANCE(text, wxTextCtrl)
55
56 text->Create(m_parentAsWindow,
57 GetID(),
58 GetText(wxT("value")),
59 GetPosition(), GetSize(),
60 GetStyle(),
61 wxDefaultValidator,
62 GetName());
63
64 SetupWindow(text);
65
66 if (HasParam(wxT("maxlength")))
67 text->SetMaxLength(GetLong(wxT("maxlength")));
68
69 return text;
70 }
71
72 bool wxTextCtrlXmlHandler::CanHandle(wxXmlNode *node)
73 {
74 return IsOfClass(node, wxT("wxTextCtrl"));
75 }
76
77 #endif // wxUSE_XRC