⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 configtool.h

📁 ecos实时嵌入式操作系统
💻 H
字号:
//####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.27 2001/10/11 12:31:42 julians 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#endifclass WXDLLEXPORT wxZipFSHandler;class WXDLLEXPORT wxFileSystem;// Define a new application type, each program should derive a class from wxAppclass 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 changedpublic:    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_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -