Update ooo320-m1
[ooovba.git] / svtools / inc / tabbar.hxx
blob6e0a51c31daef91291e6f8963edde9f5532856da
1 /*************************************************************************
3 * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
5 * Copyright 2008 by Sun Microsystems, Inc.
7 * OpenOffice.org - a multi-platform office productivity suite
9 * $RCSfile: tabbar.hxx,v $
10 * $Revision: 1.11 $
12 * This file is part of OpenOffice.org.
14 * OpenOffice.org is free software: you can redistribute it and/or modify
15 * it under the terms of the GNU Lesser General Public License version 3
16 * only, as published by the Free Software Foundation.
18 * OpenOffice.org is distributed in the hope that it will be useful,
19 * but WITHOUT ANY WARRANTY; without even the implied warranty of
20 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
21 * GNU Lesser General Public License version 3 for more details
22 * (a copy is included in the LICENSE file that accompanied this code).
24 * You should have received a copy of the GNU Lesser General Public License
25 * version 3 along with OpenOffice.org. If not, see
26 * <http://www.openoffice.org/license.html>
27 * for a copy of the LGPLv3 License.
29 ************************************************************************/
31 #ifndef _TABBAR_HXX
32 #define _TABBAR_HXX
34 #include "svtools/svtdllapi.h"
35 #include <tools/link.hxx>
36 #include <vcl/window.hxx>
38 class MouseEvent;
39 class TrackingEvent;
40 class DataChangedEvent;
41 class ImplTabBarList;
42 class ImplTabButton;
43 class ImplTabSizer;
44 class TabBarEdit;
46 // -----------------
47 // - Dokumentation -
48 // -----------------
52 Erlaubte StyleBits
53 ------------------
55 WB_SCROLL - Die Tabs koennen ueber ein Extra-Feld gescrollt werden
56 WB_MINSCROLL - Die Tabs koennen ueber 2 zusaetzliche Buttons gescrollt werden
57 WB_RANGESELECT - Zusammenhaengende Bereiche koennen selektiert werden
58 WB_MULTISELECT - Einzelne Tabs koennen selektiert werden
59 WB_BORDER - Oben und unten wird ein Strich gezeichnet
60 WB_TOPBORDER - Oben wird ein Border gezeichnet
61 WB_3DTAB - Die Tabs und der Border werden in 3D gezeichnet
62 WB_DRAG - Vom TabBar wird ein StartDrag-Handler gerufen, wenn
63 Drag and Drop gestartet werden soll. Es wird ausserdem
64 im TabBar mit EnableDrop() Drag and Drop eingeschaltet.
65 WB_SIZEABLE - Vom TabBar wird ein Split-Handler gerufen, wenn der Anwender
66 den TabBar in der Breite aendern will
67 WB_STDTABBAR - WB_BORDER
69 Wenn man den TabBar zum Beispiel als Property-Bar benutzen moechte, sollten
70 die WinBits WB_TOPBORDER und WB_3DTAB anstatt WB_BORDER gesetzt werden.
73 Erlaubte PageBits
74 -----------------
76 TPB_SPECIAL - Andere Darstellung des TabTextes, zum Beispiel fuer
77 Szenario-Seiten.
80 Handler
81 -------
83 Select - Wird gerufen, wenn eine Tab selektiert oder
84 deselektiert wird
85 DoubleClick - Wird gerufen, wenn ein DoubleClick im TabBar ausgeloest
86 wurde. Innerhalb des Handlers liefert GetCurPageId() die
87 angeklickte Tab zurueck oder 0, wenn keine Tab angeklickt
88 wurde
89 ActivatePage - Wird gerufen, wenn eine andere Seite aktiviert wird.
90 GetCurPageId() gibt die aktivierte Seite zurueck.
91 DeactivatePage - Wird gerufen, wenn eine Seite deaktiviert wird. Wenn
92 eine andere Seite aktiviert werden darf, muss TRUE
93 zurueckgegeben werden, wenn eine andere Seite von
94 der Aktivierung ausgeschlossen werden soll, muss
95 FALSE zurueckgegeben werden. GetCurPageId() gibt die
96 zu deaktivierende Seite zurueck.
100 Drag and Drop
101 -------------
103 Fuer Drag and Drop muss das WinBit WB_DRAG gesetzt werden. Ausserdem
104 muss der Command-, QueryDrop-Handler und der Drop-Handler ueberlagert
105 werden. Dabei muss in den Handlern folgendes implementiert werden:
107 Command - Wenn in diesem Handler das Dragging gestartet werden
108 soll, muss StartDrag() gerufen werden. Diese Methode
109 selektiert dann den entsprechenden Eintrag oder gibt
110 FALSE zurueck, wenn das Dragging nicht durchgefuhert
111 werden kann.
113 QueryDrop - Dieser Handler wird von StarView immer dann gerufen, wenn
114 bei einem Drag-Vorgang die Maus ueber das Fenster gezogen
115 wird (siehe dazu auch SV-Doku). In diesem Handler muss
116 festgestellt werden, ob ein Drop moeglich ist. Die
117 Drop-Position kann im TabBar mit ShowDropPos() angezeigt
118 werden. Beim Aufruf muss die Position vom Event uebergeben
119 werden. Wenn sich die Position am linken oder rechten
120 Rand befindet, wird automatisch im TabBar gescrollt.
121 Diese Methode gibt auch die entsprechende Drop-Position
122 zurueck, die auch fuer ein Drop gebraucht wird. Wenn das
123 Fenster beim Drag verlassen wird, kann mit HideDropPos()
124 die DropPosition wieder weggenommen werden. Es ist dadurch
125 auch moeglich, ein von ausserhalb des TabBars ausgeloestes
126 Drag zu verarbeiten.
128 Drop - Im Drop-Handler muessen dann die Pages verschoben werden,
129 oder die neuen Pages eingefuegt werden. Die entsprechende
130 Drop-Postion kann mit ShowDropPos() ermittelt werden.
132 Folgende Methoden werden fuer Drag and Drop gebraucht und muessen von
133 den Handlern gerufen werden:
135 StartDrag - Muss aus dem Commnad-Handler gerufen werden. Als Parameter
136 muss der CommandEvent uebergeben werden und eine Referenz
137 auf eine Region. Diese Region muss dann bei ExecuteDrag()
138 uebergeben werden, wenn der Rueckgabewert sagt, das
139 ExecuteDrag durchgefuehrt werden soll. Falls der Eintrag
140 nicht selektiert ist, wird er vorher als aktueller
141 Eintrag gesetzt. Es ist daher darauf zu achten, das aus
142 dieser Methode heraus der Select-Handler gerufen werden
143 kann.
145 ShowDropPos - Diese Methode muss vom QueryDrop-Handler gerufen werden,
146 damit der TabBar anzeigt, wo die Tabs eingefuegt werden.
147 Diese Methode kann auch im Drop-Handler benutzt werden,
148 um die Position zu ermitteln wo die Tabs eingefuegt werden
149 sollen. In der Methode muss die Position vom Event
150 uebergeben werden. Diese Methode gibt die Position zurueck,
151 wo die Tabs eingefuegt werden sollen.
153 HideDropPos - Diese Methode nimmt die vorher mit ShowDropPos() angezeigte
154 DropPosition wieder zurueck. Diese Methode sollte dann
155 gerufen werden, wenn bei QueryDrop() das Fenster verlassen
156 wird oder der Dragvorgang beendet wurde.
158 Folgende Methoden koennen eingesetzt werden, wenn bei D&D die Seiten
159 umgeschaltet werden sollen:
161 SwitchPage - Diese Methode muss vom QueryDrop-Handler gerufen werden,
162 wenn die Seite ueber der sich der Mousepointer befindet,
163 umgeschaltet werden soll. Diese Methode sollte jedesmal
164 gerufen werden, wenn der QueryDrop-Handler gerufen wird.
165 Das umschalten der Seite passiert zeitverzoegert (500 ms)
166 und wird automatisch von dieser Methode verwaltet.
167 In der Methode muss die Position vom Event uebergeben
168 werden. Diese Methode gibt TRUE zurueck, wenn die Page
169 umgeschaltet wurde.
171 EndSwitchPage - Diese Methode setzt die Daten fuer das umschalten der
172 Seiten zurueck. Diese Methode sollte dann gerufen werden,
173 wenn bei QueryDrop() das Fenster verlassen wird oder
174 der Dragvorgang beendet wurde.
176 IsInSwitching - Mit dieser Methode kann im ActivatePage()/DeactivatePage()
177 abgefragt werden, ob dies durch SwitchPage() veranlasst
178 wurde. So kann dann beispielsweise in DeactivatePage()
179 das Umschalten ohne eine Fehlerbox verhindert werden.
182 Fenster-Resize
183 --------------
185 Wenn das Fenster vom Anwender in der Breite geaendert werden kann, dann
186 muss das WinBit WB_SIZEABLE gesetzt werden. In diesem Fall muss noch
187 folgender Handler ueberlagert werden:
189 Split - Wenn dieser Handler gerufen wird, sollte das Fenster
190 auf die Breite angepasst werden, die von GetSplitSize()
191 zurueckgegeben wird. Dabei wird keine minimale und
192 maximale Breite beruecksichtig. Eine minimale Breite
193 kann mit GetMinSize() abgefragt werden und die maximale
194 Breite muss von der Anwendung selber berechnet werden.
195 Da nur Online-Resize unterstuetzt wird, muss das Fenster
196 innerhalb dieses Handlers in der Breite geaendert
197 werden und eventuell abhaengige Fenster ebenfalls. Fuer
198 diesen Handler kann auch mit SetSplitHdl() ein
199 Link gesetzt werden.
201 Folgende Methoden liefern beim Splitten weitere Informationen:
203 GetSplitSize() - Liefert die Breite des TabBars zurueck, auf die der
204 Anwender das Fenster resizen will. Dabei wird keine
205 minimale oder maximale Breite beruecksichtigt. Es wird
206 jedoch nie eine Breite < 5 zurueckgeliefert. Diese Methode
207 liefert nur solange richtige Werte, wie Splitten aktiv
208 ist.
210 GetMinSize() - Mit dieser Methode kann eine minimale Fensterbreite
211 abgefragt werden, so das min. etwas eines Tabs sichtbar
212 ist. Jedoch kann der TabBar immer noch schmaler gesetzt
213 werden, als die Breite, die diese Methode zurueckliefert.
214 Diese Methode kann auch aufgerufen werden, wenn kein
215 Splitten aktiv ist.
218 Edit-Modus
219 ----------
221 Der Tabbar bietet auch Moeglichkeiten, das der Anwender in den Tabreitern
222 die Namen aendern kann.
224 EnableEditMode - Damit kann eingestellt werden, das bei Alt+LeftClick
225 StartEditMode() automatisch vom TabBar gerufen wird.
226 Im StartRenaming()-Handler kann dann das Umbenennen
227 noch abgelehnt werden.
228 StartEditMode - Mit dieser Methode wird der EditModus auf einem
229 Tab gestartet. FALSE wird zurueckgegeben, wenn
230 der Editmodus schon aktiv ist, mit StartRenaming()
231 der Modus abgelehnt wurde oder kein Platz zum
232 Editieren vorhanden ist.
233 EndEditMode - Mit dieser Methode wird der EditModus beendet.
234 SetEditText - Mit dieser Methode kann der Text im AllowRenaming()-
235 Handler noch durch einen anderen Text ersetzt werden.
236 GetEditText - Mit dieser Methode kann im AllowRenaming()-Handler
237 der Text abgefragt werden, den der Anwender eingegeben
238 hat.
239 IsInEditMode - Mit dieser Methode kann abgefragt werden, ob der
240 Editmodus aktiv ist.
241 IsEditModeCanceled - Mit dieser Methode kann im EndRenaming()-
242 Handler abgefragt werden, ob die Umbenenung
243 abgebrochen wurde.
244 GetEditPageId - Mit dieser Methode wird in den Renaming-Handlern
245 abgefragt, welcher Tab umbenannt wird/wurde.
247 StartRenaming() - Dieser Handler wird gerufen, wenn ueber StartEditMode()
248 der Editmodus gestartet wurde. Mit GetEditPageId()
249 kann abgefragt werden, welcher Tab umbenannt werden
250 soll. FALSE sollte zurueckgegeben werden, wenn
251 der Editmodus nicht gestartet werden soll.
252 AllowRenaming() - Dieser Handler wird gerufen, wenn der Editmodus
253 beendet wird (nicht bei Cancel). In diesem Handler
254 kann dann getestet werden, ob der Text OK ist.
255 Mit GetEditPageId() kann abgefragt werden, welcher Tab
256 umbenannt wurde.
257 Es sollte einer der folgenden Werte zurueckgegeben
258 werden:
259 TAB_RENAMING_YES
260 Der Tab wird umbenannt.
261 TAB_RENAMING_NO
262 Der Tab wird nicht umbenannt, der Editmodus bleibt
263 jedoch aktiv, so das der Anwender den Namen
264 entsprechent anpassen kann.
265 TAB_RENAMING_CANCEL
266 Der Editmodus wird abgebrochen und der alte
267 Text wieder hergestellt.
268 EndRenaming() - Dieser Handler wird gerufen, wenn der Editmodus
269 beendet wurde. Mit GetEditPageId() kann abgefragt
270 werden, welcher Tab umbenannt wurde. Mit
271 IsEditModeCanceled() kann abgefragt werden, ob der
272 Modus abgebrochen wurde und der Name dadurch nicht
273 geaendert wurde.
276 Maximale Pagebreite
277 -------------------
279 Die Pagebreite der Tabs kann begrenzt werden, damit ein einfacheres
280 Navigieren ueber diese moeglich ist. Wenn der Text dann nicht komplett
281 angezeigt werden kann, wird er mit ... abgekuerzt und in der Tip-
282 oder der aktiven Hilfe (wenn kein Hilfetext gesetzt ist) wird dann der
283 ganze Text angezeigt. Mit EnableAutoMaxPageWidth() kann eingestellt
284 werden, ob die maximale Pagebreite sich nach der gerade sichtbaren
285 Breite richten soll (ist der default). Ansonsten kann auch die
286 maximale Pagebreite mit SetMaxPageWidth() (in Pixeln) gesetzt werden
287 (die AutoMaxPageWidth wird dann ignoriert).
290 KontextMenu
291 -----------
293 Wenn ein kontextsensitives PopupMenu anzeigt werden soll, muss der
294 Command-Handler ueberlagert werden. Mit GetPageId() und bei
295 Uebergabe der Mausposition kann ermittelt werden, ob der Mausclick
296 ueber einem bzw. ueber welchem Item durchgefuehrt wurde.
299 // -----------
300 // - WinBits -
301 // -----------
303 #define WB_RANGESELECT ((WinBits)0x00200000)
304 #define WB_MULTISELECT ((WinBits)0x00400000)
305 #define WB_TOPBORDER ((WinBits)0x04000000)
306 #define WB_3DTAB ((WinBits)0x08000000)
307 #define WB_MINSCROLL ((WinBits)0x20000000)
308 #define WB_STDTABBAR WB_BORDER
310 // ------------------
311 // - TabBarPageBits -
312 // ------------------
314 typedef USHORT TabBarPageBits;
316 // -------------------------
317 // - Bits fuer TabBarPages -
318 // -------------------------
320 #define TPB_SPECIAL ((TabBarPageBits)0x0001)
322 // ----------------
323 // - TabBar-Types -
324 // ----------------
326 #define TABBAR_APPEND ((USHORT)0xFFFF)
327 #define TABBAR_PAGE_NOTFOUND ((USHORT)0xFFFF)
329 #define TABBAR_RENAMING_YES ((long)TRUE)
330 #define TABBAR_RENAMING_NO ((long)FALSE)
331 #define TABBAR_RENAMING_CANCEL ((long)2)
333 // ----------
334 // - TabBar -
335 // ----------
336 struct TabBar_Impl;
338 class SVT_DLLPUBLIC TabBar : public Window
340 friend class ImplTabButton;
341 friend class ImplTabSizer;
343 private:
344 ImplTabBarList* mpItemList;
345 ImplTabButton* mpFirstBtn;
346 ImplTabButton* mpPrevBtn;
347 ImplTabButton* mpNextBtn;
348 ImplTabButton* mpLastBtn;
349 TabBar_Impl* mpImpl;
350 TabBarEdit* mpEdit;
351 XubString maEditText;
352 Color maSelColor;
353 Color maSelTextColor;
354 Size maWinSize;
355 long mnMaxPageWidth;
356 long mnCurMaxWidth;
357 long mnOffX;
358 long mnOffY;
359 long mnLastOffX;
360 long mnSplitSize;
361 ULONG mnSwitchTime;
362 WinBits mnWinStyle;
363 USHORT mnCurPageId;
364 USHORT mnFirstPos;
365 USHORT mnDropPos;
366 USHORT mnSwitchId;
367 USHORT mnEditId;
368 BOOL mbFormat;
369 BOOL mbFirstFormat;
370 BOOL mbSizeFormat;
371 BOOL mbAutoMaxWidth;
372 BOOL mbInSwitching;
373 BOOL mbAutoEditMode;
374 BOOL mbEditCanceled;
375 BOOL mbDropPos;
376 BOOL mbInSelect;
377 BOOL mbSelColor;
378 BOOL mbSelTextColor;
379 BOOL mbMirrored;
380 Link maSelectHdl;
381 Link maDoubleClickHdl;
382 Link maSplitHdl;
383 Link maActivatePageHdl;
384 Link maDeactivatePageHdl;
385 Link maStartRenamingHdl;
386 Link maAllowRenamingHdl;
387 Link maEndRenamingHdl;
389 using Window::ImplInit;
390 SVT_DLLPRIVATE void ImplInit( WinBits nWinStyle );
391 SVT_DLLPRIVATE void ImplInitSettings( BOOL bFont, BOOL bBackground );
392 SVT_DLLPRIVATE void ImplGetColors( Color& rFaceColor, Color& rFaceTextColor,
393 Color& rSelectColor, Color& rSelectTextColor );
394 SVT_DLLPRIVATE void ImplShowPage( USHORT nPos );
395 SVT_DLLPRIVATE BOOL ImplCalcWidth();
396 SVT_DLLPRIVATE void ImplFormat();
397 SVT_DLLPRIVATE USHORT ImplGetLastFirstPos();
398 SVT_DLLPRIVATE void ImplInitControls();
399 SVT_DLLPRIVATE void ImplEnableControls();
400 SVT_DLLPRIVATE void ImplSelect();
401 SVT_DLLPRIVATE void ImplActivatePage();
402 SVT_DLLPRIVATE long ImplDeactivatePage();
403 DECL_DLLPRIVATE_LINK( ImplClickHdl, ImplTabButton* );
405 public:
406 TabBar( Window* pParent, WinBits nWinStyle = WB_STDTABBAR );
407 virtual ~TabBar();
409 virtual void MouseMove( const MouseEvent& rMEvt );
410 virtual void MouseButtonDown( const MouseEvent& rMEvt );
411 virtual void MouseButtonUp( const MouseEvent& rMEvt );
412 virtual void Paint( const Rectangle& rRect );
413 virtual void Resize();
414 virtual void RequestHelp( const HelpEvent& rHEvt );
415 virtual void StateChanged( StateChangedType nStateChange );
416 virtual void DataChanged( const DataChangedEvent& rDCEvt );
418 virtual void Select();
419 virtual void DoubleClick();
420 virtual void Split();
421 virtual void ActivatePage();
422 virtual long DeactivatePage();
423 virtual long StartRenaming();
424 virtual long AllowRenaming();
425 virtual void EndRenaming();
426 virtual void Mirror();
428 void InsertPage( USHORT nPageId, const XubString& rText,
429 TabBarPageBits nBits = 0,
430 USHORT nPos = TABBAR_APPEND );
431 void RemovePage( USHORT nPageId );
432 void MovePage( USHORT nPageId, USHORT nNewPos );
434 Color GetTabBgColor( USHORT nPageId ) const;
435 void SetTabBgColor( USHORT nPageId, const Color& aTabBgColor );
436 BOOL IsDefaultTabBgColor( USHORT nPageId );
438 void Clear();
440 void EnablePage( USHORT nPageId, BOOL bEnable = TRUE );
441 BOOL IsPageEnabled( USHORT nPageId ) const;
443 void SetPageBits( USHORT nPageId, TabBarPageBits nBits = 0 );
444 TabBarPageBits GetPageBits( USHORT nPageId ) const;
446 USHORT GetPageCount() const;
447 USHORT GetPageId( USHORT nPos ) const;
448 USHORT GetPagePos( USHORT nPageId ) const;
449 USHORT GetPageId( const Point& rPos ) const;
450 Rectangle GetPageRect( USHORT nPageId ) const;
451 // returns the rectangle in which page tabs are drawn
452 Rectangle GetPageArea() const;
454 void SetCurPageId( USHORT nPageId );
455 USHORT GetCurPageId() const { return mnCurPageId; }
457 void SetFirstPageId( USHORT nPageId );
458 USHORT GetFirstPageId() const { return GetPageId( mnFirstPos ); }
459 void MakeVisible( USHORT nPageId );
461 void SelectPage( USHORT nPageId, BOOL bSelect = TRUE );
462 void SelectPageRange( BOOL bSelect = FALSE,
463 USHORT nStartPos = 0,
464 USHORT nEndPos = TABBAR_APPEND );
465 USHORT GetSelectPage( USHORT nSelIndex = 0 ) const;
466 USHORT GetSelectPageCount() const;
467 BOOL IsPageSelected( USHORT nPageId ) const;
469 void EnableAutoMaxPageWidth( BOOL bEnable = TRUE ) { mbAutoMaxWidth = bEnable; }
470 BOOL IsAutoMaxPageWidthEnabled() const { return mbAutoMaxWidth; }
471 void SetMaxPageWidth( long nMaxWidth );
472 long GetMaxPageWidth() const { return mnMaxPageWidth; }
473 void ResetMaxPageWidth() { SetMaxPageWidth( 0 ); }
474 BOOL IsMaxPageWidth() const { return mnMaxPageWidth != 0; }
476 void EnableEditMode( BOOL bEnable = TRUE ) { mbAutoEditMode = bEnable; }
477 BOOL IsEditModeEnabled() const { return mbAutoEditMode; }
478 BOOL StartEditMode( USHORT nPageId );
479 void EndEditMode( BOOL bCancel = FALSE );
480 void SetEditText( const XubString& rText ) { maEditText = rText; }
481 const XubString& GetEditText() const { return maEditText; }
482 BOOL IsInEditMode() const { return (mpEdit != NULL); }
483 BOOL IsEditModeCanceled() const { return mbEditCanceled; }
484 USHORT GetEditPageId() const { return mnEditId; }
486 /** Mirrors the entire control including position of buttons and splitter.
487 Mirroring is done relative to the current direction of the GUI.
488 @param bMirrored TRUE = the control will draw itself RTL in LTR GUI,
489 and vice versa; FALSE = the control behaves according to the
490 current direction of the GUI. */
491 void SetMirrored( BOOL bMirrored = TRUE );
492 /** Returns TRUE, if the control is set to mirrored mode (see SetMirrored()). */
493 BOOL IsMirrored() const { return mbMirrored; }
495 /** Sets the control to LTR or RTL mode regardless of the GUI direction.
496 @param bRTL FALSE = the control will draw from left to right;
497 TRUE = the control will draw from right to left. */
498 void SetEffectiveRTL( BOOL bRTL );
499 /** Returns TRUE, if the control draws from right to left (see SetEffectiveRTL()). */
500 BOOL IsEffectiveRTL() const;
502 BOOL StartDrag( const CommandEvent& rCEvt, Region& rRegion );
503 USHORT ShowDropPos( const Point& rPos );
504 void HideDropPos();
505 BOOL SwitchPage( const Point& rPos );
506 void EndSwitchPage();
507 BOOL IsInSwitching() { return mbInSwitching; }
509 void SetSelectColor();
510 void SetSelectColor( const Color& rColor );
511 const Color& GetSelectColor() const { return maSelColor; }
512 BOOL IsSelectColor() const { return mbSelColor; }
513 void SetSelectTextColor();
514 void SetSelectTextColor( const Color& rColor );
515 const Color& GetSelectTextColor() const { return maSelTextColor; }
516 BOOL IsSelectTextColor() const { return mbSelTextColor; }
518 void SetPageText( USHORT nPageId, const XubString& rText );
519 XubString GetPageText( USHORT nPageId ) const;
520 void SetHelpText( USHORT nPageId, const XubString& rText );
521 XubString GetHelpText( USHORT nPageId ) const;
522 void SetHelpId( USHORT nPageId, ULONG nHelpId );
523 ULONG GetHelpId( USHORT nPageId ) const;
525 long GetSplitSize() const { return mnSplitSize; }
526 long GetMinSize() const;
528 void SetHelpText( const XubString& rText )
529 { Window::SetHelpText( rText ); }
530 XubString GetHelpText() const
531 { return Window::GetHelpText(); };
532 void SetHelpId( ULONG nId )
533 { Window::SetHelpId( nId ); }
534 ULONG GetHelpId() const
535 { return Window::GetHelpId(); }
537 void SetStyle( WinBits nStyle );
538 WinBits GetStyle() const { return mnWinStyle; }
540 Size CalcWindowSizePixel() const;
542 void SetSelectHdl( const Link& rLink ) { maSelectHdl = rLink; }
543 const Link& GetSelectHdl() const { return maSelectHdl; }
544 void SetDoubleClickHdl( const Link& rLink ) { maDoubleClickHdl = rLink; }
545 const Link& GetDoubleClickHdl() const { return maDoubleClickHdl; }
546 void SetSplitHdl( const Link& rLink ) { maSplitHdl = rLink; }
547 const Link& GetSplitHdl() const { return maSplitHdl; }
548 void SetActivatePageHdl( const Link& rLink ) { maActivatePageHdl = rLink; }
549 const Link& GetActivatePageHdl() const { return maActivatePageHdl; }
550 void SetDeactivatePageHdl( const Link& rLink ) { maDeactivatePageHdl = rLink; }
551 const Link& GetDeactivatePageHdl() const { return maDeactivatePageHdl; }
552 void SetStartRenamingHdl( const Link& rLink ) { maStartRenamingHdl = rLink; }
553 const Link& GetStartRenamingHdl() const { return maStartRenamingHdl; }
554 void SetAllowRenamingHdl( const Link& rLink ) { maAllowRenamingHdl = rLink; }
555 const Link& GetAllowRenamingHdl() const { return maAllowRenamingHdl; }
556 void SetEndRenamingHdl( const Link& rLink ) { maEndRenamingHdl = rLink; }
557 const Link& GetEndRenamingHdl() const { return maEndRenamingHdl; }
559 // accessibility
560 virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > CreateAccessible();
563 #endif // _TABBAR_HXX