bump product version to 4.1.6.2
[LibreOffice.git] / include / svtools / tabbar.hxx
blob265723ecf8b8ee12d7c5a10a0e229a0f7893b454
1 /* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */
2 /*
3 * This file is part of the LibreOffice project.
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/.
9 * This file incorporates work covered by the following license notice:
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 .
20 #ifndef _TABBAR_HXX
21 #define _TABBAR_HXX
23 #include "svtools/svtdllapi.h"
24 #include <tools/link.hxx>
25 #include <vcl/window.hxx>
26 #include <vector>
28 class MouseEvent;
29 class TrackingEvent;
30 class DataChangedEvent;
31 class ImplTabButton;
32 class ImplTabSizer;
33 class TabBarEdit;
35 struct ImplTabBarItem;
36 typedef ::std::vector< ImplTabBarItem* > ImplTabBarList;
38 // -----------------
39 // - Dokumentation -
40 // -----------------
44 Erlaubte StyleBits
45 ------------------
47 WB_SCROLL - Die Tabs koennen ueber ein Extra-Feld gescrollt werden
48 WB_MINSCROLL - Die Tabs koennen ueber 2 zusaetzliche Buttons gescrollt werden
49 WB_RANGESELECT - Zusammenhaengende Bereiche koennen selektiert werden
50 WB_MULTISELECT - Einzelne Tabs koennen selektiert werden
51 WB_BORDER - Oben und unten wird ein Strich gezeichnet
52 WB_TOPBORDER - Oben wird ein Border gezeichnet
53 WB_3DTAB - Die Tabs und der Border werden in 3D gezeichnet
54 WB_DRAG - Vom TabBar wird ein StartDrag-Handler gerufen, wenn
55 Drag and Drop gestartet werden soll. Es wird ausserdem
56 im TabBar mit EnableDrop() Drag and Drop eingeschaltet.
57 WB_SIZEABLE - Vom TabBar wird ein Split-Handler gerufen, wenn der Anwender
58 den TabBar in der Breite aendern will
59 WB_STDTABBAR - WB_BORDER
61 Wenn man den TabBar zum Beispiel als Property-Bar benutzen moechte, sollten
62 die WinBits WB_TOPBORDER und WB_3DTAB anstatt WB_BORDER gesetzt werden.
65 Erlaubte PageBits
66 -----------------
68 TPB_SPECIAL - Andere Darstellung des TabTextes, zum Beispiel fuer
69 Szenario-Seiten.
72 Handler
73 -------
75 Select - Wird gerufen, wenn eine Tab selektiert oder
76 deselektiert wird
77 DoubleClick - Wird gerufen, wenn ein DoubleClick im TabBar ausgeloest
78 wurde. Innerhalb des Handlers liefert GetCurPageId() die
79 angeklickte Tab zurueck oder 0, wenn keine Tab angeklickt
80 wurde
81 ActivatePage - Wird gerufen, wenn eine andere Seite aktiviert wird.
82 GetCurPageId() gibt die aktivierte Seite zurueck.
83 DeactivatePage - Wird gerufen, wenn eine Seite deaktiviert wird. Wenn
84 eine andere Seite aktiviert werden darf, muss sal_True
85 zurueckgegeben werden, wenn eine andere Seite von
86 der Aktivierung ausgeschlossen werden soll, muss
87 sal_False zurueckgegeben werden. GetCurPageId() gibt die
88 zu deaktivierende Seite zurueck.
92 Drag and Drop
93 -------------
95 Fuer Drag and Drop muss das WinBit WB_DRAG gesetzt werden. Ausserdem
96 muss der Command-, QueryDrop-Handler und der Drop-Handler ueberlagert
97 werden. Dabei muss in den Handlern folgendes implementiert werden:
99 Command - Wenn in diesem Handler das Dragging gestartet werden
100 soll, muss StartDrag() gerufen werden. Diese Methode
101 selektiert dann den entsprechenden Eintrag oder gibt
102 sal_False zurueck, wenn das Dragging nicht durchgefuhert
103 werden kann.
105 QueryDrop - Dieser Handler wird von StarView immer dann gerufen, wenn
106 bei einem Drag-Vorgang die Maus ueber das Fenster gezogen
107 wird (siehe dazu auch SV-Doku). In diesem Handler muss
108 festgestellt werden, ob ein Drop moeglich ist. Die
109 Drop-Position kann im TabBar mit ShowDropPos() angezeigt
110 werden. Beim Aufruf muss die Position vom Event uebergeben
111 werden. Wenn sich die Position am linken oder rechten
112 Rand befindet, wird automatisch im TabBar gescrollt.
113 Diese Methode gibt auch die entsprechende Drop-Position
114 zurueck, die auch fuer ein Drop gebraucht wird. Wenn das
115 Fenster beim Drag verlassen wird, kann mit HideDropPos()
116 die DropPosition wieder weggenommen werden. Es ist dadurch
117 auch moeglich, ein von ausserhalb des TabBars ausgeloestes
118 Drag zu verarbeiten.
120 Drop - Im Drop-Handler muessen dann die Pages verschoben werden,
121 oder die neuen Pages eingefuegt werden. Die entsprechende
122 Drop-Postion kann mit ShowDropPos() ermittelt werden.
124 Folgende Methoden werden fuer Drag and Drop gebraucht und muessen von
125 den Handlern gerufen werden:
127 StartDrag - Muss aus dem Commnad-Handler gerufen werden. Als Parameter
128 muss der CommandEvent uebergeben werden und eine Referenz
129 auf eine Region. Diese Region muss dann bei ExecuteDrag()
130 uebergeben werden, wenn der Rueckgabewert sagt, das
131 ExecuteDrag durchgefuehrt werden soll. Falls der Eintrag
132 nicht selektiert ist, wird er vorher als aktueller
133 Eintrag gesetzt. Es ist daher darauf zu achten, das aus
134 dieser Methode heraus der Select-Handler gerufen werden
135 kann.
137 ShowDropPos - Diese Methode muss vom QueryDrop-Handler gerufen werden,
138 damit der TabBar anzeigt, wo die Tabs eingefuegt werden.
139 Diese Methode kann auch im Drop-Handler benutzt werden,
140 um die Position zu ermitteln wo die Tabs eingefuegt werden
141 sollen. In der Methode muss die Position vom Event
142 uebergeben werden. Diese Methode gibt die Position zurueck,
143 wo die Tabs eingefuegt werden sollen.
145 HideDropPos - Diese Methode nimmt die vorher mit ShowDropPos() angezeigte
146 DropPosition wieder zurueck. Diese Methode sollte dann
147 gerufen werden, wenn bei QueryDrop() das Fenster verlassen
148 wird oder der Dragvorgang beendet wurde.
150 Folgende Methoden koennen eingesetzt werden, wenn bei D&D die Seiten
151 umgeschaltet werden sollen:
153 SwitchPage - Diese Methode muss vom QueryDrop-Handler gerufen werden,
154 wenn die Seite ueber der sich der Mousepointer befindet,
155 umgeschaltet werden soll. Diese Methode sollte jedesmal
156 gerufen werden, wenn der QueryDrop-Handler gerufen wird.
157 Das umschalten der Seite passiert zeitverzoegert (500 ms)
158 und wird automatisch von dieser Methode verwaltet.
159 In der Methode muss die Position vom Event uebergeben
160 werden. Diese Methode gibt sal_True zurueck, wenn die Page
161 umgeschaltet wurde.
163 EndSwitchPage - Diese Methode setzt die Daten fuer das umschalten der
164 Seiten zurueck. Diese Methode sollte dann gerufen werden,
165 wenn bei QueryDrop() das Fenster verlassen wird oder
166 der Dragvorgang beendet wurde.
168 IsInSwitching - Mit dieser Methode kann im ActivatePage()/DeactivatePage()
169 abgefragt werden, ob dies durch SwitchPage() veranlasst
170 wurde. So kann dann beispielsweise in DeactivatePage()
171 das Umschalten ohne eine Fehlerbox verhindert werden.
174 Fenster-Resize
175 --------------
177 Wenn das Fenster vom Anwender in der Breite geaendert werden kann, dann
178 muss das WinBit WB_SIZEABLE gesetzt werden. In diesem Fall muss noch
179 folgender Handler ueberlagert werden:
181 Split - Wenn dieser Handler gerufen wird, sollte das Fenster
182 auf die Breite angepasst werden, die von GetSplitSize()
183 zurueckgegeben wird. Dabei wird keine minimale und
184 maximale Breite beruecksichtig. Eine minimale Breite
185 kann mit GetMinSize() abgefragt werden und die maximale
186 Breite muss von der Anwendung selber berechnet werden.
187 Da nur Online-Resize unterstuetzt wird, muss das Fenster
188 innerhalb dieses Handlers in der Breite geaendert
189 werden und eventuell abhaengige Fenster ebenfalls. Fuer
190 diesen Handler kann auch mit SetSplitHdl() ein
191 Link gesetzt werden.
193 Folgende Methoden liefern beim Splitten weitere Informationen:
195 GetSplitSize() - Liefert die Breite des TabBars zurueck, auf die der
196 Anwender das Fenster resizen will. Dabei wird keine
197 minimale oder maximale Breite beruecksichtigt. Es wird
198 jedoch nie eine Breite < 5 zurueckgeliefert. Diese Methode
199 liefert nur solange richtige Werte, wie Splitten aktiv
200 ist.
202 GetMinSize() - Mit dieser Methode kann eine minimale Fensterbreite
203 abgefragt werden, so das min. etwas eines Tabs sichtbar
204 ist. Jedoch kann der TabBar immer noch schmaler gesetzt
205 werden, als die Breite, die diese Methode zurueckliefert.
206 Diese Methode kann auch aufgerufen werden, wenn kein
207 Splitten aktiv ist.
210 Edit-Modus
211 ----------
213 Der Tabbar bietet auch Moeglichkeiten, das der Anwender in den Tabreitern
214 die Namen aendern kann.
216 EnableEditMode - Damit kann eingestellt werden, das bei Alt+LeftClick
217 StartEditMode() automatisch vom TabBar gerufen wird.
218 Im StartRenaming()-Handler kann dann das Umbenennen
219 noch abgelehnt werden.
220 StartEditMode - Mit dieser Methode wird der EditModus auf einem
221 Tab gestartet. sal_False wird zurueckgegeben, wenn
222 der Editmodus schon aktiv ist, mit StartRenaming()
223 der Modus abgelehnt wurde oder kein Platz zum
224 Editieren vorhanden ist.
225 EndEditMode - Mit dieser Methode wird der EditModus beendet.
226 SetEditText - Mit dieser Methode kann der Text im AllowRenaming()-
227 Handler noch durch einen anderen Text ersetzt werden.
228 GetEditText - Mit dieser Methode kann im AllowRenaming()-Handler
229 der Text abgefragt werden, den der Anwender eingegeben
230 hat.
231 IsInEditMode - Mit dieser Methode kann abgefragt werden, ob der
232 Editmodus aktiv ist.
233 IsEditModeCanceled - Mit dieser Methode kann im EndRenaming()-
234 Handler abgefragt werden, ob die Umbenenung
235 abgebrochen wurde.
236 GetEditPageId - Mit dieser Methode wird in den Renaming-Handlern
237 abgefragt, welcher Tab umbenannt wird/wurde.
239 StartRenaming() - Dieser Handler wird gerufen, wenn ueber StartEditMode()
240 der Editmodus gestartet wurde. Mit GetEditPageId()
241 kann abgefragt werden, welcher Tab umbenannt werden
242 soll. sal_False sollte zurueckgegeben werden, wenn
243 der Editmodus nicht gestartet werden soll.
244 AllowRenaming() - Dieser Handler wird gerufen, wenn der Editmodus
245 beendet wird (nicht bei Cancel). In diesem Handler
246 kann dann getestet werden, ob der Text OK ist.
247 Mit GetEditPageId() kann abgefragt werden, welcher Tab
248 umbenannt wurde.
249 Es sollte einer der folgenden Werte zurueckgegeben
250 werden:
251 TAB_RENAMING_YES
252 Der Tab wird umbenannt.
253 TAB_RENAMING_NO
254 Der Tab wird nicht umbenannt, der Editmodus bleibt
255 jedoch aktiv, so das der Anwender den Namen
256 entsprechent anpassen kann.
257 TAB_RENAMING_CANCEL
258 Der Editmodus wird abgebrochen und der alte
259 Text wieder hergestellt.
260 EndRenaming() - Dieser Handler wird gerufen, wenn der Editmodus
261 beendet wurde. Mit GetEditPageId() kann abgefragt
262 werden, welcher Tab umbenannt wurde. Mit
263 IsEditModeCanceled() kann abgefragt werden, ob der
264 Modus abgebrochen wurde und der Name dadurch nicht
265 geaendert wurde.
268 Maximale Pagebreite
269 -------------------
271 Die Pagebreite der Tabs kann begrenzt werden, damit ein einfacheres
272 Navigieren ueber diese moeglich ist. Wenn der Text dann nicht komplett
273 angezeigt werden kann, wird er mit ... abgekuerzt und in der Tip-
274 oder der aktiven Hilfe (wenn kein Hilfetext gesetzt ist) wird dann der
275 ganze Text angezeigt. Mit EnableAutoMaxPageWidth() kann eingestellt
276 werden, ob die maximale Pagebreite sich nach der gerade sichtbaren
277 Breite richten soll (ist der default). Ansonsten kann auch die
278 maximale Pagebreite mit SetMaxPageWidth() (in Pixeln) gesetzt werden
279 (die AutoMaxPageWidth wird dann ignoriert).
282 KontextMenu
283 -----------
285 Wenn ein kontextsensitives PopupMenu anzeigt werden soll, muss der
286 Command-Handler ueberlagert werden. Mit GetPageId() und bei
287 Uebergabe der Mausposition kann ermittelt werden, ob der Mausclick
288 ueber einem bzw. ueber welchem Item durchgefuehrt wurde.
291 // -----------
292 // - WinBits -
293 // -----------
295 #define WB_RANGESELECT ((WinBits)0x00200000)
296 #define WB_MULTISELECT ((WinBits)0x00400000)
297 #define WB_TOPBORDER ((WinBits)0x04000000)
298 #define WB_3DTAB ((WinBits)0x08000000)
299 #define WB_MINSCROLL ((WinBits)0x20000000)
300 #define WB_INSERTTAB ((WinBits)0x40000000)
301 #define WB_STDTABBAR WB_BORDER
303 // ------------------
304 // - TabBarPageBits -
305 // ------------------
307 typedef sal_uInt16 TabBarPageBits;
309 // -------------------------
310 // - Bits fuer TabBarPages -
311 // -------------------------
313 #define TPB_SPECIAL ((TabBarPageBits)0x0001)
315 // ----------------
316 // - TabBar-Types -
317 // ----------------
319 #define TABBAR_RENAMING_YES ((long)sal_True)
320 #define TABBAR_RENAMING_NO ((long)sal_False)
321 #define TABBAR_RENAMING_CANCEL ((long)2)
323 // ----------
324 // - TabBar -
325 // ----------
326 struct TabBar_Impl;
327 struct ImplTabBarItem;
329 class SVT_DLLPUBLIC TabBar : public Window
331 friend class ImplTabButton;
332 friend class ImplTabSizer;
334 private:
335 ImplTabBarList* mpItemList;
336 ImplTabButton* mpFirstBtn;
337 ImplTabButton* mpPrevBtn;
338 ImplTabButton* mpNextBtn;
339 ImplTabButton* mpLastBtn;
340 TabBar_Impl* mpImpl;
341 TabBarEdit* mpEdit;
342 OUString maEditText;
343 Color maSelColor;
344 Color maSelTextColor;
345 Size maWinSize;
346 long mnMaxPageWidth;
347 long mnCurMaxWidth;
348 long mnOffX;
349 long mnOffY;
350 long mnLastOffX;
351 long mnSplitSize;
352 sal_uLong mnSwitchTime;
353 WinBits mnWinStyle;
354 sal_uInt16 mnCurPageId;
355 sal_uInt16 mnFirstPos;
356 sal_uInt16 mnDropPos;
357 sal_uInt16 mnSwitchId;
358 sal_uInt16 mnEditId;
359 sal_Bool mbFormat;
360 sal_Bool mbFirstFormat;
361 sal_Bool mbSizeFormat;
362 sal_Bool mbAutoMaxWidth;
363 sal_Bool mbInSwitching;
364 sal_Bool mbAutoEditMode;
365 sal_Bool mbEditCanceled;
366 sal_Bool mbDropPos;
367 sal_Bool mbInSelect;
368 sal_Bool mbSelColor;
369 sal_Bool mbSelTextColor;
370 bool mbMirrored;
371 bool mbHasInsertTab; // if true, the tab bar has an extra tab at the end.
372 Link maSelectHdl;
373 Link maDoubleClickHdl;
374 Link maSplitHdl;
375 Link maActivatePageHdl;
376 Link maDeactivatePageHdl;
377 Link maStartRenamingHdl;
378 Link maAllowRenamingHdl;
379 Link maEndRenamingHdl;
380 size_t maCurrentItemList;
382 using Window::ImplInit;
383 SVT_DLLPRIVATE void ImplInit( WinBits nWinStyle );
384 SVT_DLLPRIVATE void ImplInitSettings( sal_Bool bFont, sal_Bool bBackground );
385 SVT_DLLPRIVATE void ImplGetColors( Color& rFaceColor, Color& rFaceTextColor,
386 Color& rSelectColor, Color& rSelectTextColor );
387 SVT_DLLPRIVATE void ImplShowPage( sal_uInt16 nPos );
388 SVT_DLLPRIVATE sal_Bool ImplCalcWidth();
389 SVT_DLLPRIVATE void ImplFormat();
390 SVT_DLLPRIVATE sal_uInt16 ImplGetLastFirstPos();
391 SVT_DLLPRIVATE void ImplInitControls();
392 SVT_DLLPRIVATE void ImplEnableControls();
393 SVT_DLLPRIVATE void ImplSelect();
394 SVT_DLLPRIVATE void ImplActivatePage();
395 SVT_DLLPRIVATE long ImplDeactivatePage();
396 SVT_DLLPRIVATE void ImplPrePaint();
397 SVT_DLLPRIVATE ImplTabBarItem* ImplGetLastTabBarItem( sal_uInt16 nItemCount );
398 SVT_DLLPRIVATE Rectangle ImplGetInsertTabRect(ImplTabBarItem* pItem) const;
399 DECL_DLLPRIVATE_LINK( ImplClickHdl, ImplTabButton* );
401 ImplTabBarItem* seek( size_t i );
402 ImplTabBarItem* prev();
403 ImplTabBarItem* next();
405 public:
406 static const sal_uInt16 APPEND;
407 static const sal_uInt16 PAGE_NOT_FOUND;
408 static const sal_uInt16 INSERT_TAB_POS;
410 TabBar( Window* pParent, WinBits nWinStyle = WB_STDTABBAR );
411 virtual ~TabBar();
413 virtual void MouseMove( const MouseEvent& rMEvt );
414 virtual void MouseButtonDown( const MouseEvent& rMEvt );
415 virtual void MouseButtonUp( const MouseEvent& rMEvt );
416 virtual void Paint( const Rectangle& rRect );
417 virtual void Resize();
418 virtual void RequestHelp( const HelpEvent& rHEvt );
419 virtual void StateChanged( StateChangedType nStateChange );
420 virtual void DataChanged( const DataChangedEvent& rDCEvt );
422 virtual void Select();
423 virtual void DoubleClick();
424 virtual void Split();
425 virtual void ActivatePage();
426 virtual long DeactivatePage();
427 virtual long StartRenaming();
428 virtual long AllowRenaming();
429 virtual void EndRenaming();
430 virtual void Mirror();
432 void InsertPage( sal_uInt16 nPageId, const OUString& rText,
433 TabBarPageBits nBits = 0,
434 sal_uInt16 nPos = TabBar::APPEND );
435 void RemovePage( sal_uInt16 nPageId );
436 void MovePage( sal_uInt16 nPageId, sal_uInt16 nNewPos );
438 Color GetTabBgColor( sal_uInt16 nPageId ) const;
439 void SetTabBgColor( sal_uInt16 nPageId, const Color& aTabBgColor );
440 sal_Bool IsDefaultTabBgColor( sal_uInt16 nPageId );
442 void Clear();
444 sal_Bool IsPageEnabled( sal_uInt16 nPageId ) const;
446 void SetPageBits( sal_uInt16 nPageId, TabBarPageBits nBits = 0 );
447 TabBarPageBits GetPageBits( sal_uInt16 nPageId ) const;
449 sal_uInt16 GetPageCount() const;
450 sal_uInt16 GetPageId( sal_uInt16 nPos ) const;
451 sal_uInt16 GetPagePos( sal_uInt16 nPageId ) const;
452 sal_uInt16 GetPageId( const Point& rPos, bool bCheckInsTab = false ) const;
453 Rectangle GetPageRect( sal_uInt16 nPageId ) const;
454 // returns the rectangle in which page tabs are drawn
455 Rectangle GetPageArea() const;
457 void SetCurPageId( sal_uInt16 nPageId );
458 sal_uInt16 GetCurPageId() const { return mnCurPageId; }
460 void SetFirstPageId( sal_uInt16 nPageId );
461 sal_uInt16 GetFirstPageId() const { return GetPageId( mnFirstPos ); }
462 void MakeVisible( sal_uInt16 nPageId );
464 void SelectPage( sal_uInt16 nPageId, sal_Bool bSelect = sal_True );
465 sal_uInt16 GetSelectPageCount() const;
466 sal_Bool IsPageSelected( sal_uInt16 nPageId ) const;
468 void EnableAutoMaxPageWidth( sal_Bool bEnable = sal_True ) { mbAutoMaxWidth = bEnable; }
469 sal_Bool IsAutoMaxPageWidthEnabled() const { return mbAutoMaxWidth; }
470 void SetMaxPageWidth( long nMaxWidth );
471 long GetMaxPageWidth() const { return mnMaxPageWidth; }
472 void ResetMaxPageWidth() { SetMaxPageWidth( 0 ); }
473 sal_Bool IsMaxPageWidth() const { return mnMaxPageWidth != 0; }
475 void EnableEditMode( sal_Bool bEnable = sal_True ) { mbAutoEditMode = bEnable; }
476 sal_Bool IsEditModeEnabled() const { return mbAutoEditMode; }
477 sal_Bool StartEditMode( sal_uInt16 nPageId );
478 void EndEditMode( sal_Bool bCancel = sal_False );
479 void SetEditText( const OUString& rText ) { maEditText = rText; }
480 const OUString& GetEditText() const { return maEditText; }
481 sal_Bool IsInEditMode() const { return (mpEdit != NULL); }
482 sal_Bool IsEditModeCanceled() const { return mbEditCanceled; }
483 sal_uInt16 GetEditPageId() const { return mnEditId; }
485 /** Mirrors the entire control including position of buttons and splitter.
486 Mirroring is done relative to the current direction of the GUI.
487 @param bMirrored sal_True = the control will draw itself RTL in LTR GUI,
488 and vice versa; sal_False = the control behaves according to the
489 current direction of the GUI. */
490 void SetMirrored(bool bMirrored = true);
491 /** Returns sal_True, if the control is set to mirrored mode (see SetMirrored()). */
492 bool IsMirrored() const { return mbMirrored; }
494 /** Sets the control to LTR or RTL mode regardless of the GUI direction.
495 @param bRTL sal_False = the control will draw from left to right;
496 sal_True = the control will draw from right to left. */
497 void SetEffectiveRTL( bool bRTL );
498 /** Returns true, if the control draws from right to left (see SetEffectiveRTL()). */
499 bool IsEffectiveRTL() const;
501 sal_Bool StartDrag( const CommandEvent& rCEvt, Region& rRegion );
502 sal_uInt16 ShowDropPos( const Point& rPos );
503 void HideDropPos();
504 sal_Bool SwitchPage( const Point& rPos );
505 void EndSwitchPage();
506 sal_Bool IsInSwitching() { return mbInSwitching; }
508 const Color& GetSelectColor() const { return maSelColor; }
509 sal_Bool IsSelectColor() const { return mbSelColor; }
510 const Color& GetSelectTextColor() const { return maSelTextColor; }
511 sal_Bool IsSelectTextColor() const { return mbSelTextColor; }
513 void SetPageText( sal_uInt16 nPageId, const OUString& rText );
514 OUString GetPageText( sal_uInt16 nPageId ) const;
515 XubString GetHelpText( sal_uInt16 nPageId ) const;
516 OString GetHelpId( sal_uInt16 nPageId ) const;
518 long GetSplitSize() const { return mnSplitSize; }
520 void SetHelpText( const XubString& rText )
521 { Window::SetHelpText( rText ); }
522 XubString GetHelpText() const
523 { return Window::GetHelpText(); };
524 void SetHelpId( const OString& rId )
525 { Window::SetHelpId( rId ); }
526 const OString& GetHelpId() const
527 { return Window::GetHelpId(); }
529 void SetStyle( WinBits nStyle );
530 WinBits GetStyle() const { return mnWinStyle; }
532 Size CalcWindowSizePixel() const;
534 void SetSelectHdl( const Link& rLink ) { maSelectHdl = rLink; }
535 const Link& GetSelectHdl() const { return maSelectHdl; }
536 void SetDoubleClickHdl( const Link& rLink ) { maDoubleClickHdl = rLink; }
537 const Link& GetDoubleClickHdl() const { return maDoubleClickHdl; }
538 void SetSplitHdl( const Link& rLink ) { maSplitHdl = rLink; }
539 const Link& GetSplitHdl() const { return maSplitHdl; }
540 void SetActivatePageHdl( const Link& rLink ) { maActivatePageHdl = rLink; }
541 const Link& GetActivatePageHdl() const { return maActivatePageHdl; }
542 void SetDeactivatePageHdl( const Link& rLink ) { maDeactivatePageHdl = rLink; }
543 const Link& GetDeactivatePageHdl() const { return maDeactivatePageHdl; }
544 void SetStartRenamingHdl( const Link& rLink ) { maStartRenamingHdl = rLink; }
545 const Link& GetStartRenamingHdl() const { return maStartRenamingHdl; }
546 void SetAllowRenamingHdl( const Link& rLink ) { maAllowRenamingHdl = rLink; }
547 const Link& GetAllowRenamingHdl() const { return maAllowRenamingHdl; }
548 void SetEndRenamingHdl( const Link& rLink ) { maEndRenamingHdl = rLink; }
549 const Link& GetEndRenamingHdl() const { return maEndRenamingHdl; }
551 // accessibility
552 virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > CreateAccessible();
555 #endif // _TABBAR_HXX
557 /* vim:set shiftwidth=4 softtabstop=4 expandtab: */