blitz3d/debugger/tabber.h

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