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 #ifndef _TABBAR_HXX 23 #define _TABBAR_HXX 24 25 #include "svtools/svtdllapi.h" 26 #include <tools/link.hxx> 27 #include <vcl/window.hxx> 28 29 class MouseEvent; 30 class TrackingEvent; 31 class DataChangedEvent; 32 class ImplTabBarList; 33 class ImplTabButton; 34 class ImplTabSizer; 35 class TabBarEdit; 36 37 // ----------------- 38 // - Dokumentation - 39 // ----------------- 40 41 /* 42 43 Erlaubte StyleBits 44 ------------------ 45 46 WB_SCROLL - Die Tabs können über ein Extra-Feld gescrollt werden 47 WB_MINSCROLL - Die Tabs können über 2 zusätzliche Buttons gescrollt werden 48 WB_RANGESELECT - Zusammenhängende Bereiche können selektiert werden 49 WB_MULTISELECT - Einzelne Tabs können selektiert werden 50 WB_BORDER - Oben und unten wird ein Strich gezeichnet 51 WB_TOPBORDER - Oben wird ein Border gezeichnet 52 WB_3DTAB - Die Tabs und der Border werden in 3D gezeichnet 53 WB_DRAG - Vom TabBar wird ein StartDrag-Handler gerufen, wenn 54 Drag and Drop gestartet werden soll. Es wird außerdem 55 im TabBar mit EnableDrop() Drag and Drop eingeschaltet. 56 WB_SIZEABLE - Vom TabBar wird ein Split-Handler gerufen, wenn der Anwender 57 den TabBar in der Breite ändern will 58 WB_STDTABBAR - WB_BORDER 59 60 Wenn man den TabBar zum Beispiel als Property-Bar benutzen möchte, sollten 61 die WinBits WB_TOPBORDER und WB_3DTAB anstatt WB_BORDER gesetzt werden. 62 63 64 Erlaubte PageBits 65 ----------------- 66 67 TPB_SPECIAL - Andere Darstellung des TabTextes, zum Beispiel für 68 Szenario-Seiten. 69 70 Handler 71 ------- 72 73 Select - Wird gerufen, wenn eine Tab selektiert oder 74 deselektiert wird 75 DoubleClick - Wird gerufen, wenn ein DoubleClick im TabBar ausgelöst 76 wurde. Innerhalb des Handlers liefert GetCurPageId() die 77 angeklickte Tab zurück oder 0, wenn keine Tab angeklickt 78 wurde 79 ActivatePage - Wird gerufen, wenn eine andere Seite aktiviert wird. 80 GetCurPageId() gibt die aktivierte Seite zurück. 81 DeactivatePage - Wird gerufen, wenn eine Seite deaktiviert wird. Wenn 82 eine andere Seite aktiviert werden darf, muss sal_True 83 zurückgegeben werden, wenn eine andere Seite von 84 der Aktivierung ausgeschlossen werden soll, muss 85 sal_False zurückgegeben werden. GetCurPageId() gibt die 86 zu deaktivierende Seite zurück. 87 88 89 Drag and Drop 90 ------------- 91 92 Für Drag and Drop muss das WinBit WB_DRAG gesetzt werden. Außerdem 93 muss der Command-, QueryDrop-Handler und der Drop-Handler überlagert 94 werden. Dabei muss in den Handlern folgendes implementiert werden: 95 96 Command - Wenn in diesem Handler das Dragging gestartet werden 97 soll, muss StartDrag() gerufen werden. Diese Methode 98 selektiert dann den entsprechenden Eintrag oder gibt 99 sal_False zurück, wenn das Dragging nicht durchgefuhert 100 werden kann. 101 102 QueryDrop - Dieser Handler wird von StarView immer dann gerufen, wenn 103 bei einem Drag-Vorgang die Maus über das Fenster gezogen 104 wird (siehe dazu auch SV-Doku). In diesem Handler muss 105 festgestellt werden, ob ein Drop möglich ist. Die 106 Drop-Position kann im TabBar mit ShowDropPos() angezeigt 107 werden. Beim Aufruf muss die Position vom Event übergeben 108 werden. Wenn sich die Position am linken oder rechten 109 Rand befindet, wird automatisch im TabBar gescrollt. 110 Diese Methode gibt auch die entsprechende Drop-Position 111 zurück, die auch für ein Drop gebraucht wird. Wenn das 112 Fenster beim Drag verlassen wird, kann mit HideDropPos() 113 die DropPosition wieder weggenommen werden. Es ist dadurch 114 auch möglich, ein von außerhalb des TabBars ausgelöstes 115 Drag zu verarbeiten. 116 117 Drop - Im Drop-Handler müssen dann die Pages verschoben werden, 118 oder die neuen Pages eingefügt werden. Die entsprechende 119 Drop-Postion kann mit ShowDropPos() ermittelt werden. 120 121 Folgende Methoden werden für Drag and Drop gebraucht und müssen von 122 den Handlern gerufen werden: 123 124 StartDrag - Muss aus dem Commnad-Handler gerufen werden. Als Parameter 125 muss der CommandEvent übergeben werden und eine Referenz 126 auf eine Region. Diese Region muss dann bei ExecuteDrag() 127 übergeben werden, wenn der Rückgabewert sagt, das 128 ExecuteDrag durchgeführt werden soll. Falls der Eintrag 129 nicht selektiert ist, wird er vorher als aktueller 130 Eintrag gesetzt. Es ist daher darauf zu achten, das aus 131 dieser Methode heraus der Select-Handler gerufen werden 132 kann. 133 134 ShowDropPos - Diese Methode muss vom QueryDrop-Handler gerufen werden, 135 damit der TabBar anzeigt, wo die Tabs eingefügt werden. 136 Diese Methode kann auch im Drop-Handler benutzt werden, 137 um die Position zu ermitteln wo die Tabs eingefügt werden 138 sollen. In der Methode muss die Position vom Event 139 übergeben werden. Diese Methode gibt die Position zurück, 140 wo die Tabs eingefügt werden sollen. 141 142 HideDropPos - Diese Methode nimmt die vorher mit ShowDropPos() angezeigte 143 DropPosition wieder zurück. Diese Methode sollte dann 144 gerufen werden, wenn bei QueryDrop() das Fenster verlassen 145 wird oder der Dragvorgang beendet wurde. 146 147 Folgende Methoden können eingesetzt werden, wenn bei D&D die Seiten 148 umgeschaltet werden sollen: 149 150 SwitchPage - Diese Methode muss vom QueryDrop-Handler gerufen werden, 151 wenn die Seite über der sich der Mousepointer befindet, 152 umgeschaltet werden soll. Diese Methode sollte jedes mal 153 gerufen werden, wenn der QueryDrop-Handler gerufen wird. 154 Das umschalten der Seite passiert zeitverzögert (500 ms) 155 und wird automatisch von dieser Methode verwaltet. 156 In der Methode muss die Position vom Event übergeben 157 werden. Diese Methode gibt sal_True zurück, wenn die Page 158 umgeschaltet wurde. 159 160 EndSwitchPage - Diese Methode setzt die Daten für das umschalten der 161 Seiten zurück. Diese Methode sollte dann gerufen werden, 162 wenn bei QueryDrop() das Fenster verlassen wird oder 163 der Dragvorgang beendet wurde. 164 165 IsInSwitching - Mit dieser Methode kann im ActivatePage()/DeactivatePage() 166 abgefragt werden, ob dies durch SwitchPage() veranlasst 167 wurde. So kann dann beispielsweise in DeactivatePage() 168 das Umschalten ohne eine Fehlerbox verhindert werden. 169 170 171 Fenster-Resize 172 -------------- 173 174 Wenn das Fenster vom Anwender in der Breite geändert werden kann, dann 175 muss das WinBit WB_SIZEABLE gesetzt werden. In diesem Fall muss noch 176 folgender Handler überlagert werden: 177 178 Split - Wenn dieser Handler gerufen wird, sollte das Fenster 179 auf die Breite angepasst werden, die von GetSplitSize() 180 zurückgegeben wird. Dabei wird keine minimale und 181 maximale Breite berücksichtigt. Eine minimale Breite 182 kann mit GetMinSize() abgefragt werden und die maximale 183 Breite muss von der Anwendung selber berechnet werden. 184 Da nur Online-Resize unterstützt wird, muss das Fenster 185 innerhalb dieses Handlers in der Breite geändert 186 werden und eventuell abhängige Fenster ebenfalls. Für 187 diesen Handler kann auch mit SetSplitHdl() ein 188 Link gesetzt werden. 189 190 Folgende Methoden liefern beim Splitten weitere Informationen: 191 192 GetSplitSize() - Liefert die Breite des TabBars zurück, auf die der 193 Anwender das Fenster resizen will. Dabei wird keine 194 minimale oder maximale Breite berücksichtigt. Es wird 195 jedoch nie eine Breite < 5 zurückgeliefert. Diese Methode 196 liefert nur solange richtige Werte, wie Splitten aktiv 197 ist. 198 199 GetMinSize() - Mit dieser Methode kann eine minimale Fensterbreite 200 abgefragt werden, so das min. etwas eines Tabs sichtbar 201 ist. Jedoch kann der TabBar immer noch schmaler gesetzt 202 werden, als die Breite, die diese Methode zurückliefert. 203 Diese Methode kann auch aufgerufen werden, wenn kein 204 Splitten aktiv ist. 205 206 207 Edit-Modus 208 ---------- 209 210 Der Tabbar bietet auch Möglichkeiten, dass der Anwender in den Tabreitern 211 die Namen ändern kann. 212 213 EnableEditMode - Damit kann eingestellt werden, das bei Alt+LeftClick 214 StartEditMode() automatisch vom TabBar gerufen wird. 215 Im StartRenaming()-Handler kann dann das Umbenennen 216 noch abgelehnt werden. 217 StartEditMode - Mit dieser Methode wird der EditModus auf einem 218 Tab gestartet. sal_False wird zurückgegeben, wenn 219 der Editmodus schon aktiv ist, mit StartRenaming() 220 der Modus abgelehnt wurde oder kein Platz zum 221 Editieren vorhanden ist. 222 EndEditMode - Mit dieser Methode wird der EditModus beendet. 223 SetEditText - Mit dieser Methode kann der Text im AllowRenaming()- 224 Handler noch durch einen anderen Text ersetzt werden. 225 GetEditText - Mit dieser Methode kann im AllowRenaming()-Handler 226 der Text abgefragt werden, den der Anwender eingegeben 227 hat. 228 IsInEditMode - Mit dieser Methode kann abgefragt werden, ob der 229 Editmodus aktiv ist. 230 IsEditModeCanceled - Mit dieser Methode kann im EndRenaming()- 231 Handler abgefragt werden, ob die Umbenennung 232 abgebrochen wurde. 233 GetEditPageId - Mit dieser Methode wird in den Renaming-Handlern 234 abgefragt, welcher Tab umbenannt wird/wurde. 235 236 StartRenaming() - Dieser Handler wird gerufen, wenn über StartEditMode() 237 der Editmodus gestartet wurde. Mit GetEditPageId() 238 kann abgefragt werden, welcher Tab umbenannt werden 239 soll. sal_False sollte zurückgegeben werden, wenn 240 der Editmodus nicht gestartet werden soll. 241 AllowRenaming() - Dieser Handler wird gerufen, wenn der Editmodus 242 beendet wird (nicht bei Cancel). In diesem Handler 243 kann dann getestet werden, ob der Text OK ist. 244 Mit GetEditPageId() kann abgefragt werden, welcher Tab 245 umbenannt wurde. 246 Es sollte einer der folgenden Werte zurückgegeben 247 werden: 248 TAB_RENAMING_YES 249 Der Tab wird umbenannt. 250 TAB_RENAMING_NO 251 Der Tab wird nicht umbenannt, der Editmodus bleibt 252 jedoch aktiv, so das der Anwender den Namen 253 entsprechend anpassen kann. 254 TAB_RENAMING_CANCEL 255 Der Editmodus wird abgebrochen und der alte 256 Text wieder hergestellt. 257 EndRenaming() - Dieser Handler wird gerufen, wenn der Editmodus 258 beendet wurde. Mit GetEditPageId() kann abgefragt 259 werden, welcher Tab umbenannt wurde. Mit 260 IsEditModeCanceled() kann abgefragt werden, ob der 261 Modus abgebrochen wurde und der Name dadurch nicht 262 geändert wurde. 263 264 265 Maximale Pagebreite 266 ------------------- 267 268 Die Pagebreite der Tabs kann begrenzt werden, damit ein einfacheres 269 Navigieren über diese möglich ist. Wenn der Text dann nicht komplett 270 angezeigt werden kann, wird er mit ... abgekürzt und in der Tip- 271 oder der aktiven Hilfe (wenn kein Hilfetext gesetzt ist) wird dann der 272 ganze Text angezeigt. Mit EnableAutoMaxPageWidth() kann eingestellt 273 werden, ob die maximale Pagebreite sich nach der gerade sichtbaren 274 Breite richten soll (ist der default). Ansonsten kann auch die 275 maximale Pagebreite mit SetMaxPageWidth() (in Pixeln) gesetzt werden 276 (die AutoMaxPageWidth wird dann ignoriert). 277 278 279 KontextMenu 280 ----------- 281 282 Wenn ein kontextsensitives PopupMenu anzeigt werden soll, muss der 283 Command-Handler überlagert werden. Mit GetPageId() und bei 284 Übergabe der Mausposition kann ermittelt werden, ob der Mausclick 285 über einem bzw. über welchem Item durchgeführt wurde. 286 */ 287 288 // ----------- 289 // - WinBits - 290 // ----------- 291 292 #define WB_RANGESELECT ((WinBits)0x00200000) 293 #define WB_MULTISELECT ((WinBits)0x00400000) 294 #define WB_TOPBORDER ((WinBits)0x04000000) 295 #define WB_3DTAB ((WinBits)0x08000000) 296 #define WB_MINSCROLL ((WinBits)0x20000000) 297 #define WB_STDTABBAR WB_BORDER 298 299 // ------------------ 300 // - TabBarPageBits - 301 // ------------------ 302 303 typedef sal_uInt16 TabBarPageBits; 304 305 // ------------------------ 306 // - Bits for TabBarPages - 307 // ------------------------ 308 309 #define TPB_SPECIAL ((TabBarPageBits)0x0001) 310 311 // ---------------- 312 // - TabBar-Types - 313 // ---------------- 314 315 #define TABBAR_RENAMING_YES ((long)sal_True) 316 #define TABBAR_RENAMING_NO ((long)sal_False) 317 #define TABBAR_RENAMING_CANCEL ((long)2) 318 319 // ---------- 320 // - TabBar - 321 // ---------- 322 struct TabBar_Impl; 323 324 class SVT_DLLPUBLIC TabBar : public Window 325 { 326 friend class ImplTabButton; 327 friend class ImplTabSizer; 328 329 private: 330 ImplTabBarList* mpItemList; 331 ImplTabButton* mpFirstBtn; 332 ImplTabButton* mpPrevBtn; 333 ImplTabButton* mpNextBtn; 334 ImplTabButton* mpLastBtn; 335 TabBar_Impl* mpImpl; 336 TabBarEdit* mpEdit; 337 XubString maEditText; 338 Color maSelColor; 339 Color maSelTextColor; 340 Size maWinSize; 341 long mnMaxPageWidth; 342 long mnCurMaxWidth; 343 long mnOffX; 344 long mnOffY; 345 long mnLastOffX; 346 long mnSplitSize; 347 sal_uLong mnSwitchTime; 348 WinBits mnWinStyle; 349 sal_uInt16 mnCurPageId; 350 sal_uInt16 mnFirstPos; 351 sal_uInt16 mnDropPos; 352 sal_uInt16 mnSwitchId; 353 sal_uInt16 mnEditId; 354 sal_Bool mbFormat; 355 sal_Bool mbFirstFormat; 356 sal_Bool mbSizeFormat; 357 sal_Bool mbAutoMaxWidth; 358 sal_Bool mbInSwitching; 359 sal_Bool mbAutoEditMode; 360 sal_Bool mbEditCanceled; 361 sal_Bool mbDropPos; 362 sal_Bool mbInSelect; 363 sal_Bool mbSelColor; 364 sal_Bool mbSelTextColor; 365 sal_Bool mbMirrored; 366 Link maSelectHdl; 367 Link maDoubleClickHdl; 368 Link maSplitHdl; 369 Link maActivatePageHdl; 370 Link maDeactivatePageHdl; 371 Link maStartRenamingHdl; 372 Link maAllowRenamingHdl; 373 Link maEndRenamingHdl; 374 375 using Window::ImplInit; 376 SVT_DLLPRIVATE void ImplInit( WinBits nWinStyle ); 377 SVT_DLLPRIVATE void ImplInitSettings( sal_Bool bFont, sal_Bool bBackground ); 378 SVT_DLLPRIVATE void ImplGetColors( Color& rFaceColor, Color& rFaceTextColor, 379 Color& rSelectColor, Color& rSelectTextColor ); 380 SVT_DLLPRIVATE void ImplShowPage( sal_uInt16 nPos ); 381 SVT_DLLPRIVATE sal_Bool ImplCalcWidth(); 382 SVT_DLLPRIVATE void ImplFormat(); 383 SVT_DLLPRIVATE sal_uInt16 ImplGetLastFirstPos(); 384 SVT_DLLPRIVATE void ImplInitControls(); 385 SVT_DLLPRIVATE void ImplEnableControls(); 386 SVT_DLLPRIVATE void ImplSelect(); 387 SVT_DLLPRIVATE void ImplActivatePage(); 388 SVT_DLLPRIVATE long ImplDeactivatePage(); 389 DECL_DLLPRIVATE_LINK( ImplClickHdl, ImplTabButton* ); 390 391 public: 392 static const sal_uInt16 APPEND; 393 static const sal_uInt16 PAGE_NOT_FOUND; 394 395 TabBar( Window* pParent, WinBits nWinStyle = WB_STDTABBAR ); 396 virtual ~TabBar(); 397 398 virtual void MouseMove( const MouseEvent& rMEvt ); 399 virtual void MouseButtonDown( const MouseEvent& rMEvt ); 400 virtual void MouseButtonUp( const MouseEvent& rMEvt ); 401 virtual void Paint( const Rectangle& rRect ); 402 virtual void Resize(); 403 virtual void RequestHelp( const HelpEvent& rHEvt ); 404 virtual void StateChanged( StateChangedType nStateChange ); 405 virtual void DataChanged( const DataChangedEvent& rDCEvt ); 406 407 virtual void Select(); 408 virtual void DoubleClick(); 409 virtual void Split(); 410 virtual void ActivatePage(); 411 virtual long DeactivatePage(); 412 virtual long StartRenaming(); 413 virtual long AllowRenaming(); 414 virtual void EndRenaming(); 415 virtual void Mirror(); 416 417 void InsertPage( sal_uInt16 nPageId, const XubString& rText, 418 TabBarPageBits nBits = 0, 419 sal_uInt16 nPos = TabBar::APPEND ); 420 void RemovePage( sal_uInt16 nPageId ); 421 void MovePage( sal_uInt16 nPageId, sal_uInt16 nNewPos ); 422 423 Color GetTabBgColor( sal_uInt16 nPageId ) const; 424 void SetTabBgColor( sal_uInt16 nPageId, const Color& aTabBgColor ); 425 sal_Bool IsDefaultTabBgColor( sal_uInt16 nPageId ); 426 427 void Clear(); 428 429 void EnablePage( sal_uInt16 nPageId, sal_Bool bEnable = sal_True ); 430 sal_Bool IsPageEnabled( sal_uInt16 nPageId ) const; 431 432 void SetPageBits( sal_uInt16 nPageId, TabBarPageBits nBits = 0 ); 433 TabBarPageBits GetPageBits( sal_uInt16 nPageId ) const; 434 435 sal_uInt16 GetPageCount() const; 436 sal_uInt16 GetPageId( sal_uInt16 nPos ) const; 437 sal_uInt16 GetPagePos( sal_uInt16 nPageId ) const; 438 sal_uInt16 GetPageId( const Point& rPos ) const; 439 Rectangle GetPageRect( sal_uInt16 nPageId ) const; 440 // returns the rectangle in which page tabs are drawn 441 Rectangle GetPageArea() const; 442 443 void SetCurPageId( sal_uInt16 nPageId ); GetCurPageId() const444 sal_uInt16 GetCurPageId() const { return mnCurPageId; } 445 446 void SetFirstPageId( sal_uInt16 nPageId ); GetFirstPageId() const447 sal_uInt16 GetFirstPageId() const { return GetPageId( mnFirstPos ); } 448 void MakeVisible( sal_uInt16 nPageId ); 449 450 void SelectPage( sal_uInt16 nPageId, sal_Bool bSelect = sal_True ); 451 void SelectPageRange( sal_Bool bSelect = sal_False, 452 sal_uInt16 nStartPos = 0, 453 sal_uInt16 nEndPos = TabBar::APPEND ); 454 sal_uInt16 GetSelectPage( sal_uInt16 nSelIndex = 0 ) const; 455 sal_uInt16 GetSelectPageCount() const; 456 sal_Bool IsPageSelected( sal_uInt16 nPageId ) const; 457 EnableAutoMaxPageWidth(sal_Bool bEnable=sal_True)458 void EnableAutoMaxPageWidth( sal_Bool bEnable = sal_True ) { mbAutoMaxWidth = bEnable; } IsAutoMaxPageWidthEnabled() const459 sal_Bool IsAutoMaxPageWidthEnabled() const { return mbAutoMaxWidth; } 460 void SetMaxPageWidth( long nMaxWidth ); GetMaxPageWidth() const461 long GetMaxPageWidth() const { return mnMaxPageWidth; } ResetMaxPageWidth()462 void ResetMaxPageWidth() { SetMaxPageWidth( 0 ); } IsMaxPageWidth() const463 sal_Bool IsMaxPageWidth() const { return mnMaxPageWidth != 0; } 464 EnableEditMode(sal_Bool bEnable=sal_True)465 void EnableEditMode( sal_Bool bEnable = sal_True ) { mbAutoEditMode = bEnable; } IsEditModeEnabled() const466 sal_Bool IsEditModeEnabled() const { return mbAutoEditMode; } 467 sal_Bool StartEditMode( sal_uInt16 nPageId ); 468 void EndEditMode( sal_Bool bCancel = sal_False ); SetEditText(const XubString & rText)469 void SetEditText( const XubString& rText ) { maEditText = rText; } GetEditText() const470 const XubString& GetEditText() const { return maEditText; } IsInEditMode() const471 sal_Bool IsInEditMode() const { return (mpEdit != NULL); } IsEditModeCanceled() const472 sal_Bool IsEditModeCanceled() const { return mbEditCanceled; } GetEditPageId() const473 sal_uInt16 GetEditPageId() const { return mnEditId; } 474 475 /** Mirrors the entire control including position of buttons and splitter. 476 Mirroring is done relative to the current direction of the GUI. 477 @param bMirrored sal_True = the control will draw itself RTL in LTR GUI, 478 and vice versa; sal_False = the control behaves according to the 479 current direction of the GUI. */ 480 void SetMirrored( sal_Bool bMirrored = sal_True ); 481 /** Returns sal_True, if the control is set to mirrored mode (see SetMirrored()). */ IsMirrored() const482 sal_Bool IsMirrored() const { return mbMirrored; } 483 484 /** Sets the control to LTR or RTL mode regardless of the GUI direction. 485 @param bRTL sal_False = the control will draw from left to right; 486 sal_True = the control will draw from right to left. */ 487 void SetEffectiveRTL( sal_Bool bRTL ); 488 /** Returns sal_True, if the control draws from right to left (see SetEffectiveRTL()). */ 489 sal_Bool IsEffectiveRTL() const; 490 491 sal_Bool StartDrag( const CommandEvent& rCEvt, Region& rRegion ); 492 sal_uInt16 ShowDropPos( const Point& rPos ); 493 void HideDropPos(); 494 sal_Bool SwitchPage( const Point& rPos ); 495 void EndSwitchPage(); IsInSwitching()496 sal_Bool IsInSwitching() { return mbInSwitching; } 497 498 void SetSelectColor(); 499 void SetSelectColor( const Color& rColor ); GetSelectColor() const500 const Color& GetSelectColor() const { return maSelColor; } IsSelectColor() const501 sal_Bool IsSelectColor() const { return mbSelColor; } 502 void SetSelectTextColor(); 503 void SetSelectTextColor( const Color& rColor ); GetSelectTextColor() const504 const Color& GetSelectTextColor() const { return maSelTextColor; } IsSelectTextColor() const505 sal_Bool IsSelectTextColor() const { return mbSelTextColor; } 506 507 void SetPageText( sal_uInt16 nPageId, const XubString& rText ); 508 XubString GetPageText( sal_uInt16 nPageId ) const; 509 void SetHelpText( sal_uInt16 nPageId, const XubString& rText ); 510 XubString GetHelpText( sal_uInt16 nPageId ) const; 511 void SetHelpId( sal_uInt16 nPageId, const rtl::OString& nHelpId ); 512 rtl::OString GetHelpId( sal_uInt16 nPageId ) const; 513 GetSplitSize() const514 long GetSplitSize() const { return mnSplitSize; } 515 long GetMinSize() const; 516 SetHelpText(const XubString & rText)517 void SetHelpText( const XubString& rText ) 518 { Window::SetHelpText( rText ); } GetHelpText() const519 XubString GetHelpText() const 520 { return Window::GetHelpText(); }; SetHelpId(const rtl::OString & rId)521 void SetHelpId( const rtl::OString& rId ) 522 { Window::SetHelpId( rId ); } GetHelpId() const523 const rtl::OString& GetHelpId() const 524 { return Window::GetHelpId(); } 525 526 void SetStyle( WinBits nStyle ); GetStyle() const527 WinBits GetStyle() const { return mnWinStyle; } 528 529 Size CalcWindowSizePixel() const; 530 SetSelectHdl(const Link & rLink)531 void SetSelectHdl( const Link& rLink ) { maSelectHdl = rLink; } GetSelectHdl() const532 const Link& GetSelectHdl() const { return maSelectHdl; } SetDoubleClickHdl(const Link & rLink)533 void SetDoubleClickHdl( const Link& rLink ) { maDoubleClickHdl = rLink; } GetDoubleClickHdl() const534 const Link& GetDoubleClickHdl() const { return maDoubleClickHdl; } SetSplitHdl(const Link & rLink)535 void SetSplitHdl( const Link& rLink ) { maSplitHdl = rLink; } GetSplitHdl() const536 const Link& GetSplitHdl() const { return maSplitHdl; } SetActivatePageHdl(const Link & rLink)537 void SetActivatePageHdl( const Link& rLink ) { maActivatePageHdl = rLink; } GetActivatePageHdl() const538 const Link& GetActivatePageHdl() const { return maActivatePageHdl; } SetDeactivatePageHdl(const Link & rLink)539 void SetDeactivatePageHdl( const Link& rLink ) { maDeactivatePageHdl = rLink; } GetDeactivatePageHdl() const540 const Link& GetDeactivatePageHdl() const { return maDeactivatePageHdl; } SetStartRenamingHdl(const Link & rLink)541 void SetStartRenamingHdl( const Link& rLink ) { maStartRenamingHdl = rLink; } GetStartRenamingHdl() const542 const Link& GetStartRenamingHdl() const { return maStartRenamingHdl; } SetAllowRenamingHdl(const Link & rLink)543 void SetAllowRenamingHdl( const Link& rLink ) { maAllowRenamingHdl = rLink; } GetAllowRenamingHdl() const544 const Link& GetAllowRenamingHdl() const { return maAllowRenamingHdl; } SetEndRenamingHdl(const Link & rLink)545 void SetEndRenamingHdl( const Link& rLink ) { maEndRenamingHdl = rLink; } GetEndRenamingHdl() const546 const Link& GetEndRenamingHdl() const { return maEndRenamingHdl; } 547 548 // accessibility 549 virtual ::com::sun::star::uno::Reference< ::com::sun::star::accessibility::XAccessible > CreateAccessible(); 550 }; 551 552 #endif // _TABBAR_HXX 553 554 /* vim: set noet sw=4 ts=4: */ 555