Branch data Line data Source code
1 : : /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 : : /*
3 : : * This file is part of the LibreOffice project.
4 : : *
5 : : * This Source Code Form is subject to the terms of the Mozilla Public
6 : : * License, v. 2.0. If a copy of the MPL was not distributed with this
7 : : * file, You can obtain one at http://mozilla.org/MPL/2.0/.
8 : : *
9 : : * This file incorporates work covered by the following license notice:
10 : : *
11 : : * Licensed to the Apache Software Foundation (ASF) under one or more
12 : : * contributor license agreements. See the NOTICE file distributed
13 : : * with this work for additional information regarding copyright
14 : : * ownership. The ASF licenses this file to you under the Apache
15 : : * License, Version 2.0 (the "License"); you may not use this file
16 : : * except in compliance with the License. You may obtain a copy of
17 : : * the License at http://www.apache.org/licenses/LICENSE-2.0 .
18 : : */
19 : : #ifndef INCLUDED_SFX_NEWHELP_HXX
20 : : #define INCLUDED_SFX_NEWHELP_HXX
21 : :
22 : : #include <cppuhelper/implbase1.hxx>
23 : : #include <com/sun/star/uno/Reference.h>
24 : : #include <com/sun/star/frame/XDispatchResultListener.hpp>
25 : : #include <com/sun/star/frame/XDispatch.hpp>
26 : : #include <com/sun/star/frame/XFrame.hpp>
27 : :
28 : : namespace com { namespace sun { namespace star { namespace awt { class XWindow; } } } }
29 : : namespace com { namespace sun { namespace star { namespace frame { class XFrame; } } } }
30 : : namespace com { namespace sun { namespace star { namespace i18n { class XBreakIterator; } } } }
31 : : namespace com { namespace sun { namespace star { namespace text { class XTextRange; } } } }
32 : :
33 : : #include <vcl/window.hxx>
34 : : #include <vcl/toolbox.hxx>
35 : : #include <vcl/tabpage.hxx>
36 : : #include <vcl/splitwin.hxx>
37 : : #include <vcl/tabctrl.hxx>
38 : : #include <vcl/combobox.hxx>
39 : : #include <vcl/fixed.hxx>
40 : : #include <vcl/button.hxx>
41 : : #include <vcl/lstbox.hxx>
42 : : #include <vcl/dialog.hxx>
43 : : #include <svtools/svtreebx.hxx>
44 : : #include <unotools/moduleoptions.hxx>
45 : :
46 : : #include "srchdlg.hxx"
47 : :
48 : : // class OpenStatusListener_Impl -----------------------------------------
49 : :
50 : : class OpenStatusListener_Impl : public ::cppu::WeakImplHelper1< ::com::sun::star::frame::XDispatchResultListener >
51 : : {
52 : : private:
53 : : sal_Bool m_bFinished;
54 : : sal_Bool m_bSuccess;
55 : : Link m_aOpenLink;
56 : : String m_sURL;
57 : :
58 : : public:
59 : : OpenStatusListener_Impl() : m_bFinished( sal_False ), m_bSuccess( sal_False ) {}
60 : :
61 : : virtual void SAL_CALL dispatchFinished( const ::com::sun::star::frame::DispatchResultEvent& Event ) throw(::com::sun::star::uno::RuntimeException);
62 : : virtual void SAL_CALL disposing( const ::com::sun::star::lang::EventObject& Source ) throw(::com::sun::star::uno::RuntimeException);
63 : :
64 : : inline sal_Bool IsFinished() const { return m_bFinished; }
65 : : inline sal_Bool IsSuccessful() const { return m_bSuccess; }
66 : : inline void SetURL( const String& rURL ) { m_sURL = rURL; }
67 : : inline String GetURL() const { return m_sURL; }
68 : : inline void SetOpenHdl( const Link& rLink ) { m_aOpenLink = rLink; }
69 : : };
70 : :
71 : : // ContentListBox_Impl ---------------------------------------------------
72 : :
73 : : class ContentListBox_Impl : public SvTreeListBox
74 : : {
75 : : private:
76 : : Image aOpenBookImage;
77 : : Image aClosedBookImage;
78 : : Image aDocumentImage;
79 : :
80 : : void InitRoot();
81 : : void ClearChildren( SvLBoxEntry* pParent );
82 : :
83 : : public:
84 : : ContentListBox_Impl( Window* pParent, const ResId& rResId );
85 : : ~ContentListBox_Impl();
86 : :
87 : :
88 : : virtual void RequestingChildren( SvLBoxEntry* pParent );
89 : : virtual long Notify( NotifyEvent& rNEvt );
90 : :
91 : 0 : inline void SetOpenHdl( const Link& rLink ) { SetDoubleClickHdl( rLink ); }
92 : : String GetSelectEntry() const;
93 : : };
94 : :
95 : : // class HelpTabPage_Impl ------------------------------------------------
96 : :
97 : : class SfxHelpIndexWindow_Impl;
98 : :
99 [ # # ]: 0 : class HelpTabPage_Impl : public TabPage
100 : : {
101 : : protected:
102 : : SfxHelpIndexWindow_Impl* m_pIdxWin;
103 : :
104 : : public:
105 : : HelpTabPage_Impl( Window* pParent, SfxHelpIndexWindow_Impl* _pIdxWin, const ResId& rResId );
106 : :
107 : : virtual Control* GetLastFocusControl() = 0;
108 : : };
109 : :
110 : : // class ContentTabPage_Impl ---------------------------------------------
111 : :
112 [ # # ][ # # ]: 0 : class ContentTabPage_Impl : public HelpTabPage_Impl
113 : : {
114 : : private:
115 : : ContentListBox_Impl aContentBox;
116 : :
117 : : public:
118 : : ContentTabPage_Impl( Window* pParent, SfxHelpIndexWindow_Impl* _pIdxWin );
119 : :
120 : : virtual void Resize();
121 : : virtual void ActivatePage();
122 : : virtual Control* GetLastFocusControl();
123 : :
124 : 0 : inline void SetOpenHdl( const Link& rLink ) { aContentBox.SetOpenHdl( rLink ); }
125 : 0 : inline String GetSelectEntry() const { return aContentBox.GetSelectEntry(); }
126 : 0 : inline void SetFocusOnBox() { aContentBox.GrabFocus(); }
127 : : };
128 : :
129 : : // class IndexTabPage_Impl -----------------------------------------------
130 : :
131 [ # # ]: 0 : class IndexBox_Impl : public ComboBox
132 : : {
133 : : public:
134 : : IndexBox_Impl( Window* pParent, const ResId& rResId );
135 : :
136 : : virtual void UserDraw( const UserDrawEvent& rUDEvt );
137 : : virtual long Notify( NotifyEvent& rNEvt );
138 : :
139 : : void SelectExecutableEntry();
140 : : };
141 : :
142 : : class IndexTabPage_Impl : public HelpTabPage_Impl
143 : : {
144 : : private:
145 : : FixedText aExpressionFT;
146 : : IndexBox_Impl aIndexCB;
147 : : PushButton aOpenBtn;
148 : :
149 : : Timer aFactoryTimer;
150 : : Timer aKeywordTimer;
151 : : Link aKeywordLink;
152 : :
153 : : String sFactory;
154 : : String sKeyword;
155 : :
156 : : long nMinWidth;
157 : : sal_Bool bIsActivated;
158 : :
159 : : void InitializeIndex();
160 : : void ClearIndex();
161 : :
162 : : DECL_LINK(OpenHdl, void *);
163 : : DECL_LINK( TimeoutHdl, Timer* );
164 : :
165 : : public:
166 : : IndexTabPage_Impl( Window* pParent, SfxHelpIndexWindow_Impl* _pIdxWin );
167 : : ~IndexTabPage_Impl();
168 : :
169 : : virtual void Resize();
170 : : virtual void ActivatePage();
171 : : virtual Control* GetLastFocusControl();
172 : :
173 : : void SetDoubleClickHdl( const Link& rLink );
174 : : void SetFactory( const String& rFactory );
175 : 0 : inline String GetFactory() const { return sFactory; }
176 : : String GetSelectEntry() const;
177 : 0 : inline void SetFocusOnBox() { aIndexCB.GrabFocus(); }
178 : 0 : inline sal_Bool HasFocusOnEdit() const { return aIndexCB.HasChildPathFocus(); }
179 : :
180 : 0 : inline void SetKeywordHdl( const Link& rLink ) { aKeywordLink = rLink; }
181 : : void SetKeyword( const String& rKeyword );
182 : : sal_Bool HasKeyword() const;
183 : : sal_Bool HasKeywordIgnoreCase();
184 : : void OpenKeyword();
185 : :
186 : 0 : inline void SelectExecutableEntry() { aIndexCB.SelectExecutableEntry(); }
187 : : };
188 : :
189 : : // class SearchTabPage_Impl ----------------------------------------------
190 : :
191 [ # # ]: 0 : class SearchBox_Impl : public ComboBox
192 : : {
193 : : private:
194 : : Link aSearchLink;
195 : :
196 : : public:
197 : 0 : SearchBox_Impl( Window* pParent, const ResId& rResId ) :
198 [ # # ][ # # ]: 0 : ComboBox( pParent, rResId ) { SetDropDownLineCount( 5 ); }
199 : :
200 : : virtual long PreNotify( NotifyEvent& rNEvt );
201 : : virtual void Select();
202 : :
203 : 0 : inline void SetSearchLink( const Link& rLink ) { aSearchLink = rLink; }
204 : : };
205 : :
206 [ # # ]: 0 : class SearchResultsBox_Impl : public ListBox
207 : : {
208 : : public:
209 : 0 : SearchResultsBox_Impl( Window* pParent, const ResId& rResId ) : ListBox( pParent, rResId ) {}
210 : :
211 : : virtual long Notify( NotifyEvent& rNEvt );
212 : : };
213 : :
214 : : class SearchTabPage_Impl : public HelpTabPage_Impl
215 : : {
216 : : private:
217 : : FixedText aSearchFT;
218 : : SearchBox_Impl aSearchED;
219 : : PushButton aSearchBtn;
220 : : CheckBox aFullWordsCB;
221 : : CheckBox aScopeCB;
222 : : SearchResultsBox_Impl aResultsLB;
223 : : PushButton aOpenBtn;
224 : :
225 : : Size aMinSize;
226 : : String aFactory;
227 : :
228 : : ::com::sun::star::uno::Reference< ::com::sun::star::i18n::XBreakIterator >
229 : : xBreakIterator;
230 : :
231 : : void ClearSearchResults();
232 : : void RememberSearchText( const String& rSearchText );
233 : :
234 : : DECL_LINK(SearchHdl, void *);
235 : : DECL_LINK(OpenHdl, void *);
236 : : DECL_LINK(ModifyHdl, void *);
237 : :
238 : : public:
239 : : SearchTabPage_Impl( Window* pParent, SfxHelpIndexWindow_Impl* _pIdxWin );
240 : : ~SearchTabPage_Impl();
241 : :
242 : : virtual void Resize();
243 : : virtual void ActivatePage();
244 : : virtual Control* GetLastFocusControl();
245 : :
246 : : void SetDoubleClickHdl( const Link& rLink );
247 : 0 : inline void SetFactory( const String& rFactory ) { aFactory = rFactory; }
248 : : String GetSelectEntry() const;
249 : : void ClearPage();
250 : 0 : inline void SetFocusOnBox() { aResultsLB.GrabFocus(); }
251 : 0 : inline sal_Bool HasFocusOnEdit() const { return aSearchED.HasChildPathFocus(); }
252 : 0 : inline String GetSearchText() const { return aSearchED.GetText(); }
253 : 0 : inline sal_Bool IsFullWordSearch() const { return aFullWordsCB.IsChecked(); }
254 : : sal_Bool OpenKeyword( const String& rKeyword );
255 : : };
256 : :
257 : : // class BookmarksTabPage_Impl -------------------------------------------
258 : :
259 : : class BookmarksBox_Impl : public ListBox
260 : : {
261 : : private:
262 : : void DoAction( sal_uInt16 nAction );
263 : :
264 : : public:
265 : : BookmarksBox_Impl( Window* pParent, const ResId& rResId );
266 : : ~BookmarksBox_Impl();
267 : :
268 : : virtual long Notify( NotifyEvent& rNEvt );
269 : : };
270 : :
271 [ # # ][ # # ]: 0 : class BookmarksTabPage_Impl : public HelpTabPage_Impl
[ # # ][ # # ]
272 : : {
273 : : private:
274 : : FixedText aBookmarksFT;
275 : : BookmarksBox_Impl aBookmarksBox;
276 : : PushButton aBookmarksPB;
277 : :
278 : : long nMinWidth;
279 : :
280 : : DECL_LINK(OpenHdl, void *);
281 : :
282 : : public:
283 : : BookmarksTabPage_Impl( Window* pParent, SfxHelpIndexWindow_Impl* _pIdxWin );
284 : :
285 : : virtual void Resize();
286 : : virtual void ActivatePage();
287 : : virtual Control* GetLastFocusControl();
288 : :
289 : : void SetDoubleClickHdl( const Link& rLink );
290 : : String GetSelectEntry() const;
291 : : void AddBookmarks( const String& rTitle, const String& rURL );
292 : 0 : inline void SetFocusOnBox() { aBookmarksBox.GrabFocus(); }
293 : : };
294 : :
295 : : // class SfxHelpIndexWindow_Impl -----------------------------------------
296 : :
297 : : class SfxHelpWindow_Impl;
298 : :
299 : : class SfxHelpIndexWindow_Impl : public Window
300 : : {
301 : : private:
302 : : ListBox aActiveLB;
303 : : FixedLine aActiveLine;
304 : :
305 : : TabControl aTabCtrl;
306 : : Timer aTimer;
307 : :
308 : : Link aSelectFactoryLink;
309 : : Link aPageDoubleClickLink;
310 : : Link aIndexKeywordLink;
311 : : String sKeyword;
312 : :
313 : : SfxHelpWindow_Impl* pParentWin;
314 : :
315 : : ContentTabPage_Impl* pCPage;
316 : : IndexTabPage_Impl* pIPage;
317 : : SearchTabPage_Impl* pSPage;
318 : : BookmarksTabPage_Impl* pBPage;
319 : :
320 : : long nMinWidth;
321 : : bool bWasCursorLeftOrRight;
322 : : bool bIsInitDone;
323 : :
324 : : void Initialize();
325 : : void SetActiveFactory();
326 : : HelpTabPage_Impl* GetCurrentPage( sal_uInt16& rCurId );
327 : :
328 : : inline ContentTabPage_Impl* GetContentPage();
329 : : inline IndexTabPage_Impl* GetIndexPage();
330 : : inline SearchTabPage_Impl* GetSearchPage();
331 : : inline BookmarksTabPage_Impl* GetBookmarksPage();
332 : :
333 : : DECL_LINK( ActivatePageHdl, TabControl* );
334 : : DECL_LINK(SelectHdl, void *);
335 : : DECL_LINK(InitHdl, void *);
336 : : DECL_LINK(SelectFactoryHdl, void *);
337 : : DECL_LINK(KeywordHdl, void *);
338 : :
339 : : public:
340 : : SfxHelpIndexWindow_Impl( SfxHelpWindow_Impl* pParent );
341 : : ~SfxHelpIndexWindow_Impl();
342 : :
343 : : virtual void Resize();
344 : : virtual long PreNotify( NotifyEvent& rNEvt );
345 : : virtual void DataChanged( const DataChangedEvent& rDCEvt );
346 : :
347 : : void SetDoubleClickHdl( const Link& rLink );
348 : 0 : inline void SetSelectFactoryHdl( const Link& rLink ) { aSelectFactoryLink = rLink; }
349 : : void SetFactory( const String& rFactory, sal_Bool bActive );
350 : 0 : inline String GetFactory() const { return pIPage->GetFactory(); }
351 : : String GetSelectEntry() const;
352 : : void AddBookmarks( const String& rTitle, const String& rURL );
353 : : bool IsValidFactory( const String& _rFactory );
354 : 0 : inline String GetActiveFactoryTitle() const { return aActiveLB.GetSelectEntry(); }
355 : : inline void UpdateTabControl() { aTabCtrl.Invalidate(); }
356 : : void ClearSearchPage();
357 : : void GrabFocusBack();
358 : : sal_Bool HasFocusOnEdit() const;
359 : : String GetSearchText() const;
360 : : sal_Bool IsFullWordSearch() const;
361 : : void OpenKeyword( const String& rKeyword );
362 : : void SelectExecutableEntry();
363 : : inline bool WasCursorLeftOrRight();
364 : : };
365 : :
366 : : // inlines ---------------------------------------------------------------
367 : :
368 : 0 : ContentTabPage_Impl* SfxHelpIndexWindow_Impl::GetContentPage()
369 : : {
370 [ # # ]: 0 : if ( !pCPage )
371 : : {
372 [ # # ]: 0 : pCPage = new ContentTabPage_Impl( &aTabCtrl, this );
373 : 0 : pCPage->SetOpenHdl( aPageDoubleClickLink );
374 : : }
375 : 0 : return pCPage;
376 : : }
377 : 0 : IndexTabPage_Impl* SfxHelpIndexWindow_Impl::GetIndexPage()
378 : : {
379 [ # # ]: 0 : if ( !pIPage )
380 : : {
381 [ # # ]: 0 : pIPage = new IndexTabPage_Impl( &aTabCtrl, this );
382 : 0 : pIPage->SetDoubleClickHdl( aPageDoubleClickLink );
383 : 0 : pIPage->SetKeywordHdl( aIndexKeywordLink );
384 : : }
385 : 0 : return pIPage;
386 : : }
387 : :
388 : 0 : SearchTabPage_Impl* SfxHelpIndexWindow_Impl::GetSearchPage()
389 : : {
390 [ # # ]: 0 : if ( !pSPage )
391 : : {
392 [ # # ]: 0 : pSPage = new SearchTabPage_Impl( &aTabCtrl, this );
393 : 0 : pSPage->SetDoubleClickHdl( aPageDoubleClickLink );
394 : : }
395 : 0 : return pSPage;
396 : : }
397 : :
398 : 0 : BookmarksTabPage_Impl* SfxHelpIndexWindow_Impl::GetBookmarksPage()
399 : : {
400 [ # # ]: 0 : if ( !pBPage )
401 : : {
402 [ # # ]: 0 : pBPage = new BookmarksTabPage_Impl( &aTabCtrl, this );
403 : 0 : pBPage->SetDoubleClickHdl( aPageDoubleClickLink );
404 : : }
405 : 0 : return pBPage;
406 : : }
407 : :
408 : 0 : bool SfxHelpIndexWindow_Impl::WasCursorLeftOrRight()
409 : : {
410 : 0 : bool bRet = bWasCursorLeftOrRight;
411 : 0 : bWasCursorLeftOrRight = false;
412 : 0 : return bRet;
413 : : }
414 : :
415 : : // class TextWin_Impl ----------------------------------------------------
416 : :
417 : : class TextWin_Impl : public DockingWindow
418 : : {
419 : : public:
420 : : TextWin_Impl( Window* pParent );
421 : : virtual ~TextWin_Impl();
422 : :
423 : : virtual long Notify( NotifyEvent& rNEvt );
424 : : };
425 : :
426 : : // class SfxHelpTextWindow_Impl ------------------------------------------
427 : :
428 : : class SvtMiscOptions;
429 : : class SfxHelpWindow_Impl;
430 : :
431 : : class SfxHelpTextWindow_Impl : public Window
432 : : {
433 : : private:
434 : : ToolBox aToolBox;
435 : : CheckBox aOnStartupCB;
436 : : Timer aSelectTimer;
437 : : Image aIndexOnImage;
438 : : Image aIndexOffImage;
439 : : String aIndexOnText;
440 : : String aIndexOffText;
441 : : String aSearchText;
442 : : String aOnStartupText;
443 : : ::rtl::OUString sCurrentFactory;
444 : :
445 : : SfxHelpWindow_Impl* pHelpWin;
446 : : Window* pTextWin;
447 : : sfx2::SearchDialog* pSrchDlg;
448 : : ::com::sun::star::uno::Reference < ::com::sun::star::frame::XFrame >
449 : : xFrame;
450 : : ::com::sun::star::uno::Reference< ::com::sun::star::i18n::XBreakIterator >
451 : : xBreakIterator;
452 : : ::com::sun::star::uno::Reference< ::com::sun::star::uno::XInterface >
453 : : xConfiguration;
454 : : long nMinPos;
455 : : sal_Bool bIsDebug;
456 : : sal_Bool bIsIndexOn;
457 : : sal_Bool bIsInClose;
458 : : sal_Bool bIsFullWordSearch;
459 : :
460 : : sal_Bool HasSelection() const;
461 : : void InitToolBoxImages();
462 : : void InitOnStartupBox( bool bOnlyText );
463 : : void SetOnStartupBoxPosition();
464 : :
465 : : ::com::sun::star::uno::Reference< ::com::sun::star::i18n::XBreakIterator >
466 : : GetBreakIterator();
467 : : ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange >
468 : : getCursor() const;
469 : : bool isHandledKey( const KeyCode& _rKeyCode );
470 : :
471 : : DECL_LINK(SelectHdl, void *);
472 : : DECL_LINK( NotifyHdl, SvtMiscOptions* );
473 : : DECL_LINK( FindHdl, sfx2::SearchDialog* );
474 : : DECL_LINK( CloseHdl, sfx2::SearchDialog* );
475 : : DECL_LINK( CheckHdl, CheckBox* );
476 : :
477 : : public:
478 : : SfxHelpTextWindow_Impl( SfxHelpWindow_Impl* pParent );
479 : : ~SfxHelpTextWindow_Impl();
480 : :
481 : : virtual void Resize();
482 : : virtual long PreNotify( NotifyEvent& rNEvt );
483 : : virtual void GetFocus();
484 : : virtual void DataChanged( const DataChangedEvent& rDCEvt );
485 : :
486 : : inline ::com::sun::star::uno::Reference < ::com::sun::star::frame::XFrame >
487 : 0 : getFrame() const { return xFrame; }
488 : :
489 : 0 : inline void SetSelectHdl( const Link& rLink ) { aToolBox.SetSelectHdl( rLink ); }
490 : : void ToggleIndex( sal_Bool bOn );
491 : : void SelectSearchText( const String& rSearchText, sal_Bool _bIsFullWordSearch );
492 : : void SetPageStyleHeaderOff() const;
493 : 0 : inline ToolBox& GetToolBox() { return aToolBox; }
494 : : void CloseFrame();
495 : : void DoSearch();
496 : : };
497 : :
498 : : // class SfxHelpWindow_Impl ----------------------------------------------
499 : :
500 : : class HelpInterceptor_Impl;
501 : : class HelpListener_Impl;
502 : : class SfxHelpWindow_Impl : public SplitWindow
503 : : {
504 : : private:
505 : : friend class SfxHelpIndexWindow_Impl;
506 : :
507 : : ::com::sun::star::uno::Reference < ::com::sun::star::awt::XWindow >
508 : : xWindow;
509 : : ::com::sun::star::uno::Reference < ::com::sun::star::frame::XDispatchResultListener >
510 : : xOpenListener;
511 : : ::com::sun::star::uno::Reference < ::com::sun::star::frame::XFrame >
512 : : xFrame;
513 : :
514 : : SfxHelpIndexWindow_Impl* pIndexWin;
515 : : SfxHelpTextWindow_Impl* pTextWin;
516 : : HelpInterceptor_Impl* pHelpInterceptor;
517 : : HelpListener_Impl* pHelpListener;
518 : :
519 : : sal_Int32 nExpandWidth;
520 : : sal_Int32 nCollapseWidth;
521 : : sal_Int32 nHeight;
522 : : long nIndexSize;
523 : : long nTextSize;
524 : : sal_Bool bIndex;
525 : : sal_Bool bGrabFocusToToolBox;
526 : : Point aWinPos;
527 : : String sTitle;
528 : : String sKeyword;
529 : :
530 : : virtual void Resize();
531 : : virtual void Split();
532 : : virtual void GetFocus();
533 : :
534 : : void MakeLayout();
535 : : void InitSizes();
536 : : void LoadConfig();
537 : : void SaveConfig();
538 : : void ShowStartPage();
539 : :
540 : : DECL_LINK( SelectHdl, ToolBox* );
541 : : DECL_LINK(OpenHdl, void *);
542 : : DECL_LINK( SelectFactoryHdl, SfxHelpIndexWindow_Impl* );
543 : : DECL_LINK( ChangeHdl, HelpListener_Impl* );
544 : :
545 : : public:
546 : : SfxHelpWindow_Impl( const ::com::sun::star::uno::Reference < ::com::sun::star::frame::XFrame >& rFrame,
547 : : Window* pParent, WinBits nBits );
548 : : ~SfxHelpWindow_Impl();
549 : :
550 : : virtual long PreNotify( NotifyEvent& rNEvt );
551 : :
552 : : void setContainerWindow(
553 : : ::com::sun::star::uno::Reference < ::com::sun::star::awt::XWindow > xWin );
554 : : inline ::com::sun::star::uno::Reference < ::com::sun::star::frame::XFrame >
555 : 0 : getTextFrame() const { return pTextWin->getFrame(); }
556 : : inline ::com::sun::star::uno::Reference < ::com::sun::star::frame::XDispatchResultListener >
557 : : getOpenListener() const { return xOpenListener; }
558 : :
559 : : void SetFactory( const String& rFactory );
560 : : void SetHelpURL( const String& rURL );
561 : : void DoAction( sal_uInt16 nActionId );
562 : : void CloseWindow();
563 : :
564 : : void UpdateToolbox();
565 : 0 : inline void OpenKeyword( const String& rKeyword ) { pIndexWin->OpenKeyword( rKeyword ); }
566 : : inline String GetFactory() const { return pIndexWin->GetFactory(); }
567 : :
568 : : sal_Bool HasHistoryPredecessor() const; // forward to interceptor
569 : : sal_Bool HasHistorySuccessor() const; // forward to interceptor
570 : :
571 : : void openDone(const ::rtl::OUString& sURL ,
572 : : sal_Bool bSuccess);
573 : :
574 : : static ::rtl::OUString buildHelpURL(const ::rtl::OUString& sFactory ,
575 : : const ::rtl::OUString& sContent ,
576 : : const ::rtl::OUString& sAnchor ,
577 : : sal_Bool bUseQuestionMark);
578 : :
579 : : void loadHelpContent(const ::rtl::OUString& sHelpURL ,
580 : : sal_Bool bAddToHistory = sal_True);
581 : : };
582 : :
583 : : class SfxAddHelpBookmarkDialog_Impl : public ModalDialog
584 : : {
585 : : private:
586 : : FixedText aTitleFT;
587 : : Edit aTitleED;
588 : : OKButton aOKBtn;
589 : : CancelButton aEscBtn;
590 : : HelpButton aHelpBtn;
591 : :
592 : : public:
593 : : SfxAddHelpBookmarkDialog_Impl( Window* pParent, sal_Bool bRename = sal_True );
594 : : ~SfxAddHelpBookmarkDialog_Impl();
595 : :
596 : : void SetTitle( const String& rTitle );
597 : 0 : inline String GetTitle() const { return aTitleED.GetText(); }
598 : : };
599 : :
600 : : /// Appends ?Language=xy&System=abc to the help URL in rURL
601 : : void AppendConfigToken( String& rURL, sal_Bool bQuestionMark, const rtl::OUString &rLang = rtl::OUString() );
602 : :
603 : : #endif // #ifndef INCLUDED_SFX_NEWHELP_HXX
604 : :
605 : : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|