diff --git a/aegilib/aegilib_2008.vcproj b/aegilib/aegilib_2008.vcproj
index 792da64b0..a634080c8 100644
--- a/aegilib/aegilib_2008.vcproj
+++ b/aegilib/aegilib_2008.vcproj
@@ -20,7 +20,7 @@
Name="Debug|Win32"
OutputDirectory="$(SolutionDir)$(ConfigurationName)"
IntermediateDirectory="$(ConfigurationName)"
- ConfigurationType="4"
+ ConfigurationType="2"
CharacterSet="1"
>
+
@@ -81,6 +85,9 @@
+
diff --git a/aegilib/include/athenasub/athenawin.h b/aegilib/include/athenasub/athenawin.h
index e0584d2d4..35241d21c 100644
--- a/aegilib/include/athenasub/athenawin.h
+++ b/aegilib/include/athenasub/athenawin.h
@@ -48,4 +48,8 @@ namespace Athenasub {
return LibAthenaSub(CreateLib(hostName));
//return LibAthenaSub(CreateLibAthenasub(hostName));
}
+
+ inline LibAthenaSub Create(const char* hostName) {
+ return LibAthenaSub(CreateLibAthenasub(hostName));
+ }
}
diff --git a/aegilib/include/athenasub/interfaces.h b/aegilib/include/athenasub/interfaces.h
index 259d47eca..02b71799f 100644
--- a/aegilib/include/athenasub/interfaces.h
+++ b/aegilib/include/athenasub/interfaces.h
@@ -106,7 +106,7 @@ namespace Athenasub {
friend class IAction;
protected:
- virtual void ProcessActionList(ActionList actionList,int type=0) = 0;
+ virtual void ProcessActionList(CActionList &actionList,int type=0) = 0;
virtual String GetUndoMessage(const String owner=L"") const = 0;
virtual String GetRedoMessage(const String owner=L"") const = 0;
@@ -255,12 +255,12 @@ namespace Athenasub {
virtual Entry Clone() const = 0;
/*
- static PlainTextPtr GetAsPlain(EntryPtr ptr);
- static DialoguePtr GetAsDialogue(EntryPtr ptr);
- static DialogueConstPtr GetAsDialogue(EntryConstPtr ptr);
- static StylePtr GetAsStyle(EntryPtr ptr);
- static AttachmentPtr GetAsFile(EntryPtr ptr);
- static RawEntryPtr GetAsRaw(EntryPtr ptr);
+ static PlainText GetAsPlain(Entry ptr);
+ static Dialogue GetAsDialogue(Entry ptr);
+ static DialogueConst GetAsDialogue(EntryConst ptr);
+ static Style GetAsStyle(Entry ptr);
+ static Attachment GetAsFile(Entry ptr);
+ static RawEntry GetAsRaw(Entry ptr);
*/
};
@@ -273,7 +273,6 @@ namespace Athenasub {
// Type
SectionEntryType GetType() const { return SECTION_ENTRY_DIALOGUE; }
- Dialogue GetAsDialogue() { return Dialogue(this); }
// Capabilities
virtual bool HasText() const { return false; }
@@ -319,7 +318,6 @@ namespace Athenasub {
// Type
SectionEntryType GetType() const { return SECTION_ENTRY_STYLE; }
- Style GetAsStyle() { return Style(this); }
// Read accessors
virtual String GetName() const = 0;
diff --git a/aegilib/src/actionlist.cpp b/aegilib/src/actionlist.cpp
index e42e1f0f8..b8b187032 100644
--- a/aegilib/src/actionlist.cpp
+++ b/aegilib/src/actionlist.cpp
@@ -96,7 +96,7 @@ void CActionList::Start(const String name)
void CActionList::Finish()
{
if (valid) {
- model->ProcessActionList(ActionList(this));
+ model->ProcessActionList(*this);
actions.clear();
valid = false;
}
diff --git a/aegilib/src/model.cpp b/aegilib/src/model.cpp
index a954c92a2..7a39383cd 100644
--- a/aegilib/src/model.cpp
+++ b/aegilib/src/model.cpp
@@ -60,10 +60,11 @@ void CModel::DispatchNotifications(Notification notification) const
////////////////////////////
// Processes an action list
-void CModel::ProcessActionList(ActionList _actionList,int type)
+void CModel::ProcessActionList(CActionList &_actionList,int type)
{
// Copy the list
- shared_ptr actions = shared_ptr(new CActionList(*static_pointer_cast(_actionList)));
+ //shared_ptr actions = shared_ptr(new CActionList(*static_pointer_cast(_actionList)));
+ shared_ptr actions = shared_ptr(new CActionList(_actionList));
// Setup undo
shared_ptr undo = shared_ptr(new CActionList(actions->model,actions->actionName,actions->owner,actions->undoAble));
@@ -224,7 +225,8 @@ void CModel::ActivateStack(ActionStack stack,bool isUndo,const String &owner)
(void) owner;
// Process list
- ProcessActionList(stack.back(),isUndo?1:2);
+ //ProcessActionList(stack.back(),isUndo?1:2);
+ ProcessActionList(*static_pointer_cast(stack.back()),isUndo?1:2);
// Pop original
stack.pop_back();
diff --git a/aegilib/src/model.h b/aegilib/src/model.h
index 4b464247b..51bd7b381 100644
--- a/aegilib/src/model.h
+++ b/aegilib/src/model.h
@@ -62,7 +62,7 @@ namespace Athenasub {
bool readOnly;
Format format;
- void ProcessActionList(ActionList actionList,int type=0);
+ void ProcessActionList(CActionList &actionList,int type=0);
String GetUndoMessage(const String owner=L"") const;
String GetRedoMessage(const String owner=L"") const;
diff --git a/aegilib/test/src/main.cpp b/aegilib/test/src/main.cpp
index 188203e61..c8beb940d 100644
--- a/aegilib/test/src/main.cpp
+++ b/aegilib/test/src/main.cpp
@@ -50,15 +50,23 @@ int main()
try {
// Set up the lib
- cout << "Loading library... ";
- HMODULE module = LoadLibrary(_T("athenasub.dll"));
- if (!module) {
- cout << "Failed to load library, aborting.\n";
- system("pause");
- return 1;
+ if (false) {
+ cout << "Loading library... ";
+ #ifdef WXDEBUG
+ HMODULE module = LoadLibrary(_T("athenasub_d.dll"));
+ #else
+ HMODULE module = LoadLibrary(_T("athenasub.dll"));
+ #endif
+ if (!module) {
+ cout << "Failed to load library, aborting.\n";
+ system("pause");
+ return 1;
+ }
+ cout << "Done.\nCreating library...";
}
- cout << "Done.\nCreating library...";
- LibAthenaSub lib = Athenasub::Create(module,"Aegilib test program");
+
+ //LibAthenaSub lib = Athenasub::Create(module,"Aegilib test program");
+ LibAthenaSub lib = Athenasub::Create("Aegilib test program");
cout << "Done.\n";
// Subtitles model
@@ -133,6 +141,8 @@ int main()
control->SaveFile(L"subs_out2.ass",L"UTF-8");
control->Undo();
control->SaveFile(L"subs_out3.ass",L"UTF-8");
+
+ system("pause");
}
catch (std::exception &e) {