URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [rtos/] [ecos-2.0/] [tools/] [src/] [tools/] [configtool/] [standalone/] [wxwin/] [configtool.h] - Rev 174
Compare with Previous | Blame | View Log
//####COPYRIGHTBEGIN#### // // ---------------------------------------------------------------------------- // Copyright (C) 1998, 1999, 2000 Red Hat, Inc. // // This program is part of the eCos host tools. // // This program is free software; you can redistribute it and/or modify it // under the terms of the GNU General Public License as published by the Free // Software Foundation; either version 2 of the License, or (at your option) // any later version. // // This program is distributed in the hope that it will be useful, but WITHOUT // ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or // FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for // more details. // // You should have received a copy of the GNU General Public License along with // this program; if not, write to the Free Software Foundation, Inc., // 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. // // ---------------------------------------------------------------------------- // //####COPYRIGHTEND#### // configtool.h : // //=========================================================================== //#####DESCRIPTIONBEGIN#### // // Author(s): julians // Contact(s): julians // Date: 2000/08/24 // Version: $Id: configtool.h,v 1.1.1.1 2004-02-14 13:28:49 phoenix Exp $ // Purpose: // Description: main header file for the ConfigTool application // Requires: // Provides: // See also: // Known bugs: // Usage: // //####DESCRIPTIONEND#### // //=========================================================================== #ifndef _ECOS_CONFIGTOOL_H_ #define _ECOS_CONFIGTOOL_H_ #ifdef __GNUG__ #pragma interface "configtool.h" #endif #include "wx/wx.h" #include "wx/help.h" #include "wx/docview.h" #include "wx/process.h" #include "wx/timer.h" #include "splittree.h" #include "appsettings.h" class ecValueWindow; class ecMainFrame; class ecConfigTreeCtrl; class ecMemoryLayoutWindow; class ecConfigToolDoc; class ecSplashScreen; class ecPipedProcess; /* #ifdef __WXMSW__ #include "wx/msw/helpchm.h" #undef wxHelpController #define wxHelpController wxCHMHelpController #endif */ #if defined(__WXGTK__) || defined(__WXMSW__) #include "wx/html/helpctrl.h" #undef wxHelpController #define wxHelpController wxHtmlHelpController #endif #ifdef __VISUALC__ #pragma warning(disable:4786) #endif #if defined(__WXMSW__) && defined(__WXDEBUG__) // MLT code does not build yet so ecUSE_MLT is always 0 #define ecUSE_MLT 0 #else #define ecUSE_MLT 0 #endif // If 1, can optionally use non-standard wxHTML extension to set the base doc path // If 0, NEVER uses relative paths. #define ecDOCSYSTEM_USE_RELATIVE_URLS 1 #if defined(__WXMSW__) && defined(__WXDEBUG__) #define ecUSE_EXPERIMENTAL_CODE 1 #endif class WXDLLEXPORT wxZipFSHandler; class WXDLLEXPORT wxFileSystem; // Define a new application type, each program should derive a class from wxApp class ecApp : public wxApp { friend class ecMainFrame; public: //// Ctor & dtor ecApp(); ~ecApp(); //// Operations virtual bool OnInit(); virtual int OnExit(); // Log to output window void Log(const wxString& msg); // Launch strFileName with the given viewer, or find a viewer if strViewer s empty bool Launch(const wxString & strFileName,const wxString &strViewer); // Under Unix, (*cmdLine) is set to the command string appropriate to setting up the variables // Under Windows, cmdLine isn't used bool PrepareEnvironment(bool bWithBuildTools = TRUE, wxString* cmdLine = NULL); // Fire off a subprocess to build the library or tests void Build(const wxString& strWhat = wxEmptyString) ; // Mount drive e.g. /c static void CygMount(wxChar c); // Mount in text mode e.g. /ecos-c static void CygMountText(wxChar c); bool InitializeHelpController(); void SetStatusText(const wxString& text, bool clearFailingRulesPane = TRUE); //// Helpers // Check if there is a (unique) .ecc file in dir bool FindSaveFileInDir(const wxString& dir, wxString& saveFile); // Initialize window settings object bool InitializeWindowSettings(bool beforeWindowConstruction); // Load resources from disk bool LoadResources(); // Load a bitmap resource from resource.bin bool LoadBitmapResource(wxBitmap& bitmap, const wxString& filename, int bitmapType, bool addToMemoryFS); // Load a text resource from resource.bin bool LoadTextResource(wxString& text, const wxString& filename, bool addToMemoryFS); // Get a text resource from the memory filesystem bool GetMemoryTextResource(const wxString& filename, wxString& text); // Version-stamp the splash screen bool VersionStampSplashScreen(); //// Accessors // Get settings ecSettings& GetSettings() { return m_settings; } // Get help controller wxHelpController& GetHelpController() { return * m_helpController; } bool HasHelpController() const { return (m_helpController != NULL); } void DestroyHelpController() { if (m_helpController) delete m_helpController; m_helpController = NULL; } // Get app dir wxString GetAppDir() const { return m_appDir; } // Prepend the current app program directory to the name wxString GetFullAppPath(const wxString& filename) const; // Are we running in 32K colours or more? bool GetHiColour() const; // Get main icon const wxIcon& GetMainIcon() const { return m_mainIcon; } void SetMainIcon(const wxIcon& icon) { m_mainIcon = icon; } // What's This? menu with single item wxMenu* GetWhatsThisMenu() const { return m_whatsThisMenu; } // Main frame ecMainFrame* GetMainFrame() const { return m_mainFrame; } // Config tree control ecConfigTreeCtrl* GetTreeCtrl() const ; // MLT window ecMemoryLayoutWindow* GetMLTWindow() const ; // Document manager wxDocManager* GetDocManager() const { return m_docManager; } // Get active document ecConfigToolDoc* GetConfigToolDoc() const; wxString GetHelpFile() const { return m_helpFile; } void SetHelpFile(const wxString& file) { m_helpFile = file; } wxFileSystem* GetFileSystem() const { return m_fileSystem; } // Lock out value changes while conflicts are being resolved, for example bool GetValuesLocked() { return (m_valuesLocked > 0); } void LockValues() { m_valuesLocked ++; } void UnlockValues() { m_valuesLocked --; wxASSERT( m_valuesLocked >= 0); } //// Events void OnWhatsThis(wxCommandEvent& event); void OnProcessTerminated(wxProcess* process); //// Data members ecSettings m_settings; wxString m_appDir; wxHelpController* m_helpController; wxIcon m_mainIcon; // Reuse in dialogs wxMenu* m_whatsThisMenu; wxDocManager* m_docManager; ecMainFrame* m_mainFrame; static bool sm_arMounted[26]; int m_valuesLocked; // Lock values from being changed public: ecSplashScreen* m_splashScreen; wxString m_strOriginalPath; ecConfigToolDoc* m_currentDoc; wxString m_helpFile; ecPipedProcess* m_pipedProcess; wxBitmap m_splashScreenBitmap; wxZipFSHandler* m_zipHandler; wxFileSystem* m_fileSystem; DECLARE_EVENT_TABLE() }; DECLARE_APP(ecApp); /* * ecPingTimer * Just to force idle processing now and again while * the library or tests are building */ class ecPingTimer: public wxTimer { public: ecPingTimer() {} virtual void Notify() ; }; /* * ecPipedProcess * For running builds and capturing the output */ class ecPipedProcess : public wxProcess { public: ecPipedProcess() { Redirect(); m_pingTimer.Start(100); m_pid = 0; } ~ecPipedProcess() { m_pingTimer.Stop(); } //// Overrides virtual void OnTerminate(int pid, int status); //// Operations virtual bool HasInput(); //// Accessors void SetPid(long pid) { m_pid = pid; } long GetPid() const { return m_pid; } protected: ecPingTimer m_pingTimer; long m_pid; }; // IDs for the controls and the menu commands //// Menus & tools #define ecID_NEW_REGION 2102 #define ecID_NEW_SECTION 2103 #define ecID_DELETE 2104 #define ecID_PROPERTIES 2105 // File menu #define ecID_IMPORT 2150 #define ecID_EXPORT 2151 // Edit menu #define ecID_SAVE_OUTPUT 2152 #define ecID_FIND_NEXT 2153 // View menu #define ecID_SETTINGS 2162 #define ecID_TOOLBARS 2163 #define ecID_TOOLBARS_STANDARD 2164 #define ecID_TOOLBARS_MEMORY 2165 #define ecID_VIEW_NEXT 2166 #define ecID_VIEW_PREVIOUS 2167 #define ecID_TOGGLE_CONFLICTS 2168 #define ecID_TOGGLE_PROPERTIES 2169 #define ecID_TOGGLE_MEMORY 2170 #define ecID_TOGGLE_SHORT_DESCR 2171 #define ecID_TOGGLE_OUTPUT 2172 // Build menu #define ecID_STOP_BUILD 2180 #define ecID_BUILD_LIBRARY 2181 #define ecID_BUILD_TESTS 2182 #define ecID_CLEAN 2183 #define ecID_BUILD_OPTIONS 2184 #define ecID_BUILD_REPOSITORY 2185 #define ecID_BUILD_TEMPLATES 2186 #define ecID_BUILD_PACKAGES 2187 #define ecID_GENERATE_BUILD_TREE 2188 // Tools menu #define ecID_PATHS 2200 #define ecID_PATHS_BUILD_TOOLS 2201 #define ecID_PATHS_USER_TOOLS 2202 #define ecID_SHELL 2203 #define ecID_RUN_TESTS 2204 #define ecID_PLATFORMS 2205 #define ecID_RESOLVE_CONFLICTS 2206 #define ecID_ADMINISTRATION 2207 #define ecID_TOOLS_OPTIONS 2208 #define ecID_INDEX_DOCS 2209 // Help menu #define ecID_CONFIGTOOL_HELP 2220 #define ecID_ECOS_HELP 2221 #define ecID_REDHAT_WEB 2222 #define ecID_REDHAT_WEB_HOME 2223 #define ecID_REDHAT_WEB_ECOS 2224 #define ecID_REDHAT_WEB_NET_RELEASE 2225 #define ecID_REDHAT_WEB_UITRON 2226 #define ecID_CONTEXT_HELP 2227 #define ecID_REPOSITORY_INFO 2228 // Tree right-click menu #define ecID_WHATS_THIS 2250 #define ecID_TREE_PROPERTIES 2251 #define ecID_TREE_RESTORE_DEFAULTS 2252 #define ecID_TREE_VISIT_DOC 2253 #define ecID_TREE_VIEW_HEADER 2254 #define ecID_TREE_UNLOAD_PACKAGE 2255 // Conflict window right-click menu #define ecID_LOCATE_ITEM 2256 #define ecID_RESOLVE_ITEM 2257 //// Controls & windows #define ecID_TREE_CTRL 2000 #define ecID_SPLITTER_WINDOW 2001 #define ecID_VALUE_WINDOW 2002 #define ecID_MAIN_FRAME 2003 #define ecID_SCROLLED_WINDOW 2004 #define ecID_TOOLBAR 2005 #define ecID_CONFLICTS_WINDOW 2006 #define ecID_PROPERTIES_WINDOW 2007 #define ecID_MEMORY_WINDOW 2008 #define ecID_SHORT_DESCR_WINDOW 2009 #define ecID_OUTPUT_WINDOW 2010 #define ecID_CONFIG_SASH_WINDOW 2020 #define ecID_CONFLICTS_SASH_WINDOW 2021 #define ecID_PROPERTIES_SASH_WINDOW 2022 #define ecID_MEMORY_SASH_WINDOW 2023 #define ecID_SHORT_DESCR_SASH_WINDOW 2024 #define ecID_OUTPUT_SASH_WINDOW 2025 #define ecID_ABOUT_DIALOG 2026 #define ecID_ABOUT_DIALOG_HTML_WINDOW 2027 #define ecID_FIND_DIALOG 2028 // The control used to edit a config item value #define ecID_ITEM_EDIT_WINDOW 2030 #define ecID_SETTINGS_DIALOG 2031 #define ecID_SETTINGS_NOTEBOOK 2032 #define ecID_SETTINGS_DISPLAY 2033 #define ecID_SETTINGS_VIEWER 2034 #define ecID_SETTINGS_PATH 2035 #define ecID_SETTINGS_CONFLICT_RESOLUTION 2036 #define ecID_SETTINGS_RUN 2037 #define ecID_SECTION_DIALOG 2040 #define ecID_SECTION_NOTEBOOK 2041 #define ecID_SECTION_GENERAL 2042 #define ecID_SECTION_RELOCATION 2043 #define ecID_SECTION_NOTE 2044 #define ecID_PLATFORM_EDITOR_DIALOG 2050 #define ecID_BUILD_OPTIONS_DIALOG 2051 #define ecID_PLATFORMS_DIALOG 2052 #define ecID_TEMPLATES_DIALOG 2053 #define ecID_ADMIN_DIALOG 2054 #define ecID_PACKAGES_DIALOG 2055 #define ecID_RUN_TESTS_DIALOG 2056 #define ecID_RUN_TESTS_NOTEBOOK 2057 #define ecID_RUN_TESTS_EXECUTABLES 2058 #define ecID_RUN_TESTS_OUTPUT 2059 #define ecID_RUN_TESTS_SUMMARY 2060 #define ecID_RUN_TESTS_RUN 2061 #define ecID_RUN_TESTS_PROPERTIES 2062 //#define ecID_RUN_TESTS_TEST_LIST 2062 //#define ecID_RUN_TESTS_SUMMARY_LIST 2063 //#define ecID_CONFIG_PROPERTIES_LIST 2064 #define ecID_CHOOSE_REPOSITORY_DIALOG 2070 #define ecID_CONFIG_PROPERTIES_DIALOG 2071 #define ecID_LICENSE_DIALOG 2080 #define ecID_LICENSE_TEXT 2081 #define ecID_FOLDER_DIALOG 2090 #define ecID_FOLDER_DIALOG_MSG 2091 #define ecID_FOLDER_DIALOG_BROWSE 2092 #define ecID_FOLDER_DIALOG_PATHS 2093 #define ecID_REPOS_DIALOG_HTML_WINDOW 2094 #define ecID_REPOS_DIALOG 2095 #define ecID_BUILD_TOOLS_DIALOG 2300 #define ecID_USER_TOOLS_DIALOG 2301 #define ecID_EDIT_STRING_DIALOG 2302 #define ecID_STRING_EDIT_TEXTCTRL 2303 #endif // _ECOS_CONFIGTOOL_H_