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