1 /*!
2 	@file
3 	@author		George Evmenov
4 	@date		02/2011
5 */
6 #include "Precompiled.h"
7 #include "BerkeliumBrowser.h"
8 
9 namespace demo
10 {
11 
BerkeliumBrowser(MyGUI::Widget * _parent)12 	BerkeliumBrowser::BerkeliumBrowser(MyGUI::Widget* _parent) :
13 		mWebPageBerkeliumWidget(nullptr),
14 		mUrlEditBox(nullptr),
15 		mBackButton(nullptr),
16 		mForwardButton(nullptr),
17 		mLoadingProgressBar(nullptr)
18 	{
19 		initialiseByAttributes(this, _parent);
20 
21 		mWebPageBerkeliumWidget->getBerkeliumWindow()->setTransparent(true);
22 		mUrlEditBox->eventEditSelectAccept += MyGUI::newDelegate(this, &BerkeliumBrowser::notifyEditSelectAccept);
23 		mBackButton->eventMouseButtonClick += MyGUI::newDelegate(this, &BerkeliumBrowser::notifyBackButtonClick);
24 		mForwardButton->eventMouseButtonClick += MyGUI::newDelegate(this, &BerkeliumBrowser::notifyForwardButtonClick);
25 
26 		mWebPageBerkeliumWidget->setWindowDelegate(this);
27 	}
28 
notifyEditSelectAccept(MyGUI::EditBox * _sender)29 	void BerkeliumBrowser::notifyEditSelectAccept(MyGUI::EditBox* _sender)
30 	{
31 		mWebPageBerkeliumWidget->loadURL(_sender->getOnlyText());
32 	}
33 
notifyBackButtonClick(MyGUI::Widget * _sender)34 	void BerkeliumBrowser::notifyBackButtonClick(MyGUI::Widget* _sender)
35 	{
36 		mWebPageBerkeliumWidget->getBerkeliumWindow()->goBack();
37 	}
38 
notifyForwardButtonClick(MyGUI::Widget * _sender)39 	void BerkeliumBrowser::notifyForwardButtonClick(MyGUI::Widget* _sender)
40 	{
41 		mWebPageBerkeliumWidget->getBerkeliumWindow()->goForward();
42 	}
43 
onAddressBarChanged(Berkelium::Window * win,Berkelium::URLString newURL)44 	void BerkeliumBrowser::onAddressBarChanged(Berkelium::Window *win, Berkelium::URLString newURL)
45 	{
46 		mUrlEditBox->setCaption(newURL.data());
47 		mBackButton->setEnabled(mWebPageBerkeliumWidget->getBerkeliumWindow()->canGoBack());
48 		mForwardButton->setEnabled(mWebPageBerkeliumWidget->getBerkeliumWindow()->canGoForward());
49 	}
50 
onLoadingStateChanged(Berkelium::Window * win,bool isLoading)51 	void BerkeliumBrowser::onLoadingStateChanged(Berkelium::Window *win, bool isLoading)
52 	{
53 		mLoadingProgressBar->setVisible(isLoading);
54 	}
55 
56 } // demo
57