ProjectManager, Project and ProjectFile in Code::Blocks

CB-Project-File IDE的内部实现中,关于项目和文件之间的关系和数据保存主要维护在Project,和ProjectFile这几个类里面。在里面有几个部分:1)View:包括m_pNotebook, m_pTree, m_plugin等;2)Status:包括m_isLoadingProject, m_isclosingProject, m_isCheckingForExternallyModifiedProject等,从字面意义上就可以看出它们的用途;3)Project:包括m_pActiveProject和指针*m_pProjects。这个当前活动的项目m_pActiveProject就是Project类的实例。

Project类里面也包括几个部分:1)Attribute属性:wxDateTime m_lastmodified,m_commonToplevelPath和m_basePath;2)File文件:FilesList m_files和ProjectFiles m_projectFilesMap。

这个FilesList是通过定义的list结构:WX_DECLARE_LIST(projectFile, FilesList)其保存了ProjectFile类数据,也就是真实的物理上的项目文件数据。而第二个m_projectFilesMap是另一个通过定义的字符串哈希图结构,它的作用是通过文件名可以哈希查找相应文件。

ProjectFile是继承自BlockAllocated的项目文件类,它可以大体分为两类:1)View:保存了treeItemID,b_editorOpen, editorPos,editorTopLine, editorTabPos等信息;2)file: 有文件名和相对文件名等信息。

顺便说一句:BlockAllocated是中被用来实际分配内存块的类。

以上概要地描述了内部代码实现上关于项目、文件以及项目管理类之间的关系和它们的大体组成。

作者:Bryan in Cbforge.com,转载请保留。

Share and Enjoy:
  • Print this article!
  • Digg
  • Sphinn
  • del.icio.us
  • Facebook
  • Mixx
  • Google Bookmarks
  • LinkedIn
  • Live
  • MySpace
  • RSS
  • Slashdot
  • Technorati
  • TwitThis

Related posts:

  1. Code::Blocks IDE in openSUSE 11.1编译和安装指南
  2. Setting up Code::Blocks to work with SDL - 多媒体编程库
  3. QT4+MinGW+Code::Blocks IDE集成
  4. Debian Lenny编译wxWidgets与Code::Blocks SVN版
  5. 加法?减法:CodeLite or Code::Blocks just for another sourceinsight
  6. Debugging with Code::Blocks
  7. Code::Blocks IDE: 手动安装和配置编译器指南
  8. Code::Blocks Debug Shortcut and Example
  9. CB IDE内部结构之-工程文件篇
  10. How to Run a Successful Free Software Project

Leave a Reply

 

 

 

You can use these HTML tags

<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>

*
To prove you're a person (not a spam script), type the security word shown in the picture. Click on the picture to hear an audio file of the word.
Click to hear an audio file of the anti-spam word

Contact us

Admin: Bryan Wu