BetaGUI : BetaGUI 2.5 update - Style system added.

A place to show off your latest screenshots and for people to comment on them. Only start a new thread here if you have some nice images to show off!
funguine
Gnoblar
Posts: 10
Joined: Mon Jan 15, 2007 5:28 pm
Location: Oulu, Finland
x 1

Post by funguine »

Beauty wrote:I got it to run, but I was not happy with it.
Re-creation of the UI: sounds like a namespace issue; for a reason
or another you propably make Mogre angry for trying to create something
with a name that was used previously and not cleaned up right.

Mouse Coordinates: strange. My code has worked in our studio with different versions of Windows/DirectX/OpenGL. But you'd really like to implement it using MOIS in a serious application anyway.
Beauty wrote: General question about the C++ version number:
The title of this forum thread is BetaGUI 2.5 [...].
And in the wiki top right box is written Latest Version 1.0'15
This is confusing. What is right?
2.5 = 015 = 1.0'15 or whatever. MogerBetaGUI was ported from this version. Differences to 016/others are explained in the thread.
dsl9
Gnoblar
Posts: 1
Joined: Mon Jun 02, 2008 4:38 pm

Post by dsl9 »

Totally noob here. Anyone can show me a functional example for version 2.5?

I mean...the entire file to make a simple menu with a button or something?

Thanks in advance.
User avatar
toglia
Gnome
Posts: 336
Joined: Sat Dec 08, 2007 4:28 am
Location: Canada
x 7

Post by toglia »

My program just need buttons and a pointer, can I use the smaller version (0.15 I think) on Ogre 1.4?
User avatar
betajaen
OGRE Moderator
OGRE Moderator
Posts: 3447
Joined: Mon Jul 18, 2005 4:15 pm
Location: Wales, UK
x 58

Post by betajaen »

Should be able to.
User avatar
toglia
Gnome
Posts: 336
Joined: Sat Dec 08, 2007 4:28 am
Location: Canada
x 7

Can't use abolute positioning with OIS mouse and BetaGUI

Post by toglia »

Hello!

I'm using BetaGui with a touch screen so I had to change my update cursor code from relative to absolute positioning, but now my cursor seems to be trapped in a 51 x 51 box in the higher right side of the screen. It can move ok, but I cant get it out of there.

Image

This is my init code:

Code: Select all

mGUI = new BetaGUI::GUI("Fondo1Material","Ocra10",24);
	mGUI->injectMouse(0,0,false);
	mPointer = mGUI->createMousePointer(Vector2(32,32), "bgui.pointer"); 

	
	mGUIWindow = mGUI->createWindow(
		Vector4(0,0,
		mViewport1->getActualWidth(),
		mViewport1->getActualWidth()), 
		"bgui.window", BetaGUI::NONE);

	
	cb = new BetaGUI::Callback(this);
This is my update:

Code: Select all

const OIS::MouseState &ms = mouse->getMouseState();

	mouseX = ms.X.abs;
	mouseY = ms.Y.abs;

	
	if (ms.buttonDown(OIS::MB_Left)){
		mGUI->injectMouse(mouseX, mouseY, true);
	}else{
		mGUI->injectMouse(mouseX, mouseY, false);
	}
I would appreciate any help
mysterycoder
Google Summer of Code Student
Google Summer of Code Student
Posts: 169
Joined: Sat Dec 03, 2005 2:04 am
x 6

Post by mysterycoder »

Perhaps it is an issue with OIS? Try setting the width and height of the MouseState to the size of the window. Look in OISMouse.h for more info.
User avatar
betajaen
OGRE Moderator
OGRE Moderator
Posts: 3447
Joined: Mon Jul 18, 2005 4:15 pm
Location: Wales, UK
x 58

Post by betajaen »

It does sound like an input problem. BetaGUI only accepts absolute positioning of the cursor and usually doesn't moan about where you put it next.
User avatar
toglia
Gnome
Posts: 336
Joined: Sat Dec 08, 2007 4:28 am
Location: Canada
x 7

Post by toglia »

this fixed it:

Code: Select all

mouse->getMouseState().width = 1024;
mouse->getMouseState().height = 768;
(on the init)

Sorry to bother...
User avatar
Beauty
OGRE Community Helper
OGRE Community Helper
Posts: 767
Joined: Wed Oct 10, 2007 2:36 pm
Location: Germany
x 39

Post by Beauty »

For MogreBetaGUI someone wrote the additional functions createAlterableOverlay() and createAlterableText().
This is nice to display text that changes every frame (e.g. to show fps).

The source is C#, but I think it's not difficult to port it.
www.ogre3d.org/phpBB2addons/viewtopic.php?p=47533#47531
If someone port it, it would be good to add the code block to the wiki.

If there is still a solution for that, sorry for the redundant post.
I don't remember all the posts of this thread and don't want to read it again now.
Help to add information to the wiki. Also tiny edits will let it grow ... :idea:
Add your country to your profile ... it's interesting to know from where of the world you are.
User avatar
toglia
Gnome
Posts: 336
Joined: Sat Dec 08, 2007 4:28 am
Location: Canada
x 7

Post by toglia »

I´m using Betagui 0.15 and I'm trying to change the zOrder of windows without luck. I have looked the mO container but no one seems to have setZOrder method...

I would appreciate any help.
User avatar
toglia
Gnome
Posts: 336
Joined: Sat Dec 08, 2007 4:28 am
Location: Canada
x 7

Post by toglia »

I solved it defining two GUI...
shanefarris
Greenskin
Posts: 107
Joined: Sun Mar 01, 2009 8:36 pm
x 7

Re: BetaGUI : BetaGUI 2.5 update - Style system added.

Post by shanefarris »

Anyone have any idea where I can find bguires.zip? The link on the wiki points to a dead link.
shanefarris
Greenskin
Posts: 107
Joined: Sun Mar 01, 2009 8:36 pm
x 7

Re: BetaGUI : BetaGUI 2.5 update - Style system added.

Post by shanefarris »

I found it on CSPAN http://search.cpan.org/~slanning/Ogre-B ... 4/MANIFEST, but I still need to see if it is all there and correct.
User avatar
betajaen
OGRE Moderator
OGRE Moderator
Posts: 3447
Joined: Mon Jul 18, 2005 4:15 pm
Location: Wales, UK
x 58

Re: BetaGUI : BetaGUI 2.5 update - Style system added.

Post by betajaen »

Somewhere in the deep underground levels at nxogre.org

http://static.nxogre.org/releases/betagui/
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179

Re: BetaGUI : BetaGUI 2.5 update - Style system added.

Post by jacmoe »

I'll attach it.
<done>
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
User avatar
betajaen
OGRE Moderator
OGRE Moderator
Posts: 3447
Joined: Mon Jul 18, 2005 4:15 pm
Location: Wales, UK
x 58

Re: BetaGUI : BetaGUI 2.5 update - Style system added.

Post by betajaen »

I did some checking. I believe that's for a newer un-released version.

I believe this is the one intended for the code on the wiki.
You do not have the required permissions to view the files attached to this post.
User avatar
jacmoe
OGRE Retired Moderator
OGRE Retired Moderator
Posts: 20570
Joined: Thu Jan 22, 2004 10:13 am
Location: Denmark
x 179

Re: BetaGUI : BetaGUI 2.5 update - Style system added.

Post by jacmoe »

Fixed-fixed. :wink:
/* Less noise. More signal. */
Ogitor Scenebuilder - powered by Ogre, presented by Qt, fueled by Passion.
OgreAddons - the Ogre code suppository.
marcus_ant
Gnoblar
Posts: 7
Joined: Mon Sep 27, 2010 9:29 am

Re: BetaGUI : BetaGUI 2.5 update - Style system added.

Post by marcus_ant »

hi guys i have same problem. Dont seen text on GUI
my codes:

Code: Select all

#include "ExampleApplication.h"
#include "BetaGUI.h"


class Menu : public ExampleFrameListener
{
public:
	Menu(RenderWindow *win, Camera *cam) : ExampleFrameListener(win, cam)
	{
		mGUI = new BetaGUI::GUI("base","StarWars",24);
		BetaGUI::Window* window = mGUI->createWindow(Vector4(100,100,300,100), "bgui.window", BetaGUI::RESIZE_AND_MOVE, "Magical Doubler");
window->createStaticText(Vector4(4,22,198,40), "Type in a number and I'll double it!");
	}

	~Menu()
	{
		delete mGUI;
	}

	bool frameStarted(const FrameEvent& evt)
	{
		
		return ExampleFrameListener::frameStarted(evt);
	}
private:
	BetaGUI::GUI* mGUI;
};
 
class BloodyMessTutorial7 : public ExampleApplication
{
protected:
 
    void createScene()
    {
    }
 
    void createFrameListener()
    {
	mFrameListener = new Menu(mWindow, mCamera);
        mRoot->addFrameListener(mFrameListener);
    }
};
BetaGUI.cpp:

Code: Select all

/// Betajaen's GUI 016 Uncompressed
/// Written by Robin "Betajaen" Southern 07-Nov-2006, http://www.ogre3d.org/wiki/index.php/BetaGUI
/// This code is under the Whatevar! licence. Do what you want; but keep the original copyright header.
#include "BetaGUI.h"

using namespace Ogre;
using namespace std;

namespace BetaGUI {
	GUI::GUI(String baseOverlay, String font, uint fontSize)
		:mXW(0),
		 mMP(0),
		 mFont(font),
		 mFontSize(fontSize),
		 wc(0),
		 bc(0),
		 tc(0)
	{
			mO = OverlayManager::getSingleton().create(baseOverlay);
			mO->show();
	}
	
	GUI::~GUI() {
		for(uint i=0;i < WN.size();i++)
			delete WN[i];
		WN.clear();
	}
	
	bool GUI::injectMouse(uint x, uint y, bool LMB) {
		
		if (mMP)
			mMP->setPosition(x,y);

		if (mXW) {
			for(std::vector<Window*>::iterator i=WN.begin();i!=WN.end();i++) {
				if(mXW==(*i)) {
					delete mXW;
					WN.erase(i);
					mXW=0;
					return false;
				}
			}
		}

		
		for(uint i=0;i<WN.size();i++) {
			if(WN[i]->check(x,y,LMB)) {
				return true;
			}
		}

		return false;
	}	
	bool GUI::injectKey(String key, uint x, uint y) {
		for(uint i=0;i<WN.size();i++) {
			if(WN[i]->checkKey(key,x,y)) {
				return true;
			}
		}
		return false;
	}
	
	void GUI::injectBackspace(uint x, uint y) {
		injectKey("!b", x, y);
	}

	OverlayContainer* GUI::createOverlay(String name, Vector2 position, Vector2 dimensions, String material, String caption, bool autoAdd) {
		String type="Panel";
		
		if (caption!="")
			type="TextArea";
		
		OverlayContainer* e=static_cast<OverlayContainer*>(OverlayManager::getSingleton().createOverlayElement(type, name));

		e->setMetricsMode(Ogre::GMM_PIXELS);
		e->setDimensions(dimensions.x, dimensions.y);
		e->setPosition(position.x, position.y);

		if (material!="")
			e->setMaterialName(material);
		
		if (caption!="") {
			e->setCaption(caption);
			e->setParameter("font_name",mFont);
			e->setParameter("char_height",StringConverter::toString(mFontSize));
		}

		if(autoAdd) {
			mO->add2D(e);
			e->show();
		}
		
		return e;
	}

	OverlayContainer* GUI::createMousePointer(Vector2 d, String m) {
		Overlay* o = OverlayManager::getSingleton().create("BetaGUI.MP");
		o->setZOrder(649);
		mMP = createOverlay("bg.mp", Vector2(0,0), d, m, "", false);
		o->add2D(mMP);
		o->show();
		mMP->show();
		return mMP;
	}

	Window* GUI::createWindow(Vector4 Dimensions, String Material, wt type, String caption) {
		Window* window = new BetaGUI::Window(Dimensions, Material, type, caption, this);
		WN.push_back(window);
		return window;
	}

	Window::Window(Vector4 Dimensions, String Material, wt t, String caption, GUI *gui)
		: x(Dimensions.x), 
		  y(Dimensions.y),
		  w(Dimensions.z),
		  h(Dimensions.w),
		  mGUI(gui),
		  mTB(0),
		  mRZ(0),
		  mATI(0),
		  mAB(0) 
	{

		mO = gui->createOverlay(gui->mO->getName() + ".w" + StringConverter::toString(gui->wc++), Vector2(Dimensions.x,Dimensions.y), Vector2(Dimensions.z,Dimensions.w), Material); 
		if (t >= 2) {
			Callback c;c.t=4;
			mRZ=createButton(Vector4(Dimensions.z-16,Dimensions.w-16,16,16),Material+".resize", "",c);
		}

		if (t == 1 || t == 3) {
			Callback c;c.t=3;
			mTB = createButton(Vector4(0,0,Dimensions.z,22),Material + ".titlebar", caption, c);
		}

	}

	Window::~Window() {
		for(uint i=0;i<mB.size();i++)
			delete mB[i];
		
		for(uint i=0;i<mT.size();i++)
			delete mT[i];
		
		mGUI->mO->remove2D(mO);
	}

	void Window::setPosition(uint X,uint Y) {
		mO->setPosition(x=X,y=Y);
	}

	Vector2 Window::getPosition() {
		return Vector2(x,y);
	}

	Vector2 Window::getSize() {
		return Vector2(w,h);
	}

	void Window::setSize(uint X,uint Y) {
		mO->setDimensions(w=X,h=Y);
		mRZ->mO->setPosition(mRZ->x=w-16,mRZ->y=h-16);
		if(mTB){
			mTB->mO->setWidth(mTB->w=w);
		}
	}

	Button* Window::createButton(Vector4 D, String M, String T, Callback C) {
		Button *x = new Button(D, M, T, C, this);
		mB.push_back(x);
		return x;
	}

	Button::Button(Vector4 Dimensions, String m, String Text, Callback cb, Window *parent)
		: x(Dimensions.x),
		  y(Dimensions.y),
		  w(Dimensions.z),
		  h(Dimensions.w),
		  mmn(m),
		  mma(m)
	{
		Ogre::ResourcePtr ma=Ogre::MaterialManager::getSingleton().getByName(mmn + ".active");
		if(!ma.isNull())
			mma += ".active";
		
		mO = parent->mGUI->createOverlay(parent->mO->getName() + "b" + StringConverter::toString(parent->mGUI->bc++), Vector2(x,y),Vector2(w,h),m,"",false);
		mCP = parent->mGUI->createOverlay(mO->getName() + "c",Vector2(4,(h - parent->mGUI->mFontSize) / 2),Vector2(w, h),"",Text,false);
		parent->mO->addChild(mO);
		mO->show();
		mO->addChild(mCP);
		mCP->show();
		callback = cb;
	}

	TextInput* Window::createTextInput(Vector4 D, String M, String V, uint L) {
		TextInput *x = new TextInput(D,M,V,L,this);
		mT.push_back(x);
		return x;
	}

	OverlayContainer* Window::createStaticText(Vector4 D, String T) {
		OverlayContainer* x = mGUI->createOverlay(mO->getName() + "st." + StringConverter::toString(mGUI->tc++),Vector2(D.x,D.y),Vector2(D.z,D.w),"", T,false);
		mO->addChild(x);
		x->show();
		return x;
	}
	
	TextInput::TextInput(Vector4 D, String M, String V, uint L, Window *P)
		: x(D.x),y(D.y),w(D.z),h(D.w),value(V),mmn(M), mma(M), length(L) 
	{
		ResourcePtr ma=Ogre::MaterialManager::getSingleton().getByName(mmn + ".active");
		if(!ma.isNull())
			mma += ".active";

		mO=P->mGUI->createOverlay(P->mO->getName() + "t" + StringConverter::toString(P->mGUI->tc++) ,Vector2(x,y),Vector2(w,h),M,"",false);
		mCP=P->mGUI->createOverlay(mO->getName() + "c",Vector2(4,(h - P->mGUI->mFontSize) / 2),Vector2(w,h),"",V,false);
		P->mO->addChild(mO);
		mO->show();
		mO->addChild(mCP);
		mCP->show();
	}
	
	bool Window::checkKey(String k, uint px, uint py) {
		
		if (!mO->isVisible())
			return false;

		if(!(px>=x&&py>=y)||!(px<=x+w&&py<=y+h))return false;
		
		if(mATI == 0)
			return false;
		
		if(k=="!b") {
			mATI->setValue(mATI->value.substr(0,mATI->value.length()-1));
			return true;
		}

		if(mATI->value.length() >= mATI->length)
			return true;
		
		mATI->mCP->setCaption(mATI->value+=k);
		return true;
	}
	
	bool Window::check(uint px, uint py, bool LMB) {
		
		if (!mO->isVisible())
			return false;
		
		if (!(px >= x && py >= y) || !(px <= x + w && py <= y + h))	{
			if (mAB) {
				if (mAB->callback.t == 2) {
					mAB->callback.LS->onButtonPress(mAB, 3);
				}
				mAB->activate(false);
				mAB = 0;
			}
			return false;
		}
		
		for (uint i=0;i < mB.size();i++) {
			if (mB[i]->in(px,py,x,y))
				continue;
		
			if (mAB) {
				if (mAB != mB[i]) {
					mAB->activate(false);
					if (mAB->callback.t == 2) {
						mAB->callback.LS->onButtonPress(mAB, 3);
					}
				}
			}


			mAB=mB[i];
			mAB->activate(true);
			
			if(mATI && LMB) {
				mATI->mO->setMaterialName(mATI->mmn);
				mATI=0;
			}

			switch(mAB->callback.t) {
				default: return true;
				case 1: 
					mAB->callback.fp(mAB, LMB);
					return true;
				case 2:
					mAB->callback.LS->onButtonPress(mAB, LMB);
					return true;
				case 3:
					if (LMB)
						setPosition(px-(mAB->w/2),py-(mAB->h/2));
					return true;
				case 4:
					if (LMB)
						setSize(px-x+8,py-y+8);
				return true;
			}

		}

		if (!LMB)
			return false;

		for (uint i=0;i<mT.size();i++) {
	
			if (mT[i]->in(px,py,x,y))
				continue;

			mATI=mT[i];
			mATI->mO->setMaterialName(mATI->mma);
			return true;
		}
		
		if(mATI) {
			mATI->mO->setMaterialName(mATI->mmn);
			mATI=0;
			return true;
		}
		
		return false;
	}

} // End of Betajaen's GUI. Normal programming can resume now. // End of Betajaen's GUI. Normal programming can resume now.
betahui.h

Code: Select all

#ifndef BETAGUI
#define BETAGUI

/// Betajaen's GUI 016 Uncompressed
/// Written by Robin "Betajaen" Southern 07-Nov-2006, http://www.ogre3d.org/wiki/index.php/BetaGUI
/// This code is under the Whatevar! licence. Do what you want; but keep the original copyright header.

#include "Ogre.h"
using namespace Ogre;
using namespace std;

namespace BetaGUI {
	
	/// This code is not meant to be readable, if you base your future source on this, I will laugh at you.
	
	class GUI;
	class Window;
	class Button;
	class TextInput;
	class Callback;
	
	enum wt { /* Window Type */
		NONE=0,
		MOVE=1,
		RESIZE=2,
		RESIZE_AND_MOVE=3
	};

	class GUI {
		public:
			friend class Window;
			friend class Button;
			friend class TextInput;
			GUI(String baseOverlay, String font, uint fontSize);
			~GUI();
			void setZOrder(unsigned int z) {
				mO->setZOrder(z);
			}

			bool injectMouse(uint x, uint y, bool LMB);
			bool injectKey(String key, uint x, uint y);
			void injectBackspace(uint x, uint y);
			Window*	 createWindow(Vector4 Dimensions, String Material, wt type, String caption = "");
			void destroyWindow(Window *window) {
				mXW=window;
			}
			OverlayContainer* createOverlay(Ogre::String name, Vector2 position, Vector2 dimensions, Ogre::String material = "", Ogre::String caption = "", bool autoAdd = true);
			OverlayContainer* createMousePointer(Vector2 dimensions, Ogre::String material);
				
			

	protected:
			Overlay* mO;						// Main sheet overlay
			std::vector<Window*>WN;					// Windows
			Window *mXW;						// Window to destroy
			OverlayContainer* mMP;				// Mouse Pointer Overlay
			String mFont;
			uint mFontSize;
			uint wc, bc, tc;
	};

	class Window {
		public:
			friend class Button;
			friend class TextInput;
			friend class GUI;
		
			Button*		createButton(Vector4 Dimensions, String Material, String Text, Callback callback);
			TextInput*	createTextInput(Vector4 Dimensions, String Material, String Value, uint length);
			OverlayContainer* createStaticText(Vector4 Dimensions, String Text);
		
			void hide(){
				mO->hide();
			}
			
			void show(){
				mO->show();
			}
			
			bool isVisible() {
				return mO->isVisible();
			}

			void setPosition(uint X,uint Y);
			Vector2 getPosition();
			Vector2 getSize();
			void setSize(uint X,uint Y);

			OverlayContainer* mO;			// Overlay

		protected:
			Window(Vector4 Dimensions, String Material, wt type, String caption, GUI *gui);
			~Window();
			
			bool check(uint x, uint y, bool LMB); bool checkKey(String key, uint x, uint y);
			TextInput* mATI;				// Active TextInput
			Button *mRZ,*mAB,*mTB;			// Resizer, ActiveButton, Titlebar
			uint x,y,w,h;					// Dimensions
			GUI *mGUI;						// mGUI pointer
			
			std::vector<BetaGUI::Button*> mB;	// Buttons
			std::vector<BetaGUI::TextInput*> mT;	// TextInputs
	};

	class BetaGUIListener {
		public:
			virtual void onButtonPress(Button*, uchar) = 0;
	};

	class Callback {
		public:
			friend class Window;
			friend class Button;
			
			Callback() {
				t=0;
			}
			
			Callback( void(*functionPointer)(BetaGUI::Button*, bool) ) {
				t=1;
				fp = functionPointer;
			}

			Callback(BetaGUIListener *l){
				t = 2;
				LS = l;
			}
		protected:
			uchar t;					// Type of callback: 0 - None, 1 - FunctionPointer 2 - GUIListener, 3 - Move Window, 4 - Resize
			void(*fp)(BetaGUI::Button*, bool);	// Function pointer (if 1)
			BetaGUIListener *LS;		// GuiListener (if 2)
	};

	class Button {
		public:
			friend class Window;
		
			Button(Vector4 Dimensions, String Material, String Text, Callback callback, Window *parent);
			~Button() {
				mO->getParent()->removeChild(mO->getName());
				mCP->getParent()->removeChild(mCP->getName());
			}
		protected:
			void activate(bool a) {
				if (!a && mmn!="")
				mO->setMaterialName(mmn);
				if (a && mma!="")
					mO->setMaterialName(mma);
			}
			bool in(uint mx, uint my, uint px, uint py) {
				return ( !(mx >= x + px && my >= y + py)) || ( ! (mx <= x + px + w && my <= y + py + h) );
			}
			OverlayContainer* mO,*mCP;			// Main Overlay and Caption
			String mmn,mma;						// MaterialName Normal, MaterialName Active
			BetaGUI::Callback callback;			// Callback to use
			uint x,y,w,h;						// Dimensions.
	};
	
	class TextInput {
		public:
			friend class Window;
			
			TextInput(Vector4 Dimensions, String Material, String Value, uint length, Window *parent);
			~TextInput(){}
			String getValue() {
				return value;
			}
			
			void setValue(String v) {
				mCP->setCaption(value=v);
			}

		protected:
			bool in(uint mx, uint my, uint px, uint py) {
				return ( !(mx >= x + px && my >= y + py)) || ( ! (mx <= x + px + w && my <= y + py + h) );
			}
			OverlayContainer* mO,*mCP;
			String mmn, mma, value;
			uint x,y,w,h,length;
	};
} // End of Namespace
#endif
Pls help me guys. Hide texts.
You do not have the required permissions to view the files attached to this post.
User avatar
betajaen
OGRE Moderator
OGRE Moderator
Posts: 3447
Joined: Mon Jul 18, 2005 4:15 pm
Location: Wales, UK
x 58

Re: BetaGUI : BetaGUI 2.5 update - Style system added.

Post by betajaen »

Have you manually tried creating an Overlay with the Star Wars font to see if's Ogre or your font definition than BetaGUI?

Personally, I would use something more efficient these days, QuickGUI for example.
mislawik
Gnoblar
Posts: 11
Joined: Sun Jan 09, 2011 9:09 am

Re: BetaGUI : BetaGUI 2.5 update - Style system added.

Post by mislawik »

Hello,
i want simple code sample with simplest Ogre application and this GUI. Is anyone can make it for me?
I don't know where to put some code from wiki to application. I really want to use this GUI, because it's simple and I don't need many features.

Greets.
User avatar
betajaen
OGRE Moderator
OGRE Moderator
Posts: 3447
Joined: Mon Jul 18, 2005 4:15 pm
Location: Wales, UK
x 58

Re: BetaGUI : BetaGUI 2.5 update - Style system added.

Post by betajaen »

This is really old and inefficient.

Use something based on Gorilla, QuickGUI, or the like.
mislawik
Gnoblar
Posts: 11
Joined: Sun Jan 09, 2011 9:09 am

Re: BetaGUI : BetaGUI 2.5 update - Style system added.

Post by mislawik »

QuickGUI i must to compile, it's too hard to me.
Something based on Gorilla - can you recommend something? It must be really easy to use and easy to implementation.

Greets!
User avatar
mkultra333
Gold Sponsor
Gold Sponsor
Posts: 1894
Joined: Sun Mar 08, 2009 5:25 am
x 116

Re: BetaGUI : BetaGUI 2.5 update - Style system added.

Post by mkultra333 »

I made a very simple gui the other day, I've posted a thread for it in this forum, http://www.ogre3d.org/forums/viewtopic.php?f=11&t=70015
There's a project you can download which is just the standard Tutorial app plus the gui.

It's very new and untested, so if you need something mature and reliable it wouldn't be the way to go. And it isn't very flashy looking either. But otherwise it's very simple.
"In theory there is no difference between practice and theory. In practice, there is." - Psychology Textbook.