|
|
|
|
@@ -17,6 +17,83 @@ GwenUserInterface::GwenUserInterface()
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
class MyMenuItems : public Gwen::Controls::Base
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
b3FileOpenCallback m_fileOpenCallback;
|
|
|
|
|
b3QuitCallback m_quitCallback;
|
|
|
|
|
|
|
|
|
|
MyMenuItems() :Gwen::Controls::Base(0), m_fileOpenCallback(0)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
void myQuitApp(Gwen::Controls::Base* pControl)
|
|
|
|
|
{
|
|
|
|
|
if (m_quitCallback)
|
|
|
|
|
{
|
|
|
|
|
(*m_quitCallback)();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
void fileOpen(Gwen::Controls::Base* pControl)
|
|
|
|
|
{
|
|
|
|
|
if (m_fileOpenCallback)
|
|
|
|
|
{
|
|
|
|
|
(*m_fileOpenCallback)();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
struct MyTestMenuBar : public Gwen::Controls::MenuStrip
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
Gwen::Controls::MenuItem* m_fileMenu;
|
|
|
|
|
Gwen::Controls::MenuItem* m_viewMenu;
|
|
|
|
|
MyMenuItems* m_menuItems;
|
|
|
|
|
|
|
|
|
|
MyTestMenuBar(Gwen::Controls::Base* pParent)
|
|
|
|
|
:Gwen::Controls::MenuStrip(pParent)
|
|
|
|
|
{
|
|
|
|
|
// Gwen::Controls::MenuStrip* menu = new Gwen::Controls::MenuStrip( pParent );
|
|
|
|
|
{
|
|
|
|
|
m_menuItems = new MyMenuItems();
|
|
|
|
|
m_menuItems->m_fileOpenCallback = 0;
|
|
|
|
|
m_menuItems->m_quitCallback = 0;
|
|
|
|
|
|
|
|
|
|
m_fileMenu = AddItem(L"File");
|
|
|
|
|
|
|
|
|
|
m_fileMenu->GetMenu()->AddItem(L"Open", m_menuItems, (Gwen::Event::Handler::Function)&MyMenuItems::fileOpen);
|
|
|
|
|
m_fileMenu->GetMenu()->AddItem(L"Quit", m_menuItems, (Gwen::Event::Handler::Function)&MyMenuItems::myQuitApp);
|
|
|
|
|
m_viewMenu = AddItem(L"View");
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
virtual ~MyTestMenuBar()
|
|
|
|
|
{
|
|
|
|
|
delete m_menuItems;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void GwenUserInterface::exit()
|
|
|
|
|
{
|
|
|
|
|
//m_data->m_menubar->RemoveAllChildren();
|
|
|
|
|
delete m_data->m_tab;
|
|
|
|
|
delete m_data->m_windowRight;
|
|
|
|
|
delete m_data->m_leftStatusBar;
|
|
|
|
|
delete m_data->m_TextOutput;
|
|
|
|
|
delete m_data->m_rightStatusBar;
|
|
|
|
|
delete m_data->m_bar;
|
|
|
|
|
delete m_data->m_menubar;
|
|
|
|
|
|
|
|
|
|
m_data->m_menubar = 0;
|
|
|
|
|
delete m_data->pCanvas;
|
|
|
|
|
m_data->pCanvas = 0;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
GwenUserInterface::~GwenUserInterface()
|
|
|
|
|
{
|
|
|
|
|
for (int i=0;i<m_data->m_handlers.size();i++)
|
|
|
|
|
@@ -26,72 +103,15 @@ GwenUserInterface::~GwenUserInterface()
|
|
|
|
|
|
|
|
|
|
m_data->m_handlers.clear();
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
delete m_data->pCanvas;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
delete m_data;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
class MyMenuItems : public Gwen::Controls::Base
|
|
|
|
|
{
|
|
|
|
|
public:
|
|
|
|
|
|
|
|
|
|
b3FileOpenCallback m_fileOpenCallback;
|
|
|
|
|
b3QuitCallback m_quitCallback;
|
|
|
|
|
|
|
|
|
|
MyMenuItems() :Gwen::Controls::Base(0),m_fileOpenCallback(0)
|
|
|
|
|
{
|
|
|
|
|
}
|
|
|
|
|
void myQuitApp( Gwen::Controls::Base* pControl )
|
|
|
|
|
{
|
|
|
|
|
if (m_quitCallback)
|
|
|
|
|
{
|
|
|
|
|
(*m_quitCallback)();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
void fileOpen( Gwen::Controls::Base* pControl )
|
|
|
|
|
{
|
|
|
|
|
if (m_fileOpenCallback)
|
|
|
|
|
{
|
|
|
|
|
(*m_fileOpenCallback)();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
struct MyTestMenuBar : public Gwen::Controls::MenuStrip
|
|
|
|
|
{
|
|
|
|
|
|
|
|
|
|
Gwen::Controls::MenuItem* m_fileMenu;
|
|
|
|
|
Gwen::Controls::MenuItem* m_viewMenu;
|
|
|
|
|
MyMenuItems* m_menuItems;
|
|
|
|
|
|
|
|
|
|
MyTestMenuBar(Gwen::Controls::Base* pParent)
|
|
|
|
|
:Gwen::Controls::MenuStrip(pParent)
|
|
|
|
|
{
|
|
|
|
|
// Gwen::Controls::MenuStrip* menu = new Gwen::Controls::MenuStrip( pParent );
|
|
|
|
|
{
|
|
|
|
|
m_menuItems = new MyMenuItems();
|
|
|
|
|
m_menuItems->m_fileOpenCallback = 0;
|
|
|
|
|
m_menuItems->m_quitCallback = 0;
|
|
|
|
|
|
|
|
|
|
m_fileMenu = AddItem( L"File" );
|
|
|
|
|
|
|
|
|
|
m_fileMenu->GetMenu()->AddItem(L"Open",m_menuItems,(Gwen::Event::Handler::Function)&MyMenuItems::fileOpen);
|
|
|
|
|
m_fileMenu->GetMenu()->AddItem(L"Quit",m_menuItems,(Gwen::Event::Handler::Function)&MyMenuItems::myQuitApp);
|
|
|
|
|
m_viewMenu = AddItem( L"View" );
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
|
|
|
|
|
void GwenUserInterface::resize(int width, int height)
|
|
|
|
|
{
|
|
|
|
|
@@ -232,6 +252,7 @@ void GwenUserInterface::setStatusBarMessage(const char* message, bool isLeft)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
void GwenUserInterface::registerFileOpenCallback(b3FileOpenCallback callback)
|
|
|
|
|
{
|
|
|
|
|
m_data->m_menuItems->m_fileOpenCallback = callback;
|
|
|
|
|
@@ -249,35 +270,43 @@ void GwenUserInterface::init(int width, int height,Gwen::Renderer::Base* rendere
|
|
|
|
|
m_data->pRenderer = renderer;//new GwenOpenGL3CoreRenderer(m_data->m_primRenderer,stash,width,height,retinaScale);
|
|
|
|
|
|
|
|
|
|
m_data->skin.SetRender( m_data->pRenderer );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
m_data->pCanvas= new Gwen::Controls::Canvas( &m_data->skin );
|
|
|
|
|
m_data->pCanvas->SetSize( width,height);
|
|
|
|
|
m_data->pCanvas->SetDrawBackground( false);
|
|
|
|
|
m_data->pCanvas->SetBackgroundColor( Gwen::Color( 150, 170, 170, 255 ) );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
MyTestMenuBar* menubar = new MyTestMenuBar(m_data->pCanvas);
|
|
|
|
|
m_data->m_viewMenu = menubar->m_viewMenu;
|
|
|
|
|
m_data->m_menuItems = menubar->m_menuItems;
|
|
|
|
|
|
|
|
|
|
m_data->m_menubar = menubar;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Gwen::Controls::StatusBar* bar = new Gwen::Controls::StatusBar(m_data->pCanvas);
|
|
|
|
|
m_data->m_bar = bar;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
m_data->m_rightStatusBar = new Gwen::Controls::Label( bar );
|
|
|
|
|
|
|
|
|
|
m_data->m_rightStatusBar->SetWidth(width/2);
|
|
|
|
|
//m_data->m_rightStatusBar->SetText( L"Label Added to Right" );
|
|
|
|
|
bar->AddControl( m_data->m_rightStatusBar, true );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
m_data->m_TextOutput = new Gwen::Controls::ListBox( m_data->pCanvas );
|
|
|
|
|
|
|
|
|
|
m_data->m_TextOutput->Dock( Gwen::Pos::Bottom );
|
|
|
|
|
m_data->m_TextOutput->SetHeight( 100 );
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
m_data->m_leftStatusBar = new Gwen::Controls::Label( bar );
|
|
|
|
|
|
|
|
|
|
//m_data->m_leftStatusBar->SetText( L"Label Added to Left" );
|
|
|
|
|
m_data->m_leftStatusBar->SetWidth(width/2);
|
|
|
|
|
bar->AddControl( m_data->m_leftStatusBar,false);
|
|
|
|
|
|
|
|
|
|
//Gwen::KeyboardFocus
|
|
|
|
|
/*Gwen::Controls::GroupBox* box = new Gwen::Controls::GroupBox(m_data->pCanvas);
|
|
|
|
|
box->SetText("text");
|
|
|
|
|
@@ -289,11 +318,14 @@ void GwenUserInterface::init(int width, int height,Gwen::Renderer::Base* rendere
|
|
|
|
|
windowRight->SetWidth(250);
|
|
|
|
|
windowRight->SetHeight(250);
|
|
|
|
|
windowRight->SetScroll(false,true);
|
|
|
|
|
|
|
|
|
|
m_data->m_windowRight = windowRight;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//windowLeft->SetSkin(
|
|
|
|
|
Gwen::Controls::TabControl* tab = new Gwen::Controls::TabControl(windowRight);
|
|
|
|
|
m_data->m_tab = tab;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//tab->SetHeight(300);
|
|
|
|
|
tab->SetWidth(240);
|
|
|
|
|
@@ -304,7 +336,8 @@ void GwenUserInterface::init(int width, int height,Gwen::Renderer::Base* rendere
|
|
|
|
|
|
|
|
|
|
Gwen::UnicodeString str1(L"Params");
|
|
|
|
|
m_data->m_demoPage = tab->AddPage(str1);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@@ -348,7 +381,7 @@ void GwenUserInterface::init(int width, int height,Gwen::Renderer::Base* rendere
|
|
|
|
|
//windowLeft->SetClosable(false);
|
|
|
|
|
// windowLeft->SetShouldDrawBackground(true);
|
|
|
|
|
windowLeft->SetTabable(true);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Gwen::Controls::TabControl* explorerTab = new Gwen::Controls::TabControl(windowLeft);
|
|
|
|
|
|
|
|
|
|
//tab->SetHeight(300);
|
|
|
|
|
@@ -388,7 +421,6 @@ void GwenUserInterface::init(int width, int height,Gwen::Renderer::Base* rendere
|
|
|
|
|
m_data->m_exampleInfoGroupBox->SetText("Example Description");
|
|
|
|
|
|
|
|
|
|
m_data->m_exampleInfoTextOutput = new Gwen::Controls::ListBox(m_data->m_explorerPage->GetPage());
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//m_data->m_exampleInfoTextOutput->Dock( Gwen::Pos::Bottom );
|
|
|
|
|
m_data->m_exampleInfoTextOutput->SetPos(2, 332);
|
|
|
|
|
|