//===========================================================================// // File: notation.hpp // // Title: Declaration of NotationFile classes. // // Project: Munga // // Author: Ken Olsen // // Purpose: Provide general purpose access to data stored in a formatted // // text file. // //---------------------------------------------------------------------------// // Date Who Modification // // -------- --- ---------------------------------------------------------- // // 01/06/95 KEO Converted from Tool Architecture I. // // 02/07/95 KEO Add AppendEntry methods. // // 02/17/95 KEO Change page and entry lists to make nomenclature. // // 03/24/95 KEO Add methods to read and write text in memory. // // 03/31/95 KEO Add methods for lab only mark. // // 05/23/95 KEO Add getfilename, setpage and appendpage. // // 11/11/95 KEO Add operation modes and correct small bugs. // // 04/01/97 GAH Added "DeleteAllPages" method. // //---------------------------------------------------------------------------// // Copyright (c) 1994-1995 Virtual World Entertainment, Inc. // // Copyright (c) 1996-1997 Fasa Interactive Technologies, Inc. // // All rights reserved worldwide. // // This unpublished source code is PROPRIETARY and CONFIDENTIAL. // //===========================================================================// #pragma once #include "Stuff.hpp" #include "Page.hpp" namespace Stuff { //########################################################################## //############## Note ############################## //########################################################################## class Note: public Plug { friend class NotationFile; friend class Page; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Constructors // protected: Note(Page *page): Plug(DefaultData) {m_page = page;} Page *m_page; //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Note functions // public: void SetName(const char *entryname) {Check_Object(this); Check_Pointer(entryname); m_name = entryname; SetDirty();} const char* GetName() const { Check_Object(this); return m_name; } Page *GetPage() { Check_Object(this); return m_page; } protected: MString m_name, m_text; void SetDirty() {Check_Object(this); Check_Object(m_page); m_page->SetDirty();} void WriteNotation(MemoryStream *stream); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // string access // public: void GetEntry(const char **contents) { Check_Object(this); Check_Pointer(contents); *contents = m_text; } void SetEntry(const char *contents) {Check_Object(this); m_text = contents; SetDirty(); } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // int access // public: void GetEntry(int *value); void SetEntry(int value); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // scalar access // public: void GetEntry(Scalar *value); void SetEntry(Scalar value); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // DWORD access // public: void GetEntry(DWORD *value); void SetEntry(DWORD value); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // bool access // public: void GetEntry(bool *value); void SetEntry(bool value); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Vector3D access // public: void GetEntry(Vector3D *value); void SetEntry(const Vector3D &value); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // YawPitchRoll access // public: void GetEntry(YawPitchRoll *value); void SetEntry(const YawPitchRoll &value); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // UnitQuaternion access // public: void GetEntry(UnitQuaternion *value); void SetEntry(const UnitQuaternion &value); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // Motion3D access // public: void GetEntry(Motion3D *value); void SetEntry(const Motion3D &value); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // RGBColor access // public: void GetEntry(RGBColor *value); void SetEntry(const RGBColor &value); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // RGBAColor access // public: void GetEntry(RGBAColor *value); void SetEntry(const RGBAColor &value); //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ // NotationFile access // public: void GetEntry(NotationFile *value); void SetEntry(NotationFile *value); public: void TestInstance() const; }; }