home *** CD-ROM | disk | FTP | other *** search
- /*------------------------------------------------------------------------------
- #
- # Apple Macintosh Developer Technical Support
- #
- # MultiFinder-Aware Simple TextEdit Sample Application
- #
- # CPlusTESample
- #
- # TEDocument.h - C++ source
- #
- # Copyright ⌐ 1989 Apple Computer, Inc.
- # All rights reserved.
- #
- # Versions:
- # 1.20 10/89
- # 1.10 07/89
- # 1.00 04/89
- #
- # Components:
- # CPlusTESample.make October 1, 1989
- # TApplicationCommon.h October 1, 1989
- # TApplication.h October 1, 1989
- # TDocument.h October 1, 1989
- # TECommon.h October 1, 1989
- # TESample.h October 1, 1989
- # TEDocument.h October 1, 1989
- # TApplication.cp October 1, 1989
- # TDocument.cp October 1, 1989
- # TESample.cp October 1, 1989
- # TEDocument.cp October 1, 1989
- # TESampleGlue.a October 1, 1989
- # TApplication.r October 1, 1989
- # TESample.r October 1, 1989
- #
- # CPlusTESample is an example application that demonstrates
- # how to initialize the commonly used toolbox managers,
- # operate successfully under MultiFinder, handle desk
- # accessories and create, grow, and zoom windows. The
- # fundamental TextEdit toolbox calls and TextEdit autoscroll
- # are demonstrated. It also shows how to create and maintain
- # scrollbar controls.
- #
- # This version of TESample has been substantially reworked in
- # C++ to show how a "typical" object oriented program could
- # be written. To this end, what was once a single source code
- # file has been restructured into a set of classes which
- # demonstrate the advantages of object-oriented programming.
- #
- ------------------------------------------------------------------------------*/
-
- #ifndef __TEDOCUMENT__
- #define __TEDOCUMENT__
-
- #include <Types.h>
- #include <TextEdit.h>
- #include <Controls.h>
- #include <Events.h>
-
- #ifndef __TDOCUMENT__
- #include "TDocument.h"
- #endif __TDOCUMENT__
-
- class TEDocument : public TDocument {
- private:
- TEHandle fDocTE; // our text
- ControlHandle fDocVScroll; // vertical scrollbar
- ControlHandle fDocHScroll; // horizontal scrollbar
- ClikLoopProcPtr fDocClik; // our clik loop
-
- // methods not intended for use outside of this class
- void GetTERect(Rect* teRect);
- void AdjustTE();
- void DrawWindow();
- void AdjustViewRect();
- void ResizeWindow();
- void AdjustHV(Boolean isVert,Boolean mustRedraw);
- void AdjustScrollSizes();
- void AdjustScrollbars(Boolean needsResize);
-
- public:
- TEDocument(short resID);
- virtual ~TEDocument();
-
- // methods from TDocument we override
- virtual void DoZoom(short partCode);
- virtual void DoGrow(EventRecord* theEvent);
- virtual void DoContent(EventRecord* theEvent);
- virtual void DoKeyDown(EventRecord* theEvent);
- virtual void DoActivate(Boolean becomingActive);
- virtual void DoIdle();
- virtual void DoUpdate();
- virtual void DoCut();
- virtual void DoCopy();
- virtual void DoPaste();
- virtual void DoClear();
- virtual unsigned long CalcIdle();
- virtual Boolean HaveSelection();
-
- // new public methods
- void AdjustScrollValues(Boolean mustRedraw);
- ClikLoopProcPtr GetClikLoop();
- TEHandle GetTEHandle();
- void GetVisTERgn(RgnHandle rgn);
- };
-
- #endif __TEDOCUMENT__
-