annotate host/tools/configtool/standalone/wxwin/configtree.cpp @ 3403:8c8767bb9a62 default tip

devs/nand/micron_mt29: Remove defunct references (in comments) to mt29f2g08_oob_ecc.
author Ross Younger <wry@ecoscentric.com>
date Sun, 18 Jan 2015 17:59:01 +1300
parents b340d0ab5dd3
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2515
diff changeset
1 // ####ECOSHOSTGPLCOPYRIGHTBEGIN####
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2515
diff changeset
2 // -------------------------------------------
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2515
diff changeset
3 // This file is part of the eCos host tools.
3358
f9b94a5b13ac * infra/trace.cxx, libcdl/build.cxx, libcdl/expr.cxx,
jld
parents: 2802
diff changeset
4 // Copyright (C) 1998, 1999, 2000, 2008, 2009, 2014 Free Software Foundation, Inc.
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
5 //
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2515
diff changeset
6 // This program is free software; you can redistribute it and/or modify
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2515
diff changeset
7 // it under the terms of the GNU General Public License as published by
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2515
diff changeset
8 // the Free Software Foundation; either version 2 or (at your option) any
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2515
diff changeset
9 // later version.
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
10 //
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2515
diff changeset
11 // This program is distributed in the hope that it will be useful, but
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2515
diff changeset
12 // WITHOUT ANY WARRANTY; without even the implied warranty of
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2515
diff changeset
13 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2515
diff changeset
14 // General Public License for more details.
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
15 //
2729
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2515
diff changeset
16 // You should have received a copy of the GNU General Public License
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2515
diff changeset
17 // along with this program; if not, write to the
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2515
diff changeset
18 // Free Software Foundation, Inc., 51 Franklin Street,
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2515
diff changeset
19 // Fifth Floor, Boston, MA 02110-1301, USA.
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2515
diff changeset
20 // -------------------------------------------
74dbf4c3f2e1 Update all copyright banners to reflect FSF ownership; fix and improve licence text.
jlarmour
parents: 2515
diff changeset
21 // ####ECOSHOSTGPLCOPYRIGHTEND####
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
22 // configtree.cpp :
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 //#####DESCRIPTIONBEGIN####
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
26 //
2802
e14d4c233d66 * standalone/wxwin/mainwin.cpp: Tweak the conflicts status pane width.
jld
parents: 2729
diff changeset
27 // Author(s): julians, jld
e14d4c233d66 * standalone/wxwin/mainwin.cpp: Tweak the conflicts status pane width.
jld
parents: 2729
diff changeset
28 // Contact(s): julians, jld
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
29 // Date: 2000/08/24
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
30 // Version: $Id: configtree.cpp,v 1.8 2001/04/24 14:39:13 julians Exp $
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
31 // Purpose:
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
32 // Description: Implementation file for ecConfigTreeCtrl
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
33 // Requires:
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
34 // Provides:
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
35 // See also:
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
36 // Known bugs:
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
37 // Usage:
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
38 //
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
39 //####DESCRIPTIONEND####
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
40 //
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
41 //===========================================================================
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 // ============================================================================
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
44 // declarations
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 // headers
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 #ifdef __GNUG__
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
51 #pragma implementation "configtree.h"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
52 #endif
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 // Includes other headers for precompiled compilation
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
55 #include "ecpch.h"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
56
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
57 #ifdef __BORLANDC__
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
58 #pragma hdrstop
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
59 #endif
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 #include "wx/cshelp.h"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
62
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
63 // Include XPM icons
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
64 #if !defined(__WXMSW__)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
65 #include "bitmaps/closedfolder.xpm"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
66 #include "bitmaps/closedfolder_dis.xpm"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
67 #include "bitmaps/package_closed.xpm"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
68 #include "bitmaps/package_closed_dis.xpm"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
69 #include "bitmaps/package_open.xpm"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
70 #include "bitmaps/package_open_dis.xpm"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
71 #include "bitmaps/checked.xpm"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
72 #include "bitmaps/checked_dis.xpm"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
73 #include "bitmaps/unchecked.xpm"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
74 #include "bitmaps/unchecked_dis.xpm"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
75 #include "bitmaps/integer.xpm"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
76 #include "bitmaps/integer_dis.xpm"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
77 #include "bitmaps/integer2.xpm"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
78 #include "bitmaps/integer2_dis.xpm"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
79 #include "bitmaps/enumerated.xpm"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
80 #include "bitmaps/enumerated_dis.xpm"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
81 #include "bitmaps/radioon.xpm"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
82 #include "bitmaps/radioon_dis.xpm"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
83 #include "bitmaps/radiooff.xpm"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
84 #include "bitmaps/radiooff_dis.xpm"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
85 #include "bitmaps/text.xpm"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
86 #include "bitmaps/text_dis.xpm"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
87 #endif
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
88
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
89 #include "configtree.h"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
90 #include "configpropdlg.h"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
91 #include "configtooldoc.h"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
92 #include "configtoolview.h"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
93
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
94 /*
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
95 * ecConfigTreeCtrl
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
96 */
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 IMPLEMENT_CLASS(ecConfigTreeCtrl, wxRemotelyScrolledTreeCtrl)
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 BEGIN_EVENT_TABLE(ecConfigTreeCtrl, wxRemotelyScrolledTreeCtrl)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
101 EVT_MOUSE_EVENTS(ecConfigTreeCtrl::OnMouseEvent)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
102 EVT_CHAR(ecConfigTreeCtrl::OnKeyDown)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
103 EVT_TREE_SEL_CHANGED(-1, ecConfigTreeCtrl::OnSelChanged)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
104 EVT_HELP(-1, ecConfigTreeCtrl::OnHelp)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
105 END_EVENT_TABLE()
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
106
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
107 ecConfigTreeCtrl::ecConfigTreeCtrl(wxWindow* parent, wxWindowID id, const wxPoint& pt,
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
108 const wxSize& sz, long style):
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
109 wxRemotelyScrolledTreeCtrl(parent, id, pt, sz, style)
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 LoadIcons();
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_propertiesMenu = new wxMenu;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
114
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
115 m_propertiesMenu->Append(ecID_WHATS_THIS, _("&What's This?"));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
116 m_propertiesMenu->AppendSeparator();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
117 m_propertiesMenu->Append(ecID_TREE_PROPERTIES, _("P&roperties"));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
118 m_propertiesMenu->Append(ecID_TREE_RESTORE_DEFAULTS, _("Restore &Defaults"));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
119 m_propertiesMenu->Append(ecID_TREE_VISIT_DOC, _("Visit Documentation"));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
120 m_propertiesMenu->Append(ecID_TREE_VIEW_HEADER, _("View Header"));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
121 m_propertiesMenu->AppendSeparator();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
122 m_propertiesMenu->Append(ecID_TREE_UNLOAD_PACKAGE, _("&Unload Package..."));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
123
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
124 if (!wxGetApp().GetSettings().GetWindowSettings().GetUseDefaults() &&
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
125 wxGetApp().GetSettings().GetWindowSettings().GetFont(wxT("Configuration")).Ok())
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 SetFont(wxGetApp().GetSettings().GetWindowSettings().GetFont(wxT("Configuration")));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
128 }
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
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
131 // Load the icons and initialize the tree
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
132 void ecConfigTreeCtrl::LoadIcons()
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
133 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
134 m_imageList = new wxImageList(16, 16, TRUE);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
135 m_iconDB.SetImageList(m_imageList);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
136 SetImageList(m_imageList);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
137
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
138 // We associate names and states so we can easily get the appropriate
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
139 // icon for a given tree item. This gets used in ecConfigItem::UpdateTreeIcon.
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 m_iconDB.AddInfo("Container", wxICON(closedfolder), 0, TRUE);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
142 m_iconDB.AddInfo("Container", wxICON(closedfolder_dis), 0, FALSE);
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 m_iconDB.AddInfo("Package", wxICON(package_open), 0, TRUE);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
145 m_iconDB.AddInfo("Package", wxICON(package_open_dis), 0, FALSE);
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 m_iconDB.AddInfo("Checkbox", wxICON(checked), 0, TRUE);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
148 m_iconDB.AddInfo("Checkbox", wxICON(checked_dis), 0, FALSE);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
149 m_iconDB.AddInfo("Checkbox", wxICON(unchecked), 1, TRUE);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
150 m_iconDB.AddInfo("Checkbox", wxICON(unchecked_dis), 1, FALSE);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
151
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
152 m_iconDB.AddInfo("Radiobox", wxICON(radioon), 0, TRUE);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
153 m_iconDB.AddInfo("Radiobox", wxICON(radioon_dis), 0, FALSE);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
154 m_iconDB.AddInfo("Radiobox", wxICON(radiooff), 1, TRUE);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
155 m_iconDB.AddInfo("Radiobox", wxICON(radiooff_dis), 1, FALSE);
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 m_iconDB.AddInfo("Text", wxICON(text), 0, TRUE);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
158 m_iconDB.AddInfo("Text", wxICON(text_dis), 0, FALSE);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
159
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
160 m_iconDB.AddInfo("Enumerated", wxICON(enumerated), 0, TRUE);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
161 m_iconDB.AddInfo("Enumerated", wxICON(enumerated_dis), 0, FALSE);
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 m_iconDB.AddInfo("Integer", wxICON(integer), 0, TRUE);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
164 m_iconDB.AddInfo("Integer", wxICON(integer_dis), 0, FALSE);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
165 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
166
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
167 ecConfigTreeCtrl::~ecConfigTreeCtrl()
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
168 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
169 delete m_propertiesMenu;
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 SetImageList(NULL);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
172 delete m_imageList;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
173 }
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 void ecConfigTreeCtrl::OnSelChanged(wxTreeEvent& event)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
176 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
177 ecConfigToolDoc* doc = wxGetApp().GetConfigToolDoc();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
178 if (doc)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
179 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
180 ecConfigToolHint hint(NULL, ecSelChanged);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
181 doc->UpdateAllViews(NULL, & hint);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
182 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
183 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
184
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
185 void ecConfigTreeCtrl::OnMouseEvent(wxMouseEvent& event)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
186 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
187 int flags = 0;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
188 wxTreeItemId item = HitTest(wxPoint(event.GetX(), event.GetY()), flags);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
189
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
190 #if wxCHECK_VERSION(2, 6, 0)
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
191 if (!item.IsOk())
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
192 #else
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
193 if (item == 0 || !item.IsOk())
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
194 #endif
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
195 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
196 if (event.RightDown())
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
197 PopupMenu(wxGetApp().GetWhatsThisMenu(), event.GetX(), event.GetY());
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
198 return;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
199 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
200
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
201 if (event.LeftDown())
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
202 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
203 if (flags & wxTREE_HITTEST_ONITEMICON)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
204 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
205 ecTreeItemData* data = (ecTreeItemData*) GetItemData(item);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
206 data->GetConfigItem()->OnIconLeftDown(* this);
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 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
209 else if (event.RightDown())
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
210 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
211 if ((flags & wxTREE_HITTEST_ONITEMBUTTON) ||
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
212 (flags & wxTREE_HITTEST_ONITEMICON) ||
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
213 (flags & wxTREE_HITTEST_ONITEMINDENT) ||
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
214 (flags & wxTREE_HITTEST_ONITEMLABEL))
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
215 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
216 SelectItem(item);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
217 GetPropertiesMenu()->SetClientData((void*) TRUE);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
218 PopupMenu(GetPropertiesMenu(), event.GetX(), event.GetY());
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
219 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
220 else
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
221 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
222 wxGetApp().GetWhatsThisMenu()->SetClientData((void*) FALSE);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
223 PopupMenu(wxGetApp().GetWhatsThisMenu(), event.GetX(), event.GetY());
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 return;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
226 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
227 event.Skip();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
228 }
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 void ecConfigTreeCtrl::OnKeyDown(wxKeyEvent& event)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
231 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
232 wxTreeItemId id = GetSelection();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
233 if (event.GetKeyCode() == WXK_F10 && event.ShiftDown())
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 if (id.IsOk())
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
236 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
237 wxRect rect;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
238 if (GetBoundingRect(id, rect))
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
239 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
240 GetPropertiesMenu()->SetClientData((void*) TRUE);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
241 PopupMenu(GetPropertiesMenu(), 100, rect.GetTop() + 4);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
242 }
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 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
245 else if (event.GetKeyCode() == '<')
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 if (id.IsOk())
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
248 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
249 ecConfigItem* item = ((ecTreeItemData*) GetItemData(id))->GetConfigItem();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
250 item->BumpItem(-1);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
251 }
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 else if (event.GetKeyCode() == '>')
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 if (id.IsOk())
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
256 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
257 ecConfigItem* item = ((ecTreeItemData*) GetItemData(id))->GetConfigItem();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
258 item->BumpItem(+1);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
259 }
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 else if (event.GetKeyCode() == WXK_SPACE)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
262 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
263 if (id.IsOk())
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 ecConfigItem* item = ((ecTreeItemData*) GetItemData(id))->GetConfigItem();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
266 item->BumpItem(0);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
267 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
268 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
269 else if (event.GetKeyCode() == WXK_RETURN && event.AltDown())
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 if (id.IsOk())
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 ecConfigItem* item = ((ecTreeItemData*) GetItemData(id))->GetConfigItem();
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 ecConfigPropertiesDialog dialog(wxGetApp().GetTopWindow(), item);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
276 dialog.SetTitle(item->GetName());
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
277 dialog.ShowModal();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
278 }
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 else
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
281 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
282 event.Skip();
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 }
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 // show help for this window
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
287 void ecConfigTreeCtrl::OnHelp(wxHelpEvent& event)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
288 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
289 wxPoint pt = ScreenToClient(event.GetPosition());
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
290 int flags = 0;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
291 wxTreeItemId id = HitTest(pt, flags);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
292 wxHelpProvider *helpProvider = wxHelpProvider::Get();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
293 if ( helpProvider && id > 0)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
294 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
295 ecConfigItem* item = ((ecTreeItemData*) GetItemData(id))->GetConfigItem();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
296
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
297 if (item)
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 wxGetApp().GetHelpController().DisplayTextPopup(item->GetDescription(), event.GetPosition());
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
300 return;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
301 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
302 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
303
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
304 event.Skip();
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
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 * ecValueWindow
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 IMPLEMENT_CLASS(ecValueWindow, wxTreeCompanionWindow)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
312
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
313 BEGIN_EVENT_TABLE(ecValueWindow, wxTreeCompanionWindow)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
314 EVT_MOUSE_EVENTS(ecValueWindow::OnMouseEvent)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
315 EVT_SCROLLWIN(ecValueWindow::OnScroll)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
316 EVT_TREE_ITEM_EXPANDED(-1, ecValueWindow::OnExpand)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
317 EVT_TREE_ITEM_COLLAPSED(-1, ecValueWindow::OnExpand)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
318 END_EVENT_TABLE()
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 ecValueWindow::ecValueWindow(wxWindow* parent, wxWindowID id,
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
321 const wxPoint& pos,
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
322 const wxSize& sz,
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
323 long style):
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
324 wxTreeCompanionWindow(parent, id, pos, sz, style)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
325 {
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
326 #if wxCHECK_VERSION(2, 6, 0)
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
327 SetBackgroundColour(wxSystemSettings::GetColour(wxSYS_COLOUR_LISTBOX));
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
328 #else
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
329 SetBackgroundColour(wxSystemSettings::GetSystemColour(wxSYS_COLOUR_LISTBOX));
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
330 #endif
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
331
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
332 if (!wxGetApp().GetSettings().GetWindowSettings().GetUseDefaults() &&
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
333 wxGetApp().GetSettings().GetWindowSettings().GetFont(wxT("Configuration")).Ok())
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 SetFont(wxGetApp().GetSettings().GetWindowSettings().GetFont(wxT("Configuration")));
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 else
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
338 #if wxCHECK_VERSION(2, 6, 0)
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
339 SetFont(wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT));
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
340 #else
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
341 SetFont(wxSystemSettings::GetSystemFont(wxSYS_DEFAULT_GUI_FONT));
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
342 #endif
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
343
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
344 m_editWindow = NULL;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
345 m_configItem = NULL;
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
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
348 // Returns the rectangle which will enclose the value for this tree item
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
349 wxRect ecValueWindow::GetItemRect(ecConfigItem* item)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
350 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
351 if (!m_treeCtrl)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
352 return wxRect(0, 0, 0, 0);
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 wxSize clientSize = GetClientSize();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
355 wxRect itemRect;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
356 int cy=0;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
357 wxTreeItemId h;
2515
24c0267fbb70 * Utils/ChangeLog Utils/common/eCosStd.h,
jld
parents: 2467
diff changeset
358 for(h=m_treeCtrl->GetFirstVisibleItem();h.IsOk() && m_treeCtrl->IsVisible(h);h=m_treeCtrl->GetNextVisible(h))
160
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 ecTreeItemData* data = (ecTreeItemData*) m_treeCtrl->GetItemData(h);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
361 if (data->GetConfigItem() == item)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
362 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
363 if (m_treeCtrl->GetBoundingRect(h, itemRect))
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
364 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
365 cy = itemRect.GetTop();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
366 wxRect drawItemRect(0, cy, clientSize.x, itemRect.GetHeight());
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
367 return drawItemRect;
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 else
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
370 return wxRect(0, 0, 0, 0);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
371 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
372 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
373 return wxRect(0, 0, 0, 0);
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
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
376 void ecValueWindow::OnMouseEvent(wxMouseEvent& event)
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 if (event.LeftDown() && (event.GetX() > 2))
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 // Find if this corresponds to a tree item
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
381 int flags = 0;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
382 wxTreeItemId item = m_treeCtrl->HitTest(wxPoint(4, event.GetY()), flags);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
383 if (item.IsOk())
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
384 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
385 m_treeCtrl->SelectItem(item);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
386 ecConfigItem* configItem = ((ecTreeItemData*) m_treeCtrl->GetItemData(item))->GetConfigItem();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
387 if (configItem->CanEdit())
2515
24c0267fbb70 * Utils/ChangeLog Utils/common/eCosStd.h,
jld
parents: 2467
diff changeset
388 BeginEditing(configItem);
24c0267fbb70 * Utils/ChangeLog Utils/common/eCosStd.h,
jld
parents: 2467
diff changeset
389 else if (m_configItem)
24c0267fbb70 * Utils/ChangeLog Utils/common/eCosStd.h,
jld
parents: 2467
diff changeset
390 EndEditing();
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
391 }
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 else if (event.RightDown())
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
394 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
395 // Find if this corresponds to a tree item
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
396 int flags = 0;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
397 wxTreeItemId item = m_treeCtrl->HitTest(wxPoint(4, event.GetY()), flags);
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
398 #if wxCHECK_VERSION(2, 6, 0)
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
399 if (item.IsOk())
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
400 #else
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
401 if (item != 0)
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
402 #endif
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
403 {
2515
24c0267fbb70 * Utils/ChangeLog Utils/common/eCosStd.h,
jld
parents: 2467
diff changeset
404 if (m_configItem)
24c0267fbb70 * Utils/ChangeLog Utils/common/eCosStd.h,
jld
parents: 2467
diff changeset
405 EndEditing();
24c0267fbb70 * Utils/ChangeLog Utils/common/eCosStd.h,
jld
parents: 2467
diff changeset
406
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
407 ecConfigItem* configItem = ((ecTreeItemData*) m_treeCtrl->GetItemData(item))->GetConfigItem();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
408 m_treeCtrl->SelectItem(item);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
409 ((ecConfigTreeCtrl*) m_treeCtrl)->GetPropertiesMenu()->SetClientData((void*) TRUE);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
410 PopupMenu(((ecConfigTreeCtrl*) m_treeCtrl)->GetPropertiesMenu(), event.GetX(), event.GetY());
3359
b340d0ab5dd3 * configtool/standalone/wxwin/configtool.cpp,
jld
parents: 3358
diff changeset
411 CYG_UNUSED_PARAM(ecConfigItem *, configItem);
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
412 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
413 else
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
414 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
415 wxGetApp().GetWhatsThisMenu()->SetClientData((void*) FALSE);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
416 PopupMenu(wxGetApp().GetWhatsThisMenu(), event.GetX(), event.GetY());
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
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
421 void ecValueWindow::DrawItem(wxDC& dc, wxTreeItemId id, const wxRect& rect)
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 if (m_treeCtrl)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
424 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
425 ecConfigItem* item = ((ecTreeItemData*) m_treeCtrl->GetItemData(id))->GetConfigItem();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
426 if (!item)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
427 return;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
428 wxString text = item->GetDisplayValue();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
429
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
430 if (text.IsEmpty())
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
431 return;
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
432
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
433 #if wxCHECK_VERSION(2, 6, 0)
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
434 static wxColour normalColour = wxSystemSettings::GetColour(wxSYS_COLOUR_WINDOWTEXT);
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
435 static wxColour disabledColour = wxSystemSettings::GetColour(wxSYS_COLOUR_GRAYTEXT);
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
436 #else
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
437 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
438 static wxColour disabledColour = wxSystemSettings::GetSystemColour(wxSYS_COLOUR_GRAYTEXT);
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
439 #endif
2802
e14d4c233d66 * standalone/wxwin/mainwin.cpp: Tweak the conflicts status pane width.
jld
parents: 2729
diff changeset
440 dc.SetTextForeground( (item->GetModifiable() && (item->GetConfigType() != ecPackage)) ? normalColour : disabledColour );
160
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 int textW, textH;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
443 dc.GetTextExtent(text, & textW, & textH);
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 int x = 2;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
446 int y = rect.GetY() + wxMax(0, (rect.GetHeight() - textH) / 2);
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 dc.DrawText(text, x, y);
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 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
451
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
452 bool ecValueWindow::BeginEditing(ecConfigItem* item)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
453 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
454 if (m_configItem)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
455 EndEditing();
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 m_configItem = item;
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 m_editWindow = item->CreateEditWindow(this);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
460 if (m_editWindow)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
461 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
462 m_editWindow->Show(FALSE);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
463
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
464 item->TransferDataToWindow(m_editWindow);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
465
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
466 // Position the control
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
467 PositionEditWindow();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
468
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
469 m_editWindow->Show(TRUE);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
470 m_editWindow->SetFocus();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
471
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
472 return TRUE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
473 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
474 else
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 m_configItem = NULL;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
477 return FALSE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
478 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
479 }
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 // Position the control
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
482 void ecValueWindow::PositionEditWindow()
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
483 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
484 if (!m_configItem || !m_editWindow)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
485 return;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
486
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
487 // Position the control
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
488 wxSize clientSize = GetClientSize();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
489 wxRect itemRect;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
490 m_treeCtrl->GetBoundingRect(m_configItem->GetTreeItem(), itemRect);
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 wxSize sz = m_editWindow->GetSize();
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 // m_editWindow->SetSize(2, itemRect.y+1, clientSize.x, itemRect.GetHeight() /* -2 */);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
495 m_editWindow->SetSize(0, itemRect.y, clientSize.x, sz.y);
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 bool ecValueWindow::EndEditing()
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
499 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
500 if (m_configItem)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
501 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
502 if (m_editWindow && !wxGetApp().GetValuesLocked())
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
503 m_configItem->TransferDataFromWindow(m_editWindow);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
504 m_configItem = NULL;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
505 }
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 (m_editWindow)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
508 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
509 delete m_editWindow;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
510 m_editWindow = NULL;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
511 }
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 return TRUE;
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
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
516 void ecValueWindow::OnScroll(wxScrollWinEvent& event)
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 wxTreeCompanionWindow::OnScroll(event);
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 PositionEditWindow();
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
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
523 void ecValueWindow::OnExpand(wxTreeEvent& event)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
524 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
525 wxTreeCompanionWindow::OnExpand(event);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
526
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
527 EndEditing();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
528 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
529
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 * wxIconStateInfo
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
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
534 wxIconStateInfo::wxIconStateInfo(const wxString& name)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
535 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
536 m_maxStates = 0;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
537 m_name = name;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
538 int i;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
539 for (i = 0; i < wxMAX_ICON_STATES; i++)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
540 m_states[i] = 0;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
541 }
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 int wxIconStateInfo::GetIconId(int state, bool enabled) const
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
544 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
545 wxASSERT ( state < (wxMAX_ICON_STATES * 2) );
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
546 wxASSERT ( state < m_maxStates );
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
547
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
548 return m_states[state * 2 + (enabled ? 0 : 1)];
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
549 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
550
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
551 void wxIconStateInfo::SetIconId(int state, bool enabled, int iconId)
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 wxASSERT ( state < (wxMAX_ICON_STATES * 2) );
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
554 if (state+1 > m_maxStates)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
555 m_maxStates = state+1;
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 m_states[state * 2 + (enabled ? 0 : 1)] = iconId;
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
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 * wxIconStateInfoDb
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
562 * Contains a list of wxIconStateInfos
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
563 */
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 wxIconStateInfoDB::wxIconStateInfoDB(wxImageList* imageList)
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 m_imageList = imageList;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
568 DeleteContents(TRUE);
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
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
571 void wxIconStateInfoDB::AppendInfo(wxIconStateInfo* info)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
572 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
573 Append(info);
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
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
576 // Easy way of initialising both the image list and the
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
577 // info db. It will generate image ids itself while appending the icon.
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
578 bool wxIconStateInfoDB::AddInfo(const wxString& name, const wxIcon& icon, int state, bool enabled)
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 wxASSERT (m_imageList != NULL);
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 wxIconStateInfo* info = FindInfo(name);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
583 if (!info)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
584 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
585 info = new wxIconStateInfo(name);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
586 Append(info);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
587 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
588 info->SetIconId(state, enabled, m_imageList->Add(icon));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
589 return TRUE;
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
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
592 wxIconStateInfo* wxIconStateInfoDB::FindInfo(const wxString& name) const
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
593 {
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
594 #if wxCHECK_VERSION(2, 6, 0)
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
595 wxNode* node = GetFirst();
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
596 while (node)
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
597 {
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
598 wxIconStateInfo* info = (wxIconStateInfo*) node->GetData();
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
599 if (info->GetName() == name)
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
600 return info;
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
601 node = node->GetNext();
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
602 #else
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
603 wxNode* node = First();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
604 while (node)
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 wxIconStateInfo* info = (wxIconStateInfo*) node->Data();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
607 if (info->GetName() == name)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
608 return info;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
609 node = node->Next();
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
610 #endif
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
611 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
612 return NULL;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
613 }
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 int wxIconStateInfoDB::GetIconId(const wxString& name, int state, bool enabled) const
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 wxIconStateInfo* info = FindInfo(name);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
618 if (!info)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
619 return -1;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
620 return info->GetIconId(state, enabled);
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
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
623 bool wxIconStateInfoDB::SetIconId(const wxString& name, int state, bool enabled, int iconId)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
624 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
625 wxIconStateInfo* info = FindInfo(name);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
626 if (!info)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
627 return FALSE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
628 info->SetIconId(state, enabled, iconId);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
629 return TRUE;
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
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
632 #if 0
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
633 wxIcon wxIconStateInfoDB::GetIcon(const wxString& name, int state, bool enabled) const
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 wxASSERT( m_imageList != NULL );
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
636
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
637 wxIconStateInfo* info = FindInfo(name);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
638 if (!info)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
639 return wxNullIcon;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
640 int id = info->GetIconId(state, enabled);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
641 if (id < 0)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
642 return wxNullIcon;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
643 else
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
644 return m_imageList->GetImage(id); // Doesn't exist
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 #endif
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 /*
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
649 * ecSplitterScrolledWindow
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
650 * This window holds the tree and value windows.
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
651 * We derive a new class mainly to intercept popup menu commands from both child windows
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
652 * without resorting to placing their handlers in the main frame.
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
653 */
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 BEGIN_EVENT_TABLE(ecSplitterScrolledWindow, wxSplitterScrolledWindow)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
656 EVT_MENU(ecID_WHATS_THIS, ecSplitterScrolledWindow::OnWhatsThis)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
657 EVT_MENU(ecID_TREE_PROPERTIES, ecSplitterScrolledWindow::OnProperties)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
658 EVT_MENU(ecID_TREE_RESTORE_DEFAULTS, ecSplitterScrolledWindow::OnRestoreDefaults)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
659 EVT_MENU(ecID_TREE_VISIT_DOC, ecSplitterScrolledWindow::OnVisitDoc)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
660 EVT_MENU(ecID_TREE_VIEW_HEADER, ecSplitterScrolledWindow::OnViewHeader)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
661 EVT_MENU(ecID_TREE_UNLOAD_PACKAGE, ecSplitterScrolledWindow::OnUnloadPackage)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
662
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
663 EVT_UPDATE_UI(ecID_TREE_RESTORE_DEFAULTS, ecSplitterScrolledWindow::OnUpdateRestoreDefaults)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
664 EVT_UPDATE_UI(ecID_TREE_VISIT_DOC, ecSplitterScrolledWindow::OnUpdateVisitDoc)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
665 EVT_UPDATE_UI(ecID_TREE_VIEW_HEADER, ecSplitterScrolledWindow::OnUpdateViewHeader)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
666 EVT_UPDATE_UI(ecID_TREE_UNLOAD_PACKAGE, ecSplitterScrolledWindow::OnUpdateUnloadPackage)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
667 END_EVENT_TABLE()
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
668
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
669 static bool ecIsMenuForItem(wxCommandEvent& event)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
670 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
671 wxObject* obj = event.GetEventObject();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
672 wxMenu* menu = NULL;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
673
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
674 if (obj->IsKindOf(CLASSINFO(wxMenu)))
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
675 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
676 // Menu has some client data which tells us if the menu was clicked over an item
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
677 // or not
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
678 menu = (wxMenu*) obj;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
679 return (bool) (menu->GetClientData() != 0) ;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
680 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
681 else
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
682 return FALSE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
683 }
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 void ecSplitterScrolledWindow::OnWhatsThis(wxCommandEvent& event)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
686 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
687 ecConfigTreeCtrl* treeCtrl = (ecConfigTreeCtrl*) FindWindow(ecID_TREE_CTRL);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
688 wxASSERT (treeCtrl != NULL) ;
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 wxTreeItemId id = treeCtrl->GetSelection();
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
691 #if wxCHECK_VERSION(2, 6, 0)
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
692 if (id.IsOk() && ecIsMenuForItem(event))
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
693 #else
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
694 if (id != 0 && ecIsMenuForItem(event))
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
695 #endif
160
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 ecConfigItem* item = ((ecTreeItemData*) treeCtrl->GetItemData(id))->GetConfigItem();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
698
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
699 wxPoint pt = wxGetMousePosition();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
700 wxString msg;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
701 msg.Printf("Popping at %d x %d", pt.x, pt.y);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
702 wxLogDebug(msg);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
703
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
704 wxGetApp().GetHelpController().DisplayTextPopup(item->GetDescription(), wxGetMousePosition());
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 else
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
707 event.Skip();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
708 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
709
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
710 void ecSplitterScrolledWindow::OnProperties(wxCommandEvent& event)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
711 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
712 wxObject* obj = event.GetEventObject();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
713 wxMenu* menu = NULL;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
714
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
715 if (obj->IsKindOf(CLASSINFO(wxMenu)))
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
716 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
717 // Menu has some client data which tells us if the menu was clicked over an item
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
718 // or not
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
719 menu = (wxMenu*) obj;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
720 }
3358
f9b94a5b13ac * infra/trace.cxx, libcdl/build.cxx, libcdl/expr.cxx,
jld
parents: 2802
diff changeset
721 CYG_UNUSED_PARAM(wxMenu *, menu);
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
722
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
723 ecConfigTreeCtrl* treeCtrl = (ecConfigTreeCtrl*) FindWindow(ecID_TREE_CTRL);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
724 wxASSERT (treeCtrl != NULL) ;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
725
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
726 wxTreeItemId id = treeCtrl->GetSelection();
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
727 #if wxCHECK_VERSION(2, 6, 0)
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
728 if (id.IsOk() && ecIsMenuForItem(event))
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
729 #else
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
730 if (id != 0 && ecIsMenuForItem(event))
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
731 #endif
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
732 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
733 ecConfigItem* item = ((ecTreeItemData*) treeCtrl->GetItemData(id))->GetConfigItem();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
734
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
735 ecConfigPropertiesDialog dialog(wxGetApp().GetTopWindow(), item);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
736 dialog.SetTitle(item->GetName());
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
737 dialog.ShowModal();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
738 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
739 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
740
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
741 void ecSplitterScrolledWindow::OnRestoreDefaults(wxCommandEvent& event)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
742 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
743 ecConfigTreeCtrl* treeCtrl = (ecConfigTreeCtrl*) FindWindow(ecID_TREE_CTRL);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
744 wxASSERT (treeCtrl != NULL) ;
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 wxTreeItemId id = treeCtrl->GetSelection();
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
747 #if wxCHECK_VERSION(2, 6, 0)
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
748 if (id.IsOk() && ecIsMenuForItem(event))
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
749 #else
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
750 if (id != 0 && ecIsMenuForItem(event))
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
751 #endif
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
752 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
753 ecConfigItem* item = ((ecTreeItemData*) treeCtrl->GetItemData(id))->GetConfigItem();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
754 if (item->HasModifiedChildren())
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 int ans = wxMessageBox(_("Restore defaults for nested items?"), wxGetApp().GetSettings().GetAppName(), wxYES_NO|wxCANCEL|wxICON_QUESTION);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
757 switch (ans)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
758 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
759 case wxYES:
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
760 RestoreDefault(id, TRUE);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
761 break;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
762 case wxNO:
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
763 RestoreDefault(id, FALSE);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
764 break;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
765 case wxCANCEL:
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
766 break;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
767 default:
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
768 wxASSERT(FALSE);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
769 break;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
770 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
771 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
772 else
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
773 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
774 RestoreDefault(id, FALSE);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
775 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
776 // current values may have changed so refresh the other views
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
777 wxGetApp().GetConfigToolDoc ()->UpdateFailingRuleCount ();
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 if (item->GetOptionType () != ecOptionTypeNone)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
780 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
781 ecConfigToolHint hint(item, ecValueChanged);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
782 wxGetApp().GetConfigToolDoc ()->UpdateAllViews (NULL, & hint);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
783 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
784 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
785 }
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 void ecSplitterScrolledWindow::RestoreDefault(wxTreeItemId h, bool bRecurse /* = FALSE */, bool bTopLevel /* = TRUE */)
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 ecConfigTreeCtrl* treeCtrl = (ecConfigTreeCtrl*) FindWindow(ecID_TREE_CTRL);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
790 wxASSERT (treeCtrl != NULL) ;
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 ecConfigItem* ti = ((ecTreeItemData*) treeCtrl->GetItemData(h))->GetConfigItem();
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 const CdlValuable valuable = ti->GetCdlValuable();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
795
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
796 if (valuable && (CdlValueFlavor_None != valuable->get_flavor ())) // skip the root node and nodes without a value
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
797 valuable->set_source (CdlValueSource_Default);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
798 treeCtrl->SetItemText (h, ti->GetItemNameOrMacro ()); // remove asterisk in control view
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
799
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
800 if (bTopLevel && ti->HasRadio ()) // if user-specified item is a radio button
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 for (ecConfigItem * pItem = ti->FirstRadio (); pItem; pItem = pItem->NextRadio ())
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
803 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
804 if (ti != pItem)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
805 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
806 const CdlValuable valuable = pItem->GetCdlValuable();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
807 wxASSERT (valuable);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
808 valuable->set_source (CdlValueSource_Default); // restore default for each sibling radio button
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
809 treeCtrl->SetItemText (pItem->GetTreeItem(), pItem->GetItemNameOrMacro ()); // remove asterisk in control view
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
810 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
811
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
812 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
813 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
814
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
815 if (bRecurse)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
816 {
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
817 #if wxCHECK_VERSION(2, 6, 0)
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
818 wxTreeItemIdValue cookie;
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
819 #else
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
820 long cookie;
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
821 #endif
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
822 for (h = treeCtrl->GetFirstChild(h, cookie); h; h = treeCtrl->GetNextSibling(h))
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
823 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
824 RestoreDefault (h, TRUE, FALSE);
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 }
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
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
829 void ecSplitterScrolledWindow::OnVisitDoc(wxCommandEvent& event)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
830 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
831 ecConfigTreeCtrl* treeCtrl = (ecConfigTreeCtrl*) FindWindow(ecID_TREE_CTRL);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
832 wxASSERT (treeCtrl != NULL) ;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
833
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
834 wxTreeItemId id = treeCtrl->GetSelection();
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
835 #if wxCHECK_VERSION(2, 6, 0)
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
836 if (id.IsOk() && ecIsMenuForItem(event))
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
837 #else
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
838 if (id != 0 && ecIsMenuForItem(event))
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
839 #endif
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
840 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
841 ecConfigItem* item = ((ecTreeItemData*) treeCtrl->GetItemData(id))->GetConfigItem();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
842
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
843 item->ViewURL();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
844 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
845 else
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
846 event.Skip();
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 void ecSplitterScrolledWindow::OnViewHeader(wxCommandEvent& event)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
850 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
851 ecConfigTreeCtrl* treeCtrl = (ecConfigTreeCtrl*) FindWindow(ecID_TREE_CTRL);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
852 wxASSERT (treeCtrl != NULL) ;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
853
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
854 wxTreeItemId id = treeCtrl->GetSelection();
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
855 #if wxCHECK_VERSION(2, 6, 0)
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
856 if (id.IsOk() && ecIsMenuForItem(event))
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
857 #else
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
858 if (id != 0 && ecIsMenuForItem(event))
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
859 #endif
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
860 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
861 ecConfigItem* item = ((ecTreeItemData*) treeCtrl->GetItemData(id))->GetConfigItem();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
862
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
863 item->ViewHeader();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
864 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
865 else
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
866 event.Skip();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
867 }
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 void ecSplitterScrolledWindow::OnUnloadPackage(wxCommandEvent& event)
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 ecConfigTreeCtrl* treeCtrl = (ecConfigTreeCtrl*) FindWindow(ecID_TREE_CTRL);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
872 wxASSERT (treeCtrl != NULL) ;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
873
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
874 wxTreeItemId id = treeCtrl->GetSelection();
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
875 #if wxCHECK_VERSION(2, 6, 0)
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
876 if (id.IsOk())
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
877 #else
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
878 if (id != 0)
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
879 #endif
160
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* item = ((ecTreeItemData*) treeCtrl->GetItemData(id))->GetConfigItem();
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 if (wxYES == wxMessageBox(_("Are you sure you wish to unload this package?"), wxGetApp().GetSettings().GetAppName(),
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
884 wxYES_NO|wxICON_QUESTION))
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
885 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
886 item->Unload();
2467
b75acb19f177 * standalone/wxwin/configitem.cpp: Do not delete the package item object
jld
parents: 2466
diff changeset
887 delete item;
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
888 wxGetApp().GetConfigToolDoc()->RegenerateData();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
889 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
890 }
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
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
893 void ecSplitterScrolledWindow::OnUpdateRestoreDefaults(wxUpdateUIEvent& event)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
894 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
895 ecConfigTreeCtrl* treeCtrl = (ecConfigTreeCtrl*) FindWindow(ecID_TREE_CTRL);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
896 wxASSERT (treeCtrl != NULL) ;
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 wxTreeItemId id = treeCtrl->GetSelection();
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
899 #if wxCHECK_VERSION(2, 6, 0)
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
900 if (id.IsOk())
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
901 #else
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
902 if (id != 0)
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
903 #endif
160
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 ecConfigItem* item = ((ecTreeItemData*) treeCtrl->GetItemData(id))->GetConfigItem();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
906
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
907 event.Enable( IsChanged(id, TRUE ) );
3359
b340d0ab5dd3 * configtool/standalone/wxwin/configtool.cpp,
jld
parents: 3358
diff changeset
908 CYG_UNUSED_PARAM(ecConfigItem *, item);
160
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 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
911
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
912 void ecSplitterScrolledWindow::OnUpdateVisitDoc(wxUpdateUIEvent& event)
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 event.Enable( TRUE );
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
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
917 void ecSplitterScrolledWindow::OnUpdateViewHeader(wxUpdateUIEvent& event)
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 ecConfigToolDoc *pDoc=wxGetApp().GetConfigToolDoc();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
920 event.Enable( pDoc && !pDoc->GetBuildTree().IsEmpty() ) ;
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
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
923 void ecSplitterScrolledWindow::OnUpdateUnloadPackage(wxUpdateUIEvent& event)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
924 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
925 ecConfigTreeCtrl* treeCtrl = (ecConfigTreeCtrl*) FindWindow(ecID_TREE_CTRL);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
926 wxASSERT (treeCtrl != NULL) ;
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 wxTreeItemId id = treeCtrl->GetSelection();
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
929 #if wxCHECK_VERSION(2, 6, 0)
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
930 if (id.IsOk())
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
931 #else
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
932 if (id != 0)
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
933 #endif
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
934 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
935 ecConfigItem* item = ((ecTreeItemData*) treeCtrl->GetItemData(id))->GetConfigItem();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
936
2515
24c0267fbb70 * Utils/ChangeLog Utils/common/eCosStd.h,
jld
parents: 2467
diff changeset
937 event.Enable( item->IsPackage() &&
24c0267fbb70 * Utils/ChangeLog Utils/common/eCosStd.h,
jld
parents: 2467
diff changeset
938 !wxGetApp().GetConfigToolDoc()->GetCdlPkgData()->
24c0267fbb70 * Utils/ChangeLog Utils/common/eCosStd.h,
jld
parents: 2467
diff changeset
939 is_hardware_package (ecUtils::UnicodeToStdStr (item->GetMacro())));
160
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
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
943 bool ecSplitterScrolledWindow::IsChanged(wxTreeItemId id, bool bRecurse)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
944 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
945 ecConfigTreeCtrl* treeCtrl = (ecConfigTreeCtrl*) FindWindow(ecID_TREE_CTRL);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
946 wxASSERT (treeCtrl != NULL) ;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
947
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
948 ecConfigItem* item = ((ecTreeItemData*) treeCtrl->GetItemData(id))->GetConfigItem();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
949 bool rc = item->Modified ();
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 if(!rc && bRecurse)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
952 {
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
953 #if wxCHECK_VERSION(2, 6, 0)
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
954 wxTreeItemIdValue cookie;
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
955 #else
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
956 long cookie;
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 160
diff changeset
957 #endif
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
958 for (id=treeCtrl->GetFirstChild(id, cookie);id;id=treeCtrl->GetNextSibling(id))
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
959 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
960 if (IsChanged(id,TRUE))
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
961 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
962 rc=TRUE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
963 break;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
964 }
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 rc;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
968 }