00001 /* This is -*- C++ -*-) 00002 00003 BTabbedWidget.h 00004 \author: Bjoern Giesler <bjoern@giesler.de> 00005 00006 00007 00008 $Author: giesler $ 00009 $Locker$ 00010 $Revision$ 00011 $Date: 2002-08-19 10:41:28 +0200 (Mon, 19 Aug 2002) $ 00012 */ 00013 00014 #ifndef BTABBEDWIDGET_H 00015 #define BTABBEDWIDGET_H 00016 00017 /* system includes */ 00018 /* (none) */ 00019 00020 /* my includes */ 00021 #include "BWidget.h" 00022 #include "BRadioGroup.h" 00023 00024 class BTabbedWidget: 00025 public BWidget, 00026 public BRadioGroup::Delegate 00027 { 00028 public: 00029 class Delegate { 00030 public: 00031 virtual ~Delegate() {} 00032 virtual void onSelectTabbedPane(BTabbedWidget* tabbedwidget, 00033 const std::string& title, 00034 BWidget* pane) {} 00035 }; 00036 00037 BTabbedWidget(BWidget* parent, const BRect& frame); 00038 00039 BWidget* addTabbedPane(const std::string& title); 00040 void onSelectButton(BButton* button); 00041 00042 void setDelegate(Delegate* deleg); 00043 Delegate* delegate() { return _deleg; } 00044 00045 protected: 00046 typedef struct { 00047 BButton* tab; 00048 BWidget* pane; 00049 } TabAndPane; 00050 00051 std::vector<TabAndPane> _tabs; 00052 BRadioGroup *_rgrp; 00053 Delegate* _deleg; 00054 }; 00055 00056 #endif /* BTABBEDWIDGET_H */
1.3-rc3