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