home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-04-25 | 6.2 KB | 206 lines | [TEXT/MPS ] |
- //========================================================================================
- //
- // File: Frame.h
- // Release Version: $ ODF 1 $
- //
- // Copyright: (c) 1993 - 1996 by Apple Computer, Inc., all rights reserved.
- //
- //========================================================================================
-
- #ifndef FRAME_H
- #define FRAME_H
-
- // ----- TablePart Includes -----
-
- #ifndef PART_H
- #include "Part.h"
- #endif
-
- #ifndef CELL_H
- #include "Cell.h"
- #endif
-
- #ifndef CONSTANT_H
- #include "Constant.h"
- #endif
-
- // ----- ODF Includes -----
-
- #ifndef FWDRGDRP_H
- #include "FWDrgDrp.h"
- #endif
-
- #ifndef FWFRMING_H
- #include "FWFrming.h"
- #endif
-
- #ifndef FWPRESEN_H
- #include "FWPresen.h"
- #endif
-
- #ifndef FWRECSHP_H
- #include "FWRecShp.h"
- #endif
-
- //========================================================================================
- // Forward declarations
- //========================================================================================
-
- class FW_CGraphicContext;
- class CTablePart;
- class CTableSelection;
- class CTableProxy;
- class CTableContent;
- class FW_CViewContext;
-
- //========================================================================================
- // class CTableFrame
- //========================================================================================
-
- class CTableFrame : public FW_CEmbeddingFrame, public FW_MDraggableFrame, public FW_MDroppableFrame
- {
- //----------------------------------------------------------------------------------------
- // Initialization/Destruction
- //
- public:
-
- FW_DECLARE_AUTO(CTableFrame)
-
- CTableFrame(Environment* ev,
- ODFrame* odFrame,
- FW_CPresentation* presentation,
- CTablePart* tablePart,
- CTableContent* tableContent);
- virtual ~ CTableFrame();
-
- //----------------------------------------------------------------------------------------
- // Inherited API
- //
- public:
- // ----- Getters/Setters -----
- CTablePart* GetPart() const;
- CTableSelection* GetSelection(Environment* ev) const;
- ETableLoc GetDragLocation() const;
- CCell GetDragCell() const;
- CCell GetDragSourceCell() const;
-
- // ----- Focus change -----
- virtual void FocusStateChanged(Environment* ev, ODTypeToken focus, FW_Boolean newState, ODFrame* newOwner);
-
- // ----- Embedding -----
- virtual ODFacet* CreateEmbeddedFacet(Environment* ev,
- ODFacet* embeddingFacet,
- FW_MProxy* proxy,
- ODFrame* embeddedFrame,
- ODShape* proposedClipShape);
- // ----- Rendering -----
- virtual void Draw(Environment* ev,
- ODFacet* odFacet,
- ODShape* invalidShape);
-
- // ----- Menus -----
- virtual FW_Boolean DoAdjustMenus(Environment* ev, FW_CMenuBar* menuBar, FW_Boolean hasMenuFocus, FW_Boolean isRoot);
- virtual FW_Boolean DoMenu(Environment* ev, const FW_CMenuEvent& theMenuEvent);
-
- // ----- Events -----
- virtual FW_Boolean DoVirtualKey(Environment* ev, const FW_CVirtualKeyEvent& theVirtualKeyEvent);
- virtual FW_Boolean DoMouseDown(Environment* ev, const FW_CMouseEvent& theMouseEvent);
- virtual FW_Boolean DoMouseDownInEmbeddedFrameBorder(Environment* ev, const FW_CBorderMouseEvent& theBorderMouseEvent);
- virtual void DoActivateEvent(Environment* ev, const FW_CActivateEvent& theActivateEvent);
-
- // ----- Adjust Cursor -----
- virtual FW_Boolean AdjustCursor(Environment* ev, ODFacet* odFacet, const FW_CPoint& where);
-
- // ----- Views & Geometry -----
- virtual void CreateSubViews(Environment* ev);
- virtual void FrameShapeChanged(Environment* ev);
-
- // ----- Drag And Drop -----
- virtual ODDragResult CanAcceptDrop(Environment *ev, ODDragItemIterator* dragInfo);
- virtual FW_CDropTracker* NewDropTracker(Environment *ev, FW_CView* view, ODFacet* facet);
-
- virtual FW_CDragCommand* NewDragCommand(Environment *ev,
- FW_CFrame* theFrame,
- const FW_CMouseEvent& theMouseEvent);
- virtual FW_CDropCommand* NewDropCommand(Environment *ev,
- FW_CFrame* frame,
- ODDragItemIterator* dropInfo,
- ODFacet* odFacet,
- const FW_CPoint& dropPoint);
-
- virtual FW_CClipboardCommand* NewClipboardCommand(Environment* ev, ODCommandID commandID);
-
- virtual FW_CInsertCommand* NewInsertCommand(Environment* ev, const FW_PFileSpecification& fileSpec);
-
- virtual FW_Boolean Drag(Environment* ev, const FW_CMouseEvent& event);
-
- // ----- Linking -----
- virtual void FacetAdded(Environment* ev, ODFacet* facet, unsigned short facetCount);
- virtual void ShowPartInfo(Environment* ev);
- virtual FW_Boolean RevealFrame(Environment *ev,
- ODFrame* embeddedFrame,
- ODShape* revealShape);
-
- //----------------------------------------------------------------------------------------
- // New API
- //
- public:
- void DrawGrid(Environment* ev, FW_CGraphicContext& gc, FW_Boolean gray);
- void HideShowGrid(Environment* ev);
-
- FW_Boolean IsGridShown(Environment* ev) const
- {return fGridShown;}
-
- void GetRect(Environment* ev, FW_CRect& rect) const;
-
- void DrawCellHilite(Environment* ev,
- FW_CViewContext& fc,
- const CCell& cell);
- void ChangeHiliteState(Environment* ev,
- FW_Boolean state);
-
- void ChangeEmbeddedFacetSelectState(Environment* ev, FW_Boolean state);
-
- void MoveProxy(Environment* ev, CTableProxy* proxy, const CCell& destCell);
-
- // ----- Hit testing -----
- ETableLoc HitTest(Environment* ev,
- const FW_CPoint& where,
- CCell& cell) const;
-
- // ----- Mouse down response -----
- FW_Boolean Resize(Environment* ev,
- const FW_CMouseEvent& theMouseEvent,
- const CCell& cell,
- ETableLoc tl);
-
- void SelectCell(Environment* ev, const CCell& cell);
-
- //----------------------------------------------------------------------------------------
- // Data Members
- //
- protected:
- // ----- Part back-pointer -----
- CTablePart* fTablePart;
- CTableContent* fTableContent;
-
- // ----- Drag & drop state variables -----
- CCell fDraggedCell;
-
- FW_Boolean fGridShown;
-
- FW_CRectShape fSelectFrame;
- FW_Boolean fHiliteState;
- };
-
-
- //----------------------------------------------------------------------------------------
- // CTableFrame::GetPart
- //----------------------------------------------------------------------------------------
- inline CTablePart* CTableFrame::GetPart() const
- {
- return fTablePart;
- }
-
- #endif
-