annotate host/tools/configtool/standalone/wxwin/configtool.cpp @ 2466:480aa5d146e3

* configtool/standalone/wxwin/admindlg.cpp, configtool/standalone/wxwin/appsettings.cpp, configtool/standalone/wxwin/configitem.cpp, configtool/standalone/wxwin/configtool.cpp, configtool/standalone/wxwin/configtooldoc.cpp, configtool/standalone/wxwin/configtooldoc.h, configtool/standalone/wxwin/configtoolview.cpp, configtool/standalone/wxwin/configtree.cpp, configtool/standalone/wxwin/conflictsdlg.cpp, configtool/standalone/wxwin/docsystem.cpp, configtool/standalone/wxwin/ecscrolwin.cpp, configtool/standalone/wxwin/ecscrolwin.h, configtool/standalone/wxwin/ecutils.cpp, configtool/standalone/wxwin/ecutils.h, configtool/standalone/wxwin/filename.cpp, configtool/standalone/wxwin/filename.h, configtool/standalone/wxwin/folderdlg.cpp, configtool/standalone/wxwin/mainwin.cpp, configtool/standalone/wxwin/makefile.gnu, configtool/standalone/wxwin/packagesdlg.cpp, configtool/standalone/wxwin/packagesdlg.h, configtool/standalone/wxwin/platformsdlg.cpp, configtool/standalone/wxwin/platformsdlg.h, configtool/standalone/wxwin/splittree.cpp: Changes to allow building against wxWidgets 2.6.x.
author jld
date Wed, 26 Mar 2008 13:15:44 +0000
parents cf44f62361c7
children 24c0267fbb70
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1 //####COPYRIGHTBEGIN####
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
2 //
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
3 // ----------------------------------------------------------------------------
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
4 // Copyright (C) 1998, 1999, 2000 Red Hat, Inc.
560
4fbd36edba7c * standalone/wxwin/filename.cpp: Eliminate (const WCHAR*) cast in call
jld
parents: 541
diff changeset
5 // Copyright (C) 2003 John Dallaway
2246
cf44f62361c7 * tools/configtool/standalone/wxwin/configtool.cpp: Workaround an exception
jld
parents: 1469
diff changeset
6 // Copyright (C) 2004, 2005, 2006 eCosCentric Limited
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
7 //
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
8 // This program is part of the eCos host tools.
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
9 //
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
10 // This program is free software; you can redistribute it and/or modify it
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
11 // under the terms of the GNU General Public License as published by the Free
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
12 // Software Foundation; either version 2 of the License, or (at your option)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
13 // any later version.
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
14 //
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
15 // This program is distributed in the hope that it will be useful, but WITHOUT
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
16 // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
17 // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
18 // more details.
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
19 //
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
20 // You should have received a copy of the GNU General Public License along with
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
21 // this program; if not, write to the Free Software Foundation, Inc.,
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
22 // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
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 //
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
26 //####COPYRIGHTEND####
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
27 // configtool.cpp :
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
28 //
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
29 //===========================================================================
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
30 //#####DESCRIPTIONBEGIN####
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
31 //
560
4fbd36edba7c * standalone/wxwin/filename.cpp: Eliminate (const WCHAR*) cast in call
jld
parents: 541
diff changeset
32 // Author(s): julians, jld
4fbd36edba7c * standalone/wxwin/filename.cpp: Eliminate (const WCHAR*) cast in call
jld
parents: 541
diff changeset
33 // Contact(s): julians, jld
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
34 // Date: 2000/08/24
199
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
35 // Version: $Id: configtool.cpp,v 1.51 2001/12/11 15:59:51 julians Exp $
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
36 // Purpose:
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
37 // Description: Implementation file for the ConfigTool application class
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
38 // Requires:
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
39 // Provides:
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
40 // See also:
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
41 // Known bugs:
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
42 // Usage:
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 //####DESCRIPTIONEND####
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 // ============================================================================
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
49 // declarations
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
50 // ============================================================================
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
51
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
52 // ----------------------------------------------------------------------------
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
53 // headers
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
54 // ----------------------------------------------------------------------------
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
55 #ifdef __GNUG__
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
56 #pragma implementation "configtool.h"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
57 #endif
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
58
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
59 // Includes other headers for precompiled compilation
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
60 #include "ecpch.h"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
61
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
62 #ifdef __BORLANDC__
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
63 #pragma hdrstop
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
64 #endif
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
65
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
66 #include "eCosSocket.h"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
67 #include "eCosTestPlatform.h"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
68
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
69 #include "wx/splash.h"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
70 #include "wx/cshelp.h"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
71 #include "wx/image.h"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
72 #include "wx/filesys.h"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
73 #include "wx/fs_zip.h"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
74 #include "wx/config.h"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
75 #include "wx/cmdline.h"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
76 #include "wx/process.h"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
77 #include "wx/mimetype.h"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
78 #include "wx/txtstrm.h"
182
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
79 #include "wx/wfstream.h"
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
80 #include "wx/fs_mem.h"
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
81
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
82 #include "configtool.h"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
83 #include "configtoolview.h"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
84 #include "configtree.h"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
85 #include "mainwin.h"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
86 #include "outputwin.h"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
87 #include "configtooldoc.h"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
88 #include "aboutdlg.h"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
89 #include "shortdescrwin.h"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
90 #include "conflictwin.h"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
91 #include "propertywin.h"
182
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
92 #include "symbols.h"
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
93 #include "build.hxx"
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
94 #include "Subprocess.h"
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
95
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 // resources
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
98 // ----------------------------------------------------------------------------
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
99 // the application icon
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
100 #if defined(__WXGTK__) || defined(__WXMOTIF__)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
101 #include "bitmaps/configtool.xpm"
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
102 #endif
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
103
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
104 // Create a new application object.
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
105 IMPLEMENT_APP(ecApp)
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 BEGIN_EVENT_TABLE(ecApp, wxApp)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
108 // Don't handle automatically, or it will bypass more specific processing.
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
109 // EVT_MENU(ecID_WHATS_THIS, ecApp::OnWhatsThis)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
110 END_EVENT_TABLE()
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
111
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
112 bool ecApp::sm_arMounted[26]={0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0};
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
113
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
114 static const wxCmdLineEntryDesc sg_cmdLineDesc[] =
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
115 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
116 /*
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
117 { wxCMD_LINE_SWITCH, "v", "verbose", "be verbose" },
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
118 { wxCMD_LINE_SWITCH, "q", "quiet", "be quiet" },
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
119
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
120 { wxCMD_LINE_OPTION, "o", "output", "output file" },
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
121 { wxCMD_LINE_OPTION, "i", "input", "input dir" },
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
122 { wxCMD_LINE_OPTION, "s", "size", "output block size", wxCMD_LINE_VAL_NUMBER },
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
123 { wxCMD_LINE_OPTION, "d", "date", "output file date", wxCMD_LINE_VAL_DATE },
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
124 */
182
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
125 { wxCMD_LINE_SWITCH, "h", "help", "displays help on the command line parameters" },
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
126 { wxCMD_LINE_SWITCH, "e", "edit-only", "edit save file only" },
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
127 { wxCMD_LINE_SWITCH, "v", "version", "print version" },
199
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
128 { wxCMD_LINE_SWITCH, "c", "compile-help", "compile online help only" },
160
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 { wxCMD_LINE_PARAM, NULL, NULL, "input file 1", wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL },
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
131 { wxCMD_LINE_PARAM, NULL, NULL, "input file 2", wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL },
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
132
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
133 { wxCMD_LINE_NONE }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
134 };
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
135
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
136 ecApp::ecApp()
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 m_docManager = NULL;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
139 m_mainFrame = NULL;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
140 m_currentDoc = NULL;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
141 m_whatsThisMenu = new wxMenu;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
142 m_whatsThisMenu->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
143 m_helpFile = wxEmptyString;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
144 m_splashScreen = NULL;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
145 m_pipedProcess = NULL;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
146 m_valuesLocked = 0;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
147 m_helpController = NULL;
182
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
148 m_fileSystem = new wxFileSystem;
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
149 #if wxUSE_STREAMS && wxUSE_ZIPSTREAM && wxUSE_ZLIB
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
150 m_zipHandler = new wxZipFSHandler;
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
151 #endif
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
152 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
153
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
154 ecApp::~ecApp()
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
155 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
156 delete m_whatsThisMenu;
182
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
157 delete m_fileSystem;
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
158 }
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 // 'Main program' equivalent: the program execution "starts" here
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
161 bool ecApp::OnInit()
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
162 {
2246
cf44f62361c7 * tools/configtool/standalone/wxwin/configtool.cpp: Workaround an exception
jld
parents: 1469
diff changeset
163 // workaround for an exception handling issue with Cygwin 1.5.20
cf44f62361c7 * tools/configtool/standalone/wxwin/configtool.cpp: Workaround an exception
jld
parents: 1469
diff changeset
164 #ifdef __CYGWIN__
cf44f62361c7 * tools/configtool/standalone/wxwin/configtool.cpp: Workaround an exception
jld
parents: 1469
diff changeset
165 try {
cf44f62361c7 * tools/configtool/standalone/wxwin/configtool.cpp: Workaround an exception
jld
parents: 1469
diff changeset
166 throw int(42);
cf44f62361c7 * tools/configtool/standalone/wxwin/configtool.cpp: Workaround an exception
jld
parents: 1469
diff changeset
167 } catch(...) { };
cf44f62361c7 * tools/configtool/standalone/wxwin/configtool.cpp: Workaround an exception
jld
parents: 1469
diff changeset
168 #endif
cf44f62361c7 * tools/configtool/standalone/wxwin/configtool.cpp: Workaround an exception
jld
parents: 1469
diff changeset
169
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
170 wxLog::SetTimestamp(NULL);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
171
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
172 wxHelpProvider::Set(new wxSimpleHelpProvider);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
173 //wxHelpProvider::Set(new wxHelpControllerHelpProvider(& m_helpController));
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 wxImage::AddHandler(new wxPNGHandler);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
176 wxImage::AddHandler(new wxGIFHandler);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
177
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
178 // Required for advanced HTML help
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
179 #if wxUSE_STREAMS && wxUSE_ZIPSTREAM && wxUSE_ZLIB
182
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
180 wxFileSystem::AddHandler(m_zipHandler);
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
181 #endif
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
182
646
9af89f295088 * standalone/wxwin/makefile.gnu:
jld
parents: 613
diff changeset
183 // Mandatory initialisation for Tcl 8.4
9af89f295088 * standalone/wxwin/makefile.gnu:
jld
parents: 613
diff changeset
184 Tcl_FindExecutable(argv[0]);
9af89f295088 * standalone/wxwin/makefile.gnu:
jld
parents: 613
diff changeset
185
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
186 wxString currentDir = wxGetCwd();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
187
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
188 // Use argv to get current app directory
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
189 m_appDir = wxFindAppPath(argv[0], currentDir, wxT("CONFIGTOOLDIR"));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
190
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
191 // If the development version, go up a directory.
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
192 #ifdef __WXMSW__
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
193 if ((m_appDir.Right(5).CmpNoCase("DEBUG") == 0) ||
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
194 (m_appDir.Right(11).CmpNoCase("DEBUGSTABLE") == 0) ||
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
195 (m_appDir.Right(7).CmpNoCase("RELEASE") == 0) ||
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
196 (m_appDir.Right(13).CmpNoCase("RELEASESTABLE") == 0)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
197 )
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
198 m_appDir = wxPathOnly(m_appDir);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
199 #endif
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
200
949
23fdb1c9f07a * standalone/wxwin/configtool.cpp: Install default platform definitions on
jld
parents: 867
diff changeset
201 // Install default platform definitions if no platforms defined
23fdb1c9f07a * standalone/wxwin/configtool.cpp: Install default platform definitions on
jld
parents: 867
diff changeset
202 #ifdef __WXMSW__
23fdb1c9f07a * standalone/wxwin/configtool.cpp: Install default platform definitions on
jld
parents: 867
diff changeset
203 wxConfig config (wxGetApp().GetSettings().GetConfigAppName());
23fdb1c9f07a * standalone/wxwin/configtool.cpp: Install default platform definitions on
jld
parents: 867
diff changeset
204 if (! config.Exists (wxT("Platforms")))
23fdb1c9f07a * standalone/wxwin/configtool.cpp: Install default platform definitions on
jld
parents: 867
diff changeset
205 {
23fdb1c9f07a * standalone/wxwin/configtool.cpp: Install default platform definitions on
jld
parents: 867
diff changeset
206 wxFileName platforms (m_appDir, wxT("platforms.reg"));
23fdb1c9f07a * standalone/wxwin/configtool.cpp: Install default platform definitions on
jld
parents: 867
diff changeset
207 platforms.Normalize();
23fdb1c9f07a * standalone/wxwin/configtool.cpp: Install default platform definitions on
jld
parents: 867
diff changeset
208 if (platforms.FileExists())
23fdb1c9f07a * standalone/wxwin/configtool.cpp: Install default platform definitions on
jld
parents: 867
diff changeset
209 wxExecute (wxT("regedit /s \"") + platforms.GetFullPath() + wxT("\""), wxEXEC_SYNC);
23fdb1c9f07a * standalone/wxwin/configtool.cpp: Install default platform definitions on
jld
parents: 867
diff changeset
210 }
23fdb1c9f07a * standalone/wxwin/configtool.cpp: Install default platform definitions on
jld
parents: 867
diff changeset
211 #endif
23fdb1c9f07a * standalone/wxwin/configtool.cpp: Install default platform definitions on
jld
parents: 867
diff changeset
212 #ifdef __WXGTK__
23fdb1c9f07a * standalone/wxwin/configtool.cpp: Install default platform definitions on
jld
parents: 867
diff changeset
213 wxFileName config (wxFileName::GetHomeDir(), wxEmptyString);
23fdb1c9f07a * standalone/wxwin/configtool.cpp: Install default platform definitions on
jld
parents: 867
diff changeset
214 config.AppendDir(wxT(".eCosPlatforms"));
23fdb1c9f07a * standalone/wxwin/configtool.cpp: Install default platform definitions on
jld
parents: 867
diff changeset
215 if (! config.DirExists())
23fdb1c9f07a * standalone/wxwin/configtool.cpp: Install default platform definitions on
jld
parents: 867
diff changeset
216 {
23fdb1c9f07a * standalone/wxwin/configtool.cpp: Install default platform definitions on
jld
parents: 867
diff changeset
217 wxFileName platforms (m_appDir, wxT("platforms.tar"));
23fdb1c9f07a * standalone/wxwin/configtool.cpp: Install default platform definitions on
jld
parents: 867
diff changeset
218 platforms.Normalize();
23fdb1c9f07a * standalone/wxwin/configtool.cpp: Install default platform definitions on
jld
parents: 867
diff changeset
219 if (platforms.FileExists())
951
3021b4922c80 * standalone/wxwin/appsettings.cpp, standalone/wxwin/mainwin.cpp:
jld
parents: 949
diff changeset
220 wxExecute (wxT("tar -C ") + wxFileName::GetHomeDir() + wxT(" -xf ") + platforms.GetFullPath(), wxEXEC_SYNC);
949
23fdb1c9f07a * standalone/wxwin/configtool.cpp: Install default platform definitions on
jld
parents: 867
diff changeset
221 }
23fdb1c9f07a * standalone/wxwin/configtool.cpp: Install default platform definitions on
jld
parents: 867
diff changeset
222 #endif
23fdb1c9f07a * standalone/wxwin/configtool.cpp: Install default platform definitions on
jld
parents: 867
diff changeset
223
23fdb1c9f07a * standalone/wxwin/configtool.cpp: Install default platform definitions on
jld
parents: 867
diff changeset
224 CeCosSocket::Init();
23fdb1c9f07a * standalone/wxwin/configtool.cpp: Install default platform definitions on
jld
parents: 867
diff changeset
225 CeCosTestPlatform::Load();
23fdb1c9f07a * standalone/wxwin/configtool.cpp: Install default platform definitions on
jld
parents: 867
diff changeset
226
182
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
227 // Load resources from binary resources archive, or failing that, from
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
228 // Windows resources or plain files
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
229 LoadResources();
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
230
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
231 wxGetEnv(wxT("PATH"), & m_strOriginalPath);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
232
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
233 // Create a document manager
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
234 m_docManager = new wxDocManager;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
235
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
236 // Create a template relating documents to their views
165
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
237 wxDocTemplate* templ = new wxDocTemplate(m_docManager, "Configtool", "*.ecc", "", "ecc", "Configtool Doc", "Configtool View",
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
238 CLASSINFO(ecConfigToolDoc), CLASSINFO(ecConfigToolView));
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 // If we've only got one window, we only get to edit
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
241 // one document at a time.
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
242 m_docManager->SetMaxDocsOpen(1);
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 // Initialize config settings
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
245 m_settings.Init();
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 // Let wxWindows know what the app name is
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
248 SetAppName(m_settings.GetAppName());
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
249
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
250 InitializeWindowSettings(TRUE /* beforeWindowConstruction */) ;
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 // Load config settings
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
253 m_settings.LoadConfig();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
254
165
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
255 // Set the default directory for opening/saving files
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
256 if (!m_settings.m_lastFilename.IsEmpty())
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
257 templ->SetDirectory(wxPathOnly(m_settings.m_lastFilename));
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
258
182
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
259 // Parse the command-line parameters and options
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
260 wxCmdLineParser parser(sg_cmdLineDesc, argc, argv);
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
261 int res;
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
262 {
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
263 wxLogNull log;
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
264 res = parser.Parse();
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
265 }
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
266 if (res == -1 || res > 0 || parser.Found(wxT("h")))
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
267 {
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
268 #ifdef __WXGTK__
199
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
269 wxLog::SetActiveTarget(new wxLogStderr);
182
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
270 #endif
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
271 parser.Usage();
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
272 return FALSE;
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
273 }
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
274 if (parser.Found(wxT("v")))
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
275 {
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
276 #ifdef __WXGTK__
199
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
277 wxLog::SetActiveTarget(new wxLogStderr);
182
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
278 #endif
199
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
279 wxString msg;
867
6c0eeb4145cb * standalone/wxwin/symbols.h, standalone/wxwin/aboutdlg.cpp,
jld
parents: 839
diff changeset
280 msg.Printf(wxT("eCos Configuration Tool (c) Red Hat, 2001 Version %s, %s"), ecCONFIGURATION_TOOL_VERSION, __DATE__);
182
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
281 wxLogMessage(msg);
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
282 return FALSE;
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
283 }
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
284
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
285 /*
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
286 #ifdef __WXMSW__
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
287 wxBitmap bitmap(wxBITMAP(splash));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
288 #else
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
289 wxBitmap bitmap;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
290 if (wxFileExists("splash16.png"))
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
291 bitmap.LoadFile("splash16.png", wxBITMAP_TYPE_PNG);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
292 #endif
182
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
293 */
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
294
184
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 182
diff changeset
295 // wxYieldIfNeeded();
160
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 // create the main application window
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
298 ecMainFrame *frame = new ecMainFrame(m_docManager, GetSettings().GetAppName(),
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
299 wxPoint(GetSettings().m_frameSize.x, GetSettings().m_frameSize.y),
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
300 wxSize(GetSettings().m_frameSize.width, GetSettings().m_frameSize.height));
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 m_mainFrame = frame;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
303 SetTopWindow(frame);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
304 frame->Show(TRUE);
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 2246
diff changeset
305
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 2246
diff changeset
306 #if wxCHECK_VERSION(2, 6, 0)
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 2246
diff changeset
307 // Don't do anything for now as the function is only for wxWidgets internal use
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 2246
diff changeset
308 #else
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
309 SendIdleEvents(); // Otherwise UI updates aren't done, because it's busy loading the repository
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 2246
diff changeset
310 #endif
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 2246
diff changeset
311
182
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
312 #ifdef __WXMSW__
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
313 ::UpdateWindow((HWND) frame->GetHWND());
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
314 #endif
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
315
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
316 InitializeWindowSettings(FALSE /* beforeWindowConstruction */) ;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
317
184
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 182
diff changeset
318 if (m_splashScreenBitmap.Ok() && GetSettings().m_showSplashScreen)
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 182
diff changeset
319 {
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 182
diff changeset
320 m_splashScreen = new ecSplashScreen(m_splashScreenBitmap, wxSPLASH_CENTRE_ON_SCREEN|wxSPLASH_TIMEOUT,
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 182
diff changeset
321 5000, NULL, -1, wxDefaultPosition, wxDefaultSize, wxNO_BORDER|wxFRAME_FLOAT_ON_PARENT|wxSTAY_ON_TOP);
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 182
diff changeset
322 }
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 182
diff changeset
323
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 182
diff changeset
324 // if (m_splashScreen)
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 182
diff changeset
325 // m_splashScreen->Raise();
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
326
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
327 wxYieldIfNeeded();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
328
182
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
329 if (parser.Found(wxT("e")))
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
330 GetSettings().m_editSaveFileOnly = TRUE;
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
331
199
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
332 // If in --compile-help (-c) mode, then exit immediately after recompiling help file
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
333 bool compileHelpOnly = parser.Found(wxT("c"));
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
334
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
335 wxString filenameToOpen1, filenameToOpen2;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
336 if (parser.GetParamCount() > 0)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
337 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
338 wxString tmpSaveFile;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
339
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
340 filenameToOpen1 = parser.GetParam(0);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
341
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
342 if (parser.GetParamCount() > 1)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
343 filenameToOpen2 = parser.GetParam(1);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
344
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
345 bool gotRepository = FALSE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
346 bool gotSavefile = FALSE;
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 wxString repositoryDir, saveFile;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
349
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
350 // Might be e.g. . or .. in path, or relative path
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
351 filenameToOpen1 = wxGetRealPath(currentDir, filenameToOpen1);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
352
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
353 if (parser.GetParamCount() > 1)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
354 filenameToOpen2 = wxGetRealPath(currentDir, filenameToOpen2);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
355
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
356 wxString path1, name1, ext1;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
357 wxSplitPath(filenameToOpen1, & path1, & name1, & ext1);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
358
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
359 wxString path2, name2, ext2;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
360 wxSplitPath(filenameToOpen2, & path2, & name2, & ext2);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
361
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
362 // Look at the first file
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
363 if (ext1 == "ecc" || ext1 == "ECC")
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 if (wxFileExists(filenameToOpen1))
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
366 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
367 gotSavefile = TRUE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
368 saveFile = filenameToOpen1;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
369 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
370 else
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 wxString msg;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
373 msg.Printf("%s is not a valid file.", (const wxChar*) filenameToOpen1);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
374 wxMessageBox(msg, wxGetApp().GetSettings().GetAppName(), wxICON_EXCLAMATION|wxOK);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
375 return FALSE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
376 }
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 else if (wxDirExists(filenameToOpen1) && FindSaveFileInDir(filenameToOpen1, tmpSaveFile))
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 saveFile = tmpSaveFile;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
381 gotSavefile = TRUE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
382 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
383 else if ((name1 == wxT("ecos") && ext1 == wxT("db") && wxFileExists(filenameToOpen1)) || wxDirExists(filenameToOpen1))
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 // It's a repository (we hope).
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
386 if (name1 == wxT("ecos") && ext1 == wxT("db"))
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
387 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
388 // Go two steps up
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
389 filenameToOpen1 = wxPathOnly(filenameToOpen1);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
390 filenameToOpen1 = wxPathOnly(filenameToOpen1);
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 else
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
393 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
394 // If it's the packages directory, we need to strip off
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
395 // a directory
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
396 wxString eccPath(filenameToOpen1 + wxString(wxFILE_SEP_PATH) + wxT("ecc"));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
397
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
398 // Don't strip off ecc if it's the CVS repository (with ecc below it)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
399 if (name1 == wxT("packages") || (name1 == wxT("ecc") && !wxDirExists(eccPath)))
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
400 filenameToOpen1 = wxPathOnly(filenameToOpen1);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
401 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
402
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
403 repositoryDir = filenameToOpen1;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
404 gotRepository = TRUE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
405 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
406 else
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
407 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
408 wxString msg;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
409 msg.Printf("%s is neither a project file nor a valid repository.", (const wxChar*) filenameToOpen1);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
410 wxMessageBox(msg, wxGetApp().GetSettings().GetAppName(), wxICON_EXCLAMATION|wxOK);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
411 return FALSE;
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
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
414 // Look at the second file, if any
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
415 if (parser.GetParamCount() > 1)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
416 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
417 if (ext2 == "ecc" || ext2 == "ECC")
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 if (wxFileExists(filenameToOpen2))
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 if (gotSavefile)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
422 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
423 wxString msg;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
424 msg.Printf("%s is a second save file -- please supply only one.", (const wxChar*) filenameToOpen2);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
425 wxMessageBox(msg, wxGetApp().GetSettings().GetAppName(), wxICON_EXCLAMATION|wxOK);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
426 return FALSE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
427 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
428
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
429 gotSavefile = TRUE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
430 saveFile = filenameToOpen2;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
431 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
432 else
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
433 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
434 wxString msg;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
435 msg.Printf("%s is not a valid file.", (const wxChar*) filenameToOpen2);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
436 wxMessageBox(msg, wxGetApp().GetSettings().GetAppName(), wxICON_EXCLAMATION|wxOK);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
437 return FALSE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
438 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
439 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
440 else if (!gotSavefile && wxDirExists(filenameToOpen2) && FindSaveFileInDir(filenameToOpen2, tmpSaveFile))
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 saveFile = tmpSaveFile;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
443 gotSavefile = TRUE;
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 else if ((name2 == wxT("ecos") && ext2 == wxT("db") && wxFileExists(filenameToOpen2)) || wxDirExists(filenameToOpen2))
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
446 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
447 if (gotRepository)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
448 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
449 wxString msg;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
450 msg.Printf("%s is a second repository -- please supply only one.", (const wxChar*) filenameToOpen2);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
451 wxMessageBox(msg, wxGetApp().GetSettings().GetAppName(), wxICON_EXCLAMATION|wxOK);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
452 return FALSE;
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
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
455 // It's a repository (we hope).
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
456 if (name1 == wxT("ecos") && ext1 == wxT("db"))
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
457 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
458 // Go two steps up
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
459 filenameToOpen2 = wxPathOnly(filenameToOpen2);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
460 filenameToOpen2 = wxPathOnly(filenameToOpen2);
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 else
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 // If it's the packages directory, we need to strip off
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
465 // a directory
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
466 wxString eccPath(filenameToOpen2 + wxString(wxFILE_SEP_PATH) + wxT("ecc"));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
467
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
468 // Don't strip off ecc if it's the CVS repository (with ecc below it)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
469 if (name2 == wxT("packages") || (name2 == wxT("ecc") && !wxDirExists(eccPath)))
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
470 filenameToOpen2 = wxPathOnly(filenameToOpen2);
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
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
473 repositoryDir = filenameToOpen2;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
474 gotRepository = TRUE;
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 else
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
477 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
478 wxString msg;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
479 msg.Printf("%s is neither a project file nor a valid repository.", (const wxChar*) filenameToOpen2);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
480 wxMessageBox(msg, wxGetApp().GetSettings().GetAppName(), wxICON_EXCLAMATION|wxOK);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
481 return FALSE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
482 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
483 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
484
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
485 // Now we have looked at the two files and decided what they are; let's
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
486 // act on it.
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
487
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
488 if (gotRepository)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
489 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
490 GetSettings().m_strRepository = repositoryDir;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
491 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
492
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
493 if (!gotSavefile)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
494 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
495 // See if there's a save file in the current dir
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
496 if (FindSaveFileInDir(currentDir, saveFile))
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
497 gotSavefile = TRUE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
498 }
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 (gotSavefile)
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 // The repository will be loaded from m_strRepository, possibly set above.
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
503 m_docManager->CreateDocument(saveFile, wxDOC_SILENT);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
504 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
505 else
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 // Create a new file
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
508 m_docManager->CreateDocument(wxString(""), wxDOC_NEW);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
509 }
199
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
510
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
511 if (compileHelpOnly)
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
512 {
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
513 if (!gotRepository)
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
514 {
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
515 wxString msg;
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
516 msg.Printf(wxT("Please specify a repository when using the --compile-help option."));
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
517 wxMessageBox(msg, wxGetApp().GetSettings().GetAppName(), wxICON_EXCLAMATION|wxOK);
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
518 return FALSE;
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
519 }
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
520 ecConfigToolDoc* doc = wxGetApp().GetConfigToolDoc();
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
521 if (doc)
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
522 {
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
523 if (!doc->RebuildHelpIndex(TRUE))
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
524 {
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
525 wxString msg;
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
526 msg.Printf(wxT("Sorry, there was a problem compiling the help index."));
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
527 wxMessageBox(msg, wxGetApp().GetSettings().GetAppName(), wxICON_EXCLAMATION|wxOK);
839
706b0bdaf01c * standalone/wxwin/appsettings.cpp, standalone/wxwin/configtool.cpp:
jld
parents: 646
diff changeset
528 return FALSE;
199
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
529 }
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
530 }
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
531 else
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
532 {
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
533 wxString msg;
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
534 msg.Printf(wxT("Sorry, there was no current document when compiling the help index."));
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
535 wxMessageBox(msg, wxGetApp().GetSettings().GetAppName(), wxICON_EXCLAMATION|wxOK);
839
706b0bdaf01c * standalone/wxwin/appsettings.cpp, standalone/wxwin/configtool.cpp:
jld
parents: 646
diff changeset
536 return FALSE;
199
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
537 }
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
538
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
539 // Return FALSE in order to quit the application
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
540 return FALSE;
920b9b754b53 Merge from eCos master repository on 2001-12-15-12:00:33-GMT
jlarmour
parents: 191
diff changeset
541 }
160
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 else
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
544 {
839
706b0bdaf01c * standalone/wxwin/appsettings.cpp, standalone/wxwin/configtool.cpp:
jld
parents: 646
diff changeset
545 if (GetSettings().m_strRepository.IsEmpty()) // first invocation by this user
706b0bdaf01c * standalone/wxwin/appsettings.cpp, standalone/wxwin/configtool.cpp:
jld
parents: 646
diff changeset
546 {
706b0bdaf01c * standalone/wxwin/appsettings.cpp, standalone/wxwin/configtool.cpp:
jld
parents: 646
diff changeset
547 // we have no clues as to the location of the repository so
706b0bdaf01c * standalone/wxwin/appsettings.cpp, standalone/wxwin/configtool.cpp:
jld
parents: 646
diff changeset
548 // test for ../../packages relative to the configtool location
706b0bdaf01c * standalone/wxwin/appsettings.cpp, standalone/wxwin/configtool.cpp:
jld
parents: 646
diff changeset
549 wxFileName repository = wxFileName (m_appDir, wxEmptyString);
706b0bdaf01c * standalone/wxwin/appsettings.cpp, standalone/wxwin/configtool.cpp:
jld
parents: 646
diff changeset
550 repository.Normalize(); // remove trailing "./" if present
706b0bdaf01c * standalone/wxwin/appsettings.cpp, standalone/wxwin/configtool.cpp:
jld
parents: 646
diff changeset
551 repository.RemoveDir (repository.GetDirCount()-1);
706b0bdaf01c * standalone/wxwin/appsettings.cpp, standalone/wxwin/configtool.cpp:
jld
parents: 646
diff changeset
552 repository.RemoveDir (repository.GetDirCount()-1);
706b0bdaf01c * standalone/wxwin/appsettings.cpp, standalone/wxwin/configtool.cpp:
jld
parents: 646
diff changeset
553 repository.AppendDir (wxT("packages"));
706b0bdaf01c * standalone/wxwin/appsettings.cpp, standalone/wxwin/configtool.cpp:
jld
parents: 646
diff changeset
554 if (repository.DirExists()) // we've found a repository
706b0bdaf01c * standalone/wxwin/appsettings.cpp, standalone/wxwin/configtool.cpp:
jld
parents: 646
diff changeset
555 {
706b0bdaf01c * standalone/wxwin/appsettings.cpp, standalone/wxwin/configtool.cpp:
jld
parents: 646
diff changeset
556 repository.RemoveDir (repository.GetDirCount()-1);
706b0bdaf01c * standalone/wxwin/appsettings.cpp, standalone/wxwin/configtool.cpp:
jld
parents: 646
diff changeset
557 GetSettings().m_strRepository = repository.GetFullPath();
706b0bdaf01c * standalone/wxwin/appsettings.cpp, standalone/wxwin/configtool.cpp:
jld
parents: 646
diff changeset
558 }
706b0bdaf01c * standalone/wxwin/appsettings.cpp, standalone/wxwin/configtool.cpp:
jld
parents: 646
diff changeset
559 }
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
560 m_docManager->CreateDocument(wxString(""), wxDOC_NEW);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
561 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
562
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
563 return TRUE;
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
182
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
566 // Load resources from disk
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
567 bool ecApp::LoadResources()
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
568 {
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
569 wxFileSystem::AddHandler(new wxMemoryFSHandler);
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
570
560
4fbd36edba7c * standalone/wxwin/filename.cpp: Eliminate (const WCHAR*) cast in call
jld
parents: 541
diff changeset
571 // LoadBitmapResource(m_splashScreenBitmap, wxT("splash16.png"), wxBITMAP_TYPE_PNG, FALSE);
182
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
572
560
4fbd36edba7c * standalone/wxwin/filename.cpp: Eliminate (const WCHAR*) cast in call
jld
parents: 541
diff changeset
573 // wxBitmap bitmap1, bitmap2, bitmap3;
4fbd36edba7c * standalone/wxwin/filename.cpp: Eliminate (const WCHAR*) cast in call
jld
parents: 541
diff changeset
574 // LoadBitmapResource(bitmap1, wxT("ecoslogo.png"), wxBITMAP_TYPE_PNG, TRUE);
4fbd36edba7c * standalone/wxwin/filename.cpp: Eliminate (const WCHAR*) cast in call
jld
parents: 541
diff changeset
575 // LoadBitmapResource(bitmap2, wxT("ecoslogosmall.png"), wxBITMAP_TYPE_PNG, TRUE);
4fbd36edba7c * standalone/wxwin/filename.cpp: Eliminate (const WCHAR*) cast in call
jld
parents: 541
diff changeset
576 // LoadBitmapResource(bitmap3, wxT("rhlogo.png"), wxBITMAP_TYPE_PNG, TRUE);
182
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
577
560
4fbd36edba7c * standalone/wxwin/filename.cpp: Eliminate (const WCHAR*) cast in call
jld
parents: 541
diff changeset
578 // wxString aboutText;
4fbd36edba7c * standalone/wxwin/filename.cpp: Eliminate (const WCHAR*) cast in call
jld
parents: 541
diff changeset
579 // LoadTextResource(aboutText, wxT("about.htm"), TRUE);
182
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
580
560
4fbd36edba7c * standalone/wxwin/filename.cpp: Eliminate (const WCHAR*) cast in call
jld
parents: 541
diff changeset
581 // VersionStampSplashScreen();
182
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
582
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
583 return TRUE;
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
584 }
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
585
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
586 // Load resources from zip resource file or disk
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
587 bool ecApp::LoadBitmapResource(wxBitmap& bitmap, const wxString& filename, int bitmapType, bool addToMemoryFS)
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
588 {
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
589 wxString archive(GetFullAppPath(wxT("configtool.bin")));
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
590
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
591 #if wxUSE_STREAMS && wxUSE_ZIPSTREAM && wxUSE_ZLIB
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
592 wxFSFile* file = m_fileSystem->OpenFile(archive + wxString(wxT("#zip:")) + filename);
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
593 if (file)
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
594 {
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
595 wxInputStream* stream = file->GetStream();
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
596
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
597 wxImage image(* stream, bitmapType);
1019
a06219a61324 * standalone/wxwin/admindlg.cpp, standalone/wxwin/buildoptionsdlg.cpp,
jld
parents: 951
diff changeset
598 bitmap = wxBitmap(image);
182
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
599
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
600 delete file;
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
601 }
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
602 #endif
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
603
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
604 #ifdef __WXMSW__
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
605 if (!bitmap.Ok())
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
606 bitmap.LoadFile(filename, wxBITMAP_TYPE_BMP_RESOURCE);
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
607 #endif
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
608
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
609 if (!bitmap.Ok() && wxFileExists(GetFullAppPath(filename)))
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
610 bitmap.LoadFile(GetFullAppPath(filename), bitmapType);
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
611
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
612
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
613 if (bitmap.Ok() && addToMemoryFS)
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
614 wxMemoryFSHandler::AddFile(filename, bitmap, bitmapType);
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
615
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
616 return bitmap.Ok();
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
617 }
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
618
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
619 // Load resources from zip resource file or disk
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
620 bool ecApp::LoadTextResource(wxString& text, const wxString& filename, bool addToMemoryFS)
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
621 {
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
622 wxString archive(GetFullAppPath(wxT("configtool.bin")));
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
623
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
624 bool success = FALSE;
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
625
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
626 #if wxUSE_STREAMS && wxUSE_ZIPSTREAM && wxUSE_ZLIB
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
627 wxFSFile* file = m_fileSystem->OpenFile(archive + wxString(wxT("#zip:")) + filename);
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
628 if (file)
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
629 {
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
630 wxInputStream* stream = file->GetStream();
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
631
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
632 char* buf = text.GetWriteBuf(stream->GetSize() + 1);
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
633 stream->Read((void*) buf, stream->GetSize());
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
634 buf[stream->GetSize()] = 0;
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
635 text.UngetWriteBuf();
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
636
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
637 success = TRUE;
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
638
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
639 delete file;
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
640 }
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
641 #endif
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
642
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
643 if (!success && wxFileExists(GetFullAppPath(filename)))
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
644 {
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
645 wxFileInputStream str(GetFullAppPath(filename));
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
646
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
647 char* buf = text.GetWriteBuf(str.GetSize() + 1);
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
648 str.Read((void*) buf, str.GetSize());
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
649 buf[str.GetSize()] = 0;
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
650 text.UngetWriteBuf();
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
651
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
652 success = TRUE;
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
653 }
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
654
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
655 if (success && addToMemoryFS)
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
656 wxMemoryFSHandler::AddFile(filename, text);
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
657
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
658 return success;
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
659 }
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
660
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
661 // Get a text resource from the memory filesystem
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
662 bool ecApp::GetMemoryTextResource(const wxString& filename, wxString& text)
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
663 {
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
664 wxString s(wxString(wxT("memory:")) + filename);
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
665 wxFSFile* file = wxGetApp().GetFileSystem()->OpenFile(s);
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
666 if (file)
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
667 {
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
668 wxInputStream* stream = file->GetStream();
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
669
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
670 char* buf = text.GetWriteBuf(stream->GetSize() + 1);
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
671 stream->Read((void*) buf, stream->GetSize());
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
672 buf[stream->GetSize()] = 0;
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
673 text.UngetWriteBuf();
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
674
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
675 delete file;
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
676 return TRUE;
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
677 }
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
678 else
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
679 return FALSE;
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
680 }
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
681
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
682 // Version-stamp the splash screen
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
683 bool ecApp::VersionStampSplashScreen()
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
684 {
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
685 if (m_splashScreenBitmap.Ok())
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
686 {
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
687 wxMemoryDC dc;
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
688 dc.SelectObject(m_splashScreenBitmap);
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
689
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
690 wxColour textColour(19, 49, 4);
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
691 dc.SetTextForeground(textColour);
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
692 dc.SetBackgroundMode(wxTRANSPARENT);
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
693 dc.SetFont(wxFont(11, wxSWISS, wxNORMAL, wxBOLD, FALSE));
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
694
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
695 // Bottom left of area to start drawing at
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
696
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
697 wxString verString;
867
6c0eeb4145cb * standalone/wxwin/symbols.h, standalone/wxwin/aboutdlg.cpp,
jld
parents: 839
diff changeset
698 verString.Printf("%s", ecCONFIGURATION_TOOL_VERSION);
182
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
699
184
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 182
diff changeset
700 int x = 339; int y = 231;
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 182
diff changeset
701 #ifdef __WXMSW__
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
702 y += 5; // For some reason
184
022f1e506033 Merge from eCos master repository on 2001-10-02-17:59:22-BST
jlarmour
parents: 182
diff changeset
703 #endif
182
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
704 int w, h;
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
705 dc.GetTextExtent(verString, & w, & h);
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
706 dc.DrawText(verString, x, y - h);
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
707
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
708 dc.SelectObject(wxNullBitmap);
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
709
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
710 return TRUE;
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
711 }
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
712 else
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
713 return FALSE;
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
714 }
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
715
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
716 // Initialize window settings object
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
717 bool ecApp::InitializeWindowSettings(bool beforeWindowConstruction)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
718 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
719 wxWindowSettings& settings = GetSettings().m_windowSettings;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
720 ecMainFrame* frame = GetMainFrame();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
721
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
722 if (beforeWindowConstruction)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
723 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
724 settings.Add(wxT("Configuration"));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
725 settings.Add(wxT("Short Description"));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
726 settings.Add(wxT("Output"));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
727 settings.Add(wxT("Properties"));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
728 settings.Add(wxT("Conflicts"));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
729 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
730 else
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
731 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
732 wxArrayPtrVoid arr;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
733 arr.Add(frame->GetTreeCtrl());
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
734 arr.Add(frame->GetValueWindow());
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
735 settings.SetWindows(wxT("Configuration"), arr);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
736
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
737 settings.SetWindow(wxT("Short Description"), frame->GetShortDescriptionWindow());
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
738 settings.SetWindow(wxT("Output"), frame->GetOutputWindow());
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
739 settings.SetWindow(wxT("Properties"), frame->GetPropertyListWindow());
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
740 settings.SetWindow(wxT("Conflicts"), frame->GetConflictsWindow());
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
741 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
742
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
743 return TRUE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
744 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
745
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
746
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
747 bool ecApp::InitializeHelpController()
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
748 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
749 if (m_helpController)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
750 delete m_helpController;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
751 m_helpController = new wxHelpController;
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 if (!m_helpController->Initialize(GetHelpFile()))
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
754 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
755 // TODO
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
756 return FALSE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
757 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
758 else
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
759 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
760 // Tell the help controller where the repository documentation is.
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
761 // For now, just keep this to myself since it uses hacks to wxWin
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
762 ecConfigToolDoc* doc = GetConfigToolDoc();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
763
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
764 // No longer using relative paths
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
765 #if 0
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
766 if (doc)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
767 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
768 wxString htmlDir = wxString(doc->GetRepository()) + wxString(wxT("/doc/html"));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
769 if (!wxDirExists(htmlDir))
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
770 htmlDir = wxString(doc->GetRepository()) + wxString(wxT("/doc"));
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 htmlDir += wxString(wxT("/"));
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 wxGetApp().GetHelpController().SetBookBasePath(htmlDir);
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 #endif
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
777 return TRUE;
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 }
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 // Check if there is a (unique) .ecc file in dir
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
782 bool ecApp::FindSaveFileInDir(const wxString& dir, wxString& saveFile)
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 wxDir fileFind;
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 if (!fileFind.Open(dir))
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
787 return FALSE;
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 wxString wildcard = wxT(".ecc");
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
790 wxString filename;
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 bool found = fileFind.GetFirst (& filename, wildcard);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
793 if (found)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
794 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
795 // Fail if there was more than one matching file.
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
796 wxString filename2;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
797 if (fileFind.GetNext (& filename2))
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
798 return FALSE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
799 else
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
800 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
801 saveFile = dir + wxString(wxFILE_SEP_PATH) + filename;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
802 return TRUE;
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 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
805 return FALSE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
806 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
807
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
808 int ecApp::OnExit(void)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
809 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
810 /*
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
811 if (m_helpController)
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 delete m_helpController;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
814 m_helpController = NULL;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
815 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
816 */
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
817
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
818 if (m_splashScreen)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
819 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
820 m_splashScreen->Destroy();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
821 m_splashScreen = NULL;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
822 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
823
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
824 m_settings.SaveConfig();
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 {
613
f83ca6359915 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 560
diff changeset
827 wxConfig config(wxGetApp().GetSettings().GetConfigAppName());
169
11b54a94cf58 Merge from eCos master repository on 2001-07-06-06:43:02-BST
jlarmour
parents: 165
diff changeset
828 if (config.HasGroup(wxT("FileHistory")))
11b54a94cf58 Merge from eCos master repository on 2001-07-06-06:43:02-BST
jlarmour
parents: 165
diff changeset
829 config.DeleteGroup(wxT("FileHistory"));
11b54a94cf58 Merge from eCos master repository on 2001-07-06-06:43:02-BST
jlarmour
parents: 165
diff changeset
830 config.SetPath(wxT("FileHistory/"));
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
831 m_docManager->FileHistorySave(config);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
832 }
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 delete m_docManager;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
835
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
836 return 0;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
837 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
838
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
839 // Prepend the current program directory to the name
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
840 wxString ecApp::GetFullAppPath(const wxString& filename) const
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
841 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
842 wxString path(m_appDir);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
843 if (path.Last() != '\\' && path.Last() != '/' && filename[0] != '\\' && filename[0] != '/')
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
844 #ifdef __WXGTK__
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
845 path += '/';
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
846 #else
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
847 path += '\\';
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
848 #endif
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
849 path += filename;
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 return path;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
852 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
853
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
854 // Are we running in 32K colours or more?
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
855 bool ecApp::GetHiColour() const
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
856 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
857 static bool hiColour = (wxDisplayDepth() >= 16) ;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
858 return hiColour;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
859 }
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 // General handler for 'What's this?'
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
862 void ecApp::OnWhatsThis(wxCommandEvent& event)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
863 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
864 wxObject* obj = event.GetEventObject();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
865 wxWindow* win = NULL;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
866
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
867 if (obj->IsKindOf(CLASSINFO(wxMenu)))
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 win = ((wxMenu*) obj)->GetInvokingWindow();
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 else if (obj->IsKindOf(CLASSINFO(wxWindow)))
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
872 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
873 win = (wxWindow*) obj;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
874 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
875
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
876 wxWindow* subjectOfHelp = win;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
877 bool eventProcessed = FALSE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
878 wxPoint pt = wxGetMousePosition();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
879
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
880 while (subjectOfHelp && !eventProcessed)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
881 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
882 wxHelpEvent helpEvent(wxEVT_HELP, subjectOfHelp->GetId(), pt) ;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
883 helpEvent.SetEventObject(this);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
884 eventProcessed = win->GetEventHandler()->ProcessEvent(helpEvent);
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 // Go up the window hierarchy until the event is handled (or not).
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
887 // I.e. keep submitting ancestor windows until one is recognised
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
888 // by the app code that processes the ids and displays help.
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
889 subjectOfHelp = subjectOfHelp->GetParent();
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 // wxGetApp().GetHelpController().DisplayTextPopup(GetHelpText(), wxGetMousePosition());
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
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
894 // Log to output window
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
895 void ecApp::Log(const wxString& msg)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
896 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
897 ecMainFrame* frame = (ecMainFrame*) GetTopWindow();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
898 if (frame)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
899 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
900 frame->GetOutputWindow()->AppendText(msg /* + wxT("\n") */ );
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
901 if ((msg == wxEmptyString) || (msg.Last() != wxT('\n')))
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
902 frame->GetOutputWindow()->AppendText(wxT("\n"));
165
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
903
2466
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 2246
diff changeset
904 #ifdef __CYGWIN__
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 2246
diff changeset
905 // Seem to need this under Cygwin to force the last insert point to show
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 2246
diff changeset
906 frame->GetOutputWindow()->ShowPosition(frame->GetOutputWindow()->GetLastPosition());
480aa5d146e3 * configtool/standalone/wxwin/admindlg.cpp,
jld
parents: 2246
diff changeset
907 #endif
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
908 }
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 void ecApp::SetStatusText(const wxString& text, bool clearFailingRulesPane)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
912 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
913 ecMainFrame* mainFrame = GetMainFrame();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
914 if(mainFrame)
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 mainFrame->GetStatusBar()->SetStatusText(text, ecStatusPane);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
917 if (clearFailingRulesPane)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
918 mainFrame->GetStatusBar()->SetStatusText(wxT(""), ecFailRulePane);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
919 #ifdef __WXMSW__
182
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
920 ::UpdateWindow((HWND) mainFrame->GetHWND());
f62680ef1804 Merge from eCos master repository on 2001-09-07-06:43:02-BST
jlarmour
parents: 171
diff changeset
921 //wxYield();
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
922 #endif
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
923 }
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
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
926 // Config tree control
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
927 ecConfigTreeCtrl* ecApp::GetTreeCtrl() const
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
928 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
929 return GetMainFrame()->GetTreeCtrl();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
930 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
931
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
932 // MLT window
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
933 ecMemoryLayoutWindow* ecApp::GetMLTWindow() const
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 return GetMainFrame()->GetMemoryLayoutWindow();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
936 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
937
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
938 // Get active document
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
939 ecConfigToolDoc* ecApp::GetConfigToolDoc() const
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 if (m_currentDoc)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
942 return m_currentDoc;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
943
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
944 if (!m_docManager)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
945 return NULL;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
946
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
947 return wxDynamicCast(m_docManager->GetCurrentDocument(), ecConfigToolDoc);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
948 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
949
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
950 bool ecApp::Launch(const wxString & strFileName,const wxString &strViewer)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
951 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
952 bool ok = FALSE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
953 wxString cmd;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
954
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
955 if (!strViewer.IsEmpty())
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
956 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
957 cmd = strViewer + wxString(wxT(" ")) + strFileName ;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
958 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
959 else
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
960 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
961 wxString path, filename, ext;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
962 wxSplitPath(strFileName, & path, & filename, & ext);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
963
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
964 wxFileType *ft = wxTheMimeTypesManager->GetFileTypeFromExtension(ext);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
965 if ( !ft )
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 wxLogError(_T("Impossible to determine the file type for extension '%s'"),
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
968 ext.c_str());
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
969 return FALSE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
970 }
541
ea8eda51bc88 * standalone/wxwin/configtool.cpp: Use correct data type in call
jld
parents: 199
diff changeset
971
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
972 bool ok = ft->GetOpenCommand(&cmd,
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
973 wxFileType::MessageParameters(strFileName, _T("")));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
974 delete ft;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
975
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
976 if (!ok)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
977 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
978 // TODO: some kind of configuration dialog here.
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
979 wxMessageBox(_("Could not determine the command for opening this file."),
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
980 wxGetApp().GetSettings().GetAppName(), wxOK|wxICON_EXCLAMATION);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
981 return FALSE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
982 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
983 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
984
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
985 ok = (wxExecute(cmd, FALSE) != 0);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
986
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
987 return ok;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
988
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
989 #if 0
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
990 bool rc=false;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
991
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
992 if(!strViewer.IsEmpty())//use custom editor
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
993 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
994 CString strCmdline(strViewer);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
995
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
996 TCHAR *pszCmdLine=strCmdline.GetBuffer(strCmdline.GetLength());
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
997 GetShortPathName(pszCmdLine,pszCmdLine,strCmdline.GetLength());
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
998 strCmdline.ReleaseBuffer();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
999
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1000 strCmdline+=_TCHAR(' ');
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1001 strCmdline+=strFileName;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1002 PROCESS_INFORMATION pi;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1003 STARTUPINFO si;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1004
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1005 si.cb = sizeof(STARTUPINFO);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1006 si.lpReserved = NULL;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1007 si.lpReserved2 = NULL;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1008 si.cbReserved2 = 0;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1009 si.lpDesktop = NULL;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1010 si.dwFlags = 0;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1011 si.lpTitle=NULL;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1012
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1013 if(CreateProcess(
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1014 NULL, // app name
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1015 //strCmdline.GetBuffer(strCmdline.GetLength()), // command line
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1016 strCmdline.GetBuffer(strCmdline.GetLength()), // command line
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1017 NULL, // process security
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1018 NULL, // thread security
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1019 TRUE, // inherit handles
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1020 0,
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1021 NULL, // environment
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1022 NULL, // current dir
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1023 &si, // startup info
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1024 &pi)){
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1025 CloseHandle(pi.hProcess);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1026 CloseHandle(pi.hThread);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1027 rc=true;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1028 } else {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1029 CUtils::MessageBoxF(_T("Failed to invoke %s.\n"),strCmdline);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1030 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1031 strCmdline.ReleaseBuffer();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1032 } else {// Use association
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1033 TCHAR szExe[MAX_PATH];
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1034 HINSTANCE h=FindExecutable(strFileName,_T("."),szExe);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1035 if(int(h)<=32){
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1036 CString str;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1037 switch(int(h)){
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1038 case 0: str=_T("The system is out of memory or resources.");break;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1039 case 31: str=_T("There is no association for the specified file type.");break;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1040 case ERROR_FILE_NOT_FOUND: str=_T("The specified file was not found.");break;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1041 case ERROR_PATH_NOT_FOUND: str=_T("The specified path was not found.");break;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1042 case ERROR_BAD_FORMAT: str=_T("The .EXE file is invalid (non-Win32 .EXE or error in .EXE image).");break;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1043 default: break;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1044 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1045 CUtils::MessageBoxF(_T("Failed to open document %s.\r\n%s"),strFileName,str);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1046 } else {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1047
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1048 SHELLEXECUTEINFO sei = {sizeof(sei), 0, AfxGetMainWnd()->GetSafeHwnd(), _T("open"),
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1049 strFileName, NULL, NULL, SW_SHOWNORMAL, AfxGetInstanceHandle( )};
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1050
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1051 sei.hInstApp=0;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1052 HINSTANCE hInst=ShellExecute(AfxGetMainWnd()->GetSafeHwnd(),_T("open"), strFileName, NULL, _T("."), 0)/*ShellExecuteEx(&sei)*/;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1053 if(int(hInst)<=32/*sei.hInstApp==0*/)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1054 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1055 CString str;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1056 switch(int(hInst))
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1057 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1058 case 0 : str=_T("The operating system is out of memory or resources. ");break;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1059 case ERROR_FILE_NOT_FOUND : str=_T("The specified file was not found. ");break;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1060 case ERROR_PATH_NOT_FOUND : str=_T("The specified path was not found. ");break;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1061 case ERROR_BAD_FORMAT : str=_T("The .EXE file is invalid (non-Win32 .EXE or error in .EXE image). ");break;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1062 case SE_ERR_ACCESSDENIED : str=_T("The operating system denied access to the specified file. ");break;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1063 case SE_ERR_ASSOCINCOMPLETE : str=_T("The filename association is incomplete or invalid. ");break;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1064 case SE_ERR_DDEBUSY : str=_T("The DDE transaction could not be completed because other DDE transactions were being processed. ");break;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1065 case SE_ERR_DDEFAIL : str=_T("The DDE transaction failed. ");break;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1066 case SE_ERR_DDETIMEOUT : str=_T("The DDE transaction could not be completed because the request timed out. ");break;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1067 case SE_ERR_DLLNOTFOUND : str=_T("The specified dynamic-link library was not found. ");break;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1068 //case SE_ERR_FNF : str=_T("The specified file was not found. ");break;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1069 case SE_ERR_NOASSOC : str=_T("There is no application associated with the given filename extension. ");break;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1070 case SE_ERR_OOM : str=_T("There was not enough memory to complete the operation. ");break;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1071 //case SE_ERR_PNF : str=_T("The specified path was not found. ");break;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1072 case SE_ERR_SHARE : str=_T("A sharing violation occurred. ");break;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1073 default: str=_T("An unexpected error occurred");break;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1074 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1075 CUtils::MessageBoxF(_T("Failed to open document %s using %s.\r\n%s"),strFileName,szExe,str);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1076 } else {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1077 rc=true;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1078 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1079 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1080 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1081 return rc;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1082 #endif
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1083 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1084
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1085 bool ecApp::PrepareEnvironment(bool bWithBuildTools, wxString* cmdLine)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1086 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1087 #ifdef __WXMSW__
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1088 // Under Windows we can set variables.
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1089 ecConfigToolDoc *pDoc = GetConfigToolDoc();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1090
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1091 wxSetEnv(wxT("PATH"), m_strOriginalPath);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1092
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1093 const wxString strPrefix(pDoc->GetCurrentTargetPrefix());
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1094 ecFileName strBinDir;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1095 bool rc = FALSE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1096
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1097 rc=(! bWithBuildTools) || GetSettings().m_arstrBinDirs.Find(strPrefix, strBinDir);
165
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
1098 if(!rc)
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
1099 {
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
1100 // Use fallback of previously-entered build tools directory, if available
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
1101 if (!GetSettings().m_buildToolsDir.IsEmpty())
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
1102 {
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
1103 strBinDir = GetSettings().m_buildToolsDir ;
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
1104 rc = TRUE;
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
1105 }
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
1106 else
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
1107 {
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
1108 wxCommandEvent event;
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
1109 GetMainFrame()->OnBuildToolsPath(event);
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
1110 rc = GetSettings().m_arstrBinDirs.Find(strPrefix, strBinDir);
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
1111 }
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1112 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1113
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1114 if (rc)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1115 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1116 ecFileName strUserBinDir(GetSettings().m_userToolsDir);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1117 if(strUserBinDir.IsEmpty())
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1118 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1119 if ( 1 == GetSettings().m_userToolPaths.GetCount() )
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1120 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1121 GetSettings().m_userToolsDir = GetSettings().m_userToolPaths[0];
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1122 } else
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1123 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1124 wxCommandEvent event;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1125 GetMainFrame()->OnUserToolsPath(event);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1126 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1127 strUserBinDir = GetSettings().m_userToolsDir;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1128 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1129 if ( !strUserBinDir.IsEmpty() )
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1130 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1131 // calculate the directory of the host tools from this application's module name
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1132 ecFileName strHostToolsBinDir(this->argv[0]);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1133 strHostToolsBinDir = strHostToolsBinDir.Head ();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1134
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1135 // tools directories are in the order host-tools, user-tools, comp-tools, install/bin (if present), contrib-tools (if present) on the path
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1136 const ecFileName strContribBinDir(strUserBinDir, wxT("..\\contrib\\bin"));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1137 ecFileName strUsrBinDir(strUserBinDir, wxT("..\\usr\\bin"));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1138 const ecFileName strInstallBinDir(pDoc->GetInstallTree (), wxT("bin"));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1139
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1140 // In case strUserBinDir is e.g. c:\program files\red hat\cygwin-00r1\usertools\h-i686-pc-cygwin\bin
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1141 if (!strUsrBinDir.IsDir ())
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1142 strUsrBinDir = ecFileName(strUserBinDir + _T("..\\..\\..\\H-i686-pc-cygwin\\bin"));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1143
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1144 if (
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1145 (strUsrBinDir.IsDir () && ! ecUtils::AddToPath (strUsrBinDir)) ||
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1146 (strContribBinDir.IsDir () && ! ecUtils::AddToPath (strContribBinDir)) ||
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1147 (strInstallBinDir.IsDir () && ! ecUtils::AddToPath (strInstallBinDir)) ||
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1148 (bWithBuildTools && ! ecUtils::AddToPath (strBinDir)) ||
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1149 ! ecUtils::AddToPath (strUserBinDir) ||
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1150 ! ecUtils::AddToPath (strHostToolsBinDir))
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1151 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1152 wxString msg;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1153 msg.Printf(wxT("Failed to set PATH environment variable"));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1154 wxMessageBox(msg, wxGetApp().GetSettings().GetAppName(), wxICON_EXCLAMATION|wxOK);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1155 rc = FALSE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1156 } else
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1157 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1158 if(!wxSetEnv(_T("MAKE_MODE"),_T("unix")))
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1159 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1160 wxString msg;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1161 msg.Printf(wxT("Failed to set MAKE_MODE environment variable"));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1162 wxMessageBox(msg, wxGetApp().GetSettings().GetAppName(), wxICON_EXCLAMATION|wxOK);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1163 rc = FALSE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1164 } else
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1165 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1166 // Remove from the environment
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1167 wxUnsetEnv(wxT("GDBTK_LIBRARY"));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1168 wxUnsetEnv(wxT("GCC_EXEC_PREFIX"));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1169
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1170 // Useful for ecosconfig
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1171 wxSetEnv(wxT("ECOS_REPOSITORY"), pDoc->GetPackagesDir());
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1172
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1173 // Mount /ecos-x so we can access these in text mode
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1174 if (! pDoc->GetBuildTree().IsEmpty() && wxIsalpha(pDoc->GetBuildTree()[0]))
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1175 CygMount(pDoc->GetBuildTree()[0]);
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1176 if (! pDoc->GetInstallTree().IsEmpty() && wxIsalpha(pDoc->GetInstallTree()[0]))
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1177 CygMount(pDoc->GetInstallTree()[0]);
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1178 if (! pDoc->GetRepository().IsEmpty() && wxIsalpha(pDoc->GetRepository()[0]))
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1179 CygMount(pDoc->GetRepository()[0]);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1180 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1181 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1182 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1183 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1184 return rc;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1185 #else
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1186 wxASSERT ( cmdLine != NULL );
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1187
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1188 (* cmdLine) = wxEmptyString;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1189
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1190 // Under Unix we need to build up a command line to set variables and invoke make
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1191 ecConfigToolDoc *pDoc = GetConfigToolDoc();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1192
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1193 const wxString strPrefix(pDoc->GetCurrentTargetPrefix());
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1194 ecFileName strBinDir;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1195 bool rc = FALSE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1196
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1197 rc=(! bWithBuildTools) || GetSettings().m_arstrBinDirs.Find(strPrefix, strBinDir);
165
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
1198 if(!rc)
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
1199 {
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
1200 // Use fallback of previously-entered build tools directory, if available
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
1201 if (!GetSettings().m_buildToolsDir.IsEmpty())
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
1202 {
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
1203 strBinDir = GetSettings().m_buildToolsDir ;
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
1204 rc = TRUE;
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
1205 }
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
1206 else
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
1207 {
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
1208 wxCommandEvent event;
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
1209 GetMainFrame()->OnBuildToolsPath(event);
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
1210 rc = GetSettings().m_arstrBinDirs.Find(strPrefix, strBinDir);
d63db767121d Merge from eCos master repository on 2001-06-29-06:43:03-BST
jlarmour
parents: 163
diff changeset
1211 }
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1212 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1213
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1214 if (rc)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1215 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1216 if (!strBinDir.IsEmpty())
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1217 {
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 169
diff changeset
1218 (* cmdLine) += wxString(wxT("export PATH=")) + wxString(strBinDir) + wxT(":$PATH; ");
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 169
diff changeset
1219
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1220 // Also set the path
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1221 wxString oldPath(wxGetenv(wxT("PATH")));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1222 wxString path(strBinDir);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1223 if (!oldPath.IsEmpty())
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 169
diff changeset
1224 {
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 169
diff changeset
1225 path += wxT(":");
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1226 path += oldPath;
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 169
diff changeset
1227 }
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1228 wxSetEnv(wxT("PATH"), path);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1229 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1230 (* cmdLine) += wxString(wxT("unset GDBTK_LIBRARY; ")) ;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1231 wxUnsetEnv(wxT("GDBTK_LIBRARY"));
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 169
diff changeset
1232
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1233 (* cmdLine) += wxString(wxT("unset GCC_EXEC_PREFIX; ")) ;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1234 wxUnsetEnv(wxT("GCC_EXEC_PREFIX"));
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 169
diff changeset
1235
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 169
diff changeset
1236 (* cmdLine) += wxString(wxT("export ECOS_REPOSITORY=")) + wxString(pDoc->GetPackagesDir()) + wxT("; ");
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1237 wxSetEnv(wxT("ECOS_REPOSITORY"), pDoc->GetPackagesDir());
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 169
diff changeset
1238
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1239 #if 0
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1240 ecFileName strUserBinDir(GetSettings().m_userToolsDir);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1241 if(strUserBinDir.IsEmpty())
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1242 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1243 if ( 1 == GetSettings().m_userToolPaths.GetCount() )
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1244 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1245 GetSettings().m_userToolsDir = GetSettings().m_userToolPaths[0];
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1246 } else
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1247 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1248 wxCommandEvent event;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1249 GetMainFrame()->OnUserToolsPath(event);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1250 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1251 strUserBinDir = GetSettings().m_userToolsDir;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1252 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1253 if ( !strUserBinDir.IsEmpty() )
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1254 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1255 // calculate the directory of the host tools from this application's module name
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1256 ecFileName strHostToolsBinDir(this->argv[0]);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1257 strHostToolsBinDir = strHostToolsBinDir.Head ();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1258
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1259 // tools directories are in the order host-tools, user-tools, comp-tools, install/bin (if present), contrib-tools (if present) on the path
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 169
diff changeset
1260
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1261 // TODO: is this right? Assuming that the user tools are already in the user's path.
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1262 // const ecFileName strContribBinDir(strUserBinDir, wxT("..\\contrib\\bin"));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1263 // const ecFileName strUsrBinDir(strUserBinDir, wxT("..\\usr\\bin"));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1264 const ecFileName strInstallBinDir(pDoc->GetInstallTree (), wxT("bin"));
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 169
diff changeset
1265
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 169
diff changeset
1266 (* cmdLine) += wxString(wxT("export PATH=")) + wxString(strInstallBinDir) + wxT(":$PATH; ");
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1267 (* cmdLine) += wxString(wxT("unset GDBTK_LIBRARY; ")) ;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1268 (* cmdLine) += wxString(wxT("unset GCC_EXEC_PREFIX; ")) ;
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 169
diff changeset
1269 (* cmdLine) += wxString(wxT("export ECOS_REPOSITORY=")) + wxString(pDoc->GetPackagesDir()) + wxT("; ");
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1270 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1271 #endif
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1272 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1273 return rc;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1274 #endif
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1275 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1276
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1277 void ecApp::CygMount(wxChar c)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1278 {
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1279 // May not be alpha if it's e.g. a UNC network path
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1280 if (!wxIsalpha(c))
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1281 return;
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1282
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1283 c = wxTolower(c);
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1284
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1285 if(!sm_arMounted[c-_TCHAR('a')])
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1286 {
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1287 sm_arMounted[c-wxChar('a')]=true;
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1288 wxString strCmd;
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1289 String strOutput;
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1290
949
23fdb1c9f07a * standalone/wxwin/configtool.cpp: Install default platform definitions on
jld
parents: 867
diff changeset
1291 strCmd.Printf(wxT("mount -t -u %c: /ecos-%c"),c,c);
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1292 CSubprocess sub;
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1293 sub.Run(strOutput,strCmd);
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1294 }
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1295
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1296
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1297 // Doing it with wxExecute results in a flashing DOS box unfortunately
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1298 #if 0
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1299 wxASSERT(wxIsalpha(c));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1300 c = wxTolower(c);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1301 if(!sm_arMounted[c-wxChar('a')])
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1302 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1303 sm_arMounted[c-wxChar('a')] = TRUE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1304 wxString strCmd;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1305
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1306 strCmd.Printf(wxT("mount.exe %c: /%c"),c,c);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1307
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1308 wxExecute(strCmd, TRUE);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1309 }
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1310 #endif
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1311 }
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1312
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1313 // Fiddling directly with the registry DOESN'T WORK because Cygwin mount tables
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1314 // get out of synch with the registry
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1315 void ecApp::CygMountText(wxChar c)
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1316 {
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1317 wxASSERT(wxIsalpha(c));
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1318 c = wxTolower(c);
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1319 // if(!sm_arMounted[c-wxChar('a')])
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1320 {
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1321 // sm_arMounted[c-wxChar('a')] = TRUE;
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1322
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1323 #if 0
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1324 wxString strCmd;
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1325
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1326 strCmd.Printf(wxT("mount.exe %c: /ecos-%c"),c,c);
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1327
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1328 wxExecute(strCmd, TRUE);
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1329 #else
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1330 wxString key, value;
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1331 key.Printf(wxT("/ecos-%c"), c);
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1332 value.Printf(wxT("%c:"), c);
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1333
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1334 // Mount by fiddling with registry instead, so we don't see ugly flashing windows
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1335 #ifdef __WXMSW__
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1336 HKEY hKey = 0;
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1337 if (ERROR_SUCCESS == RegOpenKeyEx(HKEY_CURRENT_USER, "Software\\Cygnus Solutions\\Cygwin\\mounts v2",
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1338 0, KEY_READ, &hKey))
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1339 {
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1340 DWORD disposition;
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1341 HKEY hSubKey = 0;
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1342
541
ea8eda51bc88 * standalone/wxwin/configtool.cpp: Use correct data type in call
jld
parents: 199
diff changeset
1343 if (ERROR_SUCCESS == RegCreateKeyEx(hKey, key, 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS,
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1344 NULL, & hSubKey, & disposition))
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1345 {
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1346 RegSetValueEx(hSubKey, "native", 0, REG_SZ, (unsigned char*) (const wxChar*) value, value.Length() + 1);
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1347 RegCloseKey(hSubKey);
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1348 }
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1349
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1350 RegCloseKey(hKey);
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1351 }
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1352 #endif
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1353
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1354 #endif
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1355 }
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1356 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1357
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1358 void ecApp::Build(const wxString &strWhat /*=wxT("")*/ )
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1359 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1360 if (m_pipedProcess)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1361 return;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1362
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1363 ecConfigToolDoc* pDoc = GetConfigToolDoc();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1364 if (!pDoc)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1365 return;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1366
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1367 if (!wxGetApp().GetMainFrame()->GetOutputWindow()->IsShown())
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1368 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1369 wxGetApp().GetMainFrame()->ToggleWindow(ecID_TOGGLE_OUTPUT);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1370 }
1469
99c40a5a125d * configtool/standalone/wxwin/configtool.cpp: Prompt to save eCos
jld
parents: 1019
diff changeset
1371 if (!pDoc->GetDocumentSaved()) // if document has never been saved
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1372 {
1469
99c40a5a125d * configtool/standalone/wxwin/configtool.cpp: Prompt to save eCos
jld
parents: 1019
diff changeset
1373 if (!pDoc->SaveAs())
99c40a5a125d * configtool/standalone/wxwin/configtool.cpp: Prompt to save eCos
jld
parents: 1019
diff changeset
1374 return; // user chose not to save the unsaved document so cannot build eCos
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1375 }
1469
99c40a5a125d * configtool/standalone/wxwin/configtool.cpp: Prompt to save eCos
jld
parents: 1019
diff changeset
1376
99c40a5a125d * configtool/standalone/wxwin/configtool.cpp: Prompt to save eCos
jld
parents: 1019
diff changeset
1377 if (pDoc->IsModified()) // if document has been modified since last save
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1378 {
1469
99c40a5a125d * configtool/standalone/wxwin/configtool.cpp: Prompt to save eCos
jld
parents: 1019
diff changeset
1379 if (wxOK == wxMessageBox("Building eCos will save changes to your current eCos configuration.",
99c40a5a125d * configtool/standalone/wxwin/configtool.cpp: Prompt to save eCos
jld
parents: 1019
diff changeset
1380 "Build", wxOK|wxCANCEL|wxICON_EXCLAMATION))
99c40a5a125d * configtool/standalone/wxwin/configtool.cpp: Prompt to save eCos
jld
parents: 1019
diff changeset
1381 pDoc->Save();
99c40a5a125d * configtool/standalone/wxwin/configtool.cpp: Prompt to save eCos
jld
parents: 1019
diff changeset
1382 else
99c40a5a125d * configtool/standalone/wxwin/configtool.cpp: Prompt to save eCos
jld
parents: 1019
diff changeset
1383 return; // user chose not to save changes so cannot build eCos
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1384 }
1469
99c40a5a125d * configtool/standalone/wxwin/configtool.cpp: Prompt to save eCos
jld
parents: 1019
diff changeset
1385
99c40a5a125d * configtool/standalone/wxwin/configtool.cpp: Prompt to save eCos
jld
parents: 1019
diff changeset
1386 // save an eCos configuration which is already saved but is without a corresponding build tree
99c40a5a125d * configtool/standalone/wxwin/configtool.cpp: Prompt to save eCos
jld
parents: 1019
diff changeset
1387 if (!wxDirExists(pDoc->GetBuildTree()))
99c40a5a125d * configtool/standalone/wxwin/configtool.cpp: Prompt to save eCos
jld
parents: 1019
diff changeset
1388 {
99c40a5a125d * configtool/standalone/wxwin/configtool.cpp: Prompt to save eCos
jld
parents: 1019
diff changeset
1389 pDoc->Save();
99c40a5a125d * configtool/standalone/wxwin/configtool.cpp: Prompt to save eCos
jld
parents: 1019
diff changeset
1390 }
99c40a5a125d * configtool/standalone/wxwin/configtool.cpp: Prompt to save eCos
jld
parents: 1019
diff changeset
1391
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1392 if ( pDoc->GetDocumentSaved() )
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1393 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1394 //wxString strCmd (wxT("c:\\bin\\testmake.bat"));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1395 wxString strCmd (wxT("make"));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1396 if(!strWhat.IsEmpty())
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1397 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1398 strCmd += wxT(' ');
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1399 strCmd += strWhat;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1400 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1401
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1402 if(!GetSettings().m_strMakeOptions.IsEmpty())
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1403 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1404 strCmd += wxT(' ');
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1405 strCmd += GetSettings().m_strMakeOptions;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1406 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1407 strCmd += wxT(" --directory ");
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 169
diff changeset
1408
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 169
diff changeset
1409 // Quoting the name may not mix with the 'sh' command on Unix, so only do it
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 169
diff changeset
1410 // under Windows where it's more likely there will be spaces needing quoting.
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 169
diff changeset
1411 #ifdef __WXMSW__
191
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1412 wxString buildDir(pDoc->GetBuildTree());
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1413
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1414 #if ecUSE_ECOS_X_NOTATION
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1415 std::string cPath = cygpath(std::string(pDoc->GetBuildTree()));
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1416 buildDir = cPath.c_str();
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1417 #endif
678094f34118 Merge from eCos master repository on 2001-10-19-06:43:02-BST
jlarmour
parents: 184
diff changeset
1418 strCmd += wxString(wxT("\"")) + buildDir + wxString(wxT("\""));
171
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 169
diff changeset
1419 #else
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 169
diff changeset
1420 strCmd += wxString(pDoc->GetBuildTree()) ;
42f843b391aa Merge from eCos master repository on 2001-07-18-03:13:25-BST
jlarmour
parents: 169
diff changeset
1421 #endif
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1422
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1423 wxString variableSettings;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1424
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1425 if (PrepareEnvironment(TRUE, & variableSettings))
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1426 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1427 #ifdef __WXMSW__
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1428 // strCmd is all we need
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1429 #else
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1430 // strCmd has to invoke a shell with variables and make invocation
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1431 strCmd = wxString(wxT("sh -c \"")) + variableSettings + strCmd + wxString(wxT("\""));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1432 #endif
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1433 // Output the command so we know what we're doing
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1434 Log(strCmd);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1435 Log(wxT("\n"));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1436
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1437 // No: pass --directory
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1438 // wxSetWorkingDirectory(pDoc->GetBuildTree());
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1439
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1440 m_pipedProcess = new ecPipedProcess;
163
0d2b193a635f Merge from eCos master repository on 2001-06-22-17:38:39-BST
jlarmour
parents: 160
diff changeset
1441 long pid = wxExecute(strCmd, FALSE, m_pipedProcess);
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1442 if ( pid )
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1443 {
163
0d2b193a635f Merge from eCos master repository on 2001-06-22-17:38:39-BST
jlarmour
parents: 160
diff changeset
1444 m_pipedProcess->SetPid(pid);
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1445 // wxLogStatus(_T("Process %ld (%s) launched."), pid, cmd.c_str());
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1446 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1447 else
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1448 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1449 wxLogError(_T("Execution of '%s' failed."), strCmd.c_str());
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1450
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1451 delete m_pipedProcess;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1452 m_pipedProcess = NULL;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1453 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1454 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1455
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1456 #if 0
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1457 if(PrepareEnvironment())
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1458 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1459 m_strBuildTarget=strWhat;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1460 SetThermometerMax(250); // This is just a guess. The thread we are about to spawn will work out the correct answer
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1461 m_nLogicalLines=0;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1462 UpdateThermometer(0);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1463 CloseHandle(CreateThread(NULL, 0, ThreadFunc, this, 0 ,&m_dwThreadId));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1464 CString strMsg;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1465 strMsg.Format(_T("Building %s"),strWhat);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1466 SetIdleMessage(strMsg);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1467
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1468 SetTimer(42,1000,0); // This timer checks for process completion
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1469 SetCurrentDirectory(pDoc->BuildTree());
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1470 m_sp.Run(SubprocessOutputFunc, this, strCmd, false);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1471 SetIdleMessage();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1472 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1473 #endif
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1474 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1475 #if 0
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1476
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1477 if(pDoc->IsModified()||pDoc->BuildTree().IsEmpty()){
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1478 SendMessage (WM_COMMAND, ID_FILE_SAVE);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1479 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1480
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1481 if(!(pDoc->IsModified()||pDoc->BuildTree().IsEmpty())){ // verify the save worked
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1482 CString strCmd (_T("make"));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1483 if(!strWhat.IsEmpty()){
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1484 strCmd+=_TCHAR(' ');
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1485 strCmd+=strWhat;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1486 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1487 if(!GetApp()->m_strMakeOptions.IsEmpty()){
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1488 strCmd+=_TCHAR(' ');
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1489 strCmd+=GetApp()->m_strMakeOptions;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1490 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1491
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1492 if(PrepareEnvironment()){
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1493 m_strBuildTarget=strWhat;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1494 SetThermometerMax(250); // This is just a guess. The thread we are about to spawn will work out the correct answer
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1495 m_nLogicalLines=0;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1496 UpdateThermometer(0);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1497 CloseHandle(CreateThread(NULL, 0, ThreadFunc, this, 0 ,&m_dwThreadId));
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1498 CString strMsg;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1499 strMsg.Format(_T("Building %s"),strWhat);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1500 SetIdleMessage(strMsg);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1501
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1502 SetTimer(42,1000,0); // This timer checks for process completion
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1503 SetCurrentDirectory(pDoc->BuildTree());
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1504 m_sp.Run(SubprocessOutputFunc, this, strCmd, false);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1505 SetIdleMessage();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1506 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1507 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1508 #endif
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1509 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1510
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1511 void ecApp::OnProcessTerminated(wxProcess* process)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1512 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1513 m_pipedProcess = NULL;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1514 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1515
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1516 // ----------------------------------------------------------------------------
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1517 // ecPipedProcess
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1518 // ----------------------------------------------------------------------------
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1519
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1520 bool ecPipedProcess::HasInput()
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1521 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1522 bool hasInput = FALSE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1523
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1524 wxInputStream& is = *GetInputStream();
839
706b0bdaf01c * standalone/wxwin/appsettings.cpp, standalone/wxwin/configtool.cpp:
jld
parents: 646
diff changeset
1525 if ( IsInputAvailable() )
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1526 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1527 wxTextInputStream tis(is);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1528
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1529 // this assumes that the output is always line buffered
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1530 wxString msg;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1531 msg << tis.ReadLine();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1532
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1533 wxGetApp().Log(msg);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1534
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1535 hasInput = TRUE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1536 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1537
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1538 wxInputStream& es = *GetErrorStream();
839
706b0bdaf01c * standalone/wxwin/appsettings.cpp, standalone/wxwin/configtool.cpp:
jld
parents: 646
diff changeset
1539 if ( IsErrorAvailable() )
160
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1540 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1541 wxTextInputStream tis(es);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1542
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1543 // this assumes that the output is always line buffered
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1544 wxString msg;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1545 msg << tis.ReadLine();
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1546
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1547 wxGetApp().Log(msg);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1548
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1549 hasInput = TRUE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1550 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1551
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1552 return hasInput;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1553 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1554
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1555 void ecPipedProcess::OnTerminate(int pid, int status)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1556 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1557 // show the rest of the output
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1558 while ( HasInput() )
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1559 ;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1560
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1561 wxGetApp().OnProcessTerminated(this);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1562
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1563 //wxLogStatus(m_parent, _T("Process %u ('%s') terminated with exit code %d."),
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1564 // pid, m_cmd.c_str(), status);
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1565
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1566 // we're not needed any more
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1567 delete this;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1568 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1569
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1570 void ecPingTimer::Notify()
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1571 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1572 static bool s_inNotify = FALSE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1573
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1574 if (s_inNotify)
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1575 return;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1576
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1577 s_inNotify = TRUE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1578
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1579 // On Windows, simply having the timer going will ping the message queue
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1580 // and cause idle processing to happen.
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1581 // On Unix, this doesn't happen so we have to do the processing explicitly.
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1582 #ifdef __WXMSW__
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1583 // Nothing to do
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1584 #else
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1585 // Get some input
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1586 if ( wxGetApp().m_pipedProcess )
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1587 while (wxGetApp().m_pipedProcess->HasInput())
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1588 {
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1589 // Loop while there is still input
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1590 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1591 #endif
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1592
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1593 s_inNotify = FALSE;
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1594 }
0d0f03f76f6a Merge from eCos master repository on 2001-06-01-18:52:13-BST
jlarmour
parents:
diff changeset
1595