home *** CD-ROM | disk | FTP | other *** search
Text File | 1997-07-13 | 2.1 KB | 83 lines | [TEXT/CWIE] |
- //Copyright (c) 1997 Aidan Cully
- //All rights reserved
-
- #ifndef __LAYOUT_H
- #define __LAYOUT_H
-
- #include <Types.h>
- #include <QuickDraw.h>
- #include <Events.h>
- #include "CLList.h"
- #include "CLMouseListener.h"
-
- class TDrawSlate;
- class TBaseWindow;
-
- class TLayoutBranch;
-
- class TLayoutLeaf:
- public MMouseListener
- {
- protected:
- enum rectSide {
- left=0,
- top=1,
- right=2,
- bottom=3
- };
- static CursPtr sPresCurs;
- Rect mContentRect;
- TLayoutBranch *mParent;
- virtual Rect GetLocalRect();
- virtual Rect GetRelativeRect();
- TBaseWindow *mWindow;
- virtual Boolean HandleMouseSelf( TMouseButtonEvent* );
- virtual void HandleMouseEnter();
- virtual void HandleMouseExit();
- public:
- TLayoutLeaf( TLayoutBranch* );
- virtual void AttachedToWindow( TBaseWindow*, Rect );
- virtual ~TLayoutLeaf();
- virtual Boolean Init();
- virtual Boolean Close();
- virtual Boolean TrySize( Rect );
- virtual void DrawSelf( TDrawSlate* );
- virtual void Draw( TDrawSlate* );
- virtual void HandleMouse( TMouseButtonEvent* );
- virtual Rect GetLargestSize()=0;
- Rect GetRect();
- virtual Boolean SetParent( TLayoutBranch *newParent );
- virtual Boolean MakeActive( Boolean );
- virtual void CalcMouseMove( Point, RgnHandle );
- virtual void HandleMouseMoved( TMouseEvent*, bool );
- virtual void GetClip( RgnHandle );
- };
-
- class TLayoutBranch:public TLayoutLeaf {
- protected:
- class TChildStruct {
- public:
- TLayoutLeaf *mChild;
- BOOLEAN mBinds[4];
- };
- TList<TChildStruct*> mChildren;
- TLayoutLeaf *mActiveChild;
- virtual Boolean AcceptNewSubSizeRequest( Rect newSubRect, TLayoutLeaf *sub );
- virtual void DrawSelf( TDrawSlate* );
- virtual void BuildChildren()=0;
- public:
- TLayoutBranch( TLayoutBranch* );
- virtual void AttachedToWindow( TBaseWindow*, Rect );
- virtual ~TLayoutBranch();
- virtual Boolean AddChild( TLayoutLeaf*, Rect, Boolean* );
- virtual Boolean RemoveChild( TLayoutLeaf* );
- virtual Rect GetLargestSize();
- virtual Boolean Close();
- virtual Boolean TrySize( Rect );
- virtual Boolean MakeActive( Boolean );
- virtual Boolean SetActiveChild( TLayoutLeaf* );
- virtual void CalcMouseMove( Point, RgnHandle );
- virtual void CalcClip( TLayoutLeaf*, RgnHandle );
- };
-
- #endif