xref: /trunk/main/basctl/source/basicide/baside2.hxx (revision 914d351e5f5b84e4342a86d6ab8d4aca7308b9bd)
1*96821c26SAndrew Rist /**************************************************************
2cdf0e10cSrcweir  *
3*96821c26SAndrew Rist  * Licensed to the Apache Software Foundation (ASF) under one
4*96821c26SAndrew Rist  * or more contributor license agreements.  See the NOTICE file
5*96821c26SAndrew Rist  * distributed with this work for additional information
6*96821c26SAndrew Rist  * regarding copyright ownership.  The ASF licenses this file
7*96821c26SAndrew Rist  * to you under the Apache License, Version 2.0 (the
8*96821c26SAndrew Rist  * "License"); you may not use this file except in compliance
9*96821c26SAndrew Rist  * with the License.  You may obtain a copy of the License at
10cdf0e10cSrcweir  *
11*96821c26SAndrew Rist  *   http://www.apache.org/licenses/LICENSE-2.0
12cdf0e10cSrcweir  *
13*96821c26SAndrew Rist  * Unless required by applicable law or agreed to in writing,
14*96821c26SAndrew Rist  * software distributed under the License is distributed on an
15*96821c26SAndrew Rist  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16*96821c26SAndrew Rist  * KIND, either express or implied.  See the License for the
17*96821c26SAndrew Rist  * specific language governing permissions and limitations
18*96821c26SAndrew Rist  * under the License.
19cdf0e10cSrcweir  *
20*96821c26SAndrew Rist  *************************************************************/
21*96821c26SAndrew Rist 
22*96821c26SAndrew Rist 
23cdf0e10cSrcweir 
24cdf0e10cSrcweir #ifndef _BASIDE2_HXX
25cdf0e10cSrcweir #define _BASIDE2_HXX
26cdf0e10cSrcweir 
27cdf0e10cSrcweir #include <svheader.hxx>
28cdf0e10cSrcweir 
29cdf0e10cSrcweir #include <bastypes.hxx>
30cdf0e10cSrcweir #include <bastype3.hxx>
31cdf0e10cSrcweir #include <basidesh.hxx>
32cdf0e10cSrcweir 
33cdf0e10cSrcweir class ExtTextEngine;
34cdf0e10cSrcweir class ExtTextView;
35cdf0e10cSrcweir class SvxSearchItem;
36cdf0e10cSrcweir #include <svtools/svtabbx.hxx>
37cdf0e10cSrcweir #include <svtools/headbar.hxx>
38cdf0e10cSrcweir 
39cdf0e10cSrcweir #ifndef _SV_BUTTON_HXX //autogen
40cdf0e10cSrcweir #include <vcl/button.hxx>
41cdf0e10cSrcweir #endif
42cdf0e10cSrcweir #include <basic/sbmod.hxx>
43cdf0e10cSrcweir #include <vcl/split.hxx>
44cdf0e10cSrcweir #include "svl/lstner.hxx"
45cdf0e10cSrcweir #include <svtools/colorcfg.hxx>
46cdf0e10cSrcweir 
47cdf0e10cSrcweir #include <sfx2/progress.hxx>
48cdf0e10cSrcweir #include <svtools/syntaxhighlight.hxx>
49cdf0e10cSrcweir 
50cdf0e10cSrcweir DBG_NAMEEX( ModulWindow )
51cdf0e10cSrcweir 
52cdf0e10cSrcweir #define MARKER_NOMARKER 0xFFFF
53cdf0e10cSrcweir 
54cdf0e10cSrcweir namespace utl
55cdf0e10cSrcweir {
56cdf0e10cSrcweir     class SourceViewConfig;
57cdf0e10cSrcweir }
58cdf0e10cSrcweir 
59cdf0e10cSrcweir // #108672 Helper functions to get/set text in TextEngine
60cdf0e10cSrcweir // using the stream interface (get/setText() only supports
61cdf0e10cSrcweir // tools Strings limited to 64K).
62cdf0e10cSrcweir ::rtl::OUString getTextEngineText( ExtTextEngine* pEngine );
63cdf0e10cSrcweir void setTextEngineText( ExtTextEngine* pEngine, const ::rtl::OUString aStr );
64cdf0e10cSrcweir 
65cdf0e10cSrcweir class ProgressInfo : public SfxProgress
66cdf0e10cSrcweir {
67cdf0e10cSrcweir private:
68cdf0e10cSrcweir     sal_uLong                   nCurState;
69cdf0e10cSrcweir 
70cdf0e10cSrcweir public:
71cdf0e10cSrcweir 
72cdf0e10cSrcweir     inline          ProgressInfo( SfxObjectShell* pObjSh, const String& rText, sal_uLong nRange );
73cdf0e10cSrcweir 
74cdf0e10cSrcweir //  inline void     StartProgress( const String& rName, sal_uLong nStates );
75cdf0e10cSrcweir //  inline void     EndProgress();
76cdf0e10cSrcweir     inline void     StepProgress();
77cdf0e10cSrcweir };
78cdf0e10cSrcweir 
ProgressInfo(SfxObjectShell * pObjSh,const String & rText,sal_uLong nRange)79cdf0e10cSrcweir inline ProgressInfo::ProgressInfo( SfxObjectShell* pObjSh, const String& rText, sal_uLong nRange )
80cdf0e10cSrcweir     : SfxProgress( pObjSh, rText, nRange )
81cdf0e10cSrcweir {
82cdf0e10cSrcweir     nCurState = 0;
83cdf0e10cSrcweir }
84cdf0e10cSrcweir 
85cdf0e10cSrcweir // inline void ProgressInfo::StartProgress( const String& rName, sal_uLong nStates )
86cdf0e10cSrcweir // {
87cdf0e10cSrcweir //  nCurState = 0;
88cdf0e10cSrcweir //  if ( pStbMgr )
89cdf0e10cSrcweir //      pStbMgr->StartProgressMode( rName, nStates );
90cdf0e10cSrcweir // }
91cdf0e10cSrcweir 
92cdf0e10cSrcweir // inline void ProgressInfo::EndProgress()
93cdf0e10cSrcweir // {
94cdf0e10cSrcweir //  if ( pStbMgr )
95cdf0e10cSrcweir //      pStbMgr->EndProgressMode();
96cdf0e10cSrcweir //}
97cdf0e10cSrcweir 
StepProgress()98cdf0e10cSrcweir inline void ProgressInfo::StepProgress()
99cdf0e10cSrcweir {
100cdf0e10cSrcweir     SetState( ++nCurState );
101cdf0e10cSrcweir }
102cdf0e10cSrcweir 
103cdf0e10cSrcweir 
104cdf0e10cSrcweir namespace svt {
105cdf0e10cSrcweir class SourceViewConfig;
106cdf0e10cSrcweir }
107cdf0e10cSrcweir 
108cdf0e10cSrcweir class EditorWindow : public Window, public SfxListener, public utl::ConfigurationListener
109cdf0e10cSrcweir {
110cdf0e10cSrcweir private:
111cdf0e10cSrcweir     ExtTextView*    pEditView;
112cdf0e10cSrcweir     ExtTextEngine*  pEditEngine;
113cdf0e10cSrcweir 
114cdf0e10cSrcweir     utl::SourceViewConfig* pSourceViewConfig;
115cdf0e10cSrcweir 
116cdf0e10cSrcweir     long            nCurTextWidth;
117cdf0e10cSrcweir 
118cdf0e10cSrcweir     SyntaxHighlighter   aHighlighter;
119cdf0e10cSrcweir     Timer           aSyntaxIdleTimer;
120cdf0e10cSrcweir     Table           aSyntaxLineTable;
121cdf0e10cSrcweir     DECL_LINK( SyntaxTimerHdl, Timer * );
122cdf0e10cSrcweir     ProgressInfo*   pProgress;
123cdf0e10cSrcweir     ModulWindow*    pModulWindow;
124cdf0e10cSrcweir 
125cdf0e10cSrcweir     virtual void DataChanged(DataChangedEvent const & rDCEvt);
126cdf0e10cSrcweir 
127cdf0e10cSrcweir     using           Window::Notify;
128cdf0e10cSrcweir     virtual void    Notify( SfxBroadcaster& rBC, const SfxHint& rHint );
129cdf0e10cSrcweir 
130cdf0e10cSrcweir     void            ImpDoHighlight( sal_uLong nLineOff );
131cdf0e10cSrcweir     void            ImplSetFont();
132cdf0e10cSrcweir 
133cdf0e10cSrcweir     sal_Bool            bHighlightning;
134cdf0e10cSrcweir     sal_Bool            bDoSyntaxHighlight;
135cdf0e10cSrcweir     sal_Bool            bDelayHighlight;
136cdf0e10cSrcweir 
137cdf0e10cSrcweir     virtual
138cdf0e10cSrcweir     ::com::sun::star::uno::Reference< ::com::sun::star::awt::XWindowPeer >
139cdf0e10cSrcweir     GetComponentInterface(sal_Bool bCreate = sal_True);
140cdf0e10cSrcweir 
141cdf0e10cSrcweir protected:
142cdf0e10cSrcweir     virtual void    Paint( const Rectangle& );
143cdf0e10cSrcweir     virtual void    Resize();
144cdf0e10cSrcweir     virtual void    KeyInput( const KeyEvent& rKeyEvt );
145cdf0e10cSrcweir     virtual void    MouseMove( const MouseEvent& rMEvt );
146cdf0e10cSrcweir     virtual void    MouseButtonDown( const MouseEvent& rMEvt );
147cdf0e10cSrcweir     virtual void    MouseButtonUp( const MouseEvent& rMEvt );
148cdf0e10cSrcweir     virtual void    Command( const CommandEvent& rCEvt );
149cdf0e10cSrcweir     virtual void    LoseFocus();
150cdf0e10cSrcweir     virtual void    RequestHelp( const HelpEvent& rHEvt );
151cdf0e10cSrcweir     virtual void    ConfigurationChanged( utl::ConfigurationBroadcaster*, sal_uInt32 );
152cdf0e10cSrcweir 
153cdf0e10cSrcweir     void            DoSyntaxHighlight( sal_uLong nPara );
154cdf0e10cSrcweir     String          GetWordAtCursor();
155cdf0e10cSrcweir     sal_Bool            ImpCanModify();
156cdf0e10cSrcweir 
157cdf0e10cSrcweir public:
158cdf0e10cSrcweir                     EditorWindow( Window* pParent );
159cdf0e10cSrcweir                     ~EditorWindow();
160cdf0e10cSrcweir 
GetEditEngine() const161cdf0e10cSrcweir     ExtTextEngine*  GetEditEngine() const   { return (ExtTextEngine*)pEditEngine; }
GetEditView() const162cdf0e10cSrcweir     ExtTextView*    GetEditView() const     { return pEditView; }
GetProgress() const163cdf0e10cSrcweir     ProgressInfo*   GetProgress() const     { return pProgress; }
164cdf0e10cSrcweir 
165cdf0e10cSrcweir     void            CreateProgress( const String& rText, sal_uLong nRange );
166cdf0e10cSrcweir     void            DestroyProgress();
167cdf0e10cSrcweir 
168cdf0e10cSrcweir     void            ParagraphInsertedDeleted( sal_uLong nNewPara, sal_Bool bInserted );
169cdf0e10cSrcweir     void            DoDelayedSyntaxHighlight( sal_uLong nPara );
170cdf0e10cSrcweir 
171cdf0e10cSrcweir     void            CreateEditEngine();
172cdf0e10cSrcweir     void            SetScrollBarRanges();
173cdf0e10cSrcweir     void            InitScrollBars();
SetModulWindow(ModulWindow * pWin)174cdf0e10cSrcweir     void            SetModulWindow( ModulWindow* pWin )
175cdf0e10cSrcweir                         { pModulWindow = pWin; }
176cdf0e10cSrcweir 
177cdf0e10cSrcweir     void            ForceSyntaxTimeout();
178cdf0e10cSrcweir     sal_Bool            SetSourceInBasic( sal_Bool bQuiet = sal_True );
179cdf0e10cSrcweir 
CanModify()180cdf0e10cSrcweir     sal_Bool            CanModify() { return ImpCanModify(); }
181cdf0e10cSrcweir };
182cdf0e10cSrcweir 
183cdf0e10cSrcweir 
184cdf0e10cSrcweir class BreakPointWindow : public Window
185cdf0e10cSrcweir {
186cdf0e10cSrcweir private:
187cdf0e10cSrcweir     long            nCurYOffset;
188cdf0e10cSrcweir     sal_uInt16          nMarkerPos;
189cdf0e10cSrcweir     BreakPointList  aBreakPointList;
190cdf0e10cSrcweir     ModulWindow*    pModulWindow;
191cdf0e10cSrcweir     sal_Bool            bErrorMarker;
192cdf0e10cSrcweir     bool m_bHighContrastMode;
193cdf0e10cSrcweir 
194cdf0e10cSrcweir     virtual void DataChanged(DataChangedEvent const & rDCEvt);
195cdf0e10cSrcweir 
196cdf0e10cSrcweir     void setBackgroundColor(Color aColor);
197cdf0e10cSrcweir 
198cdf0e10cSrcweir protected:
199cdf0e10cSrcweir     virtual void    Paint( const Rectangle& );
200cdf0e10cSrcweir     virtual void    Resize();
201cdf0e10cSrcweir     BreakPoint*     FindBreakPoint( const Point& rMousePos );
202cdf0e10cSrcweir     void            ShowMarker( sal_Bool bShow );
203cdf0e10cSrcweir     virtual void    MouseButtonDown( const MouseEvent& rMEvt );
204cdf0e10cSrcweir     virtual void    Command( const CommandEvent& rCEvt );
205cdf0e10cSrcweir 
206cdf0e10cSrcweir     sal_Bool            SyncYOffset();
207cdf0e10cSrcweir 
208cdf0e10cSrcweir public:
209cdf0e10cSrcweir                     BreakPointWindow( Window* pParent );
210cdf0e10cSrcweir                     ~BreakPointWindow();
211cdf0e10cSrcweir 
SetModulWindow(ModulWindow * pWin)212cdf0e10cSrcweir     void            SetModulWindow( ModulWindow* pWin )
213cdf0e10cSrcweir                         { pModulWindow = pWin; }
214cdf0e10cSrcweir 
215cdf0e10cSrcweir     void            SetMarkerPos( sal_uInt16 nLine, sal_Bool bErrorMarker = sal_False );
216cdf0e10cSrcweir 
217cdf0e10cSrcweir     void            DoScroll( long nHorzScroll, long nVertScroll );
GetCurYOffset()218cdf0e10cSrcweir     long&           GetCurYOffset()         { return nCurYOffset; }
GetBreakPoints()219cdf0e10cSrcweir     BreakPointList& GetBreakPoints()        { return aBreakPointList; }
220cdf0e10cSrcweir };
221cdf0e10cSrcweir 
222cdf0e10cSrcweir 
223cdf0e10cSrcweir class WatchTreeListBox : public SvHeaderTabListBox
224cdf0e10cSrcweir {
225cdf0e10cSrcweir     String aEditingRes;
226cdf0e10cSrcweir 
227cdf0e10cSrcweir protected:
228cdf0e10cSrcweir     virtual sal_Bool    EditingEntry( SvLBoxEntry* pEntry, Selection& rSel  );
229cdf0e10cSrcweir     virtual sal_Bool    EditedEntry( SvLBoxEntry* pEntry, const String& rNewText );
230cdf0e10cSrcweir 
231cdf0e10cSrcweir     sal_Bool            ImplBasicEntryEdited( SvLBoxEntry* pEntry, const String& rResult );
232cdf0e10cSrcweir     SbxBase*        ImplGetSBXForEntry( SvLBoxEntry* pEntry, bool& rbArrayElement );
233cdf0e10cSrcweir 
234cdf0e10cSrcweir //  virtual DragDropMode    NotifyBeginDrag( SvLBoxEntry* );
235cdf0e10cSrcweir //  virtual sal_Bool    NotifyQueryDrop( SvLBoxEntry* );
236cdf0e10cSrcweir 
237cdf0e10cSrcweir //  virtual sal_Bool    NotifyMoving( SvLBoxEntry* pTarget, SvLBoxEntry* pEntry,
238cdf0e10cSrcweir //                      SvLBoxEntry*& rpNewParent, sal_uLong& rNewChildPos );
239cdf0e10cSrcweir //  virtual sal_Bool    NotifyCopying( SvLBoxEntry* pTarget, SvLBoxEntry* pEntry,
240cdf0e10cSrcweir //                      SvLBoxEntry*& rpNewParent, sal_uLong& rNewChildPos );
241cdf0e10cSrcweir //  sal_Bool            NotifyCopyingMoving( SvLBoxEntry* pTarget, SvLBoxEntry* pEntry,
242cdf0e10cSrcweir //                      SvLBoxEntry*& rpNewParent, sal_uLong& rNewChildPos, sal_Bool bMove );
243cdf0e10cSrcweir 
244cdf0e10cSrcweir public:
245cdf0e10cSrcweir     WatchTreeListBox( Window* pParent, WinBits nWinBits );
246cdf0e10cSrcweir     ~WatchTreeListBox();
247cdf0e10cSrcweir 
248cdf0e10cSrcweir     void            RequestingChilds( SvLBoxEntry * pParent );
249cdf0e10cSrcweir     void            UpdateWatches( bool bBasicStopped = false );
250cdf0e10cSrcweir 
251cdf0e10cSrcweir     using           SvTabListBox::SetTabs;
252cdf0e10cSrcweir     virtual void    SetTabs();
253cdf0e10cSrcweir };
254cdf0e10cSrcweir 
255cdf0e10cSrcweir 
256cdf0e10cSrcweir 
257cdf0e10cSrcweir class WatchWindow : public BasicDockingWindow
258cdf0e10cSrcweir {
259cdf0e10cSrcweir private:
260cdf0e10cSrcweir     String              aWatchStr;
261cdf0e10cSrcweir     ExtendedEdit        aXEdit;
262cdf0e10cSrcweir     ImageButton         aRemoveWatchButton;
263cdf0e10cSrcweir     WatchTreeListBox    aTreeListBox;
264cdf0e10cSrcweir     HeaderBar           aHeaderBar;
265cdf0e10cSrcweir 
266cdf0e10cSrcweir protected:
267cdf0e10cSrcweir     virtual void    Resize();
268cdf0e10cSrcweir     virtual void    Paint( const Rectangle& rRect );
269cdf0e10cSrcweir 
270cdf0e10cSrcweir     DECL_LINK( ButtonHdl, ImageButton * );
271cdf0e10cSrcweir     DECL_LINK( TreeListHdl, SvTreeListBox * );
272cdf0e10cSrcweir     DECL_LINK( implEndDragHdl, HeaderBar * );
273cdf0e10cSrcweir     DECL_LINK( EditAccHdl, Accelerator * );
274cdf0e10cSrcweir 
275cdf0e10cSrcweir 
276cdf0e10cSrcweir public:
277cdf0e10cSrcweir                     WatchWindow( Window* pParent );
278cdf0e10cSrcweir                     ~WatchWindow();
279cdf0e10cSrcweir 
280cdf0e10cSrcweir     void            AddWatch( const String& rVName );
281cdf0e10cSrcweir     sal_Bool            RemoveSelectedWatch();
282cdf0e10cSrcweir     void            UpdateWatches( bool bBasicStopped = false );
283cdf0e10cSrcweir 
GetWatchTreeListBox()284cdf0e10cSrcweir     WatchTreeListBox&   GetWatchTreeListBox() { return aTreeListBox; }
285cdf0e10cSrcweir };
286cdf0e10cSrcweir 
287cdf0e10cSrcweir 
288cdf0e10cSrcweir class StackWindow : public BasicDockingWindow
289cdf0e10cSrcweir {
290cdf0e10cSrcweir private:
291cdf0e10cSrcweir     SvTreeListBox   aTreeListBox;
292cdf0e10cSrcweir     ImageButton     aGotoCallButton;
293cdf0e10cSrcweir     String          aStackStr;
294cdf0e10cSrcweir 
295cdf0e10cSrcweir protected:
296cdf0e10cSrcweir     virtual void    Resize();
297cdf0e10cSrcweir     virtual void    Paint( const Rectangle& rRect );
298cdf0e10cSrcweir     DECL_LINK( ButtonHdl, ImageButton * );
299cdf0e10cSrcweir 
300cdf0e10cSrcweir public:
301cdf0e10cSrcweir                     StackWindow( Window* pParent );
302cdf0e10cSrcweir                     ~StackWindow();
303cdf0e10cSrcweir 
304cdf0e10cSrcweir     void            UpdateCalls();
305cdf0e10cSrcweir };
306cdf0e10cSrcweir 
307cdf0e10cSrcweir 
308cdf0e10cSrcweir class ComplexEditorWindow : public Window
309cdf0e10cSrcweir {
310cdf0e10cSrcweir private:
311cdf0e10cSrcweir     BreakPointWindow    aBrkWindow;
312cdf0e10cSrcweir     EditorWindow        aEdtWindow;
313cdf0e10cSrcweir     ScrollBar           aEWVScrollBar;
314cdf0e10cSrcweir 
315cdf0e10cSrcweir     virtual void DataChanged(DataChangedEvent const & rDCEvt);
316cdf0e10cSrcweir 
317cdf0e10cSrcweir protected:
318cdf0e10cSrcweir     virtual void        Resize();
319cdf0e10cSrcweir     DECL_LINK( ScrollHdl, ScrollBar * );
320cdf0e10cSrcweir 
321cdf0e10cSrcweir public:
322cdf0e10cSrcweir                         ComplexEditorWindow( ModulWindow* pParent );
323cdf0e10cSrcweir 
GetBrkWindow()324cdf0e10cSrcweir     BreakPointWindow&   GetBrkWindow()      { return aBrkWindow; }
GetEdtWindow()325cdf0e10cSrcweir     EditorWindow&       GetEdtWindow()      { return aEdtWindow; }
GetEWVScrollBar()326cdf0e10cSrcweir     ScrollBar&          GetEWVScrollBar()   { return aEWVScrollBar; }
327cdf0e10cSrcweir };
328cdf0e10cSrcweir 
329cdf0e10cSrcweir 
330cdf0e10cSrcweir #define SYNTAX_COLOR_MAX    5
331cdf0e10cSrcweir 
332cdf0e10cSrcweir class ModulWindow: public IDEBaseWindow
333cdf0e10cSrcweir {
334cdf0e10cSrcweir     friend class BasicIDEShell;
335cdf0e10cSrcweir 
336cdf0e10cSrcweir private:
337cdf0e10cSrcweir     StarBASICRef        xBasic;
338cdf0e10cSrcweir     short               nValid;
339cdf0e10cSrcweir     ComplexEditorWindow aXEditorWindow;
340cdf0e10cSrcweir     BasicStatus         aStatus;
341cdf0e10cSrcweir     SbModuleRef         xModule;
342cdf0e10cSrcweir     ModulWindowLayout*  pLayout;
343cdf0e10cSrcweir     String              aCurPath;
344cdf0e10cSrcweir     ::rtl::OUString     m_aModule;
345cdf0e10cSrcweir 
346cdf0e10cSrcweir     DECL_LINK( BasicErrorHdl, StarBASIC * );
347cdf0e10cSrcweir     long                BasicBreakHdl( StarBASIC* pBasic );
348cdf0e10cSrcweir 
349cdf0e10cSrcweir     void                CheckCompileBasic();
350cdf0e10cSrcweir     sal_Bool                BasicExecute();
351cdf0e10cSrcweir 
352cdf0e10cSrcweir     void                GoOnTop();
353cdf0e10cSrcweir     void                AssertValidEditEngine();
354cdf0e10cSrcweir 
355cdf0e10cSrcweir     sal_Int32           FormatAndPrint( Printer* pPrinter, sal_Int32 nPage = -1 );
356cdf0e10cSrcweir     SbModuleRef         XModule();
357cdf0e10cSrcweir protected:
358cdf0e10cSrcweir     virtual void    Resize();
359cdf0e10cSrcweir     virtual void    GetFocus();
360cdf0e10cSrcweir     virtual void    Paint( const Rectangle& );
361cdf0e10cSrcweir     virtual void    Deactivating();
362cdf0e10cSrcweir     virtual void    DoInit();
363cdf0e10cSrcweir     virtual void    DoScroll( ScrollBar* pCurScrollBar );
364cdf0e10cSrcweir 
365cdf0e10cSrcweir public:
366cdf0e10cSrcweir                     TYPEINFO();
367cdf0e10cSrcweir 
368cdf0e10cSrcweir                     ModulWindow( ModulWindowLayout* pParent, const ScriptDocument& rDocument, String aLibName,
369cdf0e10cSrcweir                         String aName, ::rtl::OUString& aModule );
370cdf0e10cSrcweir 
371cdf0e10cSrcweir                     ~ModulWindow();
372cdf0e10cSrcweir 
373cdf0e10cSrcweir     virtual void    ExecuteCommand( SfxRequest& rReq );
374cdf0e10cSrcweir     virtual void    GetState( SfxItemSet& );
375cdf0e10cSrcweir     virtual void    StoreData();
376cdf0e10cSrcweir     virtual void    UpdateData();
377cdf0e10cSrcweir     virtual sal_Bool    CanClose();
378cdf0e10cSrcweir     // virtual void PrintData( Printer* pPrinter );
379cdf0e10cSrcweir     // return number of pages to be printed
380cdf0e10cSrcweir     virtual sal_Int32 countPages( Printer* pPrinter );
381cdf0e10cSrcweir     // print page
382cdf0e10cSrcweir     virtual void printPage( sal_Int32 nPage, Printer* pPrinter );
383cdf0e10cSrcweir     virtual String  GetTitle();
384cdf0e10cSrcweir     virtual BasicEntryDescriptor CreateEntryDescriptor();
385cdf0e10cSrcweir     virtual sal_Bool    AllowUndo();
386cdf0e10cSrcweir     virtual void    SetReadOnly( sal_Bool bReadOnly );
387cdf0e10cSrcweir     virtual sal_Bool    IsReadOnly();
388cdf0e10cSrcweir 
GetBasic()389cdf0e10cSrcweir     StarBASIC*      GetBasic() { XModule(); return xBasic; }
390cdf0e10cSrcweir 
GetSbModule()391cdf0e10cSrcweir     SbModule*       GetSbModule() { return xModule; }
SetSbModule(SbModule * pModule)392cdf0e10cSrcweir     void            SetSbModule( SbModule* pModule ) { xModule = pModule; }
393cdf0e10cSrcweir     String          GetSbModuleName();
394cdf0e10cSrcweir 
395cdf0e10cSrcweir     sal_Bool            CompileBasic();
396cdf0e10cSrcweir     sal_Bool            BasicRun();
397cdf0e10cSrcweir     sal_Bool            BasicStepOver();
398cdf0e10cSrcweir     sal_Bool            BasicStepInto();
399cdf0e10cSrcweir     sal_Bool            BasicStepOut();
400cdf0e10cSrcweir     void            BasicStop();
401cdf0e10cSrcweir     sal_Bool            BasicToggleBreakPoint();
402cdf0e10cSrcweir     void            BasicToggleBreakPointEnabled();
403cdf0e10cSrcweir     void            ManageBreakPoints();
404cdf0e10cSrcweir     void            UpdateBreakPoint( const BreakPoint& rBrk );
405cdf0e10cSrcweir     void            BasicAddWatch();
406cdf0e10cSrcweir     void            BasicRemoveWatch();
407cdf0e10cSrcweir 
408cdf0e10cSrcweir     sal_Bool            LoadBasic();
409cdf0e10cSrcweir     sal_Bool            SaveBasicSource();
410cdf0e10cSrcweir     sal_Bool            ImportDialog();
411cdf0e10cSrcweir 
412cdf0e10cSrcweir     void            EditMacro( const String& rMacroName );
413cdf0e10cSrcweir 
414cdf0e10cSrcweir //  void            InsertFromObjectCatalog( ObjectCatalog* pObjDlg );
415cdf0e10cSrcweir 
416cdf0e10cSrcweir     sal_Bool            ToggleBreakPoint( sal_uLong nLine );
417cdf0e10cSrcweir 
GetBasicStatus()418cdf0e10cSrcweir     BasicStatus&    GetBasicStatus() { return aStatus; }
419cdf0e10cSrcweir 
420cdf0e10cSrcweir     virtual sal_Bool    IsModified();
421cdf0e10cSrcweir     virtual sal_Bool    IsPasteAllowed();
422cdf0e10cSrcweir 
423cdf0e10cSrcweir     void            FrameWindowMoved();
424cdf0e10cSrcweir     void            ShowCursor( sal_Bool bOn );
425cdf0e10cSrcweir 
426cdf0e10cSrcweir     virtual sal_uInt16  GetSearchOptions();
427cdf0e10cSrcweir     sal_uInt16          StartSearchAndReplace( const SvxSearchItem& rSearchItem, sal_Bool bFromStart = sal_False );
428cdf0e10cSrcweir 
429cdf0e10cSrcweir     virtual Window* GetLayoutWindow();
430cdf0e10cSrcweir 
GetEditorWindow()431cdf0e10cSrcweir     EditorWindow&       GetEditorWindow()       { return aXEditorWindow.GetEdtWindow(); }
GetBreakPointWindow()432cdf0e10cSrcweir     BreakPointWindow&   GetBreakPointWindow()   { return aXEditorWindow.GetBrkWindow(); }
GetEditVScrollBar()433cdf0e10cSrcweir     ScrollBar&          GetEditVScrollBar()     { return aXEditorWindow.GetEWVScrollBar(); }
GetEditEngine()434cdf0e10cSrcweir     ExtTextEngine*      GetEditEngine()         { return GetEditorWindow().GetEditEngine(); }
GetEditView()435cdf0e10cSrcweir     ExtTextView*        GetEditView()           { return GetEditorWindow().GetEditView(); }
GetBreakPoints()436cdf0e10cSrcweir     BreakPointList&     GetBreakPoints()        { return GetBreakPointWindow().GetBreakPoints(); }
GetLayout() const437cdf0e10cSrcweir     ModulWindowLayout*  GetLayout() const       { return pLayout; }
438cdf0e10cSrcweir 
439cdf0e10cSrcweir     virtual void        BasicStarted();
440cdf0e10cSrcweir     virtual void        BasicStopped();
441cdf0e10cSrcweir 
442cdf0e10cSrcweir     virtual ::svl::IUndoManager*
443cdf0e10cSrcweir                         GetUndoManager();
444cdf0e10cSrcweir 
GetModule() const445cdf0e10cSrcweir     const ::rtl::OUString&  GetModule() const { return m_aModule; }
SetModule(const::rtl::OUString & aModule)446cdf0e10cSrcweir     void                    SetModule( const ::rtl::OUString& aModule ) { m_aModule = aModule; }
447cdf0e10cSrcweir };
448cdf0e10cSrcweir 
449cdf0e10cSrcweir class ModulWindowLayout: public Window, public utl::ConfigurationListener
450cdf0e10cSrcweir {
451cdf0e10cSrcweir private:
452cdf0e10cSrcweir 
453cdf0e10cSrcweir     Splitter        aVSplitter;
454cdf0e10cSrcweir     Splitter        aHSplitter;
455cdf0e10cSrcweir 
456cdf0e10cSrcweir     WatchWindow     aWatchWindow;
457cdf0e10cSrcweir     StackWindow     aStackWindow;
458cdf0e10cSrcweir 
459cdf0e10cSrcweir     sal_Bool            bVSplitted;
460cdf0e10cSrcweir     sal_Bool            bHSplitted;
461cdf0e10cSrcweir 
462cdf0e10cSrcweir     ModulWindow * m_pModulWindow;
463cdf0e10cSrcweir 
464cdf0e10cSrcweir     Color m_aSyntaxColors[TT_KEYWORDS + 1];
465cdf0e10cSrcweir     svtools::ColorConfig m_aColorConfig;
466cdf0e10cSrcweir 
467cdf0e10cSrcweir     ImageList m_aImagesNormal;
468cdf0e10cSrcweir     ImageList m_aImagesHighContrast;
469cdf0e10cSrcweir 
470cdf0e10cSrcweir     virtual void DataChanged(DataChangedEvent const & rDCEvt);
471cdf0e10cSrcweir 
472cdf0e10cSrcweir     virtual void ConfigurationChanged( utl::ConfigurationBroadcaster*, sal_uInt32 );
473cdf0e10cSrcweir 
474cdf0e10cSrcweir     void updateSyntaxHighlighting();
475cdf0e10cSrcweir 
476cdf0e10cSrcweir     DECL_LINK( SplitHdl, Splitter * );
477cdf0e10cSrcweir 
478cdf0e10cSrcweir     void            ArrangeWindows();
479cdf0e10cSrcweir 
480cdf0e10cSrcweir protected:
481cdf0e10cSrcweir     virtual void    Resize();
482cdf0e10cSrcweir     virtual void    Paint( const Rectangle& rRect );
483cdf0e10cSrcweir 
484cdf0e10cSrcweir public:
485cdf0e10cSrcweir                     ModulWindowLayout( Window* pParent );
486cdf0e10cSrcweir                     ~ModulWindowLayout();
487cdf0e10cSrcweir 
488cdf0e10cSrcweir     void            DockaWindow( DockingWindow* pDockingWin );
489cdf0e10cSrcweir     sal_Bool            IsToBeDocked( DockingWindow* pDockingWin, const Point& rPos, Rectangle& rRect );
490cdf0e10cSrcweir 
491cdf0e10cSrcweir     void            SetModulWindow( ModulWindow* pModWin );
GetModulWindow() const492cdf0e10cSrcweir     ModulWindow*    GetModulWindow() const { return m_pModulWindow; }
493cdf0e10cSrcweir 
GetWatchWindow()494cdf0e10cSrcweir     WatchWindow&    GetWatchWindow()    { return aWatchWindow; }
GetStackWindow()495cdf0e10cSrcweir     StackWindow&    GetStackWindow()    { return aStackWindow; }
496cdf0e10cSrcweir 
497cdf0e10cSrcweir     Image getImage(sal_uInt16 nId, bool bHighContrastMode) const;
498cdf0e10cSrcweir 
getSyntaxColor(TokenTypes eType) const499cdf0e10cSrcweir     inline Color const & getSyntaxColor(TokenTypes eType) const
500cdf0e10cSrcweir     { return m_aSyntaxColors[eType]; }
501cdf0e10cSrcweir };
502cdf0e10cSrcweir 
503cdf0e10cSrcweir #endif  // _BASIDE2_HXX
504