URL
https://opencores.org/ocsvn/openrisc/openrisc/trunk
Subversion Repositories openrisc
[/] [openrisc/] [trunk/] [rtos/] [ecos-2.0/] [tools/] [src/] [tools/] [configtool/] [common/] [win32/] [ConfigToolDoc.h] - Rev 751
Go to most recent revision | 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#### // ConfigToolDoc.h // ///////////////////////////////////////////////////////////////////////////// //=========================================================================== //#####DESCRIPTIONBEGIN#### // // Author(s): sdf // Contact(s): sdf // Date: 1998/08/11 // Version: 0.01 // Purpose: // Description: interface of the CConfigToolDoc class // Requires: // Provides: // See also: // Known bugs: // Usage: // //####DESCRIPTIONEND#### // //=========================================================================== #if !defined(AFX_ConfigToolDOC_H__A4845246_05EE_11D2_80BE_00A0C949ADAC__INCLUDED_) #define AFX_ConfigToolDOC_H__A4845246_05EE_11D2_80BE_00A0C949ADAC__INCLUDED_ #if _MSC_VER >= 1000 #pragma once #endif // _MSC_VER >= 1000 #define INCLUDEFILE <string> #include "IncludeSTL.h" #define INCLUDEFILE "cdl.hxx" #include "IncludeSTL.h" #include "memmap.h" // for mem_map #include "ConfigTool.h" #include "FileName.h" class CConfigItem; #ifdef PLUGIN class CProject; class CProjectManager; class Project; class CConfigToolDoc { private: static LPCTSTR CALLBACK GetFn (void *pObj) { return (LPCTSTR)*(CString *)pObj; } static void CALLBACK PutFn (void *pObj,LPCTSTR psz) { *(CString *)pObj=psz; } #else class CConfigToolDoc : public CDocument { protected: DECLARE_DYNCREATE(CConfigToolDoc) #endif // Attributes public: static void CdlParseErrorHandler (std::string message); static void CdlParseWarningHandler (std::string message); // ctors and dtors: public for benefit of plugin case CConfigToolDoc(); virtual ~CConfigToolDoc(); void RegenerateData(); // Hints. // These are mostly relevant to the properties view, which will generally ignore them unless // the pHint matches what it is currently displaying (i.e. the last SelChanged message) enum {SelChanged=1,IntFormatChanged=2,ValueChanged=3, Clear=4, AllSaved=6, NameFormatChanged=7, ExternallyChanged=8, MemLayoutChanged=9}; enum {Never=0, Immediate=1, Deferred=2, SuggestFixes=4}; int m_nRuleChecking; // OR of above values // Configuration items CConfigItem * FirstItem(){return ItemCount()==0?NULL:Item(0);} CConfigItem *Item(int nIndex){ return (CConfigItem *)m_arItem[nIndex];} int ItemCount(){ return m_arItem.GetSize();} void SelectTemplate (std::string NewTemplate, std::string NewTemplateVersion); void SelectHardware (std::string NewTemplate); void SelectPackages (); CString GetPackageName (const CString & strAlias); // MLT-related mem_map MemoryMap; CString strSelectedSection; CString strSelectedRegion; bool SwitchMemoryLayout (BOOL bNewTargetPlatform); bool SaveMemoryMap(); const CFileName BuildTree() const { return m_strBuildTree; } const CFileName InstallTree() const { return m_strInstallTree; } const CFileName HeadersDir() const { return InstallTree()+_T("include"); } const CFileName ObjectDir() const { return BuildTree()+_T("obj"); } const CFileName MLTDir (); const CFileName DocBase() const { return Repository()+_T("doc"); } void SetBuildTree (LPCTSTR pszBuild) { m_strBuildTree=pszBuild; } void SetInstallTree (LPCTSTR pszInstall) { m_strInstallTree=pszInstall; } void UpdateFailingRuleCount(); bool GetRunPlatform (CString &strTarget); bool SetEnabled (CConfigItem &ti, bool bEnabled, CdlTransaction transaction=NULL); bool SetValue(CConfigItem &ti,ItemIntegerType nValue, CdlTransaction transaction=NULL); bool SetValue(CConfigItem &ti,const CString &strValue, CdlTransaction transaction=NULL); bool SetValue (CConfigItem &ti, double dValue, CdlTransaction transaction=NULL); CString GetDefaultHardware (); CString m_strFind; int m_nFindFlags; WhereType m_nFindWhere; bool m_bAutoExpand; bool m_bMacroNames; bool m_bHex; bool ShowURL (LPCTSTR pszURL); static const CFileName &DefaultExternalBrowser (); // Absolute path name to root of respository - parent of PackagesDir below const CFileName Repository() const { return m_strRepository; } void SetRepository(LPCTSTR pszRepository) { m_strRepository=CFileName(pszRepository); } // Absolute path name to "packages" directory - i.e. the one under the repository // named "packages" in a delivery or "ecc" in CVS: const CFileName PackagesDir() const { return m_strPackagesDir; } CConfigItem * Find (const CString &strWhat,WhereType where=InMacro); CConfigItem * Find (CdlValuable v); const CFileName CurrentLinkerScript(); const CString CurrentStartup(); const CString CurrentTestingIdentifier(); const CString CurrentPlatform(); const CString CurrentMemoryLayout (); CFileName m_strMemoryLayoutFolder; CFileName m_strLinkerScriptFolder; const CFileName CurrentPlatformPackageFolder(); bool OpenRepository(LPCTSTR pszRepository=NULL,bool bPromptInitially=false); void CloseRepository(); CdlPackagesDatabase GetCdlPkgData () { return m_CdlPkgData; } CdlConfiguration GetCdlConfig () { return m_CdlConfig; } CdlInterpreter GetCdlInterpreter() { return m_CdlInterp; } std::string GetTemplateVersion() { return m_template_version; } bool UpdateBuildInfo(bool bFirstTime=false); CdlBuildInfo &BuildInfo() { return m_BuildInfo; } enum GlobalConflictOutcome {OK,Cancel,NotDone}; GlobalConflictOutcome ResolveGlobalConflicts(CPtrArray *parConflictsOfInterest=NULL); bool CheckConflictsBeforeSave(); int GetTestExeNames (CFileNameArray &ar,CFileNameArray &arTestsMissing); BOOL IsModified(); void SetPathName( LPCTSTR pszPath, BOOL bAddToMRU = TRUE ); static bool ShowHtmlHelp(LPCTSTR pszURL); static const CString HTMLHelpLinkFileName(); // the full path to "link2.htm" protected: void AddAllItems (); void RemoveAllItems(); void LogConflicts (const std::list<CdlConflict> & conflicts); void ShowSectionProperties(); void ShowRegionProperties(); void ErrorBox (UINT, UINT); void EnableCallbacks (bool bEnable=true); CdlPackagesDatabase m_CdlPkgData; CdlInterpreter m_CdlInterp; CdlConfiguration m_CdlConfig; std::string m_template_version; static void CdlTransactionHandler (const CdlTransactionCallback & data); static CdlInferenceCallbackResult CdlInferenceHandler (CdlTransaction data); static CdlInferenceCallbackResult CdlGlobalInferenceHandler(CdlTransaction data); static void CdlLoadErrorHandler(std::string message); static void CdlLoadWarningHandler(std::string message); static CFileName m_strDefaultExternalBrowser; CdlBuildInfo m_BuildInfo; CFileName m_strBuildTree; CFileName m_strInstallTree; bool CopyMLTFiles(); CFileName m_strRepository; bool m_bRepositoryOpen; CPtrArray m_arItem; bool NewMemoryLayout (const CString &strPrefix); CFileName m_strPackagesDir; void CheckRadios(); // CDL interface void AddContents (const CdlContainer container, CConfigItem * pParent); CConfigItem * AddItem (const CdlUserVisible visible, CConfigItem * pParent); CString m_strCdlErrorMessage; bool OpenRepository (const CFileName strNewRepository,CdlPackagesDatabase &NewCdlPkgData,CdlInterpreter &NewCdlInterp,CdlConfiguration &NewCdlConfig,CFileName &strNewPackagesDir); bool GenerateHeaders(); // This data supports communication information to the failing rules dialog invoked by CdlGlobalInferenceHandler(): GlobalConflictOutcome m_ConflictsOutcome; CPtrArray m_arConflictsOfInterest; // used by CRulesView::OnResolve bool QualifyDocURL(CString &strURL); #ifdef PLUGIN protected: CProject * m_peCosProject; public: bool CreateTestProjects(); CProjectManager *m_pm; // A pointer so as to reduce dependencies on this header file void SeteCosProject(CProject *peCosProject){m_peCosProject=peCosProject; } CProject *eCosProject(){return m_peCosProject; } // Here are the declarations that make us look like a CDocument-derived class: public: bool UnloadPackage (CConfigItem *pItem); void OnMLTNewRegion(); void OnMLTNewSection(); void OnMLTDelete(); void OnMLTProperties(); void OnFileExport(); void OnFileImport(); // Making the class look as if it is derived from CDocument: BOOL OnNewDocument(); BOOL OnOpenDocument(LPCTSTR lpszPathName); void OnCloseDocument(); BOOL OnSaveDocument(LPCTSTR lpszPathName); void DeleteContents(); void SetModifiedFlag( BOOL bModified = TRUE ) { m_bModified=bModified; } void UpdateAllViews( CView* pSender, LPARAM lHint = 0L, CObject* pHint = NULL ); const CString& GetPathName( ) const { return m_strPathName; } bool PostOpenDocument(); protected: CString m_strPathName; BOOL m_bModified; #else //{{AFX_VIRTUAL(CConfigToolDoc) public: virtual BOOL OnNewDocument(); virtual void Serialize(CArchive& ar); virtual BOOL OnOpenDocument(LPCTSTR lpszPathName); virtual void OnCloseDocument(); virtual BOOL OnSaveDocument(LPCTSTR lpszPathName); virtual void DeleteContents(); protected: // virtual BOOL SaveModified(); //}}AFX_VIRTUAL public: // Standlone-specific: void RunTests(); enum BrowserType { Internal, AssociatedExternal, CustomExternal }; BOOL Reload(); CStringArray m_arstrUserToolPaths; bool m_bUseCustomViewer; bool m_bUseExternalBrowser; CString m_strBrowser; CFileName m_strViewer; BrowserType m_eUseCustomBrowser; const CString CurrentTargetPrefix(); int GetCompilationCount(LPCTSTR psz); protected: CString m_strBufferedLogMessages; // Access to header files: #ifdef _DEBUG virtual void AssertValid() const; virtual void Dump(CDumpContext& dc) const; #endif public: void SetModifiedFlag (BOOL bModified = TRUE) { CDocument::SetModifiedFlag (bModified); UpdateFrameCounts (); } // void SetTitle(LPCTSTR lpszTitle); void SaveProfileSettings(); void LoadProfileSettings(); //{{AFX_MSG(CConfigToolDoc) afx_msg void OnBuildConfigure(); afx_msg void OnConfigurationRepository(); afx_msg void OnBuildTemplates(); afx_msg void OnBuildPackages(); afx_msg void OnMLTNewRegion(); afx_msg void OnMLTNewSection(); afx_msg void OnMLTDelete(); afx_msg void OnMLTProperties(); afx_msg void OnUpdateEditDelete(CCmdUI* pCmdUI); afx_msg void OnUpdateEditNewSection(CCmdUI* pCmdUI); afx_msg void OnUpdateEditProperties(CCmdUI* pCmdUI); afx_msg void OnToolsAdministration(); afx_msg void OnFileExport(); afx_msg void OnFileImport(); //}}AFX_MSG DECLARE_MESSAGE_MAP() #endif }; ///////////////////////////////////////////////////////////////////////////// //{{AFX_INSERT_LOCATION}} // Microsoft Developer Studio will insert additional declarations immediately before the previous line. #endif // !defined(AFX_ConfigToolDOC_H__A4845246_05EE_11D2_80BE_00A0C949ADAC__INCLUDED_)
Go to most recent revision | Compare with Previous | Blame | View Log