57 lines
990 B
C
57 lines
990 B
C
|
|
||
|
#ifndef TABBER_H
|
||
|
#define TABBER_H
|
||
|
|
||
|
class Tabber;
|
||
|
|
||
|
class TabberListener{
|
||
|
public:
|
||
|
virtual void currentSet( Tabber *tabber,int index )=0;
|
||
|
};
|
||
|
|
||
|
class Tabber : public CTabCtrl{
|
||
|
public:
|
||
|
Tabber();
|
||
|
~Tabber();
|
||
|
|
||
|
void setListener( TabberListener *l );
|
||
|
|
||
|
void insert( int index,CWnd *wnd,const string &text );
|
||
|
void remove( int index );
|
||
|
void setCurrent( int index );
|
||
|
void setTabText( int index,const string &t );
|
||
|
|
||
|
int size()const;
|
||
|
int getCurrent()const;
|
||
|
CWnd *getTabWnd( int index )const;
|
||
|
string getTabText( int index )const;
|
||
|
|
||
|
DECLARE_DYNAMIC( Tabber )
|
||
|
DECLARE_MESSAGE_MAP()
|
||
|
|
||
|
afx_msg void OnSize( UINT type,int w,int h );
|
||
|
afx_msg BOOL OnEraseBkgnd( CDC *dc );
|
||
|
afx_msg void tcn_selChange( NMHDR *p,LRESULT *result );
|
||
|
|
||
|
private:
|
||
|
TabberListener *listener;
|
||
|
|
||
|
struct Tab{
|
||
|
CWnd *wnd;
|
||
|
string text;
|
||
|
Tab( CWnd *w,const string &t ):wnd(w),text(t){
|
||
|
}
|
||
|
};
|
||
|
|
||
|
typedef list<Tab*> Tabs;
|
||
|
|
||
|
Tabs tabs;
|
||
|
int curr;
|
||
|
|
||
|
void refresh();
|
||
|
CRect getInnerRect();
|
||
|
Tab *getTab( int index )const;
|
||
|
};
|
||
|
|
||
|
#endif
|