[solved] Windows get inactive... for no reason

For help with anything that CEGUI doesn't offer straight out-of-the-box, e.g.:
- Implementation of new features, such as new Core classes, widgets, WindowRenderers, etc. ...
- Modification of any existing features for specific purposes
- Integration of CEGUI in new engines or frameworks and writing of new plugins (Renderer, Parser, ...) or modules

Moderators: CEGUI MVP, CEGUI Team

Dirso
Not too shy to talk
Not too shy to talk
Posts: 25
Joined: Sun Dec 31, 2006 15:49

[solved] Windows get inactive... for no reason

Postby Dirso » Sat Apr 28, 2007 13:32

Hi,

I made 2 wrapper classes to make easy the work of handling buttons and windows. The problem is when I show a FrameWindow it becomes inactive, I can't click anywhere inside it not move it.
It was based on wallaber work

GuiObj.h

Code: Select all

#ifndef __GUIOBJ_H__
#define __GUIOBJ_H__

#include "eCGFWPrereqs.h"
#include <CEGUI.h>
#include "GameState.h"

namespace eCGFW
{
   ///////////////////////////////////////////////////////////
   // class StandardButton
   // definition: use this class to create standart buttons
   //   with the playsound function already subscribed
   class eCGFW_Export StandardButton
   {
      CEGUI::PushButton* mButton;

   public:
      StandardButton(GameState* state, CEGUI::String &name);

      ~StandardButton();

      CEGUI::PushButton* getButton() { return mButton; }

      void setText(CEGUI::String text);

      bool playClickSound( const CEGUI::EventArgs& e )
      {
         return _owner->playClickSound(e);
      }

      void assignPlayClickSound()
      {
         using namespace CEGUI;
         mButton->subscribeEvent( PushButton::EventClicked,
            Event::Subscriber( &StandardButton::playClickSound, this));
      }

      GameState *_owner;
   };

   ///////////////////////////////////////////////////////////
   // class BasicDialog
   // definition: this is the base for any dialog for the game
   class eCGFW_Export BasicDialog
   {
   public:
      BasicDialog(GameState *state, CEGUI::String name);

      virtual ~BasicDialog();

      void setButtonText(Ogre::String &ok, Ogre::String &cancel)
      {
         mButtonOK->setText(ok);
         mButtonCancel->setText(cancel);
      }

      virtual void show( Ogre::String& text, Ogre::String& msg )
      {
         mWasOkClicked = false;
         mWindow->setText( (std::string)text );
         mText->setText( (std::string)msg );
      
         mWindow->show();
      }

      virtual void hide()
      {
         mWindow->hide();
      }

      bool wasOkClicked() { return mWasOkClicked; }

      CEGUI::FrameWindow* getCEGUIWindow() { return mWindow; }

   private:
      bool okClicked( const CEGUI::EventArgs& e )
      {
         mWasOkClicked = true;
         hide();

         return true;
      }

      bool cancelClicked( const CEGUI::EventArgs& e )
      {
         hide();

         return true;
      }

   public:

      bool mWasOkClicked;
      bool mPlaySounds;
      CEGUI::FrameWindow* mWindow;
      CEGUI::DefaultWindow* mText;
      StandardButton* mButtonOK;
      StandardButton* mButtonCancel;

      GameState *_owner;
   };
}

#endif


GuiObj.cpp

Code: Select all

#include "GuiObj.h"

namespace eCGFW
{
   StandardButton::StandardButton(GameState* state, CEGUI::String &name)
   {
      using namespace CEGUI;
      _owner = state;
      mButton = static_cast<PushButton*>(CEGUI::WindowManager::getSingleton().getWindow(name));
      assignPlayClickSound();
   }


   StandardButton::~StandardButton()
   {
      using namespace CEGUI;
      WindowManager::getSingleton().destroyWindow( mButton );
   }

   void StandardButton::setText(CEGUI::String text)
   {
      mButton->setText(text);
   }

   BasicDialog::BasicDialog(GameState *state, CEGUI::String name)
   {
      using namespace CEGUI;
      // vars
      mWasOkClicked = false;
      _owner = state;
      // create windows
      mWindow = static_cast<FrameWindow*>(CEGUI::WindowManager::getSingleton().getWindow(name));
      mText = static_cast<DefaultWindow*>(CEGUI::WindowManager::getSingleton().getWindow(name + "/Msg"));
      mButtonCancel = new StandardButton(state, name + "/Cancel");
      mButtonOK = new StandardButton(state, name + "/OK");

      mButtonOK->getButton()->subscribeEvent( PushButton::EventClicked,
         Event::Subscriber( &BasicDialog::okClicked, this));
      mButtonCancel->getButton()->subscribeEvent( PushButton::EventClicked,
         Event::Subscriber( &BasicDialog::cancelClicked, this));

      hide();
   }

   BasicDialog::~BasicDialog()
   {
      // cleanup.
      using namespace CEGUI;

      delete mButtonOK;
      delete mButtonCancel;
      WindowManager::getSingleton().destroyWindow( mWindow );
   }
}


mainmenu.xml script

Code: Select all

<?xml version="1.0" ?>
<GUILayout>
<Window Type="DefaultGUISheet" Name="root">

   <Window Type="DefaultGUISheet" Name="MainMenu">

      <Window Type="TaharezLook/FrameWindow" Name="MainMenu/Career">
         <Property Name="UnifiedPosition" Value="{{0.0,0},{0.0,0}}" />
         <Property Name="UnifiedMaxSize" Value="{{0.23,0},{0.2,0}}" />
         <Property Name="UnifiedMinSize" Value="{{0.23,0},{0.2,0}}" />
         <Property Name="UnifiedSize" Value="{{0.23,0},{0.2,0}}" />
         <Property Name="Text" Value="Career: My Avatar" />
         <Property Name="Alpha" Value="0.75" />
         <Property Name="CloseButtonEnabled" Value="False" />
         
         <Window Type="TaharezLook/Button" Name="MainMenu/Career/Continue">
            <Property Name="UnifiedPosition" Value="{{0.05,0},{0.20,0}}" />
            <Property Name="UnifiedMaxSize" Value="{{0.205,0},{0.05,0}}" />
            <Property Name="UnifiedMinSize" Value="{{0.205,0},{0.05,0}}" />
            <Property Name="UnifiedSize" Value="{{0.205,0},{0.05,0}}" />
            <Property Name="Text" Value="Continue" />
            <Property Name="InheritsAlpha" Value="False" />
         </Window>
         
         <Window Type="TaharezLook/Checkbox" Name="MainMenu/Career/AutoSave" >
        <Property Name="Text" >Auto-save</Property>
            <Property Name="UnifiedPosition" Value="{{0.05,0},{0.50,0}}" />
            <Property Name="UnifiedMaxSize" Value="{{0.1,0},{0.05,0}}" />
            <Property Name="UnifiedMinSize" Value="{{0.1,0},{0.05,0}}" />
            <Property Name="UnifiedSize" Value="{{0.1,0},{0.05,0}}" />
      </Window>
     
         <Window Type="TaharezLook/Button" Name="MainMenu/Career/SaveBtn">
            <Property Name="UnifiedPosition" Value="{{0.5,0},{0.50,0}}" />
            <Property Name="UnifiedMaxSize" Value="{{0.101,0},{0.05,0}}" />
            <Property Name="UnifiedMinSize" Value="{{0.101,0},{0.05,0}}" />
            <Property Name="UnifiedSize" Value="{{0.101,0},{0.05,0}}" />
            <Property Name="Text" Value="Save" />
            <Property Name="InheritsAlpha" Value="False" />
         </Window>
         
         <Window Type="TaharezLook/ProgressBar" Name="MainMenu/Career/ProgressBar" >
        <Property Name="StepSize" Value="0.01" />
            <Property Name="UnifiedPosition" Value="{{0.05,0},{0.80,0}}" />
            <Property Name="UnifiedMaxSize" Value="{{0.205,0},{0.03,0}}" />
            <Property Name="UnifiedMinSize" Value="{{0.205,0},{0.03,0}}" />
            <Property Name="UnifiedSize" Value="{{0.205,0},{0.03,0}}" />
            <Property Name="InheritsAlpha" Value="False" />
         </Window>
         
       </Window>

      <Window Type="TaharezLook/FrameWindow" Name="MainMenu/PlayOnLine">
         <Property Name="UnifiedPosition" Value="{{0.0,0},{0.5,0}}" />
         <Property Name="UnifiedMaxSize" Value="{{0.23,0},{0.2,0}}" />
         <Property Name="UnifiedMinSize" Value="{{0.23,0},{0.2,0}}" />
         <Property Name="UnifiedSize" Value="{{0.23,0},{0.2,0}}" />
         <Property Name="Text" Value="Play OnLine" />
         <Property Name="Alpha" Value="0.75" />
         <Property Name="CloseButtonEnabled" Value="False" />
         
         <Window Type="TaharezLook/Button" Name="MainMenu/PlayOnLine/Lan">
            <Property Name="UnifiedPosition" Value="{{0.05,0},{0.4,0}}" />
            <Property Name="UnifiedMaxSize" Value="{{0.205,0},{0.05,0}}" />
            <Property Name="UnifiedMinSize" Value="{{0.205,0},{0.05,0}}" />
            <Property Name="UnifiedSize" Value="{{0.205,0},{0.05,0}}" />
            <Property Name="Text" Value="Lan" />
            <Property Name="InheritsAlpha" Value="False" />
         </Window>
         
         <Window Type="TaharezLook/Button" Name="MainMenu/PlayOnLine/Internet">
            <Property Name="UnifiedPosition" Value="{{0.05,0},{0.7,0}}" />
            <Property Name="UnifiedMaxSize" Value="{{0.205,0},{0.05,0}}" />
            <Property Name="UnifiedMinSize" Value="{{0.205,0},{0.05,0}}" />
            <Property Name="UnifiedSize" Value="{{0.205,0},{0.05,0}}" />
            <Property Name="Text" Value="Internet" />
            <Property Name="InheritsAlpha" Value="False" />
         </Window>
         
      </Window>

      <Window Type="TaharezLook/FrameWindow" Name="MainMenu/Options">
         <Property Name="UnifiedPosition" Value="{{0.77,0},{0.0,0}}" />
         <Property Name="UnifiedMaxSize" Value="{{0.23,0},{0.5,0}}" />
         <Property Name="UnifiedMinSize" Value="{{0.23,0},{0.5,0}}" />
         <Property Name="UnifiedSize" Value="{{0.23,0},{0.5,0}}" />
         <Property Name="Text" Value="Options" />
         <Property Name="Alpha" Value="0.75" />
         <Property Name="CloseButtonEnabled" Value="False" />
         
         <Window Type="TaharezLook/Button" Name="MainMenu/Options/CarSelection">
            <Property Name="UnifiedPosition" Value="{{0.05,0},{0.20,0}}" />
            <Property Name="UnifiedMaxSize" Value="{{0.205,0},{0.05,0}}" />
            <Property Name="UnifiedMinSize" Value="{{0.205,0},{0.05,0}}" />
            <Property Name="UnifiedSize" Value="{{0.205,0},{0.05,0}}" />
            <Property Name="Text" Value="Car Selection" />
            <Property Name="InheritsAlpha" Value="False" />
         </Window>

         <Window Type="TaharezLook/Button" Name="MainMenu/Options/Avatar">
            <Property Name="UnifiedPosition" Value="{{0.05,0},{0.3,0}}" />
            <Property Name="UnifiedMaxSize" Value="{{0.205,0},{0.05,0}}" />
            <Property Name="UnifiedMinSize" Value="{{0.205,0},{0.05,0}}" />
            <Property Name="UnifiedSize" Value="{{0.205,0},{0.05,0}}" />
            <Property Name="Text" Value="Avatar" />
            <Property Name="InheritsAlpha" Value="False" />
         </Window>

         <Window Type="TaharezLook/Button" Name="MainMenu/Options/Controls">
            <Property Name="UnifiedPosition" Value="{{0.05,0},{0.4,0}}" />
            <Property Name="UnifiedMaxSize" Value="{{0.205,0},{0.05,0}}" />
            <Property Name="UnifiedMinSize" Value="{{0.205,0},{0.05,0}}" />
            <Property Name="UnifiedSize" Value="{{0.205,0},{0.05,0}}" />
            <Property Name="Text" Value="Controls" />
            <Property Name="InheritsAlpha" Value="False" />
         </Window>

         <Window Type="TaharezLook/Button" Name="MainMenu/Options/Video">
            <Property Name="UnifiedPosition" Value="{{0.05,0},{0.5,0}}" />
            <Property Name="UnifiedMaxSize" Value="{{0.205,0},{0.05,0}}" />
            <Property Name="UnifiedMinSize" Value="{{0.205,0},{0.05,0}}" />
            <Property Name="UnifiedSize" Value="{{0.205,0},{0.05,0}}" />
            <Property Name="Text" Value="Video" />
            <Property Name="InheritsAlpha" Value="False" />
         </Window>

         <Window Type="TaharezLook/Button" Name="MainMenu/Options/Audio">
            <Property Name="UnifiedPosition" Value="{{0.05,0},{0.6,0}}" />
            <Property Name="UnifiedMaxSize" Value="{{0.205,0},{0.05,0}}" />
            <Property Name="UnifiedMinSize" Value="{{0.205,0},{0.05,0}}" />
            <Property Name="UnifiedSize" Value="{{0.205,0},{0.05,0}}" />
            <Property Name="Text" Value="Audio" />
            <Property Name="InheritsAlpha" Value="False" />
         </Window>

      </Window>

      <Window Type="TaharezLook/Button" Name="MainMenu/Quit">
         <Property Name="UnifiedPosition" Value="{{0.05,0},{0.9,0}}" />
         <Property Name="UnifiedMaxSize" Value="{{0.1,0},{0.05,0}}" />
         <Property Name="UnifiedMinSize" Value="{{0.1,0},{0.05,0}}" />
         <Property Name="UnifiedSize" Value="{{0.1,0},{0.05,0}}" />
         <Property Name="Text" Value="Quit" />
         <Property Name="InheritsAlpha" Value="False" />
      </Window>

      <Window Type="TaharezLook/Button" Name="MainMenu/Credits">
         <Property Name="UnifiedPosition" Value="{{0.8,0},{0.9,0}}" />
         <Property Name="UnifiedMaxSize" Value="{{0.1,0},{0.05,0}}" />
         <Property Name="UnifiedMinSize" Value="{{0.1,0},{0.05,0}}" />
         <Property Name="UnifiedSize" Value="{{0.1,0},{0.05,0}}" />
         <Property Name="Text" Value="Credits" />
         <Property Name="InheritsAlpha" Value="False" />
      </Window>

   </Window>
   
      <Window Type="TaharezLook/FrameWindow" Name="MainMenu/DlgQuit">
         <Property Name="UnifiedPosition" Value="{{0.2,0},{0.30,0}}" />
         <Property Name="UnifiedMaxSize" Value="{{0.4,0},{0.2,0}}" />
         <Property Name="UnifiedMinSize" Value="{{0.4,0},{0.2,0}}" />
         <Property Name="UnifiedSize" Value="{{0.4,0},{0.2,0}}" />
         <Property Name="Text" Value="Confirmation" />
         <Property Name="Alpha" Value="0.75" />
         <Property Name="CloseButtonEnabled" Value="False" />
         
         <Window Type="TaharezLook/StaticText" Name="MainMenu/DlgQuit/Msg">
            <Property Name="UnifiedPosition" Value="{{0.05,0},{0.1,0}}" />
            <Property Name="UnifiedMaxSize" Value="{{0.1,0},{0.05,0}}" />
            <Property Name="UnifiedMinSize" Value="{{0.1,0},{0.05,0}}" />
            <Property Name="UnifiedSize" Value="{{0.1,0},{0.05,0}}" />
            <Property Name="Text" Value="Do you really wanna quit?" />
            <Property Name="HorzFormatting" Value="LeftAligned" />
            <Property Name="Text" Value="Name" />
            <Property Name="FrameEnabled" Value="False" />
            <Property Name="BackgroundEnabled" Value="False" />
            <Property Name="InheritsAlpha" Value="False" />
         </Window>

         <Window Type="TaharezLook/Button" Name="MainMenu/DlgQuit/OK">
            <Property Name="UnifiedPosition" Value="{{0.05,0},{0.4,0}}" />
            <Property Name="UnifiedMaxSize" Value="{{0.1,0},{0.05,0}}" />
            <Property Name="UnifiedMinSize" Value="{{0.1,0},{0.05,0}}" />
            <Property Name="UnifiedSize" Value="{{0.1,0},{0.05,0}}" />
            <Property Name="Text" Value="Yes" />
            <Property Name="InheritsAlpha" Value="False" />
         </Window>

         <Window Type="TaharezLook/Button" Name="MainMenu/DlgQuit/Cancel">
            <Property Name="UnifiedPosition" Value="{{0.5,0},{0.4,0}}" />
            <Property Name="UnifiedMaxSize" Value="{{0.1,0},{0.05,0}}" />
            <Property Name="UnifiedMinSize" Value="{{0.1,0},{0.05,0}}" />
            <Property Name="UnifiedSize" Value="{{0.1,0},{0.05,0}}" />
            <Property Name="Text" Value="No" />
            <Property Name="InheritsAlpha" Value="False" />
         </Window>

   </Window>
   
</Window>

</GUILayout>


Please, is it a bug? Or am I doing something worng with this code?

Thanks,
Dirso
Last edited by Dirso on Sun Apr 29, 2007 01:31, edited 1 time in total.

Dirso
Not too shy to talk
Not too shy to talk
Posts: 25
Joined: Sun Dec 31, 2006 15:49

Postby Dirso » Sun Apr 29, 2007 01:31



Return to “Modifications / Integrations / Customisations”

Who is online

Users browsing this forum: No registered users and 7 guests