⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainmodule.cpp

📁 使用stl技术,(还没看,是听说的)
💻 CPP
📖 第 1 页 / 共 2 页
字号:
		StaticText* msg = (StaticText*)winMgr.createWindow((utf8*)"Taharez StaticText", (utf8*)"ErrorBox/Message");
		fwnd->addChildWindow(msg);
		msg->setPosition(Point(0.1f, 0.1f));
		msg->setSize(Size(0.8f, 0.5f));
		msg->setVerticalFormatting(StaticText::VertCentred);
		msg->setHorizontalFormatting(StaticText::HorzCentred);
		msg->setBackgroundEnabled(false);
		msg->setFrameEnabled(false);

		// create ok button
		PushButton* btn = (PushButton*)winMgr.createWindow((utf8*)"Taharez Button", (utf8*)"ErrorBox/OkButton");
		fwnd->addChildWindow(btn);
		btn->setPosition(Point(0.3f, 0.80f));
		btn->setSize(Size(0.4f, 0.1f));
		btn->setText((utf8*)"Okay!");

		// subscribe event
		btn->subscribeEvent(PushButton::Clicked, boost::bind(&CEGUIOgre_TestDriver1::handleErrorBox, this, _1));

		errbox = fwnd;
	}

	errbox->getChild((utf8*)"ErrorBox/Message")->setText((utf8*)text);
	errbox->show();
	errbox->activate();
}


/*************************************************************************
	Quit then demo.
*************************************************************************/
void	CEGUIOgre_TestDriver1::handleQuit(const CEGUI::EventArgs& e)
{
	mRoot->queueEndRendering();
}


void	CEGUIOgre_TestDriver1::handleSlider(const CEGUI::EventArgs& e)
{
	using namespace CEGUI;

//	ProgressBar* pbar = (ProgressBar*)winMgr.createWindow((utf8*)"Taharez ProgressBar", (utf8*)"Demo7/Window2/Progbar1");
//	fwnd1->addChildWindow(pbar);
//	pbar->setMaximumSize(Size(1.0f, 1.0f));
//	pbar->setPosition(Point(0.04f, 0.8f));
//	pbar->setSize(Size(0.94f, 0.05f));
//	pbar->setProgress(0.33f);

//	pbar = (ProgressBar*)winMgr.createWindow((utf8*)"Taharez AltProgressBar", (utf8*)"Demo7/Window2/Progbar2");
//	fwnd1->addChildWindow(pbar);
//	pbar->setMaximumSize(Size(1.0f, 1.0f));
//	pbar->setPosition(Point(0.04f, 0.86f));
//	pbar->setSize(Size(0.94f, 0.05f));
//	pbar->setProgress(0.7f);

//	WindowManager::getSingleton().getWindow((utf8*)"Demo7/Window1/Slider1")->
//		subscribeEvent(Slider::ValueChanged, boost::bind(&CEGUIOgre_TestDriver1::handleSlider, this, _1));
/*
	float val = ((Slider*)((const WindowEventArgs&)e).window)->getCurrentValue();

	((ProgressBar*)WindowManager::getSingleton().getWindow((utf8*)"Demo7/Window2/Progbar1"))->setProgress(val);
	((ProgressBar*)WindowManager::getSingleton().getWindow((utf8*)"Demo7/Window2/Progbar2"))->setProgress(1.0f - val);

	//Demo7/Window2
	WindowManager::getSingleton().getWindow((utf8*)"Demo7/Window1")->setAlpha(val);
	WindowManager::getSingleton().getWindow((utf8*)"Demo7/Window2")->setAlpha(val);
*/
}

void CEGUIOgre_TestDriver1::handleRadio(const CEGUI::EventArgs& e)
{
	using namespace CEGUI;

	CEGUI::uint id = ((RadioButton*)((const WindowEventArgs&)e).window)->getSelectedButtonInGroup()->getID();

	if (id == 0)		//play movie after a pause
		mMovieControl->pauseMovie( false );
	else if (id == 1)	//Pause movie
		mMovieControl->pauseMovie( true );
	else				//Stop movie
	{
		FrameWindow* fwnd3 = (FrameWindow*)WindowManager::getSingleton().getWindow((utf8*)"Demo7/Window3");
		Listbox* lbox = (Listbox*)WindowManager::getSingleton().getWindow((utf8*)"Demo7/Window2/Listbox");
		StaticImage* simg = 0;

		try
		{
			CEGUI::String te = mMovieControl->getTextureName();
			
			fwnd3->removeChildWindow( (utf8*)"Demo7/Window3/Image1" );

			simg = (StaticImage*)WindowManager::getSingleton().getWindow((utf8*)"Demo7/Window3/Image1");
			WindowManager::getSingleton().destroyWindow( simg );

			Imageset *tempimg = ImagesetManager::getSingleton().getImageset( 
				(utf8*)"MyImagesNumber" );
			
			tempimg->undefineImage( te );
			ImagesetManager::getSingleton().destroyImageset( (utf8*)"MyImagesNumber" );
		}
		catch(...) 
		{
			//Tis ok, first time through, set does not exist yet
		}

		mMovieControl->stopMovie();
	}

}

void CEGUIOgre_TestDriver1::handleCheck(const CEGUI::EventArgs& e)
{
	using namespace CEGUI;

	if (((Checkbox*)((const WindowEventArgs&)e).window)->isSelected())
	{
		WindowManager::getSingleton().getWindow((utf8*)"Demo7/Window3")->show();
	}
	else
	{
		WindowManager::getSingleton().getWindow((utf8*)"Demo7/Window3")->hide();
	}
}


/*************************************************************************
	Handler for the error box 'okay' button
*************************************************************************/
void	CEGUIOgre_TestDriver1::handleErrorBox(const CEGUI::EventArgs& e)
{
	CEGUI::WindowManager::getSingleton().getWindow((CEGUI::utf8*)"ErrorBox")->hide();
}


/*************************************************************************
	cleanup - free some stuff and close-down CEGUI system
*************************************************************************/
void CEGUIOgre_TestDriver1::cleanup(void)
{
	delete CEGUI::System::getSingletonPtr();
	delete mGUIRenderer;
	delete mMovieControl;
}


/*************************************************************************
	Create the example replacement debug overlay
*************************************************************************/
void CEGUIOgre_TestDriver1::createCrazyPanel(void)
{
	using namespace CEGUI;

	Window* sheet = System::getSingleton().getGUISheet();

	if (sheet != NULL)
	{
		//
		// load ogre gui imageset & font
		//
		Imageset* giset = ImagesetManager::getSingleton().createImageset((utf8*)"ogregui.xml");
		CEGUI::Font* gfont = CEGUI::FontManager::getSingleton().createFont((utf8*)"Tahoma-8", (utf8*)"Tahoma.ttf", 8, 0);
		gfont->setAutoScalingEnabled(true);
		gfont->setNativeResolution(Size(800, 600));

		//
		// static for info panel
		//
		StaticText* panel = (StaticText*)WindowManager::getSingleton().createWindow((utf8*)"Taharez StaticText", (utf8*)"Panel 1");
		sheet->addChildWindow(panel);
		panel->setPosition(Point(0.0f, 0.83f));
		panel->setSize(Size(0.23f, 0.17f));
		panel->setAlwaysOnTop(true);

		// replace frame and backdrop images
		panel->setFrameImages(
			&giset->getImage((utf8*)"BoxTopLeft"),
			&giset->getImage((utf8*)"BoxTopRight"),
			&giset->getImage((utf8*)"BoxBottomLeft"),
			&giset->getImage((utf8*)"BoxBottomRight"),
			&giset->getImage((utf8*)"BoxLeft"),
			&giset->getImage((utf8*)"BoxTop"),
			&giset->getImage((utf8*)"BoxRight"),
			&giset->getImage((utf8*)"BoxBottom")
			);

		panel->setBackgroundImage(&giset->getImage((utf8*)"BoxBack"));
		panel->setAlpha(0.9f);
		panel->setEnabled(false);
		panel->setInheritsAlpha(false);

		//
		// Components on panel
		//
		StaticText* st;
		st = (StaticText*)WindowManager::getSingleton().createWindow((utf8*)"Taharez StaticText", (utf8*)"OPCurrentFPS");
		panel->addChildWindow(st);
		st->setFrameEnabled(false);
		st->setBackgroundEnabled(false);
		st->setFont(gfont);
		st->setPosition(Point(0.075f, 0.12f));
		st->setSize(Size(0.85f, 0.15f));
		st->setTextColours(0xFF4F406F);
		st->setHorizontalFormatting(StaticText::HorzCentred);
		st->setText((utf8*)"Current FPS: ");

		StaticImage* si = (StaticImage*)WindowManager::getSingleton().createWindow((utf8*)"Taharez StaticImage", (utf8*)"OPBar1");
		panel->addChildWindow(si);
		si->setFrameEnabled(false);
		si->setBackgroundEnabled(false);
		si->setPosition(Point(0.2f, 0.27f));
		si->setSize(Size(0.6f, 0.025f));
		si->setImage(&giset->getImage((utf8*)"Bar"));

		st = (StaticText*)WindowManager::getSingleton().createWindow((utf8*)"Taharez StaticText", (utf8*)"OPAverageFPS");
		panel->addChildWindow(st);
		st->setFrameEnabled(false);
		st->setBackgroundEnabled(false);
		st->setFont(gfont);
		st->setPosition(Point(0.075f, 0.32f));
		st->setSize(Size(1.0f, 0.15f));
		st->setTextColours(0xFF005710);
		st->setText((utf8*)"Average FPS: ");

		st = (StaticText*)WindowManager::getSingleton().createWindow((utf8*)"Taharez StaticText", (utf8*)"OPWorstFPS");
		panel->addChildWindow(st);
		st->setFrameEnabled(false);
		st->setBackgroundEnabled(false);
		st->setFont(gfont);
		st->setPosition(Point(0.075f, 0.45f));
		st->setSize(Size(1.0f, 0.15f));
		st->setTextColours(0xFF005710);
		st->setText((utf8*)"Worst FPS: ");

		st = (StaticText*)WindowManager::getSingleton().createWindow((utf8*)"Taharez StaticText", (utf8*)"OPBestFPS");
		panel->addChildWindow(st);
		st->setFrameEnabled(false);
		st->setBackgroundEnabled(false);
		st->setFont(gfont);
		st->setPosition(Point(0.075f, 0.58f));
		st->setSize(Size(1.0f, 0.15f));
		st->setTextColours(0xFF005710);
		st->setText((utf8*)"Best FPS: ");

		st = (StaticText*)WindowManager::getSingleton().createWindow((utf8*)"Taharez StaticText", (utf8*)"OPTriCount");
		panel->addChildWindow(st);
		st->setFrameEnabled(false);
		st->setBackgroundEnabled(false);
		st->setFont(gfont);
		st->setPosition(Point(0.075f, 0.71f));
		st->setSize(Size(1.0f, 0.15f));
		st->setTextColours(0xFF005710);
		st->setText((utf8*)"Triangle Count: ");

		st = (StaticText*)WindowManager::getSingleton().createWindow((utf8*)"Taharez StaticText", (utf8*)"OPDebugMsg");
		sheet->addChildWindow(st);
		st->setAlwaysOnTop(true);
		st->setFrameEnabled(false);
		st->setBackgroundEnabled(false);
		st->setFont(gfont);
		st->setPosition(Point(0.25f, 0.93f));
		st->setSize(Size(0.65f, 0.07f));
		st->setTextColours(0xA0FFFFFF);
		st->setFormatting(StaticText::WordWrapCentred, StaticText::VertCentred);
		st->setEnabled(false);
		st->setInheritsAlpha(false);

		//
		// Ogre logo
		//
		StaticImage* ologo = (StaticImage*)WindowManager::getSingleton().createWindow((utf8*)"Taharez StaticImage", (utf8*)"Ogre Logo");
		sheet->addChildWindow(ologo);
		ologo->setFrameEnabled(false);
		ologo->setBackgroundEnabled(false);
		ologo->setImage(&giset->getImage((utf8*)"OgreLogo"));
		ologo->setPosition(Point(0.9f, 0.95f));
		ologo->setSize(Size(0.1, 0.05f));
		ologo->setAlwaysOnTop(true);
		ologo->setAlpha(0.9f);
		ologo->setEnabled(false);
		ologo->setInheritsAlpha(false);

		//
		// CEGUI logo
		//
		StaticImage* clogo = (StaticImage*)WindowManager::getSingleton().createWindow((utf8*)"Taharez StaticImage", (utf8*)"Cegui Logo");
		sheet->addChildWindow(clogo);
		clogo->setFrameEnabled(false);
		clogo->setBackgroundEnabled(false);
		clogo->setImage(&giset->getImage((utf8*)"CeguiLogo"));
		clogo->setPosition(Point(0.9125f, 0.9115f));
		clogo->setSize(Size(0.075, 0.0385f));
		clogo->setAlwaysOnTop(true);
		clogo->setAlpha(0.9f);
		clogo->setEnabled(false);
		clogo->setInheritsAlpha(false);
	}

}


/*************************************************************************
	createFrameListener - add out frame lister which handles input
*************************************************************************/
void CEGUIOgre_TestDriver1::createFrameListener(void)
{
	mFrameListener= new CEGUIOgre_FrameListener(mWindow, mCamera);
	mRoot->addFrameListener(mFrameListener);
}


/*************************************************************************
	frameStarted - method that handles all input for this demo.
*************************************************************************/
bool CEGUIOgre_FrameListener::frameStarted(const FrameEvent& evt)
{
	if (mQuit)
		return false;
	else
	{
		updateStats();
		return true;
	}

}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -