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/treelistbox.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( SvTreeListEntry* pParent );
82 :
83 : public:
84 : ContentListBox_Impl( Window* pParent, const ResId& rResId );
85 : ~ContentListBox_Impl();
86 :
87 :
88 : virtual void RequestingChildren( SvTreeListEntry* 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(OUStringBuffer& rURL, sal_Bool bQuestionMark, const OUString &rLang = rtl::OUString());
602 :
603 : #endif // #ifndef INCLUDED_SFX_NEWHELP_HXX
604 :
605 : /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
|