Mercurial > ecos
annotate host/tools/configtool/standalone/wxwin/configitem.cpp @ 2294:4a8aaf2d79cf
* standalone/wxwin/configitem.cpp: Allow full 32-bit signed integer range
when editing CDL items using the ecIntegerEditorCtrl.
| author | jld |
|---|---|
| date | Mon, 11 Sep 2006 10:48:53 +0000 |
| parents | 0d0f03f76f6a |
| children | 663ef593022e |
| rev | line source |
|---|---|
|
160
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1 //####COPYRIGHTBEGIN#### |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
2 // |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
3 // ---------------------------------------------------------------------------- |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
4 // Copyright (C) 1998, 1999, 2000 Red Hat, Inc. |
|
2294
4a8aaf2d79cf
* standalone/wxwin/configitem.cpp: Allow full 32-bit signed integer range
jld
parents:
160
diff
changeset
|
5 // Copyright (C) 2006 eCosCentric Limited |
|
160
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
6 // |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
7 // This program is part of the eCos host tools. |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
8 // |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
9 // This program is free software; you can redistribute it and/or modify it |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
10 // under the terms of the GNU General Public License as published by the Free |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
11 // Software Foundation; either version 2 of the License, or (at your option) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
12 // any later version. |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
13 // |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
14 // This program is distributed in the hope that it will be useful, but WITHOUT |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
15 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
16 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
17 // more details. |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
18 // |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
19 // You should have received a copy of the GNU General Public License along with |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
20 // this program; if not, write to the Free Software Foundation, Inc., |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
21 // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
22 // |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
23 // ---------------------------------------------------------------------------- |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
24 // |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
25 //####COPYRIGHTEND#### |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
26 // configitem.cpp : |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
27 // |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
28 //=========================================================================== |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
29 //#####DESCRIPTIONBEGIN#### |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
30 // |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
31 // Author(s): julians |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
32 // Contact(s): julians |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
33 // Date: 2000/09/01 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
34 // Version: $Id: configitem.cpp,v 1.10 2001/04/30 17:12:32 julians Exp $ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
35 // Purpose: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
36 // Description: Implementation file for the ConfigTool application class |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
37 // Requires: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
38 // Provides: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
39 // See also: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
40 // Known bugs: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
41 // Usage: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
42 // |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
43 //####DESCRIPTIONEND#### |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
44 // |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
45 //=========================================================================== |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
46 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
47 // ============================================================================ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
48 // declarations |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
49 // ============================================================================ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
50 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
51 // ---------------------------------------------------------------------------- |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
52 // headers |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
53 // ---------------------------------------------------------------------------- |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
54 #ifdef __GNUG__ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
55 #pragma implementation "configitem.h" |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
56 #endif |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
57 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
58 // Includes other headers for precompiled compilation |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
59 #include "ecpch.h" |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
60 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
61 #ifdef __BORLANDC__ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
62 #pragma hdrstop |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
63 #endif |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
64 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
65 #include "wx/settings.h" |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
66 #include "wx/valgen.h" |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
67 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
68 #include "configitem.h" |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
69 #include "configtree.h" |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
70 #include "configtooldoc.h" |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
71 #include "configtoolview.h" |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
72 #include "ecutils.h" |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
73 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
74 IMPLEMENT_CLASS(ecConfigItem, wxObject) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
75 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
76 /* |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
77 * ecConfigItem |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
78 * Represents a node in the configuration hierarchy. |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
79 * For every ecConfigItem, there is also an ecTreeItemData |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
80 * that points to it. |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
81 */ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
82 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
83 ecConfigItem::ecConfigItem(ecConfigItem* parent, const wxString& name, ecConfigType ctype, |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
84 ecOptionFlavor flavor, ecOptionType otype, |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
85 bool active, bool enabled, ecUIHint hint) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
86 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
87 m_CdlItem = NULL; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
88 m_name = name; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
89 m_configType = ctype; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
90 m_optionType = otype; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
91 m_optionFlavor = flavor; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
92 m_enabled = enabled; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
93 m_active = active; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
94 m_parent = parent; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
95 m_hint = hint; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
96 m_treeItem = wxTreeItemId(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
97 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
98 switch (otype) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
99 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
100 case ecDouble: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
101 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
102 m_value = 0.0; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
103 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
104 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
105 case ecString: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
106 case ecEnumerated: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
107 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
108 m_value = wxT(""); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
109 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
110 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
111 case ecLong: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
112 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
113 m_value = (long) 0; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
114 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
115 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
116 case ecBool: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
117 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
118 m_value = (bool) FALSE; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
119 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
120 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
121 default: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
122 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
123 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
124 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
125 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
126 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
127 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
128 ecConfigItem::ecConfigItem(ecConfigItem* parent, CdlUserVisible vitem) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
129 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
130 m_name = wxT("UNNAMED"); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
131 m_configType = ecConfigTypeNone; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
132 m_optionType = ecOptionTypeNone; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
133 m_optionFlavor = ecFlavorNone; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
134 m_enabled = FALSE; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
135 m_active = FALSE; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
136 m_parent = parent; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
137 m_CdlItem = vitem; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
138 m_hint = ecHintNone; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
139 m_treeItem = wxTreeItemId(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
140 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
141 ecConfigTreeCtrl* treeCtrl = wxGetApp().GetTreeCtrl(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
142 m_treeItem = treeCtrl->AppendItem(parent->GetTreeItem(), m_name, -1, -1, new ecTreeItemData(this)); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
143 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
144 ConvertFromCdl(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
145 UpdateTreeItem(* treeCtrl); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
146 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
147 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
148 ecConfigItem::~ecConfigItem() |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
149 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
150 // Make sure that the tree item no longer references this object |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
151 ecConfigTreeCtrl* treeCtrl = wxGetApp().GetTreeCtrl(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
152 if (m_treeItem && treeCtrl) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
153 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
154 ecTreeItemData* data = (ecTreeItemData*) treeCtrl->GetItemData(m_treeItem); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
155 data->SetConfigItem(NULL); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
156 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
157 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
158 ecConfigToolDoc* doc = wxGetApp().GetConfigToolDoc(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
159 if (doc) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
160 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
161 doc->GetItems().DeleteObject(this); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
162 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
163 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
164 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
165 // Convert from Cdl to internal representation |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
166 bool ecConfigItem::ConvertFromCdl() |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
167 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
168 if (!GetCdlItem()) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
169 return FALSE; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
170 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
171 m_name = GetCdlItem()->get_display ().c_str (); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
172 m_macro = GetCdlItem()->get_name().c_str(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
173 m_strDescr = ecUtils::StripExtraWhitespace (wxString (GetCdlItem()->get_description ().c_str ())); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
174 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
175 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
176 // FIXME: re-implement using CdlValuableBody::get_widget_hint() |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
177 // (comment from original MFC configtool) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
178 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
179 if (IsPackage()) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
180 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
181 // If a package item, display the package version string |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
182 m_optionType = ecString; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
183 m_configType = ecPackage; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
184 m_optionFlavor = ecFlavorNone; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
185 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
186 else |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
187 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
188 const CdlValuable valuable = dynamic_cast<CdlValuable> (GetCdlItem()); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
189 switch (valuable->get_flavor ()){ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
190 case CdlValueFlavor_None: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
191 m_optionFlavor = ecFlavorNone; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
192 m_optionType=ecOptionTypeNone; //??? Shouldn't it be ecBool for CdlValueFlavor_Bool? |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
193 m_configType = ecContainer; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
194 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
195 case CdlValueFlavor_Bool: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
196 m_optionFlavor = ecFlavorBool; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
197 m_optionType=ecOptionTypeNone; //??? Shouldn't it be ecBool for CdlValueFlavor_Bool? |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
198 m_configType = ecOption; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
199 m_hint = (HasRadio() ? ecHintRadio : ecHintCheck); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
200 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
201 case CdlValueFlavor_Data: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
202 case CdlValueFlavor_BoolData: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
203 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
204 m_optionFlavor = (valuable->get_flavor() == CdlValueFlavor_Data ? ecFlavorData : ecFlavorBoolData); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
205 m_configType = ecOption; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
206 m_hint = (HasRadio() ? ecHintRadio : ecHintCheck); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
207 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
208 if (! valuable->has_legal_values ()) { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
209 m_optionType=ecString; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
210 } else if (0 == valuable->get_legal_values ()->ranges.size ()) { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
211 m_optionType=ecEnumerated; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
212 } else { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
213 CdlListValue list_value; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
214 CdlEvalContext context (NULL, valuable, valuable->get_property (CdlPropertyId_LegalValues)); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
215 valuable->get_legal_values ()->eval (context, list_value); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
216 m_optionType=list_value.get_double_ranges ().size () ? ecDouble : ecLong; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
217 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
218 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
219 default: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
220 wxASSERT (0); // specified flavor not supported |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
221 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
222 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
223 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
224 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
225 m_active = IsActive(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
226 m_enabled = IsEnabled(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
227 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
228 return TRUE; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
229 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
230 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
231 wxString ecConfigItem::GetItemNameOrMacro() const |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
232 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
233 return (wxGetApp().GetSettings().m_showMacroNames && !GetMacro().IsEmpty() ? GetMacro() : GetName()); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
234 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
235 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
236 // Sets the text and icon for this item |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
237 bool ecConfigItem::UpdateTreeItem(ecConfigTreeCtrl& treeCtrl) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
238 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
239 treeCtrl.SetItemText(m_treeItem, m_name); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
240 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
241 static wxColour normalColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_WINDOWTEXT); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
242 static wxColour disabledColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_GRAYTEXT); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
243 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
244 treeCtrl.SetItemTextColour(m_treeItem, GetActive() ? normalColour : disabledColour); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
245 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
246 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
247 // Find which icon state we're in so we can get the appropriate icon id |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
248 int iconState = 0; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
249 wxString iconName; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
250 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
251 switch (GetConfigType()) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
252 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
253 case ecContainer: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
254 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
255 iconName = _("Container"); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
256 iconState = 0; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
257 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
258 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
259 case ecPackage: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
260 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
261 iconName = _("Package"); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
262 iconState = 0; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
263 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
264 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
265 case ecComponent: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
266 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
267 iconName = _("??"); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
268 iconState = 0; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
269 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
270 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
271 case ecOption: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
272 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
273 if (GetOptionFlavor() == ecFlavorData) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
274 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
275 switch (GetOptionType()) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
276 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
277 case ecDouble: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
278 case ecLong: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
279 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
280 iconName = _("Integer"); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
281 iconState = 0; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
282 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
283 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
284 case ecEnumerated: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
285 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
286 iconName = _("Enumerated"); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
287 iconState = 0; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
288 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
289 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
290 case ecString: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
291 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
292 iconName = _("Text"); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
293 iconState = 0; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
294 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
295 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
296 // ??? Actually I don't think there's such a think as ecBool type, only enabled/disabled |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
297 case ecBool: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
298 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
299 if (GetUIHint() == ecHintCheck) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
300 iconName = _("Checkbox"); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
301 else |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
302 iconName = _("Radiobox"); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
303 iconState = (m_value.GetBool() ? 0 : 1); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
304 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
305 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
306 default: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
307 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
308 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
309 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
310 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
311 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
312 if (GetOptionFlavor() == ecFlavorBoolData || GetOptionFlavor() == ecFlavorBool) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
313 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
314 if (GetUIHint() == ecHintCheck) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
315 iconName = _("Checkbox"); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
316 else |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
317 iconName = _("Radiobox"); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
318 iconState = (m_enabled ? 0 : 1); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
319 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
320 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
321 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
322 default: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
323 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
324 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
325 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
326 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
327 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
328 if (!iconName.IsEmpty()) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
329 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
330 int iconId = treeCtrl.GetIconDB().GetIconId(iconName, iconState, GetActive()); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
331 treeCtrl.SetItemImage(m_treeItem, iconId, wxTreeItemIcon_Normal); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
332 treeCtrl.SetItemImage(m_treeItem, iconId, wxTreeItemIcon_Selected); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
333 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
334 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
335 return TRUE; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
336 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
337 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
338 // Handle a left click on the icon: e.g. (un)check the option |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
339 // In the old MFC tool, this was handled by CControlView::Bump |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
340 void ecConfigItem::OnIconLeftDown(ecConfigTreeCtrl& treeCtrl) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
341 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
342 if (GetConfigType() != ecOption) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
343 return; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
344 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
345 switch (GetOptionFlavor()) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
346 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
347 case ecFlavorBool: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
348 case ecFlavorBoolData: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
349 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
350 if (GetActive()) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
351 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
352 wxGetApp().GetConfigToolDoc()->SetEnabled(*this, !m_enabled); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
353 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
354 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
355 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
356 case ecFlavorData: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
357 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
358 if (GetActive()) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
359 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
360 switch (GetOptionType()) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
361 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
362 case ecLong: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
363 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
364 int nInc = 1; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
365 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
366 long nOldValue = Value(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
367 if(nInc==1 && nOldValue == long(-1)) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
368 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
369 nOldValue=0; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
370 } else if(nInc==-1 && nOldValue==0){ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
371 nOldValue = long(-1); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
372 } else { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
373 nOldValue+=nInc; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
374 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
375 wxGetApp().GetConfigToolDoc()->SetValue(*this, nOldValue); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
376 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
377 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
378 case ecEnumerated: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
379 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
380 int nInc = 1; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
381 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
382 wxArrayString arEnum; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
383 EvalEnumStrings (arEnum); // calculate legal values just in time |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
384 if (0 == arEnum.GetCount()) // if no legal values... |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
385 break; // ...do nothing |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
386 int nIndex = -1; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
387 const wxString strCurrent = StringValue (); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
388 int nEnum; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
389 for (nEnum = 0; (nEnum < arEnum.GetCount()) && (nIndex == -1); nEnum++) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
390 if (0 == arEnum[nEnum].CompareTo (strCurrent)) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
391 nIndex = nEnum; // the index of the current value |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
392 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
393 if (nIndex != -1) // if the current value is still legal |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
394 nIndex += (nInc < 0 ? -1 : 1); // increment/decrement the index |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
395 else |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
396 nIndex = 0; // otherwise select the first enum |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
397 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
398 if (nIndex < 0) // if the new index is negative |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
399 nIndex = arEnum.GetCount()-1; // make it positive |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
400 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
401 wxGetApp().GetConfigToolDoc()->SetValue(*this, arEnum[nIndex % arEnum.GetCount()]); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
402 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
403 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
404 default: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
405 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
406 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
407 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
408 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
409 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
410 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
411 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
412 default: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
413 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
414 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
415 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
416 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
417 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
418 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
419 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
420 // Gets the value to display (often an empty string) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
421 wxString ecConfigItem::GetDisplayValue() const |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
422 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
423 wxString str; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
424 switch(GetOptionType()) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
425 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
426 case ecEnumerated: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
427 case ecLong: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
428 case ecDouble: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
429 case ecString: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
430 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
431 if (GetCdlValuable()) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
432 str = StringValue(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
433 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
434 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
435 default: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
436 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
437 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
438 return str; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
439 #if 0 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
440 switch (GetConfigType()) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
441 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
442 case ecComponent: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
443 case ecContainer: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
444 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
445 return wxEmptyString; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
446 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
447 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
448 case ecPackage: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
449 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
450 return m_value.GetString(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
451 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
452 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
453 case ecOption: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
454 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
455 switch (GetOptionType()) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
456 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
457 case ecDouble: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
458 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
459 wxString val; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
460 val.Printf("%.4lf", (double) m_value.GetDouble()); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
461 return val; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
462 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
463 case ecLong: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
464 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
465 wxString val; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
466 val.Printf("%.ld", (long) m_value.GetLong()); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
467 return val; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
468 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
469 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
470 case ecEnumerated: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
471 case ecString: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
472 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
473 return m_value.GetString(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
474 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
475 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
476 case ecBool: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
477 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
478 return wxEmptyString; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
479 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
480 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
481 default: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
482 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
483 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
484 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
485 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
486 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
487 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
488 default: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
489 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
490 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
491 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
492 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
493 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
494 return wxEmptyString; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
495 #endif |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
496 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
497 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
498 // Can we start editing this item? |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
499 bool ecConfigItem::CanEdit() const |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
500 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
501 if (!GetActive()) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
502 return FALSE; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
503 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
504 if (GetConfigType() != ecOption) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
505 return FALSE; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
506 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
507 if (GetOptionFlavor() != ecFlavorData && GetOptionFlavor() != ecFlavorBoolData) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
508 return FALSE; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
509 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
510 // TODO: other criteria for editability |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
511 return TRUE; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
512 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
513 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
514 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
515 // Creates an edit window. It will be positioned by the caller. |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
516 wxWindow* ecConfigItem::CreateEditWindow(wxWindow* parent) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
517 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
518 wxWindow* window = NULL; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
519 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
520 switch(GetOptionType()) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
521 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
522 case ecEnumerated: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
523 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
524 window = new ecEnumEditorCtrl(parent, ecID_ITEM_EDIT_WINDOW, wxDefaultPosition, wxDefaultSize, |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
525 /* wxNO_BORDER */ 0); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
526 wxArrayString arEnumStrings; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
527 EvalEnumStrings(arEnumStrings); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
528 int i; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
529 for (i = 0; i < arEnumStrings.GetCount(); i++) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
530 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
531 ((ecEnumEditorCtrl*) window)->Append(arEnumStrings[i]); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
532 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
533 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
534 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
535 case ecLong: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
536 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
537 window = new ecIntegerEditorCtrl(parent, ecID_ITEM_EDIT_WINDOW, wxDefaultPosition, wxDefaultSize, |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
538 /* wxNO_BORDER | */ wxSP_ARROW_KEYS); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
539 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
540 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
541 case ecDouble: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
542 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
543 window = new ecDoubleEditorCtrl(parent, ecID_ITEM_EDIT_WINDOW, wxDefaultPosition, wxDefaultSize, |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
544 /* wxNO_BORDER|*/ wxTE_PROCESS_ENTER); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
545 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
546 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
547 case ecString: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
548 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
549 window = new ecTextEditorCtrl(parent, ecID_ITEM_EDIT_WINDOW, wxDefaultPosition, wxDefaultSize, |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
550 /* wxNO_BORDER|*/ wxTE_PROCESS_ENTER); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
551 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
552 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
553 default: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
554 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
555 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
556 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
557 wxASSERT (window != NULL) ; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
558 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
559 return window; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
560 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
561 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
562 // Transfers data between item and window |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
563 bool ecConfigItem::TransferDataToWindow(wxWindow* window) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
564 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
565 if (window->IsKindOf(CLASSINFO(ecTextEditorCtrl))) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
566 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
567 ecTextEditorCtrl* win = (ecTextEditorCtrl*) window; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
568 win->SetValue(GetDisplayValue()); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
569 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
570 else if (window->IsKindOf(CLASSINFO(ecDoubleEditorCtrl))) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
571 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
572 ecDoubleEditorCtrl* win = (ecDoubleEditorCtrl*) window; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
573 win->SetValue(GetDisplayValue()); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
574 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
575 else if (window->IsKindOf(CLASSINFO(ecEnumEditorCtrl))) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
576 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
577 ecEnumEditorCtrl* win = (ecEnumEditorCtrl*) window; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
578 win->SetStringSelection(GetDisplayValue()); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
579 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
580 else if (window->IsKindOf(CLASSINFO(ecIntegerEditorCtrl))) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
581 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
582 ecIntegerEditorCtrl* win = (ecIntegerEditorCtrl*) window; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
583 long i; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
584 ecUtils::StrToItemIntegerType(StringValue(), i); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
585 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
586 wxString val; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
587 val.Printf(wxT("%ld"), i); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
588 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
589 win->SetValue(val); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
590 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
591 return TRUE; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
592 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
593 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
594 bool ecConfigItem::TransferDataFromWindow(wxWindow* window) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
595 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
596 ecConfigToolDoc* doc = wxGetApp().GetConfigToolDoc(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
597 wxASSERT (doc != NULL); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
598 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
599 if (!doc) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
600 return FALSE; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
601 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
602 if (window->IsKindOf(CLASSINFO(ecTextEditorCtrl))) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
603 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
604 ecTextEditorCtrl* win = (ecTextEditorCtrl*) window; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
605 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
606 wxASSERT ( GetOptionType() == ecString ); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
607 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
608 // TODO: do checking |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
609 doc->SetValue(*this, win->GetValue()); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
610 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
611 else if (window->IsKindOf(CLASSINFO(ecDoubleEditorCtrl))) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
612 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
613 ecDoubleEditorCtrl* win = (ecDoubleEditorCtrl*) window; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
614 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
615 wxASSERT ( GetOptionType() == ecString ); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
616 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
617 // TODO: do checking |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
618 doc->SetValue(*this, atof(win->GetValue())); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
619 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
620 else if (window->IsKindOf(CLASSINFO(ecEnumEditorCtrl))) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
621 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
622 ecEnumEditorCtrl* win = (ecEnumEditorCtrl*) window; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
623 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
624 wxASSERT ( GetOptionType() == ecEnumerated ); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
625 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
626 // TODO: do checking |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
627 doc->SetValue(*this, win->GetStringSelection()); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
628 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
629 else if (window->IsKindOf(CLASSINFO(ecIntegerEditorCtrl))) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
630 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
631 ecIntegerEditorCtrl* win = (ecIntegerEditorCtrl*) window; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
632 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
633 wxASSERT ( GetOptionType() == ecLong ); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
634 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
635 // TODO: do checking |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
636 doc->SetValue(*this, (long) win->GetValue()); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
637 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
638 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
639 return TRUE; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
640 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
641 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
642 //// Taken from MFC version |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
643 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
644 const ecFileName ecConfigItem::GetFilename() const |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
645 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
646 wxString sep(wxFILE_SEP_PATH); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
647 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
648 ecFileName strFile; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
649 const CdlNode node = dynamic_cast<CdlNode> (m_CdlItem); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
650 if (node){ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
651 // get the package which owns the configuration item |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
652 const CdlPackage package = GetOwnerPackage(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
653 if (package){ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
654 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
655 // return the filename of the config header |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
656 wxString pkg(wxT("include")); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
657 pkg += sep; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
658 pkg += wxT("pkgconf"); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
659 strFile=ecFileName(wxGetApp().GetConfigToolDoc()->GetInstallTree()+sep+pkg) + package->get_config_header ().c_str (); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
660 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
661 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
662 return strFile; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
663 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
664 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
665 // Change version (of a package) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
666 bool ecConfigItem::ChangeVersion(const wxString &strVersion) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
667 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
668 bool rc=FALSE; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
669 CdlPackage package=dynamic_cast<CdlPackage>(GetCdlItem()); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
670 wxASSERT(package != 0); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
671 const CdlValuable valuable = GetCdlValuable(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
672 wxASSERT (valuable != 0); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
673 const wxString strMacroName(GetMacro()); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
674 if (strVersion != valuable->get_value ().c_str ()) { // if the wrong version is loaded |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
675 // TRACE (wxT("Changing package %s to version '%s'\n"), strMacroName, strVersion); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
676 try { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
677 wxGetApp().GetConfigToolDoc()->GetCdlConfig()->change_package_version (package, ecUtils::UnicodeToStdStr (strVersion), ecConfigToolDoc::CdlParseErrorHandler, ecConfigToolDoc::CdlParseWarningHandler); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
678 rc=TRUE; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
679 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
680 catch (CdlStringException exception) { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
681 wxString msg; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
682 msg.Printf(wxT("Error changing package %s to version '%s':\n\n%s"), (const wxChar*) strMacroName, (const wxChar*) strVersion, (const wxChar*) wxString (exception.get_message ().c_str ())) ; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
683 wxMessageBox(msg); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
684 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
685 catch (...) { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
686 wxString msg; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
687 msg.Printf(wxT("Error changing package %s to version '%s'"), (const wxChar*) strMacroName, (const wxChar*) strVersion) ; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
688 wxMessageBox(msg); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
689 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
690 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
691 return rc; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
692 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
693 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
694 // Unload (a package) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
695 bool ecConfigItem::Unload() |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
696 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
697 bool rc=FALSE; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
698 CdlPackage package=dynamic_cast<CdlPackage>(GetCdlItem()); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
699 wxASSERT(package); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
700 ecConfigToolDoc* pDoc=wxGetApp().GetConfigToolDoc(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
701 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
702 // Remove its objects from the view to prevent any painting problems |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
703 ecTreeItemData* data = (ecTreeItemData*) wxGetApp().GetTreeCtrl()->GetItemData(GetTreeItem()); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
704 wxASSERT(data); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
705 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
706 // I _think_ we should do this to stop 'this' from being deleted when we delete the item. |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
707 // But, in that case, where do we delete this item? |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
708 // Perhaps should store them in an array in the document, as per the MFC tool. |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
709 data->SetConfigItem(NULL); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
710 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
711 wxGetApp().GetTreeCtrl()->Delete(GetTreeItem()); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
712 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
713 wxNode* node = pDoc->GetItems().First(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
714 while (node) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
715 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
716 ecConfigItem* item = wxDynamicCast(node->Data(), ecConfigItem); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
717 if (package == item->GetOwnerPackage()) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
718 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
719 item->SetTreeItem(wxTreeItemId()); // Make sure we can't attempt to paint it |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
720 item->SetCdlItem(NULL); // Make sure we can't access stale data |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
721 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
722 node = node->Next(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
723 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
724 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
725 const wxString strMacroName(GetMacro()); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
726 //TRACE (wxT("Unloading package %s\n"), strMacroName); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
727 try { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
728 pDoc->GetCdlConfig()->unload_package (package); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
729 rc=TRUE; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
730 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
731 catch (CdlStringException exception) { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
732 wxString msg; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
733 wxString exceptionMsg(exception.get_message ().c_str ()); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
734 msg.Printf(wxT("Error unloading package %s:\n\n%s"), (const wxChar*) strMacroName, (const wxChar*) exceptionMsg ); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
735 wxMessageBox(msg); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
736 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
737 catch (...) { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
738 wxString msg; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
739 msg.Printf(wxT("Error unloading package %s"), (const wxChar*) strMacroName); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
740 wxMessageBox(msg); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
741 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
742 m_treeItem=wxTreeItemId(); // Make sure we can't attempt to paint it |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
743 m_CdlItem=NULL; // Make sure we can't access stale data |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
744 return rc; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
745 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
746 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
747 wxString ecConfigItem::GetURL() const |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
748 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
749 for(const ecConfigItem *pItem=this;pItem;pItem=pItem->GetParent()){ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
750 if(pItem->GetCdlItem()){ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
751 wxString strURL; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
752 strURL=pItem->GetCdlItem()->get_doc_url().c_str(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
753 if(strURL.Len()){ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
754 return strURL; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
755 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
756 strURL=pItem->GetCdlItem()->get_doc().c_str(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
757 if(strURL.Len()){ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
758 return strURL; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
759 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
760 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
761 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
762 return wxT("ref/ecos-ref.html"); // the default URL |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
763 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
764 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
765 bool ecConfigItem::SetValue(const wxString& value, CdlTransaction transaction/*=NULL*/) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
766 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
767 wxASSERT ((m_optionType == ecString) || (m_optionType == ecEnumerated)); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
768 const CdlValuable valuable = GetCdlValuable(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
769 wxASSERT (valuable); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
770 const std::string str = value.c_str(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
771 if(transaction){ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
772 if (CdlValueFlavor_BoolData == valuable->get_flavor ()){ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
773 // set the user bool to the current bool when changing a booldata |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
774 // value to avoid a possible change in the current bool |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
775 valuable->set_enabled_and_value (transaction, valuable->is_enabled (), str, CdlValueSource_User); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
776 } else {// CdlValueFlavor_Data |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
777 valuable->set_value (transaction, str, CdlValueSource_User); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
778 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
779 } else { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
780 if (CdlValueFlavor_BoolData == valuable->get_flavor ()){ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
781 // set the user bool to the current bool when changing a booldata |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
782 // value to avoid a possible change in the current bool |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
783 valuable->set_enabled_and_value (valuable->is_enabled (), str, CdlValueSource_User); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
784 } else {// CdlValueFlavor_Data |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
785 valuable->set_value (str, CdlValueSource_User); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
786 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
787 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
788 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
789 // TODO: eliminate m_value, since the value is always taken from the Cdl object. |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
790 m_value = value; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
791 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
792 return TRUE; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
793 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
794 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
795 bool ecConfigItem::SetValue (double dValue, CdlTransaction transaction/*=NULL*/) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
796 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
797 wxASSERT (m_optionType == ecDouble); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
798 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
799 const CdlValuable valuable = GetCdlValuable(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
800 wxASSERT (valuable); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
801 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
802 if(transaction) { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
803 if (CdlValueFlavor_BoolData == valuable->get_flavor ()) { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
804 // set the user bool to the current bool when changing a booldata |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
805 // value to avoid a possible change in the current bool |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
806 valuable->set_enabled_and_value (transaction, valuable->is_enabled (), dValue, CdlValueSource_User); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
807 } else {// CdlValueFlavor_Data |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
808 valuable->set_double_value (transaction, dValue, CdlValueSource_User); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
809 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
810 } else { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
811 if (CdlValueFlavor_BoolData == valuable->get_flavor ()) { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
812 // set the user bool to the current bool when changing a booldata |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
813 // value to avoid a possible change in the current bool |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
814 valuable->set_enabled_and_value (valuable->is_enabled (), dValue, CdlValueSource_User); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
815 } else {// CdlValueFlavor_Data |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
816 valuable->set_double_value (dValue, CdlValueSource_User); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
817 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
818 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
819 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
820 // TODO: BoolData? |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
821 m_value = dValue; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
822 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
823 return TRUE; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
824 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
825 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
826 bool ecConfigItem::SetValue (long nValue, CdlTransaction transaction/*=NULL*/) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
827 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
828 wxASSERT (m_optionType == ecLong); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
829 const CdlValuable valuable = GetCdlValuable(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
830 wxASSERT (valuable); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
831 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
832 if(transaction) { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
833 if (CdlValueFlavor_BoolData == valuable->get_flavor ()) { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
834 // set the user bool to the current bool when changing a booldata |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
835 // value to avoid a possible change in the current bool |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
836 valuable->set_enabled_and_value (transaction, valuable->is_enabled (), (cdl_int) nValue, CdlValueSource_User); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
837 } else { // CdlValueFlavor_Data |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
838 valuable->set_integer_value (transaction, nValue, CdlValueSource_User); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
839 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
840 } else { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
841 if (CdlValueFlavor_BoolData == valuable->get_flavor ()) { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
842 // set the user bool to the current bool when changing a booldata |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
843 // value to avoid a possible change in the current bool |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
844 valuable->set_enabled_and_value (valuable->is_enabled (), (cdl_int) nValue, CdlValueSource_User); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
845 } else { // CdlValueFlavor_Data |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
846 valuable->set_integer_value (nValue, CdlValueSource_User); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
847 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
848 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
849 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
850 // TODO: BoolData? |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
851 m_value = nValue; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
852 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
853 return TRUE; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
854 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
855 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
856 bool ecConfigItem::HasRadio() const |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
857 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
858 const CdlValuable valuable = GetCdlValuable(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
859 if (! valuable) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
860 return FALSE; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
861 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
862 CdlWidgetHint hint; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
863 valuable->get_widget_hint (hint); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
864 return (CdlBoolWidget_Radio == hint.bool_widget); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
865 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
866 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
867 ecConfigItem *ecConfigItem::FirstRadio() const |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
868 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
869 wxASSERT(HasRadio ()); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
870 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
871 for(ecConfigItem *h=GetParent()->FirstChild();h;h=h->NextSibling()){ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
872 if(h->HasRadio ()){ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
873 return h; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
874 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
875 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
876 // No radio buttons found |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
877 wxASSERT(FALSE); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
878 return FALSE; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
879 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
880 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
881 ecConfigItem *ecConfigItem::FirstChild() const |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
882 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
883 ecConfigTreeCtrl* treeCtrl = wxGetApp().GetTreeCtrl(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
884 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
885 long cookie; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
886 wxTreeItemId hChild=treeCtrl->GetFirstChild(GetTreeItem(), cookie); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
887 if (hChild) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
888 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
889 ecTreeItemData* data = (ecTreeItemData*) wxGetApp().GetTreeCtrl()->GetItemData(hChild); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
890 wxASSERT(data); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
891 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
892 return data->GetConfigItem(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
893 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
894 else |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
895 return NULL; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
896 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
897 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
898 ecConfigItem *ecConfigItem::NextSibling() const |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
899 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
900 ecConfigTreeCtrl* treeCtrl = wxGetApp().GetTreeCtrl(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
901 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
902 wxTreeItemId hChild=treeCtrl->GetNextSibling(GetTreeItem()); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
903 if (hChild) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
904 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
905 ecTreeItemData* data = (ecTreeItemData*) wxGetApp().GetTreeCtrl()->GetItemData(hChild); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
906 wxASSERT(data); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
907 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
908 return data->GetConfigItem(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
909 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
910 else |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
911 return NULL; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
912 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
913 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
914 bool ecConfigItem::IsEnabled() const |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
915 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
916 const CdlValuable valuable = GetCdlValuable(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
917 return NULL==valuable ||valuable->is_enabled(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
918 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
919 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
920 bool ecConfigItem::IsActive() const |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
921 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
922 // return GetCdlItem()->is_active(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
923 const CdlValuable valuable = GetCdlValuable(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
924 if (valuable && ((GetOptionType() != ecOptionTypeNone) || HasBool())) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
925 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
926 return (valuable->is_modifiable () && valuable->is_active ()); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
927 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
928 else |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
929 return GetCdlItem()->is_active(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
930 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
931 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
932 bool ecConfigItem::HasModifiedChildren() const |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
933 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
934 for(ecConfigItem *pItem=FirstChild();pItem;pItem=pItem->NextSibling()){ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
935 if(pItem->Modified()||pItem->HasModifiedChildren()){ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
936 return TRUE; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
937 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
938 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
939 return FALSE; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
940 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
941 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
942 bool ecConfigItem::Modified () const |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
943 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
944 const CdlValuable valuable = GetCdlValuable(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
945 return |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
946 valuable // accommodate the root config item which has no CDL item |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
947 && !IsPackage() // packages are never modified |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
948 && valuable->get_source () != CdlValueSource_Default; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
949 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
950 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
951 void ecConfigItem::DumpItem() |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
952 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
953 //TRACE(wxT("Item %08x\n\tDisplay Name='%s'\n\tMacro Name='%s'\n\tType=%s"), this, Name(), Macro(), TreeItemTypeImage[m_Type]); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
954 //TRACE(wxT("\n\tValue=%s\n\tURL=%s\n\tParent=%08x"),StringValue(), GetURL(), Parent()); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
955 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
956 //TRACE(wxT("\n")); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
957 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
958 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
959 ecConfigItem * ecConfigItem::NextRadio() const |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
960 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
961 wxASSERT(this->HasRadio ()); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
962 for(ecConfigItem *pItem=NextSibling();pItem;pItem=pItem->NextSibling()){ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
963 if(pItem->HasRadio()){ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
964 return pItem; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
965 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
966 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
967 return NULL; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
968 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
969 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
970 bool ecConfigItem::IsDescendantOf(ecConfigItem * pAncestor) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
971 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
972 for(ecConfigItem *pItem=GetParent();pItem;pItem=pItem->GetParent()){ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
973 if(pItem==pAncestor){ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
974 return TRUE; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
975 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
976 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
977 return FALSE; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
978 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
979 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
980 bool ecConfigItem::ViewHeader() |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
981 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
982 bool rc=FALSE; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
983 const ecFileName strFile(GetFilename()); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
984 if(!strFile.IsEmpty()) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
985 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
986 ecConfigToolDoc *pDoc=wxGetApp().GetConfigToolDoc(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
987 if(pDoc->GetBuildTree().IsEmpty()){ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
988 wxString msg; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
989 msg.Printf(wxT("Cannot display header file until configuration is saved")); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
990 wxMessageBox(msg); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
991 } else |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
992 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
993 rc=wxGetApp().Launch(strFile, wxGetApp().GetSettings().m_strViewer); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
994 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
995 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
996 return rc; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
997 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
998 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
999 bool ecConfigItem::ViewURL() |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1000 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1001 return wxGetApp().GetConfigToolDoc()->ShowURL(GetURL()); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1002 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1003 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1004 bool ecConfigItem::HasBool() const |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1005 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1006 if (!m_CdlItem) { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1007 return FALSE; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1008 } else if (IsPackage()) { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1009 return FALSE; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1010 } else { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1011 const CdlValuable valuable = GetCdlValuable(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1012 CdlValueFlavor flavor = valuable->get_flavor (); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1013 return (flavor == CdlValueFlavor_Bool) || (flavor == CdlValueFlavor_BoolData); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1014 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1015 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1016 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1017 bool ecConfigItem::SetEnabled(bool bEnabled, CdlTransaction current_transaction/*=NULL*/) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1018 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1019 const CdlValuable valuable = GetCdlValuable(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1020 wxASSERT (valuable); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1021 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1022 // use a transaction object to ensure that all config items are changed together |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1023 CdlTransaction transaction = current_transaction ? current_transaction : CdlTransactionBody::make (wxGetApp().GetConfigToolDoc ()->GetCdlConfig ()); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1024 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1025 if (HasRadio () && bEnabled) { // if a new radio button has been selected |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1026 for (ecConfigItem *pItem = FirstRadio(); pItem; pItem = pItem->NextRadio ()) { // for each radio button in the group |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1027 if (pItem != this) { // if not the newly selected radio button |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1028 pItem->SetEnabled (FALSE, transaction); // disable the radio button |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1029 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1030 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1031 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1032 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1033 if (CdlValueFlavor_BoolData == valuable->get_flavor ()) { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1034 // set the user value to the current data value when enabling/disabling |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1035 // a booldata item to avoid a possible change in the current data value |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1036 CdlSimpleValue simple_value = valuable->get_simple_value (); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1037 valuable->set_enabled_and_value (transaction, bEnabled, simple_value, CdlValueSource_User); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1038 } else { // CdlValueFlavor_Bool |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1039 valuable->set_enabled (transaction, bEnabled, CdlValueSource_User); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1040 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1041 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1042 if (! current_transaction) { // if not a recursive call to disable a radio button |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1043 transaction->body (); // commit the transaction |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1044 delete transaction; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1045 transaction = NULL; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1046 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1047 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1048 return TRUE; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1049 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1050 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1051 long ecConfigItem::DefaultValue () const |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1052 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1053 return (long) atoi (StringValue (CdlValueSource_Default)) ; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1054 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1055 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1056 long ecConfigItem::Value () const |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1057 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1058 wxASSERT (!IsPackage()); // not a package item |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1059 const CdlValuable valuable = GetCdlValuable(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1060 wxASSERT (valuable); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1061 long nValue (0); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1062 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1063 switch (valuable->get_flavor ()) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1064 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1065 // case CdlValueFlavor_Bool: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1066 // nValue = valuable->is_enabled (CdlValueSource_Current) ? 1 : 0; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1067 // break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1068 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1069 case CdlValueFlavor_BoolData: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1070 case CdlValueFlavor_Data: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1071 nValue = (long) valuable->get_integer_value (CdlValueSource_Current); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1072 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1073 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1074 default: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1075 wxASSERT (0); // specified flavor not supported |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1076 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1077 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1078 return nValue; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1079 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1080 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1081 const double ecConfigItem::DoubleValue (CdlValueSource source /* = CdlValueSource_Current */ ) const |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1082 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1083 wxASSERT (!IsPackage()); // not a package item |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1084 const CdlValuable valuable = GetCdlValuable(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1085 wxASSERT (valuable); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1086 wxASSERT (valuable->has_double_value (source)); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1087 return valuable->get_double_value (source); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1088 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1089 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1090 const wxString ecConfigItem::StringValue (CdlValueSource source /* = CdlValueSource_Current */ ) const |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1091 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1092 // wxASSERT (!IsPackage()); // not a package item |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1093 const CdlValuable valuable = GetCdlValuable(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1094 wxASSERT (valuable); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1095 wxString strValue (wxT("")); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1096 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1097 switch (valuable->get_flavor ()) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1098 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1099 case CdlValueFlavor_Data: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1100 case CdlValueFlavor_BoolData: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1101 case CdlValueFlavor_None: // a package |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1102 if (m_optionType == ecLong) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1103 strValue = ecUtils::IntToStr (Value (), wxGetApp().GetSettings().m_bHex); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1104 else if (m_optionType == ecDouble) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1105 strValue = ecUtils::DoubleToStr (DoubleValue ()); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1106 else |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1107 strValue = valuable->get_value (source).c_str (); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1108 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1109 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1110 default: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1111 wxASSERT (0); // specified flavor not supported |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1112 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1113 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1114 return strValue; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1115 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1116 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1117 const wxString ecConfigItem::StringValue(ecWhereType where) const |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1118 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1119 wxString str; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1120 switch(where){ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1121 case ecInName: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1122 str=GetName(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1123 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1124 case ecInMacro: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1125 str=GetMacro(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1126 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1127 case ecInDesc: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1128 str=GetDescription(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1129 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1130 case ecInCurrentValue: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1131 if (ecOptionTypeNone==GetOptionType()) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1132 str = wxEmptyString; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1133 else |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1134 str = StringValue(CdlValueSource_Current); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1135 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1136 case ecInDefaultValue: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1137 if (ecOptionTypeNone==GetOptionType()) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1138 str = wxEmptyString; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1139 else |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1140 str = StringValue(CdlValueSource_Default); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1141 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1142 default: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1143 wxASSERT(FALSE); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1144 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1145 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1146 return str; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1147 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1148 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1149 int ecConfigItem::EvalEnumStrings (wxArrayString &arEnumStrings) const |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1150 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1151 const CdlValuable valuable = GetCdlValuable(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1152 wxASSERT (valuable); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1153 /* |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1154 if (m_Type == Boolean) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1155 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1156 arEnumStrings.SetSize (2); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1157 arEnumStrings.SetAt (0, wxT("True")); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1158 arEnumStrings.SetAt (1, wxT("False")); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1159 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1160 else |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1161 */ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1162 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1163 wxASSERT (m_optionType == ecEnumerated); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1164 CdlListValue list_value; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1165 CdlEvalContext context (NULL, m_CdlItem, m_CdlItem->get_property (CdlPropertyId_LegalValues)); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1166 valuable->get_legal_values ()->eval (context, list_value); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1167 const std::vector<CdlSimpleValue> & table = list_value.get_table (); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1168 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1169 // add legal values to the list |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1170 for (unsigned int nValue = 0; nValue < table.size (); nValue++) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1171 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1172 arEnumStrings.Add (table [nValue].get_value ().c_str ()); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1173 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1174 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1175 return arEnumStrings.GetCount(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1176 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1177 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1178 static const wxChar* gs_whereTypes[] = |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1179 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1180 _("Macro names"), |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1181 _("Item names"), |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1182 _("Short descriptions"), |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1183 _("Current Values"), |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1184 _("Default Values") |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1185 }; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1186 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1187 // Convert a string representation of 'where' (e.g. "Macro names") to |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1188 // ecWhereType |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1189 ecWhereType ecConfigItem::WhereStringToType(const wxString& whereString) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1190 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1191 int sz = 5; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1192 int i; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1193 for (i = 0; i < sz; i++) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1194 if (whereString == gs_whereTypes[i]) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1195 return (ecWhereType) i; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1196 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1197 wxASSERT( FALSE ); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1198 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1199 return (ecWhereType) 0; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1200 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1201 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1202 // Convert a type representation of 'where' to a string |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1203 wxString ecConfigItem::WhereTypeToString(ecWhereType whereType) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1204 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1205 return gs_whereTypes[(size_t) whereType] ; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1206 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1207 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1208 // Bump by specified amount, or toggle if a boolean value |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1209 bool ecConfigItem::BumpItem(int nInc) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1210 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1211 bool rc = FALSE; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1212 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1213 // Take an action for clicking on the icon |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1214 ecConfigToolDoc* pDoc = wxGetApp().GetConfigToolDoc(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1215 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1216 // do not modify the option value if it is inactive or not modifiable |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1217 const CdlValuable valuable = GetCdlValuable(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1218 if (!valuable || (valuable->is_modifiable () && valuable->is_active ())) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1219 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1220 if (0 == nInc) // if a toggle request |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1221 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1222 if (HasBool () && ! (HasRadio () && IsEnabled ())) { // only enable (not disable) a radio button |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1223 rc = pDoc->SetEnabled (*this, ! this->IsEnabled ()); // toggle enabled/disabled state |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1224 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1225 } else if (IsEnabled ()) { // the item is enabled... |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1226 switch(GetOptionType()) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1227 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1228 case ecOptionTypeNone: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1229 case ecString: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1230 case ecDouble: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1231 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1232 case ecEnumerated: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1233 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1234 wxArrayString arEnum; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1235 EvalEnumStrings (arEnum); // calculate legal values just in time |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1236 if (0==arEnum.Count()) // if no legal values... |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1237 break; // ...do nothing |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1238 int nIndex = -1; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1239 const wxString strCurrent = StringValue (); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1240 int nEnum; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1241 for (nEnum = 0; (nEnum < arEnum.Count()) && (nIndex == -1); nEnum++) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1242 if (strCurrent == arEnum[nEnum]) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1243 nIndex = nEnum; // the index of the current value |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1244 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1245 if (nIndex != -1) // if the current value is still legal |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1246 nIndex += (nInc < 0 ? -1 : 1); // increment/decrement the index |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1247 else |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1248 nIndex = 0; // otherwise select the first enum |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1249 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1250 if (nIndex < 0) // if the new index is negative |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1251 nIndex = arEnum.Count()-1; // make it positive |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1252 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1253 rc=pDoc->SetValue (*this, arEnum[nIndex % arEnum.Count()]); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1254 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1255 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1256 case ecLong: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1257 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1258 // TODO: if we're editing, we should get the value in the edit item |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1259 // and not the ecConfigItem. |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1260 long nOldValue = Value(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1261 if(nInc==1 && nOldValue==-1){ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1262 nOldValue=0; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1263 } else if(nInc==-1 && nOldValue==0){ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1264 nOldValue=-1; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1265 } else { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1266 nOldValue+=nInc; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1267 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1268 rc=pDoc->SetValue(*this, nOldValue); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1269 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1270 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1271 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1272 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1273 /* |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1274 case CConfigItem::Boolean: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1275 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1276 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1277 ItemIntegerType nOldValue=Value(h); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1278 pDoc->SetValue(ti,nOldValue^1); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1279 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1280 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1281 case CConfigItem::Radio: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1282 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1283 if(0==Value(h)){ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1284 pDoc->SetValue(ti, (ItemIntegerType) 1); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1285 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1286 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1287 */ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1288 default: |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1289 break; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1290 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1291 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1292 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1293 return rc; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1294 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1295 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1296 #if 0 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1297 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1298 /* Presumably we don't need this since we use the m_parent member instead |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1299 ecConfigItem *ecConfigItem::Parent() const |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1300 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1301 CTreeCtrl &tree=CConfigTool::GetControlView()->GetTreeCtrl(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1302 HTREEITEM hParent=tree.GetParentItem(HItem()); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1303 return (NULL==hParent||TVI_ROOT==hParent)?NULL:(ecConfigItem *)tree.GetItemData(hParent); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1304 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1305 */ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1306 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1307 #endif |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1308 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1309 /* |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1310 * ecTextEditorCtrl |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1311 * A specialised wxTextCtrl, for editing config values |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1312 */ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1313 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1314 BEGIN_EVENT_TABLE(ecTextEditorCtrl, wxTextCtrl) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1315 EVT_TEXT_ENTER(-1, ecTextEditorCtrl::OnEnter) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1316 EVT_KILL_FOCUS(ecTextEditorCtrl::OnKillFocus) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1317 EVT_LEFT_DCLICK(ecTextEditorCtrl::OnLeftDClick) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1318 END_EVENT_TABLE() |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1319 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1320 IMPLEMENT_CLASS(ecTextEditorCtrl, wxTextCtrl) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1321 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1322 ecTextEditorCtrl::ecTextEditorCtrl(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1323 long style): |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1324 wxTextCtrl(parent, id, wxEmptyString, pos, size, style) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1325 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1326 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1327 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1328 void ecTextEditorCtrl::OnEnter(wxCommandEvent& event) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1329 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1330 ecValueWindow* parent = (ecValueWindow*) GetParent(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1331 parent->EndEditing(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1332 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1333 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1334 void ecTextEditorCtrl::OnKillFocus(wxFocusEvent& event) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1335 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1336 ecValueWindow* parent = (ecValueWindow*) GetParent(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1337 parent->EndEditing(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1338 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1339 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1340 // Edit the string in a separate dialog, for convenience |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1341 void ecTextEditorCtrl::OnLeftDClick(wxMouseEvent& event) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1342 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1343 ecValueWindow* parent = (ecValueWindow*) GetParent(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1344 ecConfigItem* item = parent->GetCurrentConfigItem(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1345 ecConfigToolDoc* doc = wxGetApp().GetConfigToolDoc(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1346 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1347 wxString initialValue(GetValue()); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1348 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1349 ecEditStringDialog dialog(initialValue, wxGetApp().GetTopWindow(), ecID_EDIT_STRING_DIALOG); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1350 if (dialog.ShowModal() == wxID_OK) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1351 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1352 wxString val = dialog.GetValue() ; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1353 // This control will have been deleted at this point, due to losing the focus. |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1354 // So update the item, not the control. |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1355 // wxTextCtrl::SetValue(val); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1356 doc->SetValue(*item, val); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1357 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1358 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1359 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1360 /* |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1361 * ecDoubleEditorCtrl |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1362 * A specialised wxTextCtrl, for editing double config values |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1363 */ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1364 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1365 BEGIN_EVENT_TABLE(ecDoubleEditorCtrl, wxTextCtrl) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1366 EVT_TEXT_ENTER(-1, ecDoubleEditorCtrl::OnEnter) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1367 EVT_KILL_FOCUS(ecDoubleEditorCtrl::OnKillFocus) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1368 END_EVENT_TABLE() |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1369 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1370 IMPLEMENT_CLASS(ecDoubleEditorCtrl, wxTextCtrl) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1371 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1372 ecDoubleEditorCtrl::ecDoubleEditorCtrl(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1373 long style): |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1374 wxTextCtrl(parent, id, wxEmptyString, pos, size, style) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1375 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1376 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1377 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1378 void ecDoubleEditorCtrl::OnEnter(wxCommandEvent& event) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1379 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1380 ecValueWindow* parent = (ecValueWindow*) GetParent(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1381 parent->EndEditing(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1382 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1383 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1384 void ecDoubleEditorCtrl::OnKillFocus(wxFocusEvent& event) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1385 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1386 ecValueWindow* parent = (ecValueWindow*) GetParent(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1387 parent->EndEditing(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1388 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1389 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1390 /* |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1391 * ecIntegerEditorCtrl |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1392 * A specialised wxTextCtrl, for editing double config values |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1393 */ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1394 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1395 BEGIN_EVENT_TABLE(ecIntegerEditorCtrl, wxSpinCtrl) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1396 EVT_TEXT_ENTER(-1, ecIntegerEditorCtrl::OnEnter) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1397 EVT_KILL_FOCUS(ecIntegerEditorCtrl::OnKillFocus) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1398 END_EVENT_TABLE() |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1399 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1400 IMPLEMENT_CLASS(ecIntegerEditorCtrl, wxSpinCtrl) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1401 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1402 ecIntegerEditorCtrl::ecIntegerEditorCtrl(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1403 long style): |
|
2294
4a8aaf2d79cf
* standalone/wxwin/configitem.cpp: Allow full 32-bit signed integer range
jld
parents:
160
diff
changeset
|
1404 wxSpinCtrl(parent, id, wxEmptyString, pos, size, style, INT_MIN, INT_MAX, 0) |
|
160
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1405 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1406 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1407 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1408 void ecIntegerEditorCtrl::OnEnter(wxCommandEvent& event) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1409 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1410 ecValueWindow* parent = (ecValueWindow*) GetParent(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1411 parent->EndEditing(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1412 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1413 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1414 void ecIntegerEditorCtrl::OnKillFocus(wxFocusEvent& event) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1415 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1416 ecValueWindow* parent = (ecValueWindow*) GetParent(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1417 parent->EndEditing(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1418 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1419 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1420 /* |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1421 * ecEnumEditorCtrl |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1422 * A specialised wxChoice, for editing enumerated config values |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1423 */ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1424 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1425 BEGIN_EVENT_TABLE(ecEnumEditorCtrl, wxChoice) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1426 EVT_CHAR(ecEnumEditorCtrl::OnChar) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1427 EVT_KILL_FOCUS(ecEnumEditorCtrl::OnKillFocus) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1428 END_EVENT_TABLE() |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1429 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1430 IMPLEMENT_CLASS(ecEnumEditorCtrl, wxChoice) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1431 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1432 ecEnumEditorCtrl::ecEnumEditorCtrl(wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1433 long style): |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1434 wxChoice(parent, id, pos, size, 0, 0, style) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1435 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1436 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1437 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1438 void ecEnumEditorCtrl::OnChar(wxKeyEvent& event) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1439 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1440 if (event.GetKeyCode() == WXK_RETURN) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1441 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1442 ecValueWindow* parent = (ecValueWindow*) GetParent(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1443 parent->EndEditing(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1444 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1445 else |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1446 event.Skip(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1447 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1448 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1449 void ecEnumEditorCtrl::OnKillFocus(wxFocusEvent& event) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1450 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1451 ecValueWindow* parent = (ecValueWindow*) GetParent(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1452 parent->EndEditing(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1453 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1454 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1455 /* |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1456 * ecEditStringDialog |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1457 * Pops up to make it easier to edit large string values |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1458 */ |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1459 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1460 BEGIN_EVENT_TABLE(ecEditStringDialog, ecDialog) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1461 EVT_BUTTON(wxID_OK, ecEditStringDialog::OnOK) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1462 END_EVENT_TABLE() |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1463 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1464 ecEditStringDialog::ecEditStringDialog(const wxString& initialValue, wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1465 long style) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1466 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1467 m_value = initialValue; |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1468 //SetExtraStyle(wxDIALOG_EX_CONTEXTHELP); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1469 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1470 ecDialog::Create(parent, id, _("String Edit"), |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1471 wxDefaultPosition, wxDefaultSize, wxDEFAULT_DIALOG_STYLE|wxRESIZE_BORDER); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1472 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1473 CreateControls(this); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1474 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1475 TransferDataToWindow(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1476 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1477 Centre(wxBOTH); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1478 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1479 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1480 ecEditStringDialog::~ecEditStringDialog() |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1481 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1482 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1483 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1484 //// Event handlers |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1485 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1486 void ecEditStringDialog::OnOK(wxCommandEvent& event) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1487 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1488 wxDialog::OnOK(event); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1489 } |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1490 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1491 //// Operations |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1492 void ecEditStringDialog::CreateControls(wxWindow* parent) |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1493 { |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1494 wxSizer *item0 = new wxBoxSizer( wxVERTICAL ); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1495 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1496 wxSizer *item1 = new wxBoxSizer( wxHORIZONTAL ); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1497 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1498 item1->Add( 20, 20, 10, wxALIGN_CENTRE|wxALL, 5 ); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1499 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1500 wxButton *item2 = new wxButton( parent, wxID_OK, _("&OK"), wxDefaultPosition, wxDefaultSize, 0 ); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1501 item2->SetDefault(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1502 item1->Add( item2, 0, wxALIGN_CENTRE|wxALL, 5 ); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1503 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1504 wxButton *item3 = new wxButton( parent, wxID_CANCEL, _("&Cancel"), wxDefaultPosition, wxDefaultSize, 0 ); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1505 item1->Add( item3, 0, wxALIGN_CENTRE|wxALL, 5 ); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1506 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1507 item0->Add( item1, 0, wxGROW|wxALIGN_CENTER_VERTICAL|wxTOP, 5 ); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1508 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1509 wxTextCtrl *item4 = new wxTextCtrl( parent, ecID_STRING_EDIT_TEXTCTRL, _(""), wxDefaultPosition, wxSize(420,250), wxTE_MULTILINE ); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1510 item0->Add( item4, 1, wxGROW|wxALIGN_CENTER_VERTICAL|wxLEFT|wxRIGHT|wxBOTTOM, 5 ); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1511 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1512 parent->SetAutoLayout( TRUE ); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1513 parent->SetSizer( item0 ); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1514 parent->Layout(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1515 item0->Fit( parent ); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1516 item0->SetSizeHints( parent ); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1517 |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1518 FindWindow(ecID_STRING_EDIT_TEXTCTRL)->SetValidator(wxGenericValidator(& m_value)); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1519 FindWindow(ecID_STRING_EDIT_TEXTCTRL)->SetFocus(); |
|
0d0f03f76f6a
Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff
changeset
|
1520 } |
