diff --git a/aegilib/ClassDiagram1.cd b/aegilib/ClassDiagram1.cd
new file mode 100644
index 000000000..0519ecba6
--- /dev/null
+++ b/aegilib/ClassDiagram1.cd
@@ -0,0 +1 @@
+
\ No newline at end of file
diff --git a/aegilib/aegilib_2008.vcproj b/aegilib/aegilib_2008.vcproj
index 18bd01c69..0a4e6b814 100644
--- a/aegilib/aegilib_2008.vcproj
+++ b/aegilib/aegilib_2008.vcproj
@@ -115,7 +115,7 @@
EnableIntrinsicFunctions="true"
FavorSizeOrSpeed="1"
OmitFramePointers="false"
- AdditionalIncludeDirectories="include/aegilib"
+ AdditionalIncludeDirectories="include/athenasub;src"
PreprocessorDefinitions="WIN32;NDEBUG;_LIB;_WINDOWS"
RuntimeLibrary="2"
EnableEnhancedInstructionSet="0"
@@ -166,35 +166,23 @@
Name="Include"
>
-
-
-
-
-
-
@@ -206,7 +194,7 @@
>
-
-
-
-
-
-
-
-
-
@@ -261,6 +229,10 @@
RelativePath=".\include\aegilib\exception.h"
>
+
+
@@ -290,6 +262,14 @@
RelativePath=".\src\prec.h"
>
+
+
+
+
@@ -327,7 +307,7 @@
>
-
-
@@ -415,7 +391,7 @@
>
@@ -426,10 +402,6 @@
RelativePath=".\src\section.cpp"
>
-
-
@@ -463,7 +435,7 @@
>
diff --git a/aegilib/include/aegilib/controller.h b/aegilib/include/aegilib/controller.h
deleted file mode 100644
index a807ff5d4..000000000
--- a/aegilib/include/aegilib/controller.h
+++ /dev/null
@@ -1,79 +0,0 @@
-// Copyright (c) 2008, Rodrigo Braz Monteiro
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// * Redistributions of source code must retain the above copyright notice,
-// this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following disclaimer in the documentation
-// and/or other materials provided with the distribution.
-// * Neither the name of the Aegisub Group nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-// -----------------------------------------------------------------------------
-//
-// AEGISUB/ATHENASUB
-//
-// Website: http://www.aegisub.net
-// Contact: mailto:amz@aegisub.net
-//
-
-#pragma once
-#include "athenastring.h"
-#include "tr1.h"
-#include "format.h"
-#include "api.h"
-
-namespace Athenasub {
-
- // Prototypes
- class Model;
- class ActionList;
- typedef shared_ptr ActionListPtr;
-
- // Controller class
- class Controller {
- private:
- Model &model;
-
- public:
- Controller (Model &model);
- ActionListPtr CreateActionList(const String title,const String owner=L"",bool undoAble=true);
-
- void LoadFile(const String filename,const String encoding=L"");
- void SaveFile(const String filename,const String encoding=L"UTF-8");
-
- bool CanUndo(const String owner=L"") const;
- bool CanRedo(const String owner=L"") const;
- void Undo(const String owner=L"");
- void Redo(const String owner=L"");
-
- DialoguePtr CreateDialogue() const;
- StylePtr CreateStyle() const;
-
- DialogueConstPtr GetDialogue(size_t n) const;
- DialogueConstPtr GetStyle(size_t n) const;
- StyleConstPtr GetStyle(String name) const;
- EntryConstPtr GetEntry(size_t n,String section) const;
-
- const FormatPtr GetFormat() const;
- };
-
- typedef shared_ptr ControllerPtr;
-
-}
diff --git a/aegilib/include/aegilib/format.h b/aegilib/include/aegilib/format.h
deleted file mode 100644
index 9bc44d135..000000000
--- a/aegilib/include/aegilib/format.h
+++ /dev/null
@@ -1,75 +0,0 @@
-// Copyright (c) 2008, Rodrigo Braz Monteiro
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// * Redistributions of source code must retain the above copyright notice,
-// this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following disclaimer in the documentation
-// and/or other materials provided with the distribution.
-// * Neither the name of the Aegisub Group nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-// -----------------------------------------------------------------------------
-//
-// AEGISUB/ATHENASUB
-//
-// Website: http://www.aegisub.net
-// Contact: mailto:amz@aegisub.net
-//
-
-#pragma once
-#include "athenastring.h"
-#include "tr1.h"
-#include "section_entry.h"
-
-namespace Athenasub {
- // Prototypes
- class FormatHandler;
- class Model;
-
- // Format interface
- class Format {
- public:
- virtual ~Format() {}
-
- virtual String GetName() const = 0;
- virtual StringArray GetReadExtensions() const = 0;
- virtual StringArray GetWriteExtensions() const = 0;
- virtual shared_ptr GetHandler(Model &model) const = 0;
-
- virtual bool CanStoreText() const { return false; }
- virtual bool CanStoreImages() const { return false; }
- virtual bool CanUseTime() const { return false; }
- virtual bool CanUseFrames() const { return false; }
-
- virtual bool HasStyles() const { return false; }
- virtual bool HasMargins() const { return false; }
- virtual bool HasActors() const { return false; }
- virtual bool HasUserField() const { return false; }
- virtual String GetUserFieldName() const { return L""; }
-
- virtual int GetTimingPrecision() const { return 10; } // In milliseconds
- virtual int GetMaxTime() const { return 36000000-10; } // In milliseconds, default 9h 59min 59.99s
-
- virtual DialoguePtr CreateDialogue() const = 0;
- virtual StylePtr CreateStyle() const = 0;
- };
- typedef shared_ptr FormatPtr;
-
-}
diff --git a/aegilib/include/aegilib/section_entry.h b/aegilib/include/aegilib/section_entry.h
deleted file mode 100644
index ad81c4c47..000000000
--- a/aegilib/include/aegilib/section_entry.h
+++ /dev/null
@@ -1,105 +0,0 @@
-// Copyright (c) 2008, Rodrigo Braz Monteiro
-// All rights reserved.
-//
-// Redistribution and use in source and binary forms, with or without
-// modification, are permitted provided that the following conditions are met:
-//
-// * Redistributions of source code must retain the above copyright notice,
-// this list of conditions and the following disclaimer.
-// * Redistributions in binary form must reproduce the above copyright notice,
-// this list of conditions and the following disclaimer in the documentation
-// and/or other materials provided with the distribution.
-// * Neither the name of the Aegisub Group nor the names of its contributors
-// may be used to endorse or promote products derived from this software
-// without specific prior written permission.
-//
-// THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
-// AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
-// IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
-// ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
-// LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
-// CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
-// SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
-// INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
-// CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
-// ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
-// POSSIBILITY OF SUCH DAMAGE.
-//
-// -----------------------------------------------------------------------------
-//
-// AEGISUB/ATHENASUB
-//
-// Website: http://www.aegisub.net
-// Contact: mailto:amz@aegisub.net
-//
-
-#pragma once
-#include "athenastring.h"
-#include "tr1.h"
-#include "deltacoder.h"
-#include "api.h"
-
-namespace Athenasub {
-
- // Types
- enum SectionEntryType {
- SECTION_ENTRY_PLAIN,
- SECTION_ENTRY_DIALOGUE,
- SECTION_ENTRY_STYLE,
- SECTION_ENTRY_FILE,
- SECTION_ENTRY_RAW
- };
-
- // Prototypes
- class Entry;
- class PlainText;
- class Dialogue;
- class Style;
- class Attachment;
- class RawEntry;
- typedef shared_ptr EntryPtr;
- typedef shared_ptr PlainTextPtr;
- typedef shared_ptr DialoguePtr;
- typedef shared_ptr