[Scummvm-cvs-logs] SF.net SVN: scummvm: [28135] scummex/branches/gsoc2007-gameresbrowser
zbychs at users.sourceforge.net
zbychs at users.sourceforge.net
Wed Jul 18 13:40:19 CEST 2007
Revision: 28135
http://scummvm.svn.sourceforge.net/scummvm/?rev=28135&view=rev
Author: zbychs
Date: 2007-07-18 04:40:15 -0700 (Wed, 18 Jul 2007)
Log Message:
-----------
Added zooming ImagePresenter.
Added hex view control.
Added opening multiple files.
Cleaned up MainForm.
Enlarged browser tree font size.
(To be tested under Linux.)
Modified Paths:
--------------
scummex/branches/gsoc2007-gameresbrowser/src/browser/CoreInterfaces.cpp
scummex/branches/gsoc2007-gameresbrowser/src/browser/CoreInterfaces.h
scummex/branches/gsoc2007-gameresbrowser/src/browser/ExplorationTree.cpp
scummex/branches/gsoc2007-gameresbrowser/src/browser/ExplorationTree.h
scummex/branches/gsoc2007-gameresbrowser/src/browser/Makefile.am
scummex/branches/gsoc2007-gameresbrowser/src/browser/PanelProvider.h
scummex/branches/gsoc2007-gameresbrowser/src/browser/VirtualNode.cpp
scummex/branches/gsoc2007-gameresbrowser/src/browser/VirtualNode.h
scummex/branches/gsoc2007-gameresbrowser/src/browser/streams/simplefile.cpp
scummex/branches/gsoc2007-gameresbrowser/src/browser/streams/stream.cpp
scummex/branches/gsoc2007-gameresbrowser/src/browser/streams/stream.h
scummex/branches/gsoc2007-gameresbrowser/src/browser/streams/xorstream.cpp
scummex/branches/gsoc2007-gameresbrowser/src/browser/streams/xorstream.h
scummex/branches/gsoc2007-gameresbrowser/src/browserapp/BrowserApp.cpp
scummex/branches/gsoc2007-gameresbrowser/src/browserapp/MainForm.cpp
scummex/branches/gsoc2007-gameresbrowser/src/browserapp/MainForm.h
scummex/branches/gsoc2007-gameresbrowser/src/browserapp/MainForm.wxform
scummex/branches/gsoc2007-gameresbrowser/src/browserapp/MainFormCommands.cpp
scummex/branches/gsoc2007-gameresbrowser/src/browserapp/Makefile.am
scummex/branches/gsoc2007-gameresbrowser/src/core/BObject.cpp
scummex/branches/gsoc2007-gameresbrowser/src/core/BObject.h
scummex/branches/gsoc2007-gameresbrowser/src/core/ObjectChain.cpp
scummex/branches/gsoc2007-gameresbrowser/src/core/ObjectChain.h
scummex/branches/gsoc2007-gameresbrowser/src/core/ObjectRegistry.cpp
scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/AuxInterfaces.cpp
scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/AuxInterfaces.h
scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/BasicParsers.cpp
scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/BasicParsers.h
scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/DirectoryPresenter.cpp
scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/DirectoryPresenter.h
scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/IconPresenter.cpp
scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/IconPresenter.h
scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/ImagePresenter.cpp
scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/ImagePresenter.h
scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/Makefile.am
scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/TextPresenter.h
scummex/branches/gsoc2007-gameresbrowser/src/plugins/scumm/ScummBlock.cpp
scummex/branches/gsoc2007-gameresbrowser/src/plugins/scumm/ScummBlockPresenter.cpp
scummex/branches/gsoc2007-gameresbrowser/src/plugins/scumm/ScummBlockPresenter.h
scummex/branches/gsoc2007-gameresbrowser/src/plugins/scumm/ScummCommonPresenters.cpp
scummex/branches/gsoc2007-gameresbrowser/src/plugins/scumm/ScummCommonPresenters.h
scummex/branches/gsoc2007-gameresbrowser/src/plugins/scumm/ScummPresenterBase.cpp
scummex/branches/gsoc2007-gameresbrowser/src/plugins/scumm/ScummPresenterBase.h
scummex/branches/gsoc2007-gameresbrowser/src/plugins/scumm/ScummRecognizer.cpp
scummex/branches/gsoc2007-gameresbrowser/vc8/basic_plugin/basic_plugin.vcproj
scummex/branches/gsoc2007-gameresbrowser/vc8/browser/browser.vcproj
scummex/branches/gsoc2007-gameresbrowser/vc8/browserapp/browserapp.vcproj
scummex/branches/gsoc2007-gameresbrowser/wxdev/Browser.dev
scummex/branches/gsoc2007-gameresbrowser/wxdev/Browser.layout
Added Paths:
-----------
scummex/branches/gsoc2007-gameresbrowser/src/browserapp/DefaultPlugin.cpp
scummex/branches/gsoc2007-gameresbrowser/src/browserapp/Tests.cpp
scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/BinaryPresenter.cpp
scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/BinaryPresenter.h
scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/CHexEditCtrl.cpp
scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/CHexEditCtrl.h
scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/Directories.cpp
scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/Directories.h
Removed Paths:
-------------
scummex/branches/gsoc2007-gameresbrowser/src/browser/Directories.cpp
scummex/branches/gsoc2007-gameresbrowser/src/browser/Directories.h
scummex/branches/gsoc2007-gameresbrowser/src/browserapp/Test1.cpp
scummex/branches/gsoc2007-gameresbrowser/src/browserapp/Test2.cpp
scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/BitmapPanel.cpp
scummex/branches/gsoc2007-gameresbrowser/src/plugins/basic/BitmapPanel.h
Modified: scummex/branches/gsoc2007-gameresbrowser/src/browser/CoreInterfaces.cpp
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browser/CoreInterfaces.cpp 2007-07-18 01:16:03 UTC (rev 28134)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browser/CoreInterfaces.cpp 2007-07-18 11:40:15 UTC (rev 28135)
@@ -79,6 +79,26 @@
_isubdirs.push_back(idir);
}
+IFile* IDirectoryImpl::getFile(const coreString& name) {
+ ifile_list_t::const_iterator i;
+ for (i = _ifiles.begin(); i != _ifiles.end(); ++i) {
+ IFile* ifile = *i;
+ if (ifile->getName() == name)
+ return ifile;
+ }
+ return NULL;
+}
+
+IDirectory* IDirectoryImpl::getSubDir(const coreString& name) {
+ idir_list_t::const_iterator j;
+ for (j = _isubdirs.begin(); j != _isubdirs.end(); ++j) {
+ IDirectory* idirectory = *j;
+ if (idirectory->getName() == name)
+ return idirectory;
+ }
+ return NULL;
+}
+
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
Modified: scummex/branches/gsoc2007-gameresbrowser/src/browser/CoreInterfaces.h
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browser/CoreInterfaces.h 2007-07-18 01:16:03 UTC (rev 28134)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browser/CoreInterfaces.h 2007-07-18 11:40:15 UTC (rev 28135)
@@ -138,11 +138,14 @@
//can return NULL
virtual IDirectory* getParentDirectory();
- void addFile(IFile* ifile);
+ void addFile(IFile* ifile);
void addSubDir(IDirectory* idir);
virtual const ifile_list_t& getFiles();
virtual const idir_list_t& getSubDirs();
+
+ virtual IFile* getFile(const coreString& name);
+ virtual IDirectory* getSubDir(const coreString& name);
};
/////////////////////////////////////////////////////////////////////////////
Deleted: scummex/branches/gsoc2007-gameresbrowser/src/browser/Directories.cpp
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browser/Directories.cpp 2007-07-18 01:16:03 UTC (rev 28134)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browser/Directories.cpp 2007-07-18 11:40:15 UTC (rev 28135)
@@ -1,218 +0,0 @@
-/////////////////////////////////////////////////////////////////////////////
-// Directories.cpp
-
-#include "browser_stdafx.h"
-
-#include "Directories.h"
-#include "CoreFileTypes.h"
-
-#include "streams/simplefile.h"
-
-#include <iostream>
-
-#include <wx/filesys.h>
-#include <wx/filename.h>
-
-#include "tostring.h"
-
-#include "debugmem.h"
-
-namespace Browser {
-
-using namespace Core;
-
-/////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////
-
-//A directory implementation, whose contents are initialized with addFile(), addSubDir(),
-//and which creates *IDiskFileImpl* and *IDiskDirectoryImpl*.
-//So it's a "virtual" directory.
-class IVirtualDirectoryImpl : public IDirectoryImpl {
-protected:
- str_pair_list _files;
- str_pair_list _subdirs;
-
- bool _created;
-public:
- //inherit guid - it's a concrete implementation of an abstract interface
- IVirtualDirectoryImpl(IDirectory* parentDir, coreString name);
- IVirtualDirectoryImpl(IDirectory* parentDir, coreString name, const str_pair_list& files, const str_pair_list& subdirs);
-
- virtual const ifile_list_t& getFiles();
- virtual const idir_list_t& getSubDirs();
-
- void addFile(coreString name, coreString fullpath);
- void addSubDir(coreString name, coreString fullpath);
-
- virtual void create();
-};
-
-/////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////
-
-//A directory that loads it's contents from the disk.
-class IDiskDirectoryImpl : public IVirtualDirectoryImpl {
-protected:
- coreString _directoryPath;
-public:
- //inherit guid - it's a concrete implementation of an abstract interface
- IDiskDirectoryImpl(IDirectory* parentDir, coreString name, coreString directoryPath);
-
- virtual void create();
-};
-
-/////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////
-
-IVirtualDirectoryImpl::IVirtualDirectoryImpl(IDirectory* parentDir, coreString name)
- : IDirectoryImpl(parentDir, name, true), _created(false) {}
-IVirtualDirectoryImpl::IVirtualDirectoryImpl(IDirectory* parentDir, coreString name, const str_pair_list& files, const str_pair_list& subdirs)
- : IDirectoryImpl(parentDir, name, true),
- _files(files), _subdirs(subdirs), _created(false) {}
-
-
-const ifile_list_t& IVirtualDirectoryImpl::getFiles() {
- //infoout << wxT("IVirtualDirectoryImpl::getFiles()") << std::endl;
- create();
- return _ifiles;
-}
-
-const idir_list_t& IVirtualDirectoryImpl::getSubDirs() {
- //infoout << wxT("IVirtualDirectoryImpl::getSubDirs()") << std::endl;
- create();
- return _isubdirs;
-}
-
-void IVirtualDirectoryImpl::addFile(coreString name, coreString fullpath) {
- _files.push_back( std::make_pair(name, fullpath) );
-}
-
-void IVirtualDirectoryImpl::addSubDir(coreString name, coreString fullpath) {
- _subdirs.push_back( std::make_pair(name, fullpath) );
-}
-
-void IVirtualDirectoryImpl::create() {
- if (_created)
- return;
- _created = true;
-
- str_pair_list::const_iterator i;
-
- for (i = _files.begin(); i != _files.end(); ++i) {
- const coreString& name = i->first;
- const coreString& fullpath = i->second;
-
- _ifiles.push_back( new IDiskFileImpl(this, name, fullpath) );
- }
-
- for (i = _subdirs.begin(); i != _subdirs.end(); ++i) {
- const coreString& name = i->first;
- const coreString& fullpath = i->second;
-
- _isubdirs.push_back( new IDiskDirectoryImpl(this, name, fullpath) );
- }
-}
-
-/////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////
-
-IDiskDirectoryImpl::IDiskDirectoryImpl(IDirectory* parentDir, coreString name, coreString directoryPath)
- : IVirtualDirectoryImpl(parentDir, name), _directoryPath(directoryPath) {
- _fileType = CoreFileTypes::diskDirectoryFileType();
- }
-
-void IDiskDirectoryImpl::create() {
- if (_created)
- return;
-
- wxFileName dir = wxFileName::DirName(_directoryPath);
- if ( !(dir.IsOk() && dir.DirExists() && dir.IsDirReadable()) ) {
- errout << wxT("IDiskDirectoryImpl::create(): unreadable dir: ") << dir.GetPath().c_str() << std::endl;
- return;
- }
-
- wxFileSystem fs;
- fs.ChangePathTo(dir.GetPath(), true);
-
- wxString found;
-
- found = fs.FindFirst(wxT("*"), wxFILE);
- while (!found.IsEmpty()) {
- //wxFileName fname(dir.GetPath(), found);
- wxFileName fname(found);
- wxString dispName = fname.GetFullName();
- addFile( toString(dispName), toString(fname.GetFullPath()));
- found = fs.FindNext();
- }
-
- found = fs.FindFirst(wxT("*"), wxDIR);
- while (!found.IsEmpty()) {
- //wxFileName fname(dir);
- //fname.AppendDir(found);
- wxFileName fname = wxFileName::DirName(found);
- wxArrayString dirs = fname.GetDirs();
- wxString dispName = dirs.Last();
- addSubDir(toString(dispName), toString(fname.GetPath()));
- found = fs.FindNext();
- }
-
- IVirtualDirectoryImpl::create();
-}
-
-/////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////
-
-PIN_DESCS(RootDirectory)
- PIN_DESC(_directoryPin, PIN_DEFAULT | PIN_MULTICAST, getDirectoryImpl, releaseDirectoryImpl)
-END_DESCS
-
-//TODO: this is not safe for multicast!
-IVirtualDirectoryImpl* RootDirectory::getDirectoryImpl() {
- if (_idirectory == NULL) {
- _idirectory = new IVirtualDirectoryImpl(NULL, wxT("Root Directory"), _files, _subdirs);
- _idirectory->setDirectoryFileType(CoreFileTypes::rootDirectoryFileType());
- }
-
- return _idirectory;
-}
-
-void RootDirectory::releaseDirectoryImpl(IVirtualDirectoryImpl* iface) {
- //infoout << wxT("RootDirectory::releaseDirectoryImpl()") << std::endl;
- delete iface;
-}
-
-bool RootDirectory::addFile(coreString name, coreString fullpath) {
- _files.push_back( std::make_pair(name, fullpath) );
- return true;
-}
-
-bool RootDirectory::addSubDir(coreString name, coreString fullpath) {
- _subdirs.push_back( std::make_pair(name, fullpath) );
- return true;
-}
-
-/////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////
-
-PIN_DESCS(DiskDirectory)
- PIN_DESC(_directoryPin, PIN_DEFAULT | PIN_MULTICAST, getDirectoryImpl, releaseDirectoryImpl)
-END_DESCS
-
-//TODO: this is not safe for multicast!
-IVirtualDirectoryImpl* DiskDirectory::getDirectoryImpl() {
- if (_idirectory == NULL) {
- _idirectory = new IDiskDirectoryImpl(_parentDir, _directoryPath, _directoryPath);
- }
-
- return _idirectory;
-}
-
-void DiskDirectory::releaseDirectoryImpl(IVirtualDirectoryImpl* iface) {
- //infoout << wxT("DiskDirectory::releaseDirectoryImpl()") << std::endl;
- delete iface;
-}
-
-/////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////
-
-}
Deleted: scummex/branches/gsoc2007-gameresbrowser/src/browser/Directories.h
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browser/Directories.h 2007-07-18 01:16:03 UTC (rev 28134)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browser/Directories.h 2007-07-18 11:40:15 UTC (rev 28135)
@@ -1,101 +0,0 @@
-/////////////////////////////////////////////////////////////////////////////
-// Directories.h
-
-#ifndef _DIRECTORIES_H_
-#define _DIRECTORIES_H_
-
-#include "VirtualNode.h"
-
-#include <list>
-
-namespace Browser {
-
-using namespace Core;
-
-/////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////
-
-// This header defines a RootDirectory and a DiskDirectory. These are directories
-// that are also VirtualNodes.
-// DiskDirectory is not used at the moment. VirtualFiles and VirtualDirectories are.
-// Directories are displayed in (more or less) this fasion:
-// RootDirectory -> IDirectory -> DirectoryPresenter -> IFile ->
-// -> VirtualFile -> IFile -> SomeParser -> IDirectory -> DirectoryPresenter ->
-// -> VirtualFile/VirtualDirectory -> IFile...
-
-/////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////
-
-class IVirtualDirectoryImpl;
-class IDiskDirectoryImpl;
-typedef std::list< std::pair< coreString, coreString > > str_pair_list;
-
-class BROWSER_API RootDirectory : public VirtualNode {
- DECLARE_BOBJECT_CLASS(RootDirectory, VirtualNode)
-
-protected:
- Pin<IDirectory>* _directoryPin;
-
-#ifdef _MSC_VER
-#pragma warning(disable : 4251)
-#endif
- str_pair_list _files;
- str_pair_list _subdirs;
-#ifdef _MSC_VER
-#pragma warning(default : 4251)
-#endif
-
- IVirtualDirectoryImpl* _idirectory;
-
-public:
- ASSIGN_DESC(0,wxT("CoreObjects"), 1)
-
- PINS_DECL
-
- RootDirectory(wxTreeItemId mineTreeItem)
- : VirtualNode(mineTreeItem), _idirectory(NULL) {}
-
- bool addFile(coreString name, coreString fullpath);
- bool addSubDir(coreString name, coreString fullpath);
-
- IVirtualDirectoryImpl* getDirectoryImpl();
- void releaseDirectoryImpl(IVirtualDirectoryImpl* iface);
-
-};
-
-/////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////
-
-//not used now - but potentially useable
-
-class BROWSER_API DiskDirectory : public VirtualNode {
- DECLARE_BOBJECT_CLASS(DiskDirectory, VirtualNode)
-
-protected:
- Pin<IDirectory>* _directoryPin;
-
- coreString _directoryPath;
-
- IDirectory* _parentDir;
- IVirtualDirectoryImpl* _idirectory;
-
-public:
- ASSIGN_DESC(0,wxT("CoreObjects"), 1)
-
- PINS_DECL
-
- //parentDir can be NULL
- DiskDirectory(IDirectory* parentDir, wxTreeItemId mineTreeItem, coreString directoryPath)
- : VirtualNode(mineTreeItem), _directoryPath(directoryPath), _parentDir(parentDir), _idirectory(NULL) {}
-
- IVirtualDirectoryImpl* getDirectoryImpl();
- void releaseDirectoryImpl(IVirtualDirectoryImpl* iface);
-
-};
-
-/////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////
-
-}
-
-#endif //_DIRECTORIES_H_
Modified: scummex/branches/gsoc2007-gameresbrowser/src/browser/ExplorationTree.cpp
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browser/ExplorationTree.cpp 2007-07-18 01:16:03 UTC (rev 28134)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browser/ExplorationTree.cpp 2007-07-18 11:40:15 UTC (rev 28135)
@@ -8,6 +8,7 @@
#include "DirectoryController.h"
#include "ObjectChain.h"
+#include "ObjectRegistry.h"
#include "PluginUtil.h"
#include <iostream>
@@ -190,34 +191,31 @@
return data->getRealized();
}
-bool ExplorationTree::realizeNode(const wxTreeItemId& item) {
+// updateRealize == true: complete & realize what's not yet realized
+bool ExplorationTree::realizeNode(const wxTreeItemId& item, bool updateRealize /*= false*/) {
ASSERT_VALID_TREE_ITEM(item);
VirtualNodeItemData* data = VirtualNodeItemData::getForNode(item);
if (!data)
- return false;
+ return false;
- if (!data->getRealized()) {
+ if (updateRealize || !data->getRealized()) {
ObjectChain* kidchain = data->getObjectChain();
ASSERT(kidchain);
- if (!data->getCompleted()) {
+ if (updateRealize || !data->getCompleted()) {
kidchain->complete();
data->setCompleted(true);
}
- ASSERT_STATICS_ALLOWED();
- static BGUID directoryPresenterGUID(wxT("CoreObjects"), wxT("DirectoryPresenter"), 1);
-
- //FIXME: This won't work for other DirectoryControllers - search for IS_DIRECTORY_CONTROLLER
- if (!kidchain->isContained(directoryPresenterGUID))
+ if (!kidchain->getObjectWithFlags(IS_DIRECTORY_CONTROLLER))
ExplorationTree::get()->deleteChildren(item); //delete the Dummy added by the ExplorationTree
wxString name = getItemText(item);
infoout << wxT("ExplorationTree::realizeNode(): realizing chain for node: ")
<< name.c_str() << std::endl;
- bool res = kidchain->realize();
+ bool res = kidchain->realize(!updateRealize);
if (!res) {
errout << wxT("ERROR: ExplorationTree::realizeNode(): can't realize chain for node: ")
@@ -238,6 +236,34 @@
return true;
}
+void ExplorationTree::attachBinaryPresenter() {
+ VirtualNode* node = getSelectedNode();
+ if (!node)
+ return;
+
+ wxTreeItemId item = node->getTreeItem();
+ VirtualNodeItemData* data = VirtualNodeItemData::getForNode(item);
+ if (!data)
+ return;
+
+ ObjectChain* kidchain = data->getObjectChain();
+ ASSERT(kidchain);
+
+ ASSERT_STATICS_ALLOWED();
+ //static BGUID binaryPresenterGUID(wxT("CoreObjects"), wxT("BinaryPresenter"), 1);
+ static BGUID binaryParserGUID(wxT("CoreObjects"), wxT("BinaryParser"), 1);
+
+ if (!kidchain->isContained(binaryParserGUID)) {
+ RCPtr<BObject> obj = ObjectRegistry::get()->getObject(binaryParserGUID);
+ if (obj.get() == NULL)
+ return;
+ kidchain->addObject(obj);
+ }
+
+ realizeNode(item, true);
+ nodeActivated(node);
+}
+
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
@@ -330,6 +356,12 @@
return item;
}
+wxTreeItemId ExplorationTree::getRoot() {
+ wxTreeItemId item = _explorationTree->GetRootItem();
+ ASSERT_VALID_TREE_ITEM(item);
+ return item;
+}
+
void ExplorationTree::deleteAllItems() {
_explorationTree->DeleteAllItems();
}
@@ -530,7 +562,8 @@
const long style = wxCAPTION | wxRESIZE_BORDER | wxSYSTEM_MENU | wxTHICK_FRAME | wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxCLOSE_BOX;
wxFrame* frame = new wxFrame(PluginUtil::getMainForm(), wxID_ANY,
- _panelProvider->getPanelTitle(), wxDefaultPosition, _page->GetSize(), style);
+ _panelProvider->getPanelTitle() + wxT(" [") + _node->getTreeItemName() + wxT("]"),
+ wxDefaultPosition, _page->GetSize(), style);
wxMenu* fileMenu = new wxMenu(0);
fileMenu->Append(ID_ATTACH, wxT("Reattach"));
Modified: scummex/branches/gsoc2007-gameresbrowser/src/browser/ExplorationTree.h
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browser/ExplorationTree.h 2007-07-18 01:16:03 UTC (rev 28134)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browser/ExplorationTree.h 2007-07-18 11:40:15 UTC (rev 28135)
@@ -106,8 +106,8 @@
static void initialize(wxTreeCtrl* explorationTree, wxNotebook* panelNotebook);
- bool isNodeRealized(const wxTreeItemId& item);
- bool realizeNode(const wxTreeItemId& item);
+ bool isNodeRealized(const wxTreeItemId& item);
+ bool realizeNode(const wxTreeItemId& item, bool updateRealize = false);
VirtualNode* getNode(const wxTreeItemId& item);
VirtualNode* getSelectedNode();
@@ -120,6 +120,7 @@
wxTreeItemId getItemParent(const wxTreeItemId& item);
wxString getItemText(const wxTreeItemId& item);
wxTreeItemId addRoot(wxString title);
+ wxTreeItemId getRoot();
void deleteAllItems();
ObjectChain* getRootObjectChain();
@@ -138,6 +139,8 @@
void itemExpanding(const wxTreeItemId& item);
void itemExpanded(const wxTreeItemId& item);
+ void attachBinaryPresenter(); //attach BinaryPresenter to the currently selected node
+
void registerPanelProvider(VirtualNode* node, PanelProvider* panelProvider);
void unregisterPanelProvider(PanelProvider* panelProvider);
Modified: scummex/branches/gsoc2007-gameresbrowser/src/browser/Makefile.am
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browser/Makefile.am 2007-07-18 01:16:03 UTC (rev 28134)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browser/Makefile.am 2007-07-18 11:40:15 UTC (rev 28135)
@@ -6,8 +6,6 @@
CoreFileTypes.h \
CoreInterfaces.cpp \
CoreInterfaces.h \
- Directories.cpp \
- Directories.h \
DirectoryController.h \
ExplorationTree.cpp \
ExplorationTree.h \
Modified: scummex/branches/gsoc2007-gameresbrowser/src/browser/PanelProvider.h
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browser/PanelProvider.h 2007-07-18 01:16:03 UTC (rev 28134)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browser/PanelProvider.h 2007-07-18 11:40:15 UTC (rev 28135)
@@ -2,7 +2,7 @@
// PanelProvider.h
#ifndef _PANEL_PROVIDER_H_
-#define _PANEL_PROVIDER_H_
+#define _PANEL_PROVIDER_H_
#include <wx/wx.h>
Modified: scummex/branches/gsoc2007-gameresbrowser/src/browser/VirtualNode.cpp
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browser/VirtualNode.cpp 2007-07-18 01:16:03 UTC (rev 28134)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browser/VirtualNode.cpp 2007-07-18 11:40:15 UTC (rev 28135)
@@ -3,7 +3,7 @@
#include "browser_stdafx.h"
-#include "VirtualNode.h"
+#include "VirtualNode.h"
#include "ExplorationTree.h"
#include "streams/simplefile.h"
Modified: scummex/branches/gsoc2007-gameresbrowser/src/browser/VirtualNode.h
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browser/VirtualNode.h 2007-07-18 01:16:03 UTC (rev 28134)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browser/VirtualNode.h 2007-07-18 11:40:15 UTC (rev 28135)
@@ -8,7 +8,7 @@
#include "BObject.h"
-#include "CoreInterfaces.h"
+#include "CoreInterfaces.h"
#include <wx/treectrl.h> //for wxTreeItemId
Modified: scummex/branches/gsoc2007-gameresbrowser/src/browser/streams/simplefile.cpp
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browser/streams/simplefile.cpp 2007-07-18 01:16:03 UTC (rev 28134)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browser/streams/simplefile.cpp 2007-07-18 11:40:15 UTC (rev 28135)
@@ -20,7 +20,7 @@
*
*/
-#include "browser_stdafx.h"
+#include "browser_stdafx.h"
#include "streams/streams_stdafx.h"
#include "streams/simplefile.h"
Modified: scummex/branches/gsoc2007-gameresbrowser/src/browser/streams/stream.cpp
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browser/streams/stream.cpp 2007-07-18 01:16:03 UTC (rev 28134)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browser/streams/stream.cpp 2007-07-18 11:40:15 UTC (rev 28135)
@@ -21,13 +21,15 @@
*/
#include "browser_stdafx.h"
-#include "streams/streams_stdafx.h"
+#include "streams/streams_stdafx.h"
//#include "streams/stdafx.h"
#include "streams/stream.h"
//#include "streams/str.h"
//#include "streams/util.h"
+#include "debugmem.h"
+
#ifdef MIN
#undef MIN
#endif
@@ -50,7 +52,7 @@
void *buf = malloc(dataSize);
dataSize = read(buf, dataSize);
assert(dataSize > 0);
- return new MemoryReadStream((byte *)buf, dataSize, true);
+ return new MemoryReadStream((byte *)buf, dataSize, true, rootOffset());
}
@@ -171,7 +173,7 @@
}
SeekableSubReadStream::SeekableSubReadStream(SeekableReadStream *parentStream, uint32 begin, uint32 end, bool disposeParentStream)
- : SubReadStream(parentStream, end, disposeParentStream),
+: SubReadStream(parentStream, end, disposeParentStream, parentStream->rootOffset() + begin),
_parentStream(parentStream),
_begin(begin) {
assert(_begin <= _end);
@@ -200,4 +202,12 @@
_parentStream->seek(_pos);
}
+void SeekableSubReadStream::trunc(uint32 newSize) {
+ ASSERT(newSize <= size());
+ uint32 delta = size() - newSize;
+ _end -= delta;
+ if (_pos > _end)
+ _pos = _end;
+}
+
} // End of namespace Common
Modified: scummex/branches/gsoc2007-gameresbrowser/src/browser/streams/stream.h
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browser/streams/stream.h 2007-07-18 01:16:03 UTC (rev 28134)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browser/streams/stream.h 2007-07-18 11:40:15 UTC (rev 28135)
@@ -22,7 +22,7 @@
//Modified for the Game Resource Browser
-#ifndef COMMON_STREAM_H
+#ifndef COMMON_STREAM_H
#define COMMON_STREAM_H
#include "streams/streams_stdafx.h"
@@ -54,6 +54,10 @@
* Reset the I/O error status.
*/
virtual void clearIOFailed() {}
+
+ virtual uint32 rootOffset() { //if I'm a derived stream, get offset of my root (-1 if not known)
+ return 0;
+ }
};
/**
@@ -326,18 +330,23 @@
uint32 _pos;
uint32 _end;
bool _disposeParentStream;
+ uint32 _rootOffset;
public:
- SubReadStream(ReadStream *parentStream, uint32 end, bool disposeParentStream = false)
+ SubReadStream(ReadStream *parentStream, uint32 end, bool disposeParentStream = false, uint32 rootOffset = -1)
: _parentStream(parentStream),
_pos(0),
_end(end),
- _disposeParentStream(disposeParentStream) {}
+ _disposeParentStream(disposeParentStream),
+ _rootOffset(rootOffset) {}
~SubReadStream() {
if (_disposeParentStream) delete _parentStream;
}
virtual bool eos() const { return _pos == _end; }
virtual uint32 read(void *dataPtr, uint32 dataSize);
+ virtual uint32 rootOffset() {
+ return _rootOffset;
+ }
};
/*
@@ -356,6 +365,8 @@
virtual uint32 size() const { return _end - _begin; }
virtual void seek(int32 offset, int whence = SEEK_SET);
+
+ virtual void trunc(uint32 newSize);
};
/**
@@ -370,6 +381,7 @@
uint32 _pos;
byte _encbyte;
bool _disposeMemory;
+ uint32 _rootOffset;
public:
@@ -378,13 +390,14 @@
* wraps it. If disposeMemory is true, the MemoryReadStream takes ownership
* of the buffer and hence free's it when destructed.
*/
- MemoryReadStream(const byte *dataPtr, uint32 dataSize, bool disposeMemory = false) :
+ MemoryReadStream(const byte *dataPtr, uint32 dataSize, bool disposeMemory = false, uint32 rootOffset = -1) :
_ptrOrig(dataPtr),
_ptr(dataPtr),
_size(dataSize),
_pos(0),
_encbyte(0),
- _disposeMemory(disposeMemory) {}
+ _disposeMemory(disposeMemory),
+ _rootOffset(rootOffset) {}
~MemoryReadStream() {
if (_disposeMemory)
@@ -400,6 +413,9 @@
uint32 size() const { return _size; }
void seek(int32 offs, int whence = SEEK_SET);
+ virtual uint32 rootOffset() {
+ return _rootOffset;
+ }
};
/**
Modified: scummex/branches/gsoc2007-gameresbrowser/src/browser/streams/xorstream.cpp
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browser/streams/xorstream.cpp 2007-07-18 01:16:03 UTC (rev 28134)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browser/streams/xorstream.cpp 2007-07-18 11:40:15 UTC (rev 28135)
@@ -21,7 +21,7 @@
*/
#include "browser_stdafx.h"
-#include "streams/streams_stdafx.h"
+#include "streams/streams_stdafx.h"
#include "streams/xorstream.h"
@@ -34,14 +34,14 @@
namespace Common {
-XORStream* XORStream::wrap(byte encbyte, SeekableReadStream* streamImpl, bool ownStream) {
+/*XORStream* XORStream::wrap(byte encbyte, SeekableReadStream* streamImpl, bool ownStream) {
if (!streamImpl)
return NULL;
return new XORStream(encbyte, streamImpl, ownStream);
-}
+}*/
-XORStream::XORStream(byte encbyte, SeekableReadStream* streamImpl, bool ownStream)
- : _encbyte(encbyte), _streamImpl(streamImpl), _ownStream(ownStream) {
+XORStream::XORStream(byte encbyte, SeekableReadStream* streamImpl, bool ownStream, uint32 rootOffset /*= -1*/)
+ : _encbyte(encbyte), _streamImpl(streamImpl), _ownStream(ownStream), _rootOffset(rootOffset) {
ASSERT(_streamImpl);
}
Modified: scummex/branches/gsoc2007-gameresbrowser/src/browser/streams/xorstream.h
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browser/streams/xorstream.h 2007-07-18 01:16:03 UTC (rev 28134)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browser/streams/xorstream.h 2007-07-18 11:40:15 UTC (rev 28135)
@@ -20,7 +20,7 @@
*
*/
-#ifndef COMMON_XORSTREAM_H
+#ifndef COMMON_XORSTREAM_H
#define COMMON_XORSTREAM_H
#include "streams/stream.h"
@@ -33,6 +33,7 @@
byte _encbyte;
SeekableReadStream* _streamImpl;
bool _ownStream;
+ uint32 _rootOffset;
private:
// Disallow copying XORStream objects.
@@ -42,11 +43,11 @@
public:
- XORStream(byte encbyte, SeekableReadStream* streamImpl, bool ownStream);
+ XORStream(byte encbyte, SeekableReadStream* streamImpl, bool ownStream, uint32 rootOffset = -1);
virtual ~XORStream();
//returns NULL when given NULL stream
- static XORStream* wrap(byte encbyte, SeekableReadStream* streamImpl, bool ownStream);
+ //static XORStream* wrap(byte encbyte, SeekableReadStream* streamImpl, bool ownStream);
void setencbyte(byte encbyte);
@@ -59,6 +60,9 @@
uint32 pos() const;
uint32 size() const;
void seek(int32 offs, int whence = SEEK_SET);
+ virtual uint32 rootOffset() {
+ return _rootOffset;
+ }
};
} // End of namespace Common
Modified: scummex/branches/gsoc2007-gameresbrowser/src/browserapp/BrowserApp.cpp
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browserapp/BrowserApp.cpp 2007-07-18 01:16:03 UTC (rev 28134)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browserapp/BrowserApp.cpp 2007-07-18 11:40:15 UTC (rev 28135)
@@ -10,14 +10,12 @@
#include "browserapp_stdafx.h"
#include "BrowserApp.h"
-//#include "BrowserDlg.h"
+//#include "BrowserDlg.h"
#include "MainForm.h"
#include "guicon.h"
#include <wx/filename.h>
-//#include "MadEdit.h"
-
IMPLEMENT_APP(BrowserDlgApp)
bool BrowserDlgApp::OnInit() {
@@ -35,19 +33,25 @@
/*const long style = wxCAPTION | wxRESIZE_BORDER | wxSYSTEM_MENU | wxTHICK_FRAME | wxMINIMIZE_BOX | wxMAXIMIZE_BOX | wxCLOSE_BOX;
wxFrame* frame = new wxFrame(mainForm, wxID_ANY, wxT("MadEdit"));
- *MadEdit* madEdit = new MadEdit(frame);
+ CHexEditCtrl* hexEdit = new CHexEditCtrl(frame);
- wxFileName fn(wxT("C:\\Zbys\\gsoc\\Browser\\vc8\\dummy.txt"));
- madEdit->LoadFromFile(fn.GetFullPath());
+ //wxFileName fn(wxT("C:\\Zbys\\gsoc\\Browser\\vc8\\dummy.txt"));
+ //madEdit->LoadFromFile(fn.GetFullPath());
+ hexEdit->SetData( (wxByte*)
+ "This is a test !@##asrgfq345)1"
+ "This is a test !@##%^$23465232"
+ "This is a test !@#q23w4gq %$)3"
+ "This is a test !@##$%^*%^$@()4"
+ "This is a test !@#@#%Y&$%$%$)5", 50);
- *wxBoxSizer *panelsizer = new wxBoxSizer(wxVERTICAL);
+ /*wxBoxSizer *panelsizer = new wxBoxSizer(wxVERTICAL);
panelsizer->Add(_page, 1, wxALL|wxEXPAND, 0);
frame->SetAutoLayout(true);
frame->SetSizer(panelsizer);
- frame->Layout();*
+ frame->Layout();*/
- frame->Show(true);*/
+ //frame->Show(true);
return true;
}
Copied: scummex/branches/gsoc2007-gameresbrowser/src/browserapp/DefaultPlugin.cpp (from rev 28115, scummex/branches/gsoc2007-gameresbrowser/src/browserapp/Test2.cpp)
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browserapp/DefaultPlugin.cpp (rev 0)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browserapp/DefaultPlugin.cpp 2007-07-18 11:40:15 UTC (rev 28135)
@@ -0,0 +1,156 @@
+//---------------------------------------------------------------------------
+//
+// Name: MainForm.cpp
+// Author: Zbyl
+// Created: 2007-07-01 11:17:49
+// Description: MainForm class implementation
+//
+//---------------------------------------------------------------------------
+
+#include "browserapp_stdafx.h"
+
+#include "MainForm.h"
+
+#include <wx/filename.h>
+
+#include <iostream>
+#include <fstream>
+
+#include "plugin.h"
+#include "ObjectRegistry.h"
+#include "FileTypeRegistry.h"
+
+#include "PluginUtil.h"
+
+#include "ObjectChain.h"
+
+#include "ExplorationTree.h"
+#include "VirtualNode.h"
+
+#include "FileTypeRecognizer.h"
+#include "PanelProvider.h"
+
+#include "basic/Directories.h"
+#include "basic/DirectoryPresenter.h"
+#include "basic/BasicParsers.h"
+#include "basic/ImagePresenter.h"
+#include "basic/TextPresenter.h"
+#include "basic/BinaryPresenter.h"
+#include "basic/HtmlPresenter.h"
+#include "basic/IconPresenter.h"
+#include "basic/FileInfoPresenter.h"
+
+#include "scumm/ScummRecognizer.h"
+#include "scumm/ScummParser.h"
+#include "scumm/ScummBlockPresenter.h"
+#include "scumm/ScummCommonPresenters.h"
+#include "scumm/ScummSpecificPresenters.h"
+#include "scumm/ScummSpecificPresenters2.h"
+#include "scumm/BlockyBlockPresenter.h"
+
+#include "debugmem.h"
+
+using namespace Browser;
+
+/////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////
+
+#define EMPTY_TOKEN
+PLUGIN_DESC_EX(DefaultPlugin, wxT("MyPlugins"), 1, EMPTY_TOKEN)
+ //PLUGGED_OBJECT(RootDirectory)
+ PLUGGED_OBJECT(PanelProvider)
+
+ PLUGGED_OBJECT(DirectoryPresenter)
+ PLUGGED_OBJECT(ImagePresenter)
+ PLUGGED_OBJECT(TextPresenter)
+ PLUGGED_OBJECT(BinaryPresenter)
+ PLUGGED_OBJECT(HtmlPresenter)
+ //PLUGGED_OBJECT(IconPresenter)
+ PLUGGED_OBJECT(FileInfoPresenter)
+
+ PLUGGED_OBJECT(TextParser)
+ PLUGGED_OBJECT(BinaryParser)
+ PLUGGED_OBJECT(BMPParser)
+
+ PLUGGED_OBJECT(BinaryFileTypeRecognizer)
+ PLUGGED_OBJECT(BinaryFileTypeParserResolver)
+ PLUGGED_OBJECT(BMPFileTypeRecognizer)
+ PLUGGED_OBJECT(BMPFileTypeParserResolver)
+ PLUGGED_OBJECT(TextFileTypeRecognizer)
+ PLUGGED_OBJECT(TextFileTypeParserResolver)
+
+ PLUGGED_OBJECT(ScummFileTypeRecognizer)
+ PLUGGED_OBJECT(ScummFileTypeParserResolver)
+
+ PLUGGED_OBJECT(ScummParser)
+ PLUGGED_OBJECT(ScummBlockPresenter)
+ PLUGGED_OBJECT(ScummBlockInfoPresenter)
+ PLUGGED_OBJECT(BlockyBlockPresenter)
+
+ PLUGGED_OBJECT(ScummLOFFBlockPresenter)
+ PLUGGED_OBJECT(ScummOFFSBlockPresenter)
+ PLUGGED_OBJECT(ScummRMHDBlockPresenter)
+ PLUGGED_OBJECT(ScummTRNSBlockPresenter)
+ PLUGGED_OBJECT(ScummPALBlockPresenter)
+ PLUGGED_OBJECT(ScummIMGBlockPresenter)
+
+ PLUGGED_OBJECT(ScummScriptBlockPresenter)
+
+ PLUGGED_OBJECT(ScummRNAMBlockPresenter)
+ PLUGGED_OBJECT(ScummMAXSBlockPresenter)
+ PLUGGED_OBJECT(ScummDOBJBlockPresenter)
+ PLUGGED_OBJECT(ScummANAMBlockPresenter)
+ PLUGGED_OBJECT(ScummDIRBlockPresenter)
+
+PLUGIN_END
+
+/////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////
+
+//HACK: manual loading of the Scumm plugin
+
+#ifdef _MSC_VER
+ #define DLL_IMPORT __declspec(dllimport)
+#else
+ #define DLL_IMPORT
+#endif
+
+//extern "C" {
+//DLL_IMPORT const Plugin& getPlugin();
+//}
+
+/////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////
+
+void MainForm::InitializeRootDirectory() {
+
+ infoout << wxT("Registering Default Plugin.") << std::endl;
+ ObjectRegistry::get()->registerPlugin( &getDefaultPlugin, false );
+ FileTypeRegistry::get()->registerPlugins();
+
+ wxTreeItemId rootItem = ExplorationTree::get()->addRoot(wxT("RootDirectory"));
+
+ RCPtr<DirectoryPresenter> dirPresenter( new DirectoryPresenter() );
+ RCPtr<RootDirectory> rootDir( new RootDirectory(rootItem, dirPresenter.get()) );
+
+ ObjectChain* rootChain = ExplorationTree::get()->getRootObjectChain();
+ VirtualNodeItemData* itemData = new VirtualNodeItemData(rootDir.get(), rootChain);
+ ExplorationTree::get()->setItemData(rootItem, itemData);
+
+ rootChain->addObject(rootDir);
+ rootChain->addObject(dirPresenter);
+}
+
+void MainForm::ExplorationTreeCleanup() {
+ infoout << wxT("Exploration Tree Cleanup.") << std::endl;
+
+ ExplorationTree::get()->cleanup();
+ InitializeRootDirectory();
+}
+
+void MainForm::OnExplorationTreeCleanup(wxCommandEvent& event) {
+ ExplorationTreeCleanup();
+}
+
+/////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////
Modified: scummex/branches/gsoc2007-gameresbrowser/src/browserapp/MainForm.cpp
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browserapp/MainForm.cpp 2007-07-18 01:16:03 UTC (rev 28134)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browserapp/MainForm.cpp 2007-07-18 11:40:15 UTC (rev 28135)
@@ -7,7 +7,7 @@
//
//---------------------------------------------------------------------------
-#include "browserapp_stdafx.h"
+#include "browserapp_stdafx.h"
#include "MainForm.h"
@@ -33,21 +33,27 @@
EVT_CLOSE(MainForm::OnClose)
EVT_IDLE(MainForm::MainFormIdle)
- EVT_MENU(ID_OPEN, MainForm::OnOpen)
+ EVT_MENU(wxID_OPEN, MainForm::OnOpen)
+ EVT_MENU(ID_OPENDIRECTORY, MainForm::OnOpenDir)
EVT_MENU(wxID_EXIT, MainForm::OnExit)
EVT_MENU(ID_DUMPROOTOBJECTCHAIN, MainForm::OnDumpRootObjectChain)
EVT_MENU(ID_DUMPCURRENTOBJECTCHAIN, MainForm::OnDumpCurrentObjectChain)
EVT_MENU(ID_ACTIVATENODE, MainForm::OnActivateNode)
EVT_MENU(ID_LOADPLUGIN, MainForm::OnLoadPlugin)
+ EVT_MENU(ID_EXPLORATIONTREECLEANUP, MainForm::OnExplorationTreeCleanup)
+ EVT_MENU(ID_TEST0, MainForm::OnTest0)
EVT_MENU(ID_TEST1, MainForm::OnTest1)
- EVT_MENU(ID_TEST1_CLEANUP, MainForm::OnTest1Cleanup)
- EVT_MENU(ID_TEST0, MainForm::OnTest0)
EVT_MENU(ID_TEST2, MainForm::OnTest2)
EVT_MENU(ID_DETACH, MainForm::OnDetachPanel)
+ EVT_MENU(ID_ATTACHBINARYPRESENTER, MainForm::OnAttachBinaryPresenter)
+ EVT_MENU(ID_POPUP_ACTIVATE , MainForm::OnPopupActivate)
+ EVT_MENU(ID_POPUP_ATTACHBINARYPRESENTER , MainForm::OnPopupAttachBinaryPresenter)
+ EVT_MENU(ID_POPUP_DUMPOBJECTCHAIN , MainForm::OnPopupDumpObjectChain)
EVT_TREE_ITEM_ACTIVATED(ID_BROWSERTREE,MainForm::browserTreeItemActivated)
EVT_TREE_ITEM_EXPANDED(ID_BROWSERTREE,MainForm::browserTreeItemExpanded)
EVT_TREE_ITEM_EXPANDING(ID_BROWSERTREE,MainForm::browserTreeItemExpanding)
+ EVT_TREE_ITEM_MENU(ID_BROWSERTREE,MainForm::browserTreeItemMenu)
END_EVENT_TABLE()
////Event Table End
@@ -68,6 +74,7 @@
}
MainForm::~MainForm() {
+ delete browserTreePopupMenu; //not done automatically, not done by wxDev-C++
}
void MainForm::CreateGUIControls() {
@@ -86,7 +93,7 @@
WxBoxSizer1->Add(WxSplitterWindow1,1,wxEXPAND | wxALL,0);
browserTree = new wxTreeCtrl(WxSplitterWindow1, ID_BROWSERTREE, wxPoint(5,5), wxSize(185,382), wxTR_HAS_BUTTONS | wxTR_LINES_AT_ROOT);
- browserTree->SetFont(wxFont(8, wxSWISS, wxNORMAL,wxNORMAL, false, wxT("Tahoma")));
+ browserTree->SetFont(wxFont(10, wxSWISS, wxNORMAL,wxNORMAL, false, wxT("Tahoma")));
mainPanel = new wxPanel(WxSplitterWindow1, ID_MAINPANEL, wxPoint(200,8), wxSize(363,376));
mainPanel->SetFont(wxFont(8, wxSWISS, wxNORMAL,wxNORMAL, false, wxT("Tahoma")));
@@ -99,9 +106,14 @@
browserNotebook->SetFont(wxFont(8, wxSWISS, wxNORMAL,wxNORMAL, false, wxT("Tahoma")));
WxBoxSizer2->Add(browserNotebook,1,wxEXPAND | wxALL,5);
+ browserTreePopupMenu = new wxMenu(wxT(""));browserTreePopupMenu->Append(ID_POPUP_ACTIVATE, wxT("Activate"), wxT(""), wxITEM_NORMAL);
+ browserTreePopupMenu->Append(ID_POPUP_ATTACHBINARYPRESENTER, wxT("Attach Binary Presenter"), wxT(""), wxITEM_NORMAL);
+ browserTreePopupMenu->Append(ID_POPUP_DUMPOBJECTCHAIN, wxT("Dump Object Chain"), wxT(""), wxITEM_NORMAL);
+
WxMenuBar1 = new wxMenuBar();
wxMenu *ID_FILE_MENU_Mnu_Obj = new wxMenu(0);
- ID_FILE_MENU_Mnu_Obj->Append(ID_OPEN, wxT("Open..."), wxT(""), wxITEM_NORMAL);
+ ID_FILE_MENU_Mnu_Obj->Append(wxID_OPEN, wxT("Open..."), wxT(""), wxITEM_NORMAL);
+ ID_FILE_MENU_Mnu_Obj->Append(ID_OPENDIRECTORY, wxT("Open directory..."), wxT(""), wxITEM_NORMAL);
ID_FILE_MENU_Mnu_Obj->AppendSeparator();
ID_FILE_MENU_Mnu_Obj->Append(wxID_EXIT, wxT("Exit"), wxT(""), wxITEM_NORMAL);
WxMenuBar1->Append(ID_FILE_MENU_Mnu_Obj, wxT("File"));
@@ -115,15 +127,19 @@
WxMenuBar1->Append(ID_COMMANDS_MENU_Mnu_Obj, wxT("Commands"));
wxMenu *ID_TEST_MENU_Mnu_Obj = new wxMenu(0);
+ ID_TEST_MENU_Mnu_Obj->Append(ID_EXPLORATIONTREECLEANUP, wxT("Cleanup Exploration Tree"), wxT(""), wxITEM_NORMAL);
+ ID_TEST_MENU_Mnu_Obj->Append(ID_TEST0, wxT("Test0 - No Scumm Plugins"), wxT(""), wxITEM_NORMAL);
+ ID_TEST_MENU_Mnu_Obj->Enable(ID_TEST0,false);
ID_TEST_MENU_Mnu_Obj->Append(ID_TEST1, wxT("Test1 - No Scumm Plugins"), wxT(""), wxITEM_NORMAL);
- ID_TEST_MENU_Mnu_Obj->Append(ID_TEST1_CLEANUP, wxT("Test Cleanup"), wxT(""), wxITEM_NORMAL);
- ID_TEST_MENU_Mnu_Obj->Append(ID_TEST0, wxT("Test0 - No Scumm Plugins"), wxT(""), wxITEM_NORMAL);
+ ID_TEST_MENU_Mnu_Obj->Enable(ID_TEST1,false);
ID_TEST_MENU_Mnu_Obj->Append(ID_TEST2, wxT("Test2 - With Scumm Plugins"), wxT(""), wxITEM_NORMAL);
+ ID_TEST_MENU_Mnu_Obj->Enable(ID_TEST2,false);
WxMenuBar1->Append(ID_TEST_MENU_Mnu_Obj, wxT("Tests"));
- wxMenu *ID_DETACHPANEL_Mnu_Obj = new wxMenu(0);
- ID_DETACHPANEL_Mnu_Obj->Append(ID_DETACH, wxT("Detach"), wxT(""), wxITEM_NORMAL);
- WxMenuBar1->Append(ID_DETACHPANEL_Mnu_Obj, wxT("Detach panel"));
+ wxMenu *ID_PRESENTERS_Mnu_Obj = new wxMenu(0);
+ ID_PRESENTERS_Mnu_Obj->Append(ID_DETACH, wxT("Detach"), wxT(""), wxITEM_NORMAL);
+ ID_PRESENTERS_Mnu_Obj->Append(ID_ATTACHBINARYPRESENTER, wxT("Attach Binary Presenter"), wxT(""), wxITEM_NORMAL);
+ WxMenuBar1->Append(ID_PRESENTERS_Mnu_Obj, wxT("Presenters"));
SetMenuBar(WxMenuBar1);
WxSplitterWindow1->SplitVertically(browserTree,mainPanel,185);
@@ -151,3 +167,11 @@
Close(true);
}
+
+/*
+ * OpendirectoryClick
+ */
+void MainForm::OpendirectoryClick(wxCommandEvent& event)
+{
+ // insert your code here
+}
Modified: scummex/branches/gsoc2007-gameresbrowser/src/browserapp/MainForm.h
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browserapp/MainForm.h 2007-07-18 01:16:03 UTC (rev 28134)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browserapp/MainForm.h 2007-07-18 11:40:15 UTC (rev 28135)
@@ -44,25 +44,34 @@
//virtual bool Destroy();
void InitializeObjects();
void CleanupObjects();
+ void InitializeRootDirectory();
+ void ExplorationTreeCleanup();
+ void OnExplorationTreeCleanup(wxCommandEvent& event);
void OnTimer(wxTimerEvent& event);
void dumpObjectChain(Core::ObjectChain* ochain);
void ExitClick(wxCommandEvent& event);
- void OnTest1Cleanup(wxCommandEvent& event);
void OnTest1(wxCommandEvent& event);
void browserTreeItemActivated(wxTreeEvent& event);
void browserTreeItemExpanding(wxTreeEvent& event);
- void OnTest0(wxCommandEvent& event);
- void OnDumpRootObjectChain(wxCommandEvent& event);
- void OnTest2(wxCommandEvent& event);
- void OnDumpCurrentObjectChain(wxCommandEvent& event);
- void OnActivateNode(wxCommandEvent& event);
+ void OnTest0(wxCommandEvent& event);
+ void OnDumpRootObjectChain(wxCommandEvent& event);
+ void OnTest2(wxCommandEvent& event);
+ void OnDumpCurrentObjectChain(wxCommandEvent& event);
+ void OnActivateNode(wxCommandEvent& event);
void browserTreeItemExpanded(wxTreeEvent& event);
- void OnOpen(wxCommandEvent& event);
+ void OnOpen(wxCommandEvent& event);
+ void OnOpenDir(wxCommandEvent& event);
void MainFormIdle(wxIdleEvent& event);
- void OnLoadPlugin(wxCommandEvent& event);
- void OnDetachPanel(wxCommandEvent& event);
+ void OnLoadPlugin(wxCommandEvent& event);
+ void OnDetachPanel(wxCommandEvent& event);
+ void OnAttachBinaryPresenter(wxCommandEvent& event);
+ void OnPopupActivate(wxCommandEvent& event);
+ void OnPopupAttachBinaryPresenter(wxCommandEvent& event);
+ void OnPopupDumpObjectChain(wxCommandEvent& event);
+ void browserTreeItemMenu(wxTreeEvent& event);
+ void OpendirectoryClick(wxCommandEvent& event);
private:
//Do not add custom control declarations between
@@ -70,6 +79,7 @@
//wxDev-C++ will remove them. Add custom code after the block.
////GUI Control Declaration Start
wxMenuBar *WxMenuBar1;
+ wxMenu *browserTreePopupMenu;
wxNotebook *browserNotebook;
wxBoxSizer *WxBoxSizer2;
wxPanel *mainPanel;
@@ -88,20 +98,25 @@
{
////GUI Enum Control ID Start
ID_FILE_MENU = 1004,
- ID_OPEN = 1005,
+ ID_OPENDIRECTORY = 1038,
ID_COMMANDS_MENU = 1025,
ID_DUMPROOTOBJECTCHAIN = 1026,
ID_DUMPCURRENTOBJECTCHAIN = 1028,
ID_ACTIVATENODE = 1029,
ID_LOADPLUGIN = 1030,
ID_TEST_MENU = 1010,
+ ID_EXPLORATIONTREECLEANUP = 1012,
+ ID_TEST0 = 1022,
ID_TEST1 = 1011,
- ID_TEST1_CLEANUP = 1012,
- ID_TEST0 = 1022,
ID_TEST2 = 1024,
- ID_DETACHPANEL = 1031,
+ ID_PRESENTERS = 1031,
ID_DETACH = 1032,
+ ID_ATTACHBINARYPRESENTER = 1034,
+ ID_POPUP_ACTIVATE = 1035,
+ ID_POPUP_ATTACHBINARYPRESENTER = 1036,
+ ID_POPUP_DUMPOBJECTCHAIN = 1037,
+
ID_BROWSERNOTEBOOK = 1021,
ID_MAINPANEL = 1017,
ID_BROWSERTREE = 1016,
Modified: scummex/branches/gsoc2007-gameresbrowser/src/browserapp/MainForm.wxform
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browserapp/MainForm.wxform 2007-07-18 01:16:03 UTC (rev 28134)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browserapp/MainForm.wxform 2007-07-18 11:40:15 UTC (rev 28135)
@@ -72,11 +72,18 @@
Top = 5
Width = 185
Height = 382
+ Font.Charset = DEFAULT_CHARSET
+ Font.Color = clWindowText
+ Font.Height = -13
+ Font.Name = 'Tahoma'
+ Font.Style = []
Indent = 19
+ ParentFont = False
TabOrder = 0
EVT_TREE_ITEM_ACTIVATED = 'browserTreeItemActivated'
EVT_TREE_ITEM_EXPANDED = 'browserTreeItemExpanded'
EVT_TREE_ITEM_EXPANDING = 'browserTreeItemExpanding'
+ EVT_TREE_ITEM_MENU = 'browserTreeItemMenu'
Wx_BGColor = clBlack
Wx_Class = 'wxTreeCtrl'
Wx_ControlOrientation = wxControlHorizontal
@@ -246,174 +253,325 @@
060446696C6512436172726965642E57785F436865636B656408164361727269
65642E57585F4249544D41502E446174610A0C00000007544269746D61700000
000016436172726965642E57785F46696C65486973746F727908184361727269
- 65642E5778437573746F6D4D656E754974656D0AE20300001100000054577843
+ 65642E5778437573746F6D4D656E754974656D0A4D0500001100000054577843
7573746F6D4D656E754974656D5450463018547778437573746F6D4D656E7549
74656D577261707065720011436172726965642E49735375624D656E75081043
6172726965642E4556545F4D656E7506064F6E4F70656E12436172726965642E
57785F456E61626C65640911436172726965642E57785F48696464656E081143
- 6172726965642E57785F49444E616D65060749445F4F50454E12436172726965
- 642E57785F494456616C756503ED0318436172726965642E57785F4D656E7549
- 74656D5374796C65070F77784D6E7549746D5F4E6F726D616C12436172726965
- 642E57785F43617074696F6E06074F70656E2E2E2E12436172726965642E5778
+ 6172726965642E57785F49444E616D650609777849445F4F50454E1243617272
+ 6965642E57785F494456616C756503ED0318436172726965642E57785F4D656E
+ 754974656D5374796C65070F77784D6E7549746D5F4E6F726D616C1243617272
+ 6965642E57785F43617074696F6E06074F70656E2E2E2E12436172726965642E
+ 57785F436865636B65640816436172726965642E57585F4249544D41502E4461
+ 74610A0C00000007544269746D61700000000016436172726965642E57785F46
+ 696C65486973746F727908000011000000545778437573746F6D4D656E754974
+ 656D5450463018547778437573746F6D4D656E754974656D5772617070657200
+ 11436172726965642E49735375624D656E750810436172726965642E4556545F
+ 4D656E7506094F6E4F70656E44697212436172726965642E57785F456E61626C
+ 65640911436172726965642E57785F48696464656E0811436172726965642E57
+ 785F49444E616D65061049445F4F50454E4449524543544F5259124361727269
+ 65642E57785F494456616C7565030E0418436172726965642E57785F4D656E75
+ 4974656D5374796C65070F77784D6E7549746D5F4E6F726D616C124361727269
+ 65642E57785F43617074696F6E06114F70656E206469726563746F72792E2E2E
+ 12436172726965642E57785F436865636B65640816436172726965642E57585F
+ 4249544D41502E446174610A0C00000007544269746D61700000000016436172
+ 726965642E57785F46696C65486973746F727908000011000000545778437573
+ 746F6D4D656E754974656D5450463018547778437573746F6D4D656E75497465
+ 6D577261707065720011436172726965642E49735375624D656E750812436172
+ 726965642E57785F456E61626C65640911436172726965642E57785F48696464
+ 656E0811436172726965642E57785F49444E616D65060B777849445F53544154
+ 494312436172726965642E57785F494456616C756503EF031843617272696564
+ 2E57785F4D656E754974656D5374796C65071277784D6E7549746D5F53657061
+ 7261746F7212436172726965642E57785F43617074696F6E06032D2D2D124361
+ 72726965642E57785F436865636B65640816436172726965642E57585F424954
+ 4D41502E446174610A0C00000007544269746D61700000000016436172726965
+ 642E57785F46696C65486973746F727908000011000000545778437573746F6D
+ 4D656E754974656D5450463018547778437573746F6D4D656E754974656D5772
+ 61707065720011436172726965642E49735375624D656E750810436172726965
+ 642E4556545F4D656E7506064F6E4578697412436172726965642E57785F456E
+ 61626C65640911436172726965642E57785F48696464656E0811436172726965
+ 642E57785F49444E616D650609777849445F4558495412436172726965642E57
+ 785F494456616C756503F10318436172726965642E57785F4D656E754974656D
+ 5374796C65070F77784D6E7549746D5F4E6F726D616C12436172726965642E57
+ 785F43617074696F6E06044578697412436172726965642E57785F436865636B
+ 65640816436172726965642E57585F4249544D41502E446174610A0C00000007
+ 544269746D61700000000016436172726965642E57785F46696C65486973746F
+ 7279080000000011000000545778437573746F6D4D656E754974656D54504630
+ 18547778437573746F6D4D656E754974656D5772617070657200114361727269
+ 65642E49735375624D656E750812436172726965642E57785F456E61626C6564
+ 0911436172726965642E57785F48696464656E0811436172726965642E57785F
+ 49444E616D65061049445F434F4D4D414E44535F4D454E551243617272696564
+ 2E57785F494456616C756503010418436172726965642E57785F4D656E754974
+ 656D5374796C65070F77784D6E7549746D5F4E6F726D616C1243617272696564
+ 2E57785F43617074696F6E0608436F6D6D616E647312436172726965642E5778
5F436865636B65640816436172726965642E57585F4249544D41502E44617461
0A0C00000007544269746D61700000000016436172726965642E57785F46696C
- 65486973746F727908000011000000545778437573746F6D4D656E754974656D
- 5450463018547778437573746F6D4D656E754974656D57726170706572001143
- 6172726965642E49735375624D656E750812436172726965642E57785F456E61
- 626C65640911436172726965642E57785F48696464656E081143617272696564
- 2E57785F49444E616D65060B777849445F53544154494312436172726965642E
- 57785F494456616C756503EF0318436172726965642E57785F4D656E75497465
- 6D5374796C65071277784D6E7549746D5F536570617261746F72124361727269
- 65642E57785F43617074696F6E06032D2D2D12436172726965642E57785F4368
- 65636B65640816436172726965642E57585F4249544D41502E446174610A0C00
- 000007544269746D61700000000016436172726965642E57785F46696C654869
- 73746F727908000011000000545778437573746F6D4D656E754974656D545046
- 3018547778437573746F6D4D656E754974656D57726170706572001143617272
- 6965642E49735375624D656E750810436172726965642E4556545F4D656E7506
- 064F6E4578697412436172726965642E57785F456E61626C6564091143617272
- 6965642E57785F48696464656E0811436172726965642E57785F49444E616D65
- 0609777849445F4558495412436172726965642E57785F494456616C756503F1
+ 65486973746F72790818436172726965642E5778437573746F6D4D656E754974
+ 656D0AD505000011000000545778437573746F6D4D656E754974656D54504630
+ 18547778437573746F6D4D656E754974656D5772617070657200114361727269
+ 65642E49735375624D656E750810436172726965642E4556545F4D656E750615
+ 4F6E44756D70526F6F744F626A656374436861696E12436172726965642E5778
+ 5F456E61626C65640811436172726965642E57785F48696464656E0811436172
+ 726965642E57785F49444E616D65061649445F44554D50524F4F544F424A4543
+ 54434841494E12436172726965642E57785F494456616C756503020418436172
+ 726965642E57785F4D656E754974656D5374796C65070F77784D6E7549746D5F
+ 4E6F726D616C12436172726965642E57785F43617074696F6E061644756D7020
+ 526F6F74204F626A65637420436861696E12436172726965642E57785F436865
+ 636B65640816436172726965642E57585F4249544D41502E446174610A0C0000
+ 0007544269746D61700000000016436172726965642E57785F46696C65486973
+ 746F727908000011000000545778437573746F6D4D656E754974656D54504630
+ 18547778437573746F6D4D656E754974656D5772617070657200114361727269
+ 65642E49735375624D656E750810436172726965642E4556545F4D656E750618
+ 4F6E44756D7043757272656E744F626A656374436861696E1243617272696564
+ 2E57785F456E61626C65640911436172726965642E57785F48696464656E0811
+ 436172726965642E57785F49444E616D65061949445F44554D5043555252454E
+ 544F424A454354434841494E12436172726965642E57785F494456616C756503
+ 040418436172726965642E57785F4D656E754974656D5374796C65070F77784D
+ 6E7549746D5F4E6F726D616C12436172726965642E57785F43617074696F6E06
+ 1944756D702043757272656E74204F626A65637420436861696E124361727269
+ 65642E57785F436865636B65640816436172726965642E57585F4249544D4150
+ 2E446174610A0C00000007544269746D61700000000016436172726965642E57
+ 785F46696C65486973746F727908000011000000545778437573746F6D4D656E
+ 754974656D5450463018547778437573746F6D4D656E754974656D5772617070
+ 65720011436172726965642E49735375624D656E750810436172726965642E45
+ 56545F4D656E75060E4F6E41637469766174654E6F646512436172726965642E
+ 57785F456E61626C65640911436172726965642E57785F48696464656E081143
+ 6172726965642E57785F49444E616D65060F49445F41435449564154454E4F44
+ 4512436172726965642E57785F494456616C756503050418436172726965642E
+ 57785F4D656E754974656D5374796C65070F77784D6E7549746D5F4E6F726D61
+ 6C12436172726965642E57785F43617074696F6E060D4163746976617465204E
+ 6F646512436172726965642E57785F436865636B65640816436172726965642E
+ 57585F4249544D41502E446174610A0C00000007544269746D61700000000016
+ 436172726965642E57785F46696C65486973746F727908000011000000545778
+ 437573746F6D4D656E754974656D5450463018547778437573746F6D4D656E75
+ 4974656D577261707065720011436172726965642E49735375624D656E750810
+ 436172726965642E4556545F4D656E75060C4F6E4C6F6164506C7567696E1243
+ 6172726965642E57785F456E61626C65640911436172726965642E57785F4869
+ 6464656E0811436172726965642E57785F49444E616D65060D49445F4C4F4144
+ 504C5547494E12436172726965642E57785F494456616C756503060418436172
+ 726965642E57785F4D656E754974656D5374796C65070F77784D6E7549746D5F
+ 4E6F726D616C12436172726965642E57785F43617074696F6E060B4C6F616420
+ 506C7567696E12436172726965642E57785F436865636B656408164361727269
+ 65642E57585F4249544D41502E446174610A0C00000007544269746D61700000
+ 000016436172726965642E57785F46696C65486973746F727908000000001100
+ 0000545778437573746F6D4D656E754974656D5450463018547778437573746F
+ 6D4D656E754974656D577261707065720011436172726965642E49735375624D
+ 656E750812436172726965642E57785F456E61626C6564091143617272696564
+ 2E57785F48696464656E0811436172726965642E57785F49444E616D65060C49
+ 445F544553545F4D454E5512436172726965642E57785F494456616C756503F2
0318436172726965642E57785F4D656E754974656D5374796C65070F77784D6E
- 7549746D5F4E6F726D616C12436172726965642E57785F43617074696F6E0604
- 4578697412436172726965642E57785F436865636B6564081643617272696564
- 2E57585F4249544D41502E446174610A0C00000007544269746D617000000000
- 16436172726965642E57785F46696C65486973746F7279080000000011000000
- 545778437573746F6D4D656E754974656D5450463018547778437573746F6D4D
- 656E754974656D577261707065720011436172726965642E49735375624D656E
- 750812436172726965642E57785F456E61626C65640911436172726965642E57
- 785F48696464656E0811436172726965642E57785F49444E616D65061049445F
- 434F4D4D414E44535F4D454E5512436172726965642E57785F494456616C7565
- 03010418436172726965642E57785F4D656E754974656D5374796C65070F7778
- 4D6E7549746D5F4E6F726D616C12436172726965642E57785F43617074696F6E
- 0608436F6D6D616E647312436172726965642E57785F436865636B6564081643
- 6172726965642E57585F4249544D41502E446174610A0C00000007544269746D
- 61700000000016436172726965642E57785F46696C65486973746F7279081843
- 6172726965642E5778437573746F6D4D656E754974656D0AD505000011000000
- 545778437573746F6D4D656E754974656D5450463018547778437573746F6D4D
- 656E754974656D577261707065720011436172726965642E49735375624D656E
- 750810436172726965642E4556545F4D656E7506154F6E44756D70526F6F744F
- 626A656374436861696E12436172726965642E57785F456E61626C6564081143
- 6172726965642E57785F48696464656E0811436172726965642E57785F49444E
- 616D65061649445F44554D50524F4F544F424A454354434841494E1243617272
- 6965642E57785F494456616C756503020418436172726965642E57785F4D656E
- 754974656D5374796C65070F77784D6E7549746D5F4E6F726D616C1243617272
- 6965642E57785F43617074696F6E061644756D7020526F6F74204F626A656374
- 20436861696E12436172726965642E57785F436865636B656408164361727269
- 65642E57585F4249544D41502E446174610A0C00000007544269746D61700000
- 000016436172726965642E57785F46696C65486973746F727908000011000000
- 545778437573746F6D4D656E754974656D5450463018547778437573746F6D4D
- 656E754974656D577261707065720011436172726965642E49735375624D656E
- 750810436172726965642E4556545F4D656E7506184F6E44756D704375727265
- 6E744F626A656374436861696E12436172726965642E57785F456E61626C6564
- 0911436172726965642E57785F48696464656E0811436172726965642E57785F
- 49444E616D65061949445F44554D5043555252454E544F424A45435443484149
- 4E12436172726965642E57785F494456616C756503040418436172726965642E
- 57785F4D656E754974656D5374796C65070F77784D6E7549746D5F4E6F726D61
- 6C12436172726965642E57785F43617074696F6E061944756D70204375727265
- 6E74204F626A65637420436861696E12436172726965642E57785F436865636B
+ 7549746D5F4E6F726D616C12436172726965642E57785F43617074696F6E0605
+ 546573747312436172726965642E57785F436865636B65640816436172726965
+ 642E57585F4249544D41502E446174610A0C00000007544269746D6170000000
+ 0016436172726965642E57785F46696C65486973746F72790818436172726965
+ 642E5778437573746F6D4D656E754974656D0ABC050000110000005457784375
+ 73746F6D4D656E754974656D5450463018547778437573746F6D4D656E754974
+ 656D577261707065720011436172726965642E49735375624D656E7508104361
+ 72726965642E4556545F4D656E7506184F6E4578706C6F726174696F6E547265
+ 65436C65616E757012436172726965642E57785F456E61626C65640911436172
+ 726965642E57785F48696464656E0811436172726965642E57785F49444E616D
+ 65061949445F4558504C4F524154494F4E54524545434C45414E555012436172
+ 726965642E57785F494456616C756503F40318436172726965642E57785F4D65
+ 6E754974656D5374796C65070F77784D6E7549746D5F4E6F726D616C12436172
+ 726965642E57785F43617074696F6E0618436C65616E7570204578706C6F7261
+ 74696F6E205472656512436172726965642E57785F436865636B656408164361
+ 72726965642E57585F4249544D41502E446174610A0C00000007544269746D61
+ 700000000016436172726965642E57785F46696C65486973746F727908000011
+ 000000545778437573746F6D4D656E754974656D545046301854777843757374
+ 6F6D4D656E754974656D577261707065720011436172726965642E4973537562
+ 4D656E750810436172726965642E4556545F4D656E7506074F6E546573743012
+ 436172726965642E57785F456E61626C65640811436172726965642E57785F48
+ 696464656E0811436172726965642E57785F49444E616D65060849445F544553
+ 543012436172726965642E57785F494456616C756503FE031843617272696564
+ 2E57785F4D656E754974656D5374796C65070F77784D6E7549746D5F4E6F726D
+ 616C12436172726965642E57785F43617074696F6E06185465737430202D204E
+ 6F205363756D6D20506C7567696E7312436172726965642E57785F436865636B
65640816436172726965642E57585F4249544D41502E446174610A0C00000007
544269746D61700000000016436172726965642E57785F46696C65486973746F
727908000011000000545778437573746F6D4D656E754974656D545046301854
7778437573746F6D4D656E754974656D57726170706572001143617272696564
- 2E49735375624D656E750810436172726965642E4556545F4D656E75060E4F6E
- 41637469766174654E6F646512436172726965642E57785F456E61626C656409
- 11436172726965642E57785F48696464656E0811436172726965642E57785F49
- 444E616D65060F49445F41435449564154454E4F444512436172726965642E57
- 785F494456616C756503050418436172726965642E57785F4D656E754974656D
- 5374796C65070F77784D6E7549746D5F4E6F726D616C12436172726965642E57
- 785F43617074696F6E060D4163746976617465204E6F64651243617272696564
- 2E57785F436865636B65640816436172726965642E57585F4249544D41502E44
- 6174610A0C00000007544269746D61700000000016436172726965642E57785F
- 46696C65486973746F727908000011000000545778437573746F6D4D656E7549
- 74656D5450463018547778437573746F6D4D656E754974656D57726170706572
- 0011436172726965642E49735375624D656E750810436172726965642E455654
- 5F4D656E75060C4F6E4C6F6164506C7567696E12436172726965642E57785F45
- 6E61626C65640911436172726965642E57785F48696464656E08114361727269
- 65642E57785F49444E616D65060D49445F4C4F4144504C5547494E1243617272
- 6965642E57785F494456616C756503060418436172726965642E57785F4D656E
- 754974656D5374796C65070F77784D6E7549746D5F4E6F726D616C1243617272
- 6965642E57785F43617074696F6E060B4C6F616420506C7567696E1243617272
- 6965642E57785F436865636B65640816436172726965642E57585F4249544D41
- 502E446174610A0C00000007544269746D61700000000016436172726965642E
- 57785F46696C65486973746F7279080000000011000000545778437573746F6D
- 4D656E754974656D5450463018547778437573746F6D4D656E754974656D5772
- 61707065720011436172726965642E49735375624D656E750812436172726965
- 642E57785F456E61626C65640911436172726965642E57785F48696464656E08
- 11436172726965642E57785F49444E616D65060C49445F544553545F4D454E55
- 12436172726965642E57785F494456616C756503F20318436172726965642E57
- 785F4D656E754974656D5374796C65070F77784D6E7549746D5F4E6F726D616C
- 12436172726965642E57785F43617074696F6E06055465737473124361727269
- 65642E57785F436865636B65640816436172726965642E57585F4249544D4150
- 2E446174610A0C00000007544269746D61700000000016436172726965642E57
- 785F46696C65486973746F72790818436172726965642E5778437573746F6D4D
- 656E754974656D0A9D05000011000000545778437573746F6D4D656E75497465
- 6D5450463018547778437573746F6D4D656E754974656D577261707065720011
- 436172726965642E49735375624D656E750810436172726965642E4556545F4D
- 656E7506074F6E546573743112436172726965642E57785F456E61626C656409
- 11436172726965642E57785F48696464656E0811436172726965642E57785F49
- 444E616D65060849445F544553543112436172726965642E57785F494456616C
- 756503F30318436172726965642E57785F4D656E754974656D5374796C65070F
- 77784D6E7549746D5F4E6F726D616C12436172726965642E57785F4361707469
- 6F6E06185465737431202D204E6F205363756D6D20506C7567696E7312436172
- 726965642E57785F436865636B65640816436172726965642E57585F4249544D
- 41502E446174610A0C00000007544269746D6170000000001643617272696564
- 2E57785F46696C65486973746F727908000011000000545778437573746F6D4D
- 656E754974656D5450463018547778437573746F6D4D656E754974656D577261
- 707065720011436172726965642E49735375624D656E75081043617272696564
- 2E4556545F4D656E75060E4F6E5465737431436C65616E757012436172726965
- 642E57785F456E61626C65640911436172726965642E57785F48696464656E08
- 11436172726965642E57785F49444E616D65061049445F54455354315F434C45
- 414E555012436172726965642E57785F494456616C756503F403184361727269
- 65642E57785F4D656E754974656D5374796C65070F77784D6E7549746D5F4E6F
- 726D616C12436172726965642E57785F43617074696F6E060C5465737420436C
- 65616E757012436172726965642E57785F436865636B65640816436172726965
- 642E57585F4249544D41502E446174610A0C00000007544269746D6170000000
- 0016436172726965642E57785F46696C65486973746F72790800001100000054
- 5778437573746F6D4D656E754974656D5450463018547778437573746F6D4D65
- 6E754974656D577261707065720011436172726965642E49735375624D656E75
- 0810436172726965642E4556545F4D656E7506074F6E54657374301243617272
+ 2E49735375624D656E750810436172726965642E4556545F4D656E7506074F6E
+ 546573743112436172726965642E57785F456E61626C65640811436172726965
+ 642E57785F48696464656E0811436172726965642E57785F49444E616D650608
+ 49445F544553543112436172726965642E57785F494456616C756503F3031843
+ 6172726965642E57785F4D656E754974656D5374796C65070F77784D6E754974
+ 6D5F4E6F726D616C12436172726965642E57785F43617074696F6E0618546573
+ 7431202D204E6F205363756D6D20506C7567696E7312436172726965642E5778
+ 5F436865636B65640816436172726965642E57585F4249544D41502E44617461
+ 0A0C00000007544269746D61700000000016436172726965642E57785F46696C
+ 65486973746F727908000011000000545778437573746F6D4D656E754974656D
+ 5450463018547778437573746F6D4D656E754974656D57726170706572001143
+ 6172726965642E49735375624D656E750810436172726965642E4556545F4D65
+ 6E7506074F6E546573743212436172726965642E57785F456E61626C65640811
+ 436172726965642E57785F48696464656E0811436172726965642E57785F4944
+ 4E616D65060849445F544553543212436172726965642E57785F494456616C75
+ 6503000418436172726965642E57785F4D656E754974656D5374796C65070F77
+ 784D6E7549746D5F4E6F726D616C12436172726965642E57785F43617074696F
+ 6E061A5465737432202D2057697468205363756D6D20506C7567696E73124361
+ 72726965642E57785F436865636B65640816436172726965642E57585F424954
+ 4D41502E446174610A0C00000007544269746D61700000000016436172726965
+ 642E57785F46696C65486973746F727908000000001100000054577843757374
+ 6F6D4D656E754974656D5450463018547778437573746F6D4D656E754974656D
+ 577261707065720011436172726965642E49735375624D656E75081243617272
6965642E57785F456E61626C65640911436172726965642E57785F4869646465
- 6E0811436172726965642E57785F49444E616D65060849445F54455354301243
- 6172726965642E57785F494456616C756503FE0318436172726965642E57785F
+ 6E0811436172726965642E57785F49444E616D65060D49445F50524553454E54
+ 45525312436172726965642E57785F494456616C756503070418436172726965
+ 642E57785F4D656E754974656D5374796C65070F77784D6E7549746D5F4E6F72
+ 6D616C12436172726965642E57785F43617074696F6E060A50726573656E7465
+ 727312436172726965642E57785F436865636B65640816436172726965642E57
+ 585F4249544D41502E446174610A0C00000007544269746D6170000000001643
+ 6172726965642E57785F46696C65486973746F72790818436172726965642E57
+ 78437573746F6D4D656E754974656D0AE002000011000000545778437573746F
+ 6D4D656E754974656D5450463018547778437573746F6D4D656E754974656D57
+ 7261707065720011436172726965642E49735375624D656E7508104361727269
+ 65642E4556545F4D656E75060D4F6E44657461636850616E656C124361727269
+ 65642E57785F456E61626C65640911436172726965642E57785F48696464656E
+ 0811436172726965642E57785F49444E616D65060949445F4445544143481243
+ 6172726965642E57785F494456616C756503080418436172726965642E57785F
4D656E754974656D5374796C65070F77784D6E7549746D5F4E6F726D616C1243
- 6172726965642E57785F43617074696F6E06185465737430202D204E6F205363
- 756D6D20506C7567696E7312436172726965642E57785F436865636B65640816
- 436172726965642E57585F4249544D41502E446174610A0C0000000754426974
- 6D61700000000016436172726965642E57785F46696C65486973746F72790800
- 0011000000545778437573746F6D4D656E754974656D54504630185477784375
- 73746F6D4D656E754974656D577261707065720011436172726965642E497353
- 75624D656E750810436172726965642E4556545F4D656E7506074F6E54657374
- 3212436172726965642E57785F456E61626C65640911436172726965642E5778
- 5F48696464656E0811436172726965642E57785F49444E616D65060849445F54
- 4553543212436172726965642E57785F494456616C7565030004184361727269
- 65642E57785F4D656E754974656D5374796C65070F77784D6E7549746D5F4E6F
- 726D616C12436172726965642E57785F43617074696F6E061A5465737432202D
- 2057697468205363756D6D20506C7567696E7312436172726965642E57785F43
- 6865636B65640816436172726965642E57585F4249544D41502E446174610A0C
- 00000007544269746D61700000000016436172726965642E57785F46696C6548
- 6973746F7279080000000011000000545778437573746F6D4D656E754974656D
- 5450463018547778437573746F6D4D656E754974656D57726170706572001143
- 6172726965642E49735375624D656E750812436172726965642E57785F456E61
- 626C65640911436172726965642E57785F48696464656E081143617272696564
- 2E57785F49444E616D65060E49445F44455441434850414E454C124361727269
- 65642E57785F494456616C756503070418436172726965642E57785F4D656E75
- 4974656D5374796C65070F77784D6E7549746D5F4E6F726D616C124361727269
- 65642E57785F43617074696F6E060C4465746163682070616E656C1243617272
- 6965642E57785F436865636B65640816436172726965642E57585F4249544D41
- 502E446174610A0C00000007544269746D61700000000016436172726965642E
- 57785F46696C65486973746F72790818436172726965642E5778437573746F6D
- 4D656E754974656D0A5B01000011000000545778437573746F6D4D656E754974
- 656D5450463018547778437573746F6D4D656E754974656D5772617070657200
- 11436172726965642E49735375624D656E750810436172726965642E4556545F
- 4D656E75060D4F6E44657461636850616E656C12436172726965642E57785F45
- 6E61626C65640911436172726965642E57785F48696464656E08114361727269
- 65642E57785F49444E616D65060949445F44455441434812436172726965642E
- 57785F494456616C756503080418436172726965642E57785F4D656E75497465
- 6D5374796C65070F77784D6E7549746D5F4E6F726D616C12436172726965642E
- 57785F43617074696F6E060644657461636812436172726965642E57785F4368
- 65636B65640816436172726965642E57585F4249544D41502E446174610A0C00
- 000007544269746D61700000000016436172726965642E57785F46696C654869
- 73746F72790800000000}
+ 6172726965642E57785F43617074696F6E060644657461636812436172726965
+ 642E57785F436865636B65640816436172726965642E57585F4249544D41502E
+ 446174610A0C00000007544269746D61700000000016436172726965642E5778
+ 5F46696C65486973746F727908000011000000545778437573746F6D4D656E75
+ 4974656D5450463018547778437573746F6D4D656E754974656D577261707065
+ 720011436172726965642E49735375624D656E750810436172726965642E4556
+ 545F4D656E7506174F6E41747461636842696E61727950726573656E74657212
+ 436172726965642E57785F456E61626C65640911436172726965642E57785F48
+ 696464656E0811436172726965642E57785F49444E616D65061849445F415454
+ 41434842494E41525950524553454E54455212436172726965642E57785F4944
+ 56616C7565030A0418436172726965642E57785F4D656E754974656D5374796C
+ 65070F77784D6E7549746D5F4E6F726D616C12436172726965642E57785F4361
+ 7074696F6E06174174746163682042696E6172792050726573656E7465721243
+ 6172726965642E57785F436865636B65640816436172726965642E57585F4249
+ 544D41502E446174610A0C00000007544269746D617000000000164361727269
+ 65642E57785F46696C65486973746F72790800000000}
Wx_HasHistory = False
end
+ object browserTreePopupMenu: TWxPopupMenu
+ Left = 324
+ Top = 202
+ Width = 28
+ Height = 27
+ TabOrder = 2
+ Glyph.Data = {
+ 36090000424D3609000000000000360000002800000018000000180000000100
+ 2000000000000009000000000000000000000000000000000000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800000808000008080000080800000808000000000000000
+ 0000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800000808000008080000080800000000000FFFFFF00FFFF
+ FF00000000000080800000808000008080000080800000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000000000000808000008080000080800000000000FFFFFF00FFFF
+ FF00000000000080800000808000008080000080800000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 80000080800000000000000000000080800000000000FFFFFF00FFFFFF000000
+ 0000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 80000080800000000000FFFFFF000000000000000000FFFFFF00FFFFFF000000
+ 0000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 80000080800000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 80000080800000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000000
+ 0000000000000000000000808000008080000080800000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 80000080800000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00000000000080800000808000008080000080800000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 80000080800000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000
+ 0000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800080808000000000000000000000000000000000000000
+ 00000000000000000000FFFFFF00FFFFFF00FFFFFF00FFFFFF00000000000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800080808000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF0000000000FFFFFF00FFFFFF00FFFFFF0000000000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800080808000FFFFFF008000000080000000800000008000
+ 00008000000000000000FFFFFF00FFFFFF000000000000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800080808000800000008000000080000000800000008000
+ 00008000000000000000FFFFFF00000000000000000000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 800000808000008080008080800080000000FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF000000000000000000800000000000000000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800080808000800000008000000080000000800000008000
+ 0000800000008000000080000000800000000000000000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800080808000FFFFFF008000000080000000800000008000
+ 000080000000FFFFFF00FFFFFF00FFFFFF000000000000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800080808000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800080808000FFFFFF008000000080000000800000008000
+ 0000FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800080808000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800080808000FFFFFF008000000080000000800000008000
+ 000080000000FFFFFF00FFFFFF00FFFFFF000000000000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800080808000FFFFFF00FFFFFF00FFFFFF00FFFFFF00FFFF
+ FF00FFFFFF00FFFFFF00FFFFFF00FFFFFF000000000000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800080808000808080008080800080808000808080008080
+ 8000808080008080800080808000808080008080800000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800000808000008080000080800000808000008080000080
+ 8000008080000080800000808000008080000080800000808000}
+ Wx_Class = 'wxMenu'
+ Wx_MenuItems.IsSubMenu = False
+ Wx_MenuItems.Wx_Enabled = True
+ Wx_MenuItems.Wx_Hidden = False
+ Wx_MenuItems.Wx_IDValue = 0
+ Wx_MenuItems.Wx_MenuItemStyle = wxMnuItm_Normal
+ Wx_MenuItems.Wx_Checked = False
+ Wx_MenuItems.Wx_FileHistory = False
+ Wx_MenuItems.WxCustomMenuItem = {
+ 11000000545778437573746F6D4D656E754974656D5450463018547778437573
+ 746F6D4D656E754974656D577261707065720011436172726965642E49735375
+ 624D656E750810436172726965642E4556545F4D656E75060F4F6E506F707570
+ 416374697661746512436172726965642E57785F456E61626C65640911436172
+ 726965642E57785F48696464656E0811436172726965642E57785F49444E616D
+ 65061149445F504F5055505F414354495641544512436172726965642E57785F
+ 494456616C7565030B0418436172726965642E57785F4D656E754974656D5374
+ 796C65070F77784D6E7549746D5F4E6F726D616C12436172726965642E57785F
+ 43617074696F6E0608416374697661746512436172726965642E57785F436865
+ 636B65640816436172726965642E57585F4249544D41502E446174610A0C0000
+ 0007544269746D61700000000016436172726965642E57785F46696C65486973
+ 746F727908000011000000545778437573746F6D4D656E754974656D54504630
+ 18547778437573746F6D4D656E754974656D5772617070657200114361727269
+ 65642E49735375624D656E750810436172726965642E4556545F4D656E75061C
+ 4F6E506F70757041747461636842696E61727950726573656E74657212436172
+ 726965642E57785F456E61626C65640911436172726965642E57785F48696464
+ 656E0811436172726965642E57785F49444E616D65061E49445F504F5055505F
+ 41545441434842494E41525950524553454E54455212436172726965642E5778
+ 5F494456616C7565030C0418436172726965642E57785F4D656E754974656D53
+ 74796C65070F77784D6E7549746D5F4E6F726D616C12436172726965642E5778
+ 5F43617074696F6E06174174746163682042696E6172792050726573656E7465
+ 7212436172726965642E57785F436865636B65640816436172726965642E5758
+ 5F4249544D41502E446174610A0C00000007544269746D617000000000164361
+ 72726965642E57785F46696C65486973746F7279080000110000005457784375
+ 73746F6D4D656E754974656D5450463018547778437573746F6D4D656E754974
+ 656D577261707065720011436172726965642E49735375624D656E7508104361
+ 72726965642E4556545F4D656E7506164F6E506F70757044756D704F626A6563
+ 74436861696E12436172726965642E57785F456E61626C656409114361727269
+ 65642E57785F48696464656E0811436172726965642E57785F49444E616D6506
+ 1849445F504F5055505F44554D504F424A454354434841494E12436172726965
+ 642E57785F494456616C7565030D0418436172726965642E57785F4D656E7549
+ 74656D5374796C65070F77784D6E7549746D5F4E6F726D616C12436172726965
+ 642E57785F43617074696F6E061144756D70204F626A65637420436861696E12
+ 436172726965642E57785F436865636B65640816436172726965642E57585F42
+ 49544D41502E446174610A0C00000007544269746D6170000000001643617272
+ 6965642E57785F46696C65486973746F7279080000}
+ end
end
Modified: scummex/branches/gsoc2007-gameresbrowser/src/browserapp/MainFormCommands.cpp
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browserapp/MainFormCommands.cpp 2007-07-18 01:16:03 UTC (rev 28134)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browserapp/MainFormCommands.cpp 2007-07-18 11:40:15 UTC (rev 28135)
@@ -7,7 +7,7 @@
//
//---------------------------------------------------------------------------
-#include "browserapp_stdafx.h"
+#include "browserapp_stdafx.h"
#include "MainForm.h"
#include "ExplorationTree.h"
@@ -15,9 +15,13 @@
#include "ObjectRegistry.h"
#include "FileTypeRegistry.h"
+#include "ObjectChain.h"
#include "PluginUtil.h"
+#include "basic/Directories.h"
+#include "basic/DirectoryPresenter.h"
+
#include "safe_static.h"
@@ -32,8 +36,6 @@
#include <wx/filename.h>
#include <wx/imaglist.h>
-#include "ObjectChain.h"
-
#include "icons.h"
#include "debugmem.h"
@@ -52,8 +54,10 @@
FileTypeRegistry::get()->registerPlugins();
- wxCommandEvent event;
- OnTest2(event);
+ InitializeRootDirectory();
+
+ wxCommandEvent dummy_event;
+ OnTest2(dummy_event);
}
void MainForm::CleanupObjects() {
@@ -272,6 +276,133 @@
ExplorationTree::get()->detachPanel();
}
+/*
+* OnAttachBinaryPresenter
+*/
+void MainForm::OnAttachBinaryPresenter(wxCommandEvent& event)
+{
+ ExplorationTree::get()->attachBinaryPresenter();
+}
+
+
/////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////
+// Popup menu for ExplorationTree
+/*
+* OnPopupActivate
+*/
+void MainForm::OnPopupActivate(wxCommandEvent& event)
+{
+ OnActivateNode(event);
+}
+
+/*
+* OnPopupAttachBinaryPresenter
+*/
+void MainForm::OnPopupAttachBinaryPresenter(wxCommandEvent& event)
+{
+ OnAttachBinaryPresenter(event);
+}
+
+/*
+* OnPopupDumpObjectChain
+*/
+void MainForm::OnPopupDumpObjectChain(wxCommandEvent& event)
+{
+ OnDumpCurrentObjectChain(event);
+}
+
+/*
+* browserTreeItemMenu
+*/
+void MainForm::browserTreeItemMenu(wxTreeEvent& event)
+{
+ wxTreeItemId item = event.GetItem();
+ browserTree->SelectItem(item);
+ PopupMenu(browserTreePopupMenu); //let wxWidgets choose the location
+}
+
+/////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////
+
+/*
+* OnOpen
+*/
+void MainForm::OnOpen(wxCommandEvent& event)
+{
+ wxString defaultFileName = wxT("");
+ wxFileDialog *openDlg = new wxFileDialog(this, wxT("Please select input files."),
+ defaultFileName, wxT(""),
+ wxT("All Files|*|")
+ wxT("Main Resource Files|*.001;*.la1;*.la2;*.lab;*.lfl;*.lec;*.sm1|")
+ wxT("Directory Files|*.000;*.la0;*.lfl;*.sm0"),
+ wxOPEN | wxFD_MULTIPLE | wxFD_FILE_MUST_EXIST);
+
+ int res = openDlg->ShowModal();
+ if (res != wxID_OK) {
+ openDlg->Destroy();
+ return;
+ }
+
+ wxArrayString fileNames;
+ openDlg->GetPaths(fileNames);
+ openDlg->Destroy();
+
+ wxTreeItemId rootItem = ExplorationTree::get()->getRoot();
+ VirtualNode* node = ExplorationTree::get()->getNode(rootItem);
+ RootDirectory* rootDir = dynamic_cast<RootDirectory*>(node);
+ wxASSERT(rootDir);
+
+ for (int i = 0; i < fileNames.size(); ++i) {
+ wxString fileName = fileNames[i];
+ wxFileName file = wxFileName(fileName);
+
+ if (file.IsOk() && file.FileExists() && file.IsFileReadable()) {
+ rootDir->addFile(file.GetFullName(), fileName);
+ ExplorationTree::get()->realizeNode(rootItem, true);
+ } else {
+ wxMessageBox(wxString(wxT("Failed opening file: ")) + fileName,
+ wxT("Open Failed"), wxOK | wxICON_ERROR, this);
+ }
+ }
+}
+
+/*
+* OnOpenDir
+*/
+void MainForm::OnOpenDir(wxCommandEvent& event)
+{
+ wxString dirName = wxT("");
+ wxDirDialog *openDlg = new wxDirDialog(this, wxT("Please select an input directory."),
+ dirName, wxDD_DEFAULT_STYLE | wxDD_DIR_MUST_EXIST);
+
+ int res = openDlg->ShowModal();
+ if (res != wxID_OK) {
+ openDlg->Destroy();
+ return;
+ }
+
+ dirName = openDlg->GetPath();
+ openDlg->Destroy();
+
+ wxFileName dir;
+ dir.AssignDir(dirName);
+ wxString lastDir = dir.GetDirCount() > 0 ? dir.GetDirs().Last() : wxString(wxT("<no dir>"));
+
+ wxTreeItemId rootItem = ExplorationTree::get()->getRoot();
+ VirtualNode* node = ExplorationTree::get()->getNode(rootItem);
+ RootDirectory* rootDir = dynamic_cast<RootDirectory*>(node);
+ wxASSERT(rootDir);
+
+ if (dir.IsOk() && dir.DirExists() && dir.IsDirReadable()) {
+ rootDir->addSubDir(lastDir, dirName);
+ ExplorationTree::get()->realizeNode(rootItem, true);
+ } else {
+ wxMessageBox(wxString(wxT("Failed opening directory: ")) + dirName,
+ wxT("Open Failed"), wxOK | wxICON_ERROR, this);
+ }
+}
+
+/////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////
Modified: scummex/branches/gsoc2007-gameresbrowser/src/browserapp/Makefile.am
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browserapp/Makefile.am 2007-07-18 01:16:03 UTC (rev 28134)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browserapp/Makefile.am 2007-07-18 11:40:15 UTC (rev 28135)
@@ -17,7 +17,6 @@
\
$(builddir)/../browser/CoreFileTypes.o \
$(builddir)/../browser/CoreInterfaces.o \
- $(builddir)/../browser/Directories.o \
$(builddir)/../browser/ExplorationTree.o \
$(builddir)/../browser/FileTypeRecognizer.o \
$(builddir)/../browser/FileTypeRegistry.o \
@@ -34,7 +33,9 @@
\
$(builddir)/../plugins/basic/AuxInterfaces.o \
$(builddir)/../plugins/basic/BasicParsers.o \
- $(builddir)/../plugins/basic/BitmapPanel.o \
+ $(builddir)/../plugins/basic/BinaryPresenter.o \
+ $(builddir)/../plugins/basic/CHexEditCtrl.o \
+ $(builddir)/../plugins/basic/Directories.o \
$(builddir)/../plugins/basic/ImageBox.o \
$(builddir)/../plugins/basic/ImageProc.o \
$(builddir)/../plugins/basic/DirectoryPresenter.o \
@@ -78,8 +79,8 @@
MainForm.cpp \
MainForm.h \
MainFormCommands.cpp \
- Test1.cpp \
- Test2.cpp \
+ Tests.cpp \
+ DefaultPlugin.cpp \
browserapp_stdafx.cpp \
browserapp_stdafx.h \
guicon.cpp \
Deleted: scummex/branches/gsoc2007-gameresbrowser/src/browserapp/Test1.cpp
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browserapp/Test1.cpp 2007-07-18 01:16:03 UTC (rev 28134)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browserapp/Test1.cpp 2007-07-18 11:40:15 UTC (rev 28135)
@@ -1,151 +0,0 @@
-//---------------------------------------------------------------------------
-//
-// Name: MainForm.cpp
-// Author: Zbyl
-// Created: 2007-07-01 11:17:49
-// Description: MainForm class implementation
-//
-//---------------------------------------------------------------------------
-
-#include "browserapp_stdafx.h"
-
-#include "MainForm.h"
-
-#include <wx/filename.h>
-#include <wx/stdpaths.h>
-
-#include <iostream>
-#include <fstream>
-
-#include "plugin.h"
-#include "ObjectRegistry.h"
-#include "FileTypeRegistry.h"
-#include "ObjectChain.h"
-
-#include "PluginUtil.h"
-
-#include "ExplorationTree.h"
-#include "VirtualNode.h"
-
-#include "Directories.h"
-//#include "DirectoryPresenter.h"
-//#include "BasicParsers.h"
-//#include "ImagePresenter.h"
-//#include "FileInfoPresenter.h"
-#include "PanelProvider.h"
-#include "FileTypeRecognizer.h"
-//#include "TextPresenter.h"
-
-#include "debugmem.h"
-
-using namespace Browser;
-
-/////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////
-
-#define EMPTY_TOKEN
-PLUGIN_DESC_EX(Test1Plugin, wxT("MyPlugins"), 1, EMPTY_TOKEN)
- //PLUGGED_OBJECT(RootDirectory)
- //PLUGGED_OBJECT(DirectoryPresenter)
- //PLUGGED_OBJECT(BMPParser)
- //PLUGGED_OBJECT(ImagePresenter)
- //PLUGGED_OBJECT(TextPresenter)
- //PLUGGED_OBJECT(FileInfoPresenter)
- PLUGGED_OBJECT(PanelProvider)
-
- PLUGGED_OBJECT(BinaryFileTypeRecognizer)
- PLUGGED_OBJECT(BinaryFileTypeParserResolver)
- PLUGGED_OBJECT(BMPFileTypeRecognizer)
- PLUGGED_OBJECT(BMPFileTypeParserResolver)
-PLUGIN_END
-
-/////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////
-
-void MainForm::OnTest0(wxCommandEvent& event) {
-
- OnTest1Cleanup(event);
-
- infoout << wxT("Registering Test1 Plugin.") << std::endl;
- ObjectRegistry::get()->registerPlugin( &getTest1Plugin, false );
- FileTypeRegistry::get()->registerPlugins();
-
- wxTreeItemId rootItem = ExplorationTree::get()->addRoot(wxT("RootDirectory"));
-
- RCPtr<RootDirectory> rootDir( new RootDirectory(rootItem) );
-
- ObjectChain* rootChain = ExplorationTree::get()->getRootObjectChain();
- VirtualNodeItemData* itemData = new VirtualNodeItemData(rootDir.get(), rootChain);
- ExplorationTree::get()->setItemData(rootItem, itemData);
-
- rootChain->addObject(rootDir);
-
- wxString dataDir = PluginUtil::getResourcePath(wxT("data"));
- wxFileName dataFN(dataDir, wxEmptyString);
-
- wxFileName doll(dataDir, wxT("lalka.bmp"));
- wxFileName dog(dataDir, wxT("pies.bmp"));
- wxFileName foxes(dataDir, wxT("lisy.bmp"));
-
- if (doll.IsOk() && doll.FileExists() && doll.IsFileReadable())
- rootDir->addFile(wxT("Doll"), toString(doll.GetFullPath()));
-
- if (dog.IsOk() && dog.FileExists() && dog.IsFileReadable())
- rootDir->addFile(wxT("Dog"), toString(dog.GetFullPath()));
-
- if (foxes.IsOk() && foxes.FileExists() && foxes.IsFileReadable())
- rootDir->addFile(wxT("Foxes"), toString(foxes.GetFullPath()));
-}
-
-/////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////
-
-void MainForm::OnTest1(wxCommandEvent& event) {
-
- OnTest1Cleanup(event);
-
- infoout << wxT("Registering Test1 Plugin.") << std::endl;
- ObjectRegistry::get()->registerPlugin( &getTest1Plugin, false );
- FileTypeRegistry::get()->registerPlugins();
-
- wxTreeItemId rootItem = ExplorationTree::get()->addRoot(wxT("RootDirectory"));
-
- RCPtr<RootDirectory> rootDir( new RootDirectory(rootItem) );
-
- ObjectChain* rootChain = ExplorationTree::get()->getRootObjectChain();
- VirtualNodeItemData* itemData = new VirtualNodeItemData(rootDir.get(), rootChain);
- ExplorationTree::get()->setItemData(rootItem, itemData);
-
- rootChain->addObject(rootDir);
-
- wxString dataDir = PluginUtil::getResourcePath(wxT("data"));
- wxFileName dataFN(dataDir, wxEmptyString);
-
- wxFileName doll(dataDir, wxT("lalka.bmp"));
- wxFileName dog(dataDir, wxT("pies.bmp"));
- wxFileName foxes(dataDir, wxT("lisy.bmp"));
-
- if (dataFN.IsOk() && dataFN.DirExists() && dataFN.IsDirReadable())
- rootDir->addSubDir(wxT("data"), dataDir);
-
- if (doll.IsOk() && doll.FileExists() && doll.IsFileReadable())
- rootDir->addFile(wxT("Doll"), toString(doll.GetFullPath()));
-
- if (dog.IsOk() && dog.FileExists() && dog.IsFileReadable())
- rootDir->addFile(wxT("Dog"), toString(dog.GetFullPath()));
-
- if (foxes.IsOk() && foxes.FileExists() && foxes.IsFileReadable())
- rootDir->addFile(wxT("Foxes"), toString(foxes.GetFullPath()));
-}
-
-/////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////
-
-void MainForm::OnTest1Cleanup(wxCommandEvent& event) {
- infoout << wxT("Test1 Cleanup.") << std::endl;
-
- ExplorationTree::get()->cleanup();
-}
-
-/////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////
Deleted: scummex/branches/gsoc2007-gameresbrowser/src/browserapp/Test2.cpp
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browserapp/Test2.cpp 2007-07-18 01:16:03 UTC (rev 28134)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browserapp/Test2.cpp 2007-07-18 11:40:15 UTC (rev 28135)
@@ -1,212 +0,0 @@
-//---------------------------------------------------------------------------
-//
-// Name: MainForm.cpp
-// Author: Zbyl
-// Created: 2007-07-01 11:17:49
-// Description: MainForm class implementation
-//
-//---------------------------------------------------------------------------
-
-#include "browserapp_stdafx.h"
-
-#include "MainForm.h"
-
-#include <wx/filename.h>
-
-#include <iostream>
-#include <fstream>
-
-#include "plugin.h"
-#include "ObjectRegistry.h"
-#include "FileTypeRegistry.h"
-
-#include "PluginUtil.h"
-
-#include "ObjectChain.h"
-
-#include "ExplorationTree.h"
-#include "VirtualNode.h"
-
-#include "Directories.h"
-#include "FileTypeRecognizer.h"
-#include "PanelProvider.h"
-
-#include "basic/DirectoryPresenter.h"
-#include "basic/BasicParsers.h"
-#include "basic/ImagePresenter.h"
-#include "basic/FileInfoPresenter.h"
-#include "basic/TextPresenter.h"
-#include "basic/HtmlPresenter.h"
-#include "basic/IconPresenter.h"
-
-#include "scumm/ScummRecognizer.h"
-#include "scumm/ScummParser.h"
-#include "scumm/ScummBlockPresenter.h"
-#include "scumm/ScummCommonPresenters.h"
-#include "scumm/ScummSpecificPresenters.h"
-#include "scumm/ScummSpecificPresenters2.h"
-#include "scumm/BlockyBlockPresenter.h"
-
-#include "debugmem.h"
-
-using namespace Browser;
-
-/////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////
-
-#define EMPTY_TOKEN
-PLUGIN_DESC_EX(Test2Plugin, wxT("MyPlugins"), 1, EMPTY_TOKEN)
- //PLUGGED_OBJECT(RootDirectory)
- PLUGGED_OBJECT(PanelProvider)
-
- PLUGGED_OBJECT(DirectoryPresenter)
- PLUGGED_OBJECT(ImagePresenter)
- PLUGGED_OBJECT(TextPresenter)
- PLUGGED_OBJECT(HtmlPresenter)
- PLUGGED_OBJECT(FileInfoPresenter)
- //PLUGGED_OBJECT(IconPresenter)
-
- PLUGGED_OBJECT(TextParser)
- PLUGGED_OBJECT(BinaryParser)
- PLUGGED_OBJECT(BMPParser)
-
- PLUGGED_OBJECT(BinaryFileTypeRecognizer)
- PLUGGED_OBJECT(BinaryFileTypeParserResolver)
- PLUGGED_OBJECT(BMPFileTypeRecognizer)
- PLUGGED_OBJECT(BMPFileTypeParserResolver)
- PLUGGED_OBJECT(TextFileTypeRecognizer)
- PLUGGED_OBJECT(TextFileTypeParserResolver)
-
- PLUGGED_OBJECT(ScummFileTypeRecognizer)
- PLUGGED_OBJECT(ScummFileTypeParserResolver)
-
- PLUGGED_OBJECT(ScummParser)
- PLUGGED_OBJECT(ScummBlockPresenter)
- PLUGGED_OBJECT(ScummBlockInfoPresenter)
- PLUGGED_OBJECT(BlockyBlockPresenter)
-
- PLUGGED_OBJECT(ScummLOFFBlockPresenter)
- PLUGGED_OBJECT(ScummOFFSBlockPresenter)
- PLUGGED_OBJECT(ScummRMHDBlockPresenter)
- PLUGGED_OBJECT(ScummTRNSBlockPresenter)
- PLUGGED_OBJECT(ScummPALBlockPresenter)
- PLUGGED_OBJECT(ScummIMGBlockPresenter)
-
- PLUGGED_OBJECT(ScummScriptBlockPresenter)
-
- PLUGGED_OBJECT(ScummRNAMBlockPresenter)
- PLUGGED_OBJECT(ScummMAXSBlockPresenter)
- PLUGGED_OBJECT(ScummDOBJBlockPresenter)
- PLUGGED_OBJECT(ScummANAMBlockPresenter)
- PLUGGED_OBJECT(ScummDIRBlockPresenter)
-
-PLUGIN_END
-
-/////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////
-
-//HACK: manual loading of the Scumm plugin
-
-#ifdef _MSC_VER
- #define DLL_IMPORT __declspec(dllimport)
-#else
- #define DLL_IMPORT
-#endif
-
-//extern "C" {
-//DLL_IMPORT const Plugin& getPlugin();
-//}
-
-/////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////
-
-void MainForm::OnTest2(wxCommandEvent& event) {
-
- OnTest1Cleanup(event);
-
- infoout << wxT("Registering Test2 Plugin.") << std::endl;
- ObjectRegistry::get()->registerPlugin( &getTest2Plugin, false );
- //ObjectRegistry::get()->registerPlugin( &getPlugin, false );
- FileTypeRegistry::get()->registerPlugins();
-
- wxTreeItemId rootItem = ExplorationTree::get()->addRoot(wxT("RootDirectory"));
-
- RCPtr<RootDirectory> rootDir( new RootDirectory(rootItem) );
-
- ObjectChain* rootChain = ExplorationTree::get()->getRootObjectChain();
- VirtualNodeItemData* itemData = new VirtualNodeItemData(rootDir.get(), rootChain);
- ExplorationTree::get()->setItemData(rootItem, itemData);
-
- rootChain->addObject(rootDir);
-
- wxString dataDir = PluginUtil::getResourcePath(wxT("data"));
- wxFileName dataFN(dataDir, wxEmptyString);
-
- if (dataFN.IsOk() && dataFN.DirExists() && dataFN.IsDirReadable())
- rootDir->addSubDir(wxT("data"), dataDir);
- //rootDir->addFile(wxT("Sam&Max"), wxT("C:\\Zbys\\gsoc\\Browser\\vc8\\data\\SAMNMAX.SM1"));
-}
-
-/////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////
-
-/*
-* OnOpen
-*/
-void MainForm::OnOpen(wxCommandEvent& event)
-{
- //TODO: Make it better
-
- wxString filepath;
- wxFileDialog *openDlg = new wxFileDialog(this, wxT("Please select an input file."), filepath, wxT(""),
- wxT("All Files|*|")
- wxT("Main Resource Files|*.001;*.la1;*.la2;*.lab;*.lfl;*.lec;*.sm1|")
- wxT("Directory Files|*.000;*.la0;*.lfl;*.sm0"),
- wxOPEN);
-
- int res = openDlg->ShowModal();
- if (res != wxID_OK) {
- openDlg->Destroy();
- return;
- }
-
-
- OnTest1Cleanup(event);
-
-
- wxString fileName = openDlg->GetPath();
- openDlg->Destroy();
-
- wxFileName file = wxFileName(fileName);
-
- filepath = file.GetPath();
- //_gui->writeConfigValue("DataPath", filepath);
-
-
-
- infoout << wxT("Registering Test2 Plugin.") << std::endl;
- ObjectRegistry::get()->registerPlugin( &getTest2Plugin, false );
- //ObjectRegistry::get()->registerPlugin( &getPlugin, false );
- FileTypeRegistry::get()->registerPlugins();
-
- wxTreeItemId rootItem = ExplorationTree::get()->addRoot(wxT("RootDirectory"));
-
- RCPtr<RootDirectory> rootDir( new RootDirectory(rootItem) );
-
- ObjectChain* rootChain = ExplorationTree::get()->getRootObjectChain();
- VirtualNodeItemData* itemData = new VirtualNodeItemData(rootDir.get(), rootChain);
- ExplorationTree::get()->setItemData(rootItem, itemData);
-
- rootChain->addObject(rootDir);
-
-
- //wxFileName doll(wxT("data"), wxT("lalka.bmp"));
- //if (doll.IsOk() && doll.FileExists() && doll.IsFileReadable())
- // rootDir->addFile(wxT("Doll"), toString(doll.GetFullPath()));
- //rootDir->addSubDir(wxT("data"), wxT("data"));
-
- rootDir->addFile(fileName, fileName);
-}
-
-/////////////////////////////////////////////////////////////////////////////
-/////////////////////////////////////////////////////////////////////////////
Copied: scummex/branches/gsoc2007-gameresbrowser/src/browserapp/Tests.cpp (from rev 28115, scummex/branches/gsoc2007-gameresbrowser/src/browserapp/Test1.cpp)
===================================================================
--- scummex/branches/gsoc2007-gameresbrowser/src/browserapp/Tests.cpp (rev 0)
+++ scummex/branches/gsoc2007-gameresbrowser/src/browserapp/Tests.cpp 2007-07-18 11:40:15 UTC (rev 28135)
@@ -0,0 +1,227 @@
+//---------------------------------------------------------------------------
+//
+// Name: MainForm.cpp
+// Author: Zbyl
+// Created: 2007-07-01 11:17:49
+// Description: MainForm class implementation
+//
+//---------------------------------------------------------------------------
+
+#include "browserapp_stdafx.h"
+
+#include "MainForm.h"
+
+#include <wx/filename.h>
+#include <wx/stdpaths.h>
+
+#include <iostream>
+#include <fstream>
+
+#include "plugin.h"
+#include "ObjectRegistry.h"
+#include "FileTypeRegistry.h"
+#include "ObjectChain.h"
+
+#include "PluginUtil.h"
+
+#include "ExplorationTree.h"
+#include "VirtualNode.h"
+
+#include "basic/Directories.h"
+//#include "DirectoryPresenter.h"
+//#include "BasicParsers.h"
+//#include "ImagePresenter.h"
+//#include "FileInfoPresenter.h"
+#include "PanelProvider.h"
+#include "FileTypeRecognizer.h"
+//#include "TextPresenter.h"
+
+#include "debugmem.h"
+
+using namespace Browser;
+
+/////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////
+/*
+#define EMPTY_TOKEN
+PLUGIN_DESC_EX(Test1Plugin, wxT("MyPlugins"), 1, EMPTY_TOKEN)
+ //PLUGGED_OBJECT(RootDirectory)
+ //PLUGGED_OBJECT(DirectoryPresenter)
+ //PLUGGED_OBJECT(BMPParser)
+ //PLUGGED_OBJECT(ImagePresenter)
+ //PLUGGED_OBJECT(TextPresenter)
+ //PLUGGED_OBJECT(FileInfoPresenter)
+ PLUGGED_OBJECT(PanelProvider)
+
+ PLUGGED_OBJECT(BinaryFileTypeRecognizer)
+ PLUGGED_OBJECT(BinaryFileTypeParserResolver)
+ PLUGGED_OBJECT(BMPFileTypeRecognizer)
+ PLUGGED_OBJECT(BMPFileTypeParserResolver)
+PLUGIN_END
+*/
+/////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////
+
+void MainForm::OnTest0(wxCommandEvent& event) {
+
+ /*OnTest1Cleanup(event);
+
+ infoout << wxT("Registering Test1 Plugin.") << std::endl;
+ ObjectRegistry::get()->registerPlugin( &getTest1Plugin, false );
+ FileTypeRegistry::get()->registerPlugins();
+
+ wxTreeItemId rootItem = ExplorationTree::get()->addRoot(wxT("RootDirectory"));
+
+ RCPtr<RootDirectory> rootDir( new RootDirectory(rootItem) );
+
+ ObjectChain* rootChain = ExplorationTree::get()->getRootObjectChain();
+ VirtualNodeItemData* itemData = new VirtualNodeItemData(rootDir.get(), rootChain);
+ ExplorationTree::get()->setItemData(rootItem, itemData);
+
+ rootChain->addObject(rootDir);
+
+ wxString dataDir = PluginUtil::getResourcePath(wxT("data"));
+ wxFileName dataFN(dataDir, wxEmptyString);
+
+ wxFileName doll(dataDir, wxT("lalka.bmp"));
+ wxFileName dog(dataDir, wxT("pies.bmp"));
+ wxFileName foxes(dataDir, wxT("lisy.bmp"));
+
+ if (doll.IsOk() && doll.FileExists() && doll.IsFileReadable())
+ rootDir->addFile(wxT("Doll"), toString(doll.GetFullPath()));
+
+ if (dog.IsOk() && dog.FileExists() && dog.IsFileReadable())
+ rootDir->addFile(wxT("Dog"), toString(dog.GetFullPath()));
+
+ if (foxes.IsOk() && foxes.FileExists() && foxes.IsFileReadable())
+ rootDir->addFile(wxT("Foxes"), toString(foxes.GetFullPath()));*/
+}
+
+/////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////
+
+void MainForm::OnTest1(wxCommandEvent& event) {
+
+ /*OnTest1Cleanup(event);
+
+ infoout << wxT("Registering Test1 Plugin.") << std::endl;
+ ObjectRegistry::get()->registerPlugin( &getTest1Plugin, false );
+ FileTypeRegistry::get()->registerPlugins();
+
+ wxTreeItemId rootItem = ExplorationTree::get()->addRoot(wxT("RootDirectory"));
+
+ RCPtr<RootDirectory> rootDir( new RootDirectory(rootItem) );
+
+ ObjectChain* rootChain = ExplorationTree::get()->getRootObjectChain();
+ VirtualNodeItemData* itemData = new VirtualNodeItemData(rootDir.get(), rootChain);
+ ExplorationTree::get()->setItemData(rootItem, itemData);
+
+ rootChain->addObject(rootDir);
+
+ wxString dataDir = PluginUtil::getResourcePath(wxT("data"));
+ wxFileName dataFN(dataDir, wxEmptyString);
+
+ wxFileName doll(dataDir, wxT("lalka.bmp"));
+ wxFileName dog(dataDir, wxT("pies.bmp"));
+ wxFileName foxes(dataDir, wxT("lisy.bmp"));
+
+ if (dataFN.IsOk() && dataFN.DirExists() && dataFN.IsDirReadable())
+ rootDir->addSubDir(wxT("data"), dataDir);
+
+ if (doll.IsOk() && doll.FileExists() && doll.IsFileReadable())
+ rootDir->addFile(wxT("Doll"), toString(doll.GetFullPath()));
+
+ if (dog.IsOk() && dog.FileExists() && dog.IsFileReadable())
+ rootDir->addFile(wxT("Dog"), toString(dog.GetFullPath()));
+
+ if (foxes.IsOk() && foxes.FileExists() && foxes.IsFileReadable())
+ rootDir->addFile(wxT("Foxes"), toString(foxes.GetFullPath()));*/
+}
+
+/////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////
+
+void MainForm::OnTest2(wxCommandEvent& event) {
+
+ wxTreeItemId rootItem = ExplorationTree::get()->getRoot();
+ VirtualNode* node = ExplorationTree::get()->getNode(rootItem);
+ RootDirectory* rootDir = dynamic_cast<RootDirectory*>(node);
+ wxASSERT(rootDir);
+
+ wxString dataDir = PluginUtil::getResourcePath(wxT("data"));
+ wxFileName dataFN;
+ dataFN.AssignDir(dataDir);
+
+ if (dataFN.IsOk() && dataFN.DirExists() && dataFN.IsDirReadable()) {
+ rootDir->addSubDir(wxT("data"), dataDir);
+ ExplorationTree::get()->realizeNode(rootItem, true);
+ }
+}
+
+/////////////////////////////////////////////////////////////////////////////
+/////////////////////////////////////////////////////////////////////////////
+
+/*
+* OnOpen
+*/
+/*void MainForm::OnOpen(wxCommandEvent& event)
+{
+ //TODO: Make it better
+
+ wxString filepath;
@@ Diff output truncated at 100000 characters. @@
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
More information about the Scummvm-git-logs
mailing list