xref: /trunk/main/dbaccess/source/ui/inc/FieldControls.hxx (revision cdf0e10c4e3984b49a9502b011690b615761d4a3)
1 /*************************************************************************
2  *
3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4  *
5  * Copyright 2000, 2010 Oracle and/or its affiliates.
6  *
7  * OpenOffice.org - a multi-platform office productivity suite
8  *
9  * This file is part of OpenOffice.org.
10  *
11  * OpenOffice.org is free software: you can redistribute it and/or modify
12  * it under the terms of the GNU Lesser General Public License version 3
13  * only, as published by the Free Software Foundation.
14  *
15  * OpenOffice.org is distributed in the hope that it will be useful,
16  * but WITHOUT ANY WARRANTY; without even the implied warranty of
17  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
18  * GNU Lesser General Public License version 3 for more details
19  * (a copy is included in the LICENSE file that accompanied this code).
20  *
21  * You should have received a copy of the GNU Lesser General Public License
22  * version 3 along with OpenOffice.org.  If not, see
23  * <http://www.openoffice.org/license.html>
24  * for a copy of the LGPLv3 License.
25  *
26  ************************************************************************/
27 #ifndef DBAUI_FIELDCONTROLS_HXX
28 #define DBAUI_FIELDCONTROLS_HXX
29 
30 #ifndef _SV_FIELD_HXX
31 #include <vcl/field.hxx>
32 #endif
33 #ifndef _SV_LSTBOX_HXX
34 #include <vcl/lstbox.hxx>
35 #endif
36 #ifndef _SV_SVAPP_HXX
37 #include <vcl/svapp.hxx>
38 #endif
39 #ifndef DBAUI_SQLNAMEEDIT_HXX
40 #include "SqlNameEdit.hxx"
41 #endif
42 #ifndef _DBAUI_MODULE_DBU_HXX_
43 #include "moduledbu.hxx"
44 #endif
45 
46 
47 namespace dbaui
48 {
49     namespace
50     {
51         void lcl_setSpecialReadOnly( sal_Bool _bReadOnly, Window* _pWin )
52         {
53             StyleSettings aSystemStyle = Application::GetSettings().GetStyleSettings();
54             const Color& rNewColor = _bReadOnly ? aSystemStyle.GetDialogColor() : aSystemStyle.GetFieldColor();
55             _pWin->SetBackground(Wallpaper(rNewColor));
56             _pWin->SetControlBackground(rNewColor);
57         }
58     }
59 
60     //==================================================================
61     class OPropColumnEditCtrl : public OSQLNameEdit
62     {
63         OModuleClient m_aModuleClient;
64         short                m_nPos;
65         String               m_strHelpText;
66     public:
67         inline OPropColumnEditCtrl(Window* pParent, ::rtl::OUString& _rAllowedChars, sal_uInt16 nHelpId, short nPosition = -1, WinBits nWinStyle = 0);
68 
69         inline sal_Bool IsModified() const { return GetText() != GetSavedValue(); }
70 
71         short GetPos() const { return m_nPos; }
72         String GetHelp() const { return m_strHelpText; }
73 
74         virtual void SetSpecialReadOnly(sal_Bool _bReadOnly)
75         {
76             SetReadOnly(_bReadOnly);
77             lcl_setSpecialReadOnly(_bReadOnly,this);
78         }
79     };
80     inline OPropColumnEditCtrl::OPropColumnEditCtrl(Window* pParent,
81                                                     ::rtl::OUString& _rAllowedChars,
82                                                     sal_uInt16 nHelpId,
83                                                     short nPosition,
84                                                     WinBits nWinStyle)
85         :OSQLNameEdit(pParent, _rAllowedChars,nWinStyle)
86         ,m_nPos(nPosition)
87     {
88         m_strHelpText=String(ModuleRes(nHelpId));
89     }
90     //==================================================================
91     class OPropEditCtrl :   public Edit
92     {
93         OModuleClient m_aModuleClient;
94         short                m_nPos;
95         String               m_strHelpText;
96 
97     public:
98         inline OPropEditCtrl(Window* pParent, sal_uInt16 nHelpId, short nPosition = -1, WinBits nWinStyle = 0);
99         inline OPropEditCtrl(Window* pParent, sal_uInt16 nHelpId, const ResId& _rRes,short nPosition = -1);
100 
101         inline sal_Bool IsModified() const { return GetText() != GetSavedValue(); }
102 
103         short GetPos() const { return m_nPos; }
104         String GetHelp() const { return m_strHelpText; }
105 
106         virtual void SetSpecialReadOnly(sal_Bool _bReadOnly)
107         {
108             SetReadOnly(_bReadOnly);
109             lcl_setSpecialReadOnly(_bReadOnly,this);
110         }
111     };
112 
113     inline OPropEditCtrl::OPropEditCtrl(Window* pParent, sal_uInt16 nHelpId, short nPosition, WinBits nWinStyle)
114         :Edit(pParent, nWinStyle)
115         ,m_nPos(nPosition)
116     {
117         m_strHelpText =String(ModuleRes(nHelpId));
118     }
119     inline OPropEditCtrl::OPropEditCtrl(Window* pParent, sal_uInt16 nHelpId, const ResId& _rRes,short nPosition)
120         :Edit(pParent, _rRes)
121         ,m_nPos(nPosition)
122     {
123         m_strHelpText =String(ModuleRes(nHelpId));
124     }
125 
126     //==================================================================
127     class OPropNumericEditCtrl : public NumericField
128     {
129         short   m_nPos;
130         String  m_strHelpText;
131 
132     public:
133         inline OPropNumericEditCtrl(Window* pParent, sal_uInt16 nHelpId, short nPosition = -1, WinBits nWinStyle = 0);
134         inline OPropNumericEditCtrl(Window* pParent, sal_uInt16 nHelpId, const ResId& _rRes,short nPosition = -1);
135 
136         inline sal_Bool IsModified() const { return GetText() != GetSavedValue(); }
137 
138         short GetPos() const { return m_nPos; }
139         String GetHelp() const { return m_strHelpText; }
140 
141         virtual void SetSpecialReadOnly(sal_Bool _bReadOnly)
142         {
143             SetReadOnly(_bReadOnly);
144             lcl_setSpecialReadOnly(_bReadOnly,this);
145         }
146     };
147 
148     inline OPropNumericEditCtrl::OPropNumericEditCtrl(Window* pParent, sal_uInt16 nHelpId, short nPosition, WinBits nWinStyle)
149         :NumericField(pParent, nWinStyle)
150         ,m_nPos(nPosition)
151     {
152         m_strHelpText =String(ModuleRes(nHelpId));
153     }
154     inline OPropNumericEditCtrl::OPropNumericEditCtrl(Window* pParent, sal_uInt16 nHelpId, const ResId& _rRes,short nPosition)
155         :NumericField(pParent, _rRes)
156         ,m_nPos(nPosition)
157     {
158         m_strHelpText =String(ModuleRes(nHelpId));
159     }
160 
161     //==================================================================
162     class OPropListBoxCtrl : public ListBox
163     {
164         short   m_nPos;
165         String  m_strHelpText;
166 
167     public:
168         inline OPropListBoxCtrl(Window* pParent, sal_uInt16 nHelpId, short nPosition = -1, WinBits nWinStyle = 0);
169         inline OPropListBoxCtrl(Window* pParent, sal_uInt16 nHelpId, const ResId& _rRes,short nPosition = -1);
170 
171         inline sal_Bool IsModified() const { return GetSelectEntryPos() != GetSavedValue(); }
172 
173         short GetPos() const { return m_nPos; }
174         String GetHelp() const { return m_strHelpText; }
175 
176         virtual void SetSpecialReadOnly(sal_Bool _bReadOnly)
177         {
178             SetReadOnly(_bReadOnly);
179             lcl_setSpecialReadOnly(_bReadOnly,this);
180         }
181     };
182 
183     inline OPropListBoxCtrl::OPropListBoxCtrl(Window* pParent, sal_uInt16 nHelpId, short nPosition, WinBits nWinStyle)
184         :ListBox(pParent, nWinStyle)
185         ,m_nPos(nPosition)
186     {
187         m_strHelpText =String(ModuleRes(nHelpId));
188     }
189     inline OPropListBoxCtrl::OPropListBoxCtrl(Window* pParent, sal_uInt16 nHelpId, const ResId& _rRes,short nPosition)
190         :ListBox(pParent, _rRes)
191         ,m_nPos(nPosition)
192     {
193         m_strHelpText =String(ModuleRes(nHelpId));
194     }
195 }
196 #endif // DBAUI_FIELDCONTROLS_HXX
197 
198 
199 
200