1*38d50f7bSAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 3*38d50f7bSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 4*38d50f7bSAndrew Rist * or more contributor license agreements. See the NOTICE file 5*38d50f7bSAndrew Rist * distributed with this work for additional information 6*38d50f7bSAndrew Rist * regarding copyright ownership. The ASF licenses this file 7*38d50f7bSAndrew Rist * to you under the Apache License, Version 2.0 (the 8*38d50f7bSAndrew Rist * "License"); you may not use this file except in compliance 9*38d50f7bSAndrew Rist * with the License. You may obtain a copy of the License at 10*38d50f7bSAndrew Rist * 11*38d50f7bSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 12*38d50f7bSAndrew Rist * 13*38d50f7bSAndrew Rist * Unless required by applicable law or agreed to in writing, 14*38d50f7bSAndrew Rist * software distributed under the License is distributed on an 15*38d50f7bSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16*38d50f7bSAndrew Rist * KIND, either express or implied. See the License for the 17*38d50f7bSAndrew Rist * specific language governing permissions and limitations 18*38d50f7bSAndrew Rist * under the License. 19*38d50f7bSAndrew Rist * 20*38d50f7bSAndrew Rist *************************************************************/ 21*38d50f7bSAndrew Rist 22*38d50f7bSAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir #ifndef SC_GRIDWIN_HXX 25cdf0e10cSrcweir #define SC_GRIDWIN_HXX 26cdf0e10cSrcweir 27cdf0e10cSrcweir #include <tools/string.hxx> 28cdf0e10cSrcweir #include <svtools/transfer.hxx> 29cdf0e10cSrcweir #include "viewutil.hxx" 30cdf0e10cSrcweir #include "viewdata.hxx" 31cdf0e10cSrcweir #include "cbutton.hxx" 32cdf0e10cSrcweir #include <svx/sdr/overlay/overlayobject.hxx> 33cdf0e10cSrcweir #include <com/sun/star/sheet/DataPilotFieldOrientation.hpp> 34cdf0e10cSrcweir #include <basegfx/matrix/b2dhommatrix.hxx> 35cdf0e10cSrcweir 36cdf0e10cSrcweir #include <vector> 37cdf0e10cSrcweir #include <memory> 38cdf0e10cSrcweir #include <boost/shared_ptr.hpp> 39cdf0e10cSrcweir 40cdf0e10cSrcweir // --------------------------------------------------------------------------- 41cdf0e10cSrcweir 42cdf0e10cSrcweir struct ScTableInfo; 43cdf0e10cSrcweir class ScViewSelectionEngine; 44cdf0e10cSrcweir class ScDPObject; 45cdf0e10cSrcweir class ScDPFieldPopupWindow; 46cdf0e10cSrcweir class ScDPFieldButton; 47cdf0e10cSrcweir class ScOutputData; 48cdf0e10cSrcweir class ScFilterListBox; 49cdf0e10cSrcweir class AutoFilterPopup; 50cdf0e10cSrcweir class SdrObject; 51cdf0e10cSrcweir class SdrEditView; 52cdf0e10cSrcweir class ScNoteMarker; 53cdf0e10cSrcweir class FloatingWindow; 54cdf0e10cSrcweir class SdrHdlList; 55cdf0e10cSrcweir class ScTransferObj; 56cdf0e10cSrcweir struct SpellCallbackInfo; 57cdf0e10cSrcweir 58cdf0e10cSrcweir // Maus-Status (nMouseStatus) 59cdf0e10cSrcweir 60cdf0e10cSrcweir #define SC_GM_NONE 0 61cdf0e10cSrcweir #define SC_GM_TABDOWN 1 62cdf0e10cSrcweir #define SC_GM_DBLDOWN 2 63cdf0e10cSrcweir #define SC_GM_FILTER 3 64cdf0e10cSrcweir #define SC_GM_IGNORE 4 65cdf0e10cSrcweir #define SC_GM_WATERUNDO 5 66cdf0e10cSrcweir #define SC_GM_URLDOWN 6 67cdf0e10cSrcweir 68cdf0e10cSrcweir // Page-Drag-Modus 69cdf0e10cSrcweir 70cdf0e10cSrcweir #define SC_PD_NONE 0 71cdf0e10cSrcweir #define SC_PD_RANGE_L 1 72cdf0e10cSrcweir #define SC_PD_RANGE_R 2 73cdf0e10cSrcweir #define SC_PD_RANGE_T 4 74cdf0e10cSrcweir #define SC_PD_RANGE_B 8 75cdf0e10cSrcweir #define SC_PD_RANGE_TL (SC_PD_RANGE_T|SC_PD_RANGE_L) 76cdf0e10cSrcweir #define SC_PD_RANGE_TR (SC_PD_RANGE_T|SC_PD_RANGE_R) 77cdf0e10cSrcweir #define SC_PD_RANGE_BL (SC_PD_RANGE_B|SC_PD_RANGE_L) 78cdf0e10cSrcweir #define SC_PD_RANGE_BR (SC_PD_RANGE_B|SC_PD_RANGE_R) 79cdf0e10cSrcweir #define SC_PD_BREAK_H 16 80cdf0e10cSrcweir #define SC_PD_BREAK_V 32 81cdf0e10cSrcweir 82cdf0e10cSrcweir 83cdf0e10cSrcweir class ScHideTextCursor 84cdf0e10cSrcweir { 85cdf0e10cSrcweir private: 86cdf0e10cSrcweir ScViewData* pViewData; 87cdf0e10cSrcweir ScSplitPos eWhich; 88cdf0e10cSrcweir 89cdf0e10cSrcweir public: 90cdf0e10cSrcweir ScHideTextCursor( ScViewData* pData, ScSplitPos eW ); 91cdf0e10cSrcweir ~ScHideTextCursor(); 92cdf0e10cSrcweir }; 93cdf0e10cSrcweir 94cdf0e10cSrcweir // --------------------------------------------------------------------------- 95cdf0e10cSrcweir // predefines 96cdf0e10cSrcweir namespace sdr { namespace overlay { class OverlayObjectList; }} 97cdf0e10cSrcweir 98cdf0e10cSrcweir class ScGridWindow : public Window, public DropTargetHelper, public DragSourceHelper 99cdf0e10cSrcweir { 100cdf0e10cSrcweir // ScFilterListBox wird immer fuer Auswahlliste benutzt 101cdf0e10cSrcweir friend class ScFilterListBox; 102cdf0e10cSrcweir 103cdf0e10cSrcweir private: 104cdf0e10cSrcweir // #114409# 105cdf0e10cSrcweir ::sdr::overlay::OverlayObjectList* mpOOCursors; 106cdf0e10cSrcweir ::sdr::overlay::OverlayObjectList* mpOOSelection; 107cdf0e10cSrcweir ::sdr::overlay::OverlayObjectList* mpOOAutoFill; 108cdf0e10cSrcweir ::sdr::overlay::OverlayObjectList* mpOODragRect; 109cdf0e10cSrcweir ::sdr::overlay::OverlayObjectList* mpOOHeader; 110cdf0e10cSrcweir ::sdr::overlay::OverlayObjectList* mpOOShrink; 111cdf0e10cSrcweir 112cdf0e10cSrcweir ::boost::shared_ptr<Rectangle> mpAutoFillRect; 113cdf0e10cSrcweir 114cdf0e10cSrcweir /** 115cdf0e10cSrcweir * Stores current visible column and row ranges, used to avoid expensive 116cdf0e10cSrcweir * operations on objects that are outside visible area. 117cdf0e10cSrcweir */ 118cdf0e10cSrcweir struct VisibleRange 119cdf0e10cSrcweir { 120cdf0e10cSrcweir SCCOL mnCol1; 121cdf0e10cSrcweir SCCOL mnCol2; 122cdf0e10cSrcweir SCROW mnRow1; 123cdf0e10cSrcweir SCROW mnRow2; 124cdf0e10cSrcweir 125cdf0e10cSrcweir VisibleRange(); 126cdf0e10cSrcweir 127cdf0e10cSrcweir bool isInside(SCCOL nCol, SCROW nRow) const; 128cdf0e10cSrcweir }; 129cdf0e10cSrcweir VisibleRange maVisibleRange; 130cdf0e10cSrcweir 131cdf0e10cSrcweir private: 132cdf0e10cSrcweir ScViewData* pViewData; 133cdf0e10cSrcweir ScSplitPos eWhich; 134cdf0e10cSrcweir ScHSplitPos eHWhich; 135cdf0e10cSrcweir ScVSplitPos eVWhich; 136cdf0e10cSrcweir 137cdf0e10cSrcweir ScNoteMarker* pNoteMarker; 138cdf0e10cSrcweir 139cdf0e10cSrcweir ScFilterListBox* pFilterBox; 140cdf0e10cSrcweir FloatingWindow* pFilterFloat; 141cdf0e10cSrcweir ::std::auto_ptr<ScDPFieldPopupWindow> mpDPFieldPopup; 142cdf0e10cSrcweir ::std::auto_ptr<ScDPFieldButton> mpFilterButton; 143cdf0e10cSrcweir 144cdf0e10cSrcweir sal_uInt16 nCursorHideCount; 145cdf0e10cSrcweir 146cdf0e10cSrcweir sal_Bool bMarking; 147cdf0e10cSrcweir 148cdf0e10cSrcweir sal_uInt16 nButtonDown; 149cdf0e10cSrcweir sal_Bool bEEMouse; // Edit-Engine hat Maus 150cdf0e10cSrcweir sal_uInt8 nMouseStatus; 151cdf0e10cSrcweir sal_uInt8 nNestedButtonState; // track nested button up/down calls 152cdf0e10cSrcweir 153cdf0e10cSrcweir sal_Bool bDPMouse; // DataPilot-D&D (neue Pivottabellen) 154cdf0e10cSrcweir long nDPField; 155cdf0e10cSrcweir ScDPObject* pDragDPObj; //! name? 156cdf0e10cSrcweir 157cdf0e10cSrcweir sal_Bool bRFMouse; // RangeFinder-Drag 158cdf0e10cSrcweir sal_Bool bRFSize; 159cdf0e10cSrcweir sal_uInt16 nRFIndex; 160cdf0e10cSrcweir SCsCOL nRFAddX; 161cdf0e10cSrcweir SCsROW nRFAddY; 162cdf0e10cSrcweir 163cdf0e10cSrcweir sal_uInt16 nPagebreakMouse; // Pagebreak-Modus Drag 164cdf0e10cSrcweir SCCOLROW nPagebreakBreak; 165cdf0e10cSrcweir SCCOLROW nPagebreakPrev; 166cdf0e10cSrcweir ScRange aPagebreakSource; 167cdf0e10cSrcweir ScRange aPagebreakDrag; 168cdf0e10cSrcweir sal_Bool bPagebreakDrawn; 169cdf0e10cSrcweir 170cdf0e10cSrcweir sal_uInt8 nPageScript; 171cdf0e10cSrcweir 172cdf0e10cSrcweir long nLastClickX; 173cdf0e10cSrcweir long nLastClickY; 174cdf0e10cSrcweir 175cdf0e10cSrcweir sal_Bool bDragRect; 176cdf0e10cSrcweir SCCOL nDragStartX; 177cdf0e10cSrcweir SCROW nDragStartY; 178cdf0e10cSrcweir SCCOL nDragEndX; 179cdf0e10cSrcweir SCROW nDragEndY; 180cdf0e10cSrcweir InsCellCmd meDragInsertMode; 181cdf0e10cSrcweir 182cdf0e10cSrcweir sal_uInt16 nCurrentPointer; 183cdf0e10cSrcweir 184cdf0e10cSrcweir sal_Bool bIsInScroll; 185cdf0e10cSrcweir sal_Bool bIsInPaint; 186cdf0e10cSrcweir 187cdf0e10cSrcweir ScDDComboBoxButton aComboButton; 188cdf0e10cSrcweir 189cdf0e10cSrcweir Point aCurMousePos; 190cdf0e10cSrcweir 191cdf0e10cSrcweir sal_uInt16 nPaintCount; 192cdf0e10cSrcweir Rectangle aRepaintPixel; 193cdf0e10cSrcweir sal_Bool bNeedsRepaint; 194cdf0e10cSrcweir 195cdf0e10cSrcweir sal_Bool bAutoMarkVisible; 196cdf0e10cSrcweir ScAddress aAutoMarkPos; 197cdf0e10cSrcweir 198cdf0e10cSrcweir sal_Bool bListValButton; 199cdf0e10cSrcweir ScAddress aListValPos; 200cdf0e10cSrcweir 201cdf0e10cSrcweir Rectangle aInvertRect; 202cdf0e10cSrcweir 203cdf0e10cSrcweir DECL_LINK( PopupModeEndHdl, FloatingWindow* ); 204cdf0e10cSrcweir DECL_LINK( PopupSpellingHdl, SpellCallbackInfo* ); 205cdf0e10cSrcweir 206cdf0e10cSrcweir sal_Bool TestMouse( const MouseEvent& rMEvt, sal_Bool bAction ); 207cdf0e10cSrcweir 208cdf0e10cSrcweir sal_Bool DoPageFieldSelection( SCCOL nCol, SCROW nRow ); 209cdf0e10cSrcweir bool DoAutoFilterButton( SCCOL nCol, SCROW nRow, const MouseEvent& rMEvt ); 210cdf0e10cSrcweir void DoPushButton( SCCOL nCol, SCROW nRow, const MouseEvent& rMEvt ); 211cdf0e10cSrcweir 212cdf0e10cSrcweir void DPMouseMove( const MouseEvent& rMEvt ); 213cdf0e10cSrcweir void DPMouseButtonUp( const MouseEvent& rMEvt ); 214cdf0e10cSrcweir void DPTestMouse( const MouseEvent& rMEvt, sal_Bool bMove ); 215cdf0e10cSrcweir 216cdf0e10cSrcweir /** 217cdf0e10cSrcweir * Check if the mouse click is on a field popup button. 218cdf0e10cSrcweir * 219cdf0e10cSrcweir * @return bool true if the field popup menu has been launched and no 220cdf0e10cSrcweir * further mouse event handling is necessary, false otherwise. 221cdf0e10cSrcweir */ 222cdf0e10cSrcweir bool DPTestFieldPopupArrow(const MouseEvent& rMEvt, const ScAddress& rPos, ScDPObject* pDPObj); 223cdf0e10cSrcweir void DPLaunchFieldPopupMenu( 224cdf0e10cSrcweir const Point& rScrPos, const Size& rScrSize, const ScAddress& rPos, ScDPObject* pDPObj); 225cdf0e10cSrcweir 226cdf0e10cSrcweir void RFMouseMove( const MouseEvent& rMEvt, sal_Bool bUp ); 227cdf0e10cSrcweir 228cdf0e10cSrcweir void PagebreakMove( const MouseEvent& rMEvt, sal_Bool bUp ); 229cdf0e10cSrcweir 230cdf0e10cSrcweir void UpdateDragRect( sal_Bool bShowRange, const Rectangle& rPosRect ); 231cdf0e10cSrcweir 232cdf0e10cSrcweir sal_Bool IsAutoFilterActive( SCCOL nCol, SCROW nRow, SCTAB nTab ); 233cdf0e10cSrcweir void ExecFilter( sal_uLong nSel, SCCOL nCol, SCROW nRow, 234cdf0e10cSrcweir const String& aValue, bool bCheckForDates ); 235cdf0e10cSrcweir void FilterSelect( sal_uLong nSel ); 236cdf0e10cSrcweir 237cdf0e10cSrcweir void ExecDataSelect( SCCOL nCol, SCROW nRow, const String& rStr ); 238cdf0e10cSrcweir 239cdf0e10cSrcweir void ExecPageFieldSelect( SCCOL nCol, SCROW nRow, sal_Bool bHasSelection, const String& rStr ); 240cdf0e10cSrcweir 241cdf0e10cSrcweir sal_Bool HasScenarioButton( const Point& rPosPixel, ScRange& rScenRange ); 242cdf0e10cSrcweir 243cdf0e10cSrcweir sal_Bool DropScroll( const Point& rMousePos ); 244cdf0e10cSrcweir 245cdf0e10cSrcweir sal_Int8 AcceptPrivateDrop( const AcceptDropEvent& rEvt ); 246cdf0e10cSrcweir sal_Int8 ExecutePrivateDrop( const ExecuteDropEvent& rEvt ); 247cdf0e10cSrcweir sal_Int8 DropTransferObj( ScTransferObj* pTransObj, SCCOL nDestPosX, SCROW nDestPosY, 248cdf0e10cSrcweir const Point& rLogicPos, sal_Int8 nDndAction ); 249cdf0e10cSrcweir 250cdf0e10cSrcweir void HandleMouseButtonDown( const MouseEvent& rMEvt ); 251cdf0e10cSrcweir 252cdf0e10cSrcweir sal_Bool DrawMouseButtonDown(const MouseEvent& rMEvt); 253cdf0e10cSrcweir sal_Bool DrawMouseButtonUp(const MouseEvent& rMEvt); 254cdf0e10cSrcweir sal_Bool DrawMouseMove(const MouseEvent& rMEvt); 255cdf0e10cSrcweir sal_Bool DrawKeyInput(const KeyEvent& rKEvt); 256cdf0e10cSrcweir sal_Bool DrawCommand(const CommandEvent& rCEvt); 257cdf0e10cSrcweir sal_Bool DrawHasMarkedObj(); 258cdf0e10cSrcweir void DrawEndAction(); 259cdf0e10cSrcweir void DrawMarkDropObj( SdrObject* pObj ); 260cdf0e10cSrcweir SdrObject* GetEditObject(); 261cdf0e10cSrcweir sal_Bool IsMyModel(SdrEditView* pSdrView); 262cdf0e10cSrcweir //void DrawStartTimer(); 263cdf0e10cSrcweir 264cdf0e10cSrcweir void DrawRedraw( ScOutputData& rOutputData, ScUpdateMode eMode, sal_uLong nLayer ); 265cdf0e10cSrcweir void DrawSdrGrid( const Rectangle& rDrawingRect, OutputDevice* pContentDev ); 266cdf0e10cSrcweir //sal_Bool DrawBeforeScroll(); 267cdf0e10cSrcweir void DrawAfterScroll(/*sal_Bool bVal*/); 268cdf0e10cSrcweir //void DrawMarks(); 269cdf0e10cSrcweir //sal_Bool NeedDrawMarks(); 270cdf0e10cSrcweir void DrawComboButton( const Point& rCellPos, 271cdf0e10cSrcweir long nCellSizeX, 272cdf0e10cSrcweir long nCellSizeY, 273cdf0e10cSrcweir sal_Bool bArrowState, 274cdf0e10cSrcweir sal_Bool bBtnIn = sal_False ); 275cdf0e10cSrcweir Rectangle GetListValButtonRect( const ScAddress& rButtonPos ); 276cdf0e10cSrcweir 277cdf0e10cSrcweir void DrawPagePreview( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2, OutputDevice* pContentDev ); 278cdf0e10cSrcweir 279cdf0e10cSrcweir sal_Bool GetEditUrl( const Point& rPos, 280cdf0e10cSrcweir String* pName=0, String* pUrl=0, String* pTarget=0 ); 281cdf0e10cSrcweir sal_Bool GetEditUrlOrError( sal_Bool bSpellErr, const Point& rPos, 282cdf0e10cSrcweir String* pName=0, String* pUrl=0, String* pTarget=0 ); 283cdf0e10cSrcweir 284cdf0e10cSrcweir sal_Bool HitRangeFinder( const Point& rMouse, sal_Bool& rCorner, sal_uInt16* pIndex = NULL, 285cdf0e10cSrcweir SCsCOL* pAddX = NULL, SCsROW* pAddY = NULL ); 286cdf0e10cSrcweir 287cdf0e10cSrcweir sal_uInt16 HitPageBreak( const Point& rMouse, ScRange* pSource = NULL, 288cdf0e10cSrcweir SCCOLROW* pBreak = NULL, SCCOLROW* pPrev = NULL ); 289cdf0e10cSrcweir 290cdf0e10cSrcweir void PasteSelection( const Point& rPosPixel ); 291cdf0e10cSrcweir 292cdf0e10cSrcweir void SelectForContextMenu( const Point& rPosPixel, SCsCOL nCellX, SCsROW nCellY ); 293cdf0e10cSrcweir 294cdf0e10cSrcweir void GetSelectionRects( ::std::vector< Rectangle >& rPixelRects ); 295cdf0e10cSrcweir 296cdf0e10cSrcweir protected: 297cdf0e10cSrcweir using Window::Resize; 298cdf0e10cSrcweir virtual void Resize( const Size& rSize ); 299cdf0e10cSrcweir virtual void PrePaint(); 300cdf0e10cSrcweir virtual void Paint( const Rectangle& rRect ); 301cdf0e10cSrcweir virtual void KeyInput(const KeyEvent& rKEvt); 302cdf0e10cSrcweir virtual void GetFocus(); 303cdf0e10cSrcweir virtual void LoseFocus(); 304cdf0e10cSrcweir 305cdf0e10cSrcweir virtual void RequestHelp( const HelpEvent& rEvt ); 306cdf0e10cSrcweir virtual void Command( const CommandEvent& rCEvt ); 307cdf0e10cSrcweir 308cdf0e10cSrcweir virtual sal_Int8 AcceptDrop( const AcceptDropEvent& rEvt ); 309cdf0e10cSrcweir virtual sal_Int8 ExecuteDrop( const ExecuteDropEvent& rEvt ); 310cdf0e10cSrcweir virtual void StartDrag( sal_Int8 nAction, const Point& rPosPixel ); 311cdf0e10cSrcweir 312cdf0e10cSrcweir public: 313cdf0e10cSrcweir ScGridWindow( Window* pParent, ScViewData* pData, ScSplitPos eWhichPos ); 314cdf0e10cSrcweir ~ScGridWindow(); 315cdf0e10cSrcweir 316cdf0e10cSrcweir // #i70788# flush and get overlay 317cdf0e10cSrcweir ::sdr::overlay::OverlayManager* getOverlayManager(); 318cdf0e10cSrcweir void flushOverlayManager(); 319cdf0e10cSrcweir 320cdf0e10cSrcweir virtual void DataChanged( const DataChangedEvent& rDCEvt ); 321cdf0e10cSrcweir 322cdf0e10cSrcweir virtual void MouseButtonDown( const MouseEvent& rMEvt ); 323cdf0e10cSrcweir virtual void MouseButtonUp( const MouseEvent& rMEvt ); 324cdf0e10cSrcweir virtual void MouseMove( const MouseEvent& rMEvt ); 325cdf0e10cSrcweir virtual long PreNotify( NotifyEvent& rNEvt ); 326cdf0e10cSrcweir virtual void Tracking( const TrackingEvent& rTEvt ); 327cdf0e10cSrcweir 328cdf0e10cSrcweir virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > CreateAccessible(); 329cdf0e10cSrcweir 330cdf0e10cSrcweir void FakeButtonUp(); 331cdf0e10cSrcweir 332cdf0e10cSrcweir Point GetMousePosPixel() const; 333cdf0e10cSrcweir void UpdateStatusPosSize(); 334cdf0e10cSrcweir 335cdf0e10cSrcweir void ClickExtern(); 336cdf0e10cSrcweir 337cdf0e10cSrcweir void SetPointer( const Pointer& rPointer ); 338cdf0e10cSrcweir 339cdf0e10cSrcweir void MoveMouseStatus( ScGridWindow &rDestWin ); 340cdf0e10cSrcweir 341cdf0e10cSrcweir void ScrollPixel( long nDifX, long nDifY ); 342cdf0e10cSrcweir void UpdateEditViewPos(); 343cdf0e10cSrcweir 344cdf0e10cSrcweir void UpdateFormulas(); 345cdf0e10cSrcweir 346cdf0e10cSrcweir void DoAutoFilterMenue( SCCOL nCol, SCROW nRow, sal_Bool bDataSelect ); 347cdf0e10cSrcweir void DoScenarioMenue( const ScRange& rScenRange ); 348cdf0e10cSrcweir 349cdf0e10cSrcweir void LaunchPageFieldMenu( SCCOL nCol, SCROW nRow ); 350cdf0e10cSrcweir void LaunchDPFieldMenu( SCCOL nCol, SCROW nRow ); 351cdf0e10cSrcweir 352cdf0e10cSrcweir ::com::sun::star::sheet::DataPilotFieldOrientation GetDPFieldOrientation( SCCOL nCol, SCROW nRow ) const; 353cdf0e10cSrcweir 354cdf0e10cSrcweir void DrawButtons( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2, 355cdf0e10cSrcweir ScTableInfo& rTabInfo, OutputDevice* pContentDev ); 356cdf0e10cSrcweir 357cdf0e10cSrcweir using Window::Draw; 358cdf0e10cSrcweir void Draw( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2, 359cdf0e10cSrcweir ScUpdateMode eMode = SC_UPDATE_ALL ); 360cdf0e10cSrcweir 361cdf0e10cSrcweir void InvertSimple( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2, 362cdf0e10cSrcweir sal_Bool bTestMerge = sal_False, sal_Bool bRepeat = sal_False ); 363cdf0e10cSrcweir 364cdf0e10cSrcweir //UNUSED2008-05 void DrawDragRect( SCCOL nX1, SCROW nY1, SCCOL nX2, SCROW nY2 ); 365cdf0e10cSrcweir 366cdf0e10cSrcweir void CreateAnchorHandle(SdrHdlList& rHdl, const ScAddress& rAddress); 367cdf0e10cSrcweir 368cdf0e10cSrcweir void HideCursor(); 369cdf0e10cSrcweir void ShowCursor(); 370cdf0e10cSrcweir void DrawCursor(); 371cdf0e10cSrcweir void DrawAutoFillMark(); 372cdf0e10cSrcweir void UpdateAutoFillMark(sal_Bool bMarked, const ScRange& rMarkRange); 373cdf0e10cSrcweir 374cdf0e10cSrcweir void UpdateListValPos( sal_Bool bVisible, const ScAddress& rPos ); 375cdf0e10cSrcweir 376cdf0e10cSrcweir sal_Bool ShowNoteMarker( SCsCOL nPosX, SCsROW nPosY, sal_Bool bKeyboard ); 377cdf0e10cSrcweir void HideNoteMarker(); 378cdf0e10cSrcweir 379cdf0e10cSrcweir MapMode GetDrawMapMode( sal_Bool bForce = sal_False ); 380cdf0e10cSrcweir 381cdf0e10cSrcweir void ContinueDrag(); 382cdf0e10cSrcweir 383cdf0e10cSrcweir void StopMarking(); 384cdf0e10cSrcweir void UpdateInputContext(); 385cdf0e10cSrcweir 386cdf0e10cSrcweir void CheckInverted() { if (nPaintCount) bNeedsRepaint = sal_True; } 387cdf0e10cSrcweir 388cdf0e10cSrcweir void DoInvertRect( const Rectangle& rPixel ); 389cdf0e10cSrcweir 390cdf0e10cSrcweir void CheckNeedsRepaint(); 391cdf0e10cSrcweir 392cdf0e10cSrcweir void UpdateDPFromFieldPopupMenu(); 393cdf0e10cSrcweir 394cdf0e10cSrcweir void UpdateVisibleRange(); 395cdf0e10cSrcweir 396cdf0e10cSrcweir // #114409# 397cdf0e10cSrcweir void CursorChanged(); 398cdf0e10cSrcweir void DrawLayerCreated(); 399cdf0e10cSrcweir 400cdf0e10cSrcweir void DeleteCursorOverlay(); 401cdf0e10cSrcweir void UpdateCursorOverlay(); 402cdf0e10cSrcweir void DeleteSelectionOverlay(); 403cdf0e10cSrcweir void UpdateSelectionOverlay(); 404cdf0e10cSrcweir void DeleteAutoFillOverlay(); 405cdf0e10cSrcweir void UpdateAutoFillOverlay(); 406cdf0e10cSrcweir void DeleteDragRectOverlay(); 407cdf0e10cSrcweir void UpdateDragRectOverlay(); 408cdf0e10cSrcweir void DeleteHeaderOverlay(); 409cdf0e10cSrcweir void UpdateHeaderOverlay(); 410cdf0e10cSrcweir void DeleteShrinkOverlay(); 411cdf0e10cSrcweir void UpdateShrinkOverlay(); 412cdf0e10cSrcweir void UpdateAllOverlays(); 413cdf0e10cSrcweir 414cdf0e10cSrcweir protected: 415cdf0e10cSrcweir // #114409# 416cdf0e10cSrcweir void ImpCreateOverlayObjects(); 417cdf0e10cSrcweir void ImpDestroyOverlayObjects(); 418cdf0e10cSrcweir 419cdf0e10cSrcweir }; 420cdf0e10cSrcweir 421cdf0e10cSrcweir 422cdf0e10cSrcweir 423cdf0e10cSrcweir #endif 424cdf0e10cSrcweir 425