1 /************************************************************** 2 * 3 * Licensed to the Apache Software Foundation (ASF) under one 4 * or more contributor license agreements. See the NOTICE file 5 * distributed with this work for additional information 6 * regarding copyright ownership. The ASF licenses this file 7 * to you under the Apache License, Version 2.0 (the 8 * "License"); you may not use this file except in compliance 9 * with the License. You may obtain a copy of the License at 10 * 11 * http://www.apache.org/licenses/LICENSE-2.0 12 * 13 * Unless required by applicable law or agreed to in writing, 14 * software distributed under the License is distributed on an 15 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 16 * KIND, either express or implied. See the License for the 17 * specific language governing permissions and limitations 18 * under the License. 19 * 20 *************************************************************/ 21 22 23 #ifndef EDIT_HXX 24 #define EDIT_HXX 25 26 #include <vcl/window.hxx> 27 #include <vcl/timer.hxx> 28 #include <svtools/transfer.hxx> 29 #include <editeng/editdata.hxx> 30 #include <svtools/colorcfg.hxx> 31 32 //#ifndef _ACCESSIBILITY_HXX_ 33 //#include "accessibility.hxx" 34 //#endif 35 36 class SmDocShell; 37 class SmViewShell; 38 class EditView; 39 class EditEngine; 40 class EditStatus; 41 class ScrollBar; 42 class ScrollBarBox; 43 class DataChangedEvent; 44 class Menu; 45 class SmCmdBoxWindow; 46 class SmEditAccessible; 47 class CommandEvent; 48 49 /**************************************************************************/ 50 51 void SmGetLeftSelectionPart(const ESelection aSelection, 52 sal_uInt16 &nPara, sal_uInt16 &nPos); 53 54 /**************************************************************************/ 55 56 class SmEditWindow : public Window, public DropTargetHelper 57 { 58 ::com::sun::star::uno::Reference< 59 ::com::sun::star::accessibility::XAccessible > xAccessible; 60 SmEditAccessible * pAccessible; 61 62 SmCmdBoxWindow &rCmdBox; 63 EditView *pEditView; 64 ScrollBar *pHScrollBar, 65 *pVScrollBar; 66 ScrollBarBox *pScrollBox; 67 Timer aModifyTimer, 68 aCursorMoveTimer; 69 ESelection aOldSelection; 70 71 virtual void KeyInput(const KeyEvent& rKEvt); 72 virtual void Command(const CommandEvent& rCEvt); 73 DECL_LINK(MenuSelectHdl, Menu *); 74 DECL_LINK(ModifyTimerHdl, Timer *); 75 DECL_LINK(CursorMoveTimerHdl, Timer *); 76 77 virtual void DataChanged( const DataChangedEvent& ); 78 virtual void Resize(); 79 virtual void MouseMove(const MouseEvent &rEvt); 80 virtual void MouseButtonUp(const MouseEvent &rEvt); 81 virtual void MouseButtonDown(const MouseEvent &rEvt); 82 83 virtual sal_Int8 AcceptDrop( const AcceptDropEvent& rEvt ); 84 virtual sal_Int8 ExecuteDrop( const ExecuteDropEvent& rEvt ); 85 virtual void Paint(const Rectangle& rRect); 86 87 DECL_LINK(EditStatusHdl ,EditStatus *); 88 DECL_LINK(ScrollHdl, ScrollBar *); 89 90 void CreateEditView(); 91 92 Rectangle AdjustScrollBars(); 93 void SetScrollBarRanges(); 94 void InitScrollBars(); 95 void InvalidateSlots(); 96 void UpdateStatus( bool bSetDocModified = false ); 97 98 public: 99 SmEditWindow( SmCmdBoxWindow &rMyCmdBoxWin ); 100 ~SmEditWindow(); 101 102 SmDocShell * GetDoc(); 103 SmViewShell * GetView(); GetEditView()104 EditView * GetEditView() { return pEditView; } 105 EditEngine * GetEditEngine(); 106 SfxItemPool * GetEditEngineItemPool(); 107 108 // Window 109 virtual void SetText(const XubString &rText); 110 virtual String GetText() const; 111 virtual void GetFocus(); 112 virtual void LoseFocus(); 113 114 ESelection GetSelection() const; 115 void SetSelection(const ESelection &rSel); 116 117 sal_Bool IsEmpty() const; 118 sal_Bool IsSelected() const; 119 sal_Bool IsAllSelected() const; 120 void Cut(); 121 void Copy(); 122 void Paste(); 123 void Delete(); 124 void SelectAll(); 125 void InsertText(const String &rText); 126 void InsertCommand(sal_uInt16 nCommand); 127 void MarkError(const Point &rPos); 128 void SelNextMark(); 129 void SelPrevMark(); 130 sal_Bool HasMark(const String &rText) const; 131 132 void Flush(); 133 void DeleteEditView( SmViewShell &rView ); 134 135 void ApplyColorConfigValues( const svtools::ColorConfig &rColorCfg ); 136 137 sal_Bool HandleWheelCommands( const CommandEvent &rCEvt ); 138 139 // for Accessibility 140 virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > CreateAccessible(); 141 142 using Window::GetAccessible; GetAccessible()143 SmEditAccessible * GetAccessible() { return pAccessible; } 144 }; 145 146 147 #endif 148 149