2015-05-06 01:27:59 -04:00
|
|
|
#pragma once
|
|
|
|
|
|
|
|
#include "win32/Tab.h"
|
|
|
|
#include <vector>
|
|
|
|
#include <memory>
|
|
|
|
|
|
|
|
class CTabHost : public Framework::Win32::CWindow
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
enum
|
|
|
|
{
|
|
|
|
NOTIFICATION_SELCHANGED = 0xA000,
|
|
|
|
};
|
|
|
|
|
|
|
|
struct SELCHANGED_INFO : public NMHDR
|
|
|
|
{
|
|
|
|
uint32 selectedIndex;
|
|
|
|
Framework::Win32::CWindow* selectedWindow;
|
|
|
|
};
|
|
|
|
|
2018-04-30 21:01:23 +01:00
|
|
|
CTabHost(HWND, const RECT&);
|
|
|
|
virtual ~CTabHost();
|
2015-05-06 01:27:59 -04:00
|
|
|
|
2018-04-30 21:01:23 +01:00
|
|
|
Framework::Win32::CWindow* GetTab(unsigned int);
|
|
|
|
void InsertTab(const TCHAR*, Framework::Win32::CWindow*);
|
2015-05-06 01:27:59 -04:00
|
|
|
|
2018-04-30 21:01:23 +01:00
|
|
|
int GetSelection();
|
|
|
|
void SetSelection(unsigned int);
|
2015-05-06 01:27:59 -04:00
|
|
|
|
|
|
|
protected:
|
2018-04-30 21:01:23 +01:00
|
|
|
long OnSize(unsigned int, unsigned int, unsigned int) override;
|
|
|
|
LRESULT OnNotify(WPARAM, NMHDR*) override;
|
2015-05-06 01:27:59 -04:00
|
|
|
|
|
|
|
private:
|
|
|
|
typedef std::vector<Framework::Win32::CWindow*> TabItemArray;
|
|
|
|
|
2018-04-30 21:01:23 +01:00
|
|
|
void OnTabSelChanged();
|
2015-05-06 01:27:59 -04:00
|
|
|
|
2018-04-30 21:01:23 +01:00
|
|
|
std::unique_ptr<Framework::Win32::CTab> m_tab;
|
2015-05-06 01:27:59 -04:00
|
|
|
|
2018-04-30 21:01:23 +01:00
|
|
|
int m_currentSelection;
|
|
|
|
TabItemArray m_tabItems;
|
2015-05-06 01:27:59 -04:00
|
|
|
};
|