// =========================================================================== // CSimlabDoc.h ©1995 J. Rodden, DD/MF & Associates. All rights reserved // =========================================================================== #pragma once #include #include #include #include class CSimlabApp; class SModel; class CSimlabDoc : public CWindowedDoc, public LBroadcaster, public LListener { friend class CSimlabApp; public: CSimlabDoc(LCommander *inSuper, FSSpec *inFileSpec); ~CSimlabDoc(); virtual StringPtr GetDescriptor(Str255 outDescriptor) const; Boolean DoCommand(CommandT inCommand, void *ioParam); void ListenToMessage(MessageT inMessage, void *ioParam); Boolean GetCommandStatus(CommandT inCommand, Boolean &outEnabled, Boolean &outUsesMark, Char16 &outMark, Str255 outName); Boolean IsCurrentProjectFile(FSSpec& inFileSpec); protected: SModel* mModel; ModelState mModelStatus; LList mSubWindows; void UpdateStatus(CommandT inCommand); void SetupGraphDefWin(); void OpenVarWindow(MessageT inMessage); LWindow* OpenSubWindow( ResIDT inWindowID, ResIDT inStateResID, MessageT inWinMessage, Str255 inString, Boolean inShowIt = true); LWindow* FindSubWindow(Str255 inWinTitle); void ActivateSubWindow(Str255 inWinTitle); void CloseSubWindow(MessageT inMessage, LWindow* inWindow); void CloseAllSubWindows(); void ArrangeSubWindows(); private: void NameNewDoc(); void OpenFile(); void SetupDisplays(); };