• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>


            ////mem probs without this next one
            #include <CEGUI/elements/CEGUIPushButton.h>
            #include <CEGUI/elements/CEGUICombobox.h>
            #include <CEGUI/elements/CEGUIListbox.h>
            #include <CEGUI/elements/CEGUIListboxTextItem.h>
            #include <cegui/elements/CEGUIPopupMenu.h>
            #include <OgreNoMemoryMacros.h>
            #include <CEGUI/CEGUIImageset.h>
            #include <CEGUI/CEGUISystem.h>
            #include <CEGUI/CEGUILogger.h>
            #include <CEGUI/CEGUISchemeManager.h>
            #include <CEGUI/CEGUIWindowManager.h>
            #include <CEGUI/CEGUIWindow.h>
            #include "OgreCEGUIRenderer.h"
            #include "OgreCEGUIResourceProvider.h"
            //regular mem handler
            #include <OgreMemoryMacros.h>

            #include "ExampleApplication.h"
            CEGUI::MouseButton convertOgreButtonToCegui(int buttonID)
            {
            ?switch (buttonID)
            ?{
            ?case MouseEvent::BUTTON0_MASK:
            ??return CEGUI::LeftButton;
            ?case MouseEvent::BUTTON1_MASK:
            ??return CEGUI::RightButton;
            ?case MouseEvent::BUTTON2_MASK:
            ??return CEGUI::MiddleButton;
            ?case MouseEvent::BUTTON3_MASK:
            ??return CEGUI::X1Button;
            ?default:
            ??return CEGUI::LeftButton;
            ?}
            }

            class GuiFrameListener : public ExampleFrameListener, public MouseMotionListener, public MouseListener
            {
            private:
            ?CEGUI::Renderer* mGUIRenderer;
            ?bool mShutdownRequested;

            public:
            ?// NB using buffered input
            ?GuiFrameListener(RenderWindow* win, Camera* cam, CEGUI::Renderer* renderer)
            ??: ExampleFrameListener(win, cam, true, true),
            ??mGUIRenderer(renderer),
            ??mShutdownRequested(false)
            ?{
            ??mEventProcessor->addMouseMotionListener(this);
            ??mEventProcessor->addMouseListener(this);
            ??mEventProcessor->addKeyListener(this);
            ?}

            ?// Tell the frame listener to exit at the end of the next frame
            ?void requestShutdown(void)
            ?{
            ??mShutdownRequested = true;
            ?}

            ?bool frameEnded(const FrameEvent& evt)
            ?{
            ??if (mShutdownRequested)
            ???return false;
            ??else
            ???return ExampleFrameListener::frameEnded(evt);
            ?}

            ?void mouseMoved (MouseEvent *e)
            ?{
            ??CEGUI::System::getSingleton().injectMouseMove(
            ???e->getRelX() * mGUIRenderer->getWidth(),
            ???e->getRelY() * mGUIRenderer->getHeight());
            ??e->consume();
            ?}

            ?void mouseDragged (MouseEvent *e)
            ?{
            ??mouseMoved(e);
            ?}

            ?void mousePressed (MouseEvent *e)
            ?{
            ??CEGUI::System::getSingleton().injectMouseButtonDown(
            ???convertOgreButtonToCegui(e->getButtonID()));
            ??e->consume();
            ?}

            ?void mouseReleased (MouseEvent *e)
            ?{
            ??CEGUI::System::getSingleton().injectMouseButtonUp(
            ???convertOgreButtonToCegui(e->getButtonID()));
            ??e->consume();
            ?}

            ?void mouseClicked(MouseEvent* e) {}
            ?void mouseEntered(MouseEvent* e) {}
            ?void mouseExited(MouseEvent* e) {}

            ?void keyPressed(KeyEvent* e)
            ?{
            ??if(e->getKey() == KC_ESCAPE)
            ??{
            ???mShutdownRequested = true;
            ???e->consume();
            ???return;
            ??}

            ??CEGUI::System::getSingleton().injectKeyDown(e->getKey());
            ??CEGUI::System::getSingleton().injectChar(e->getKeyChar());
            ??e->consume();
            ?}

            ?void keyReleased(KeyEvent* e)
            ?{
            ??CEGUI::System::getSingleton().injectKeyUp(e->getKey());
            ??e->consume();
            ?}

            ?void keyClicked(KeyEvent* e)
            ?{
            ??// Do nothing
            ??e->consume();
            ?}
            };

            class TutorialApplication : public ExampleApplication
            {
            private:
            ?CEGUI::OgreCEGUIRenderer* mGUIRenderer;
            ?CEGUI::System* mGUISystem;
            ?CEGUI::Window* mEditorGuiSheet;
            ?bool mButtonQuitBuild;
            ?CEGUI::PopupMenu*?? popupMenu;
            public:
            ?TutorialApplication()
            ??: mGUIRenderer(0),
            ??mGUISystem(0),
            ??mEditorGuiSheet(0),mButtonQuitBuild(false),popupMenu(0)
            ?{
            ??????
            ?}

            ?~TutorialApplication()
            ?{
            ??if(mEditorGuiSheet)
            ??{
            ???CEGUI::WindowManager::getSingleton().destroyWindow(mEditorGuiSheet);
            ???
            ??}
            ??if(popupMenu)
            ??{
            ???CEGUI::WindowManager::getSingleton().destroyWindow(popupMenu);
            ??}
            ??if(mGUISystem)
            ??{
            ???delete mGUISystem;
            ???mGUISystem = 0;
            ??}
            ??if(mGUIRenderer)
            ??{
            ???delete mGUIRenderer;
            ???mGUIRenderer = 0;
            ??}
            ?}
            ?void setupEventHandlers(void)
            ?{
            ??CEGUI::WindowManager& wmgr = CEGUI::WindowManager::getSingleton();
            ??wmgr.getWindow((CEGUI::utf8*)"MyButton")->subscribeEvent(CEGUI::PushButton::EventClicked, CEGUI::Event::Subscriber(&TutorialApplication::handlePopMenu, this));
            ?}
            ???
            ?bool handlePopMenu(const CEGUI::EventArgs& e)
            ?{
            ??
            ??if(!popupMenu)
            ??{????? CEGUI::WindowManager& wmgr = CEGUI::WindowManager::getSingleton();
            ???
            ???
            ???? CEGUI::ItemEntry* menuItemOne=(CEGUI::ItemEntry*)wmgr.createWindow("TaharezLook/MenuItem",(CEGUI::utf8*)"MenuItemOne");
            ??????? menuItemOne->setText((CEGUI::utf8*)"飛機");
            ???? CEGUI::ItemEntry* menuItemTwo=(CEGUI::ItemEntry*)wmgr.createWindow("TaharezLook/MenuItem",(CEGUI::utf8*)"MenuItemTwo");
            ???? menuItemTwo->setText((CEGUI::utf8*)"汽車");
            ???? CEGUI::ItemEntry* menuItemThree=(CEGUI::ItemEntry*)wmgr.createWindow("TaharezLook/MenuItem",(CEGUI::utf8*)"MenuItemThree");
            ???? menuItemThree->setText((CEGUI::utf8*)"輪船");
            ???? CEGUI::ItemEntry* menuItemFour=(CEGUI::ItemEntry*)wmgr.createWindow("TaharezLook/MenuItem",(CEGUI::utf8*)"MenuItemFour");
            ???? menuItemFour->setText((CEGUI::utf8*)"自行車");


            ???? CEGUI::ItemEntry* menuItemSubItemOne=(CEGUI::ItemEntry*)wmgr.createWindow("TaharezLook/MenuItem",(CEGUI::utf8*)"MenuItemFive");
            ???? menuItemSubItemOne->setText((CEGUI::utf8*)"紅色");
            ???? CEGUI::ItemEntry* menuItemSubItemTwo=(CEGUI::ItemEntry*)wmgr.createWindow("TaharezLook/MenuItem",(CEGUI::utf8*)"MenuItemSix");
            ???? menuItemSubItemTwo->setText((CEGUI::utf8*)"綠色");
            ???? CEGUI::PopupMenu*?? subPopupMenu=(CEGUI::PopupMenu*)CEGUI::WindowManager::getSingleton().createWindow("TaharezLook/PopupMenu", (CEGUI::utf8*)"SubPopMenu");
            ??????????
            ??????? subPopupMenu->setAlwaysOnTop(true);
            ???? subPopupMenu->addItem(menuItemSubItemOne);
            ???? subPopupMenu->addItem(menuItemSubItemTwo);
            ????????????? menuItemSubItemOne->setAlwaysOnTop(true);
            ???? menuItemSubItemTwo->setAlwaysOnTop(true);
            ???? menuItemSubItemTwo->subscribeEvent(CEGUI::ItemEntry::EventMouseClick,CEGUI::Event::Subscriber(&TutorialApplication::handleQuit, this));
            ????
            ????
            ???? popupMenu=(CEGUI::PopupMenu*)CEGUI::WindowManager::getSingleton().createWindow("TaharezLook/PopupMenu", (CEGUI::utf8*)"PopMenu");
            ???? popupMenu->setText("Option");
            ???? popupMenu->setAlwaysOnTop(true);
            ??????? popupMenu->addItem(menuItemOne);
            ???? popupMenu->addItem(menuItemTwo);
            ???? popupMenu->addItem(menuItemThree);
            ???? popupMenu->addItem(menuItemFour);

            ???
            ???? menuItemOne->setAlwaysOnTop(true);
            ???? menuItemTwo->setAlwaysOnTop(true);
            ???? menuItemThree->setAlwaysOnTop(true);
            ???? menuItemFour->setAlwaysOnTop(true);
            ????

            ????????????? menuItemTwo->addChildWindow(subPopupMenu);
            ???? popupMenu->show();

            ???? popupMenu->setPosition(CEGUI::Point(0.65,0.45));
            ???
            ??? //subPopupMenu->show();

            ??? //popupMenu->openPopupMenu();
            ???? //CEGUI::WindowManager& wmgr = CEGUI::WindowManager::getSingleton();
            ???? wmgr.getWindow((CEGUI::utf8*)"Root")->addChildWindow(popupMenu);
            ??????? return true;
            ??}

            ?

            ???? //將editbox中的內容送到listbox
            ??CEGUI::Window* myEditBox = CEGUI::WindowManager::getSingleton().getWindow("MyEditbox");
            ??CEGUI::ListboxTextItem *listboxitem =
            ???new CEGUI::ListboxTextItem (myEditBox->getText());
            ??listboxitem->setSelectionBrushImage("TaharezLook", "ListboxSelectionBrush");
            ??//listboxitem->setSelected(mList->getItemCount() == 0);
            ??//listboxitem->setSelectionColours(mPreview->getImageColours());
            ??CEGUI::Listbox*myListBox=(CEGUI::Listbox*)CEGUI::WindowManager::getSingleton().getWindow("MyListBox");
            ???myListBox->addItem(listboxitem);

            ??return true;
            ?}

            ?bool handleQuit(const CEGUI::EventArgs& e)
            ?{
            ??if(!mButtonQuitBuild)
            ??{
            ???/*static_cast<GuiFrameListener*>(mFrameListener)->requestShutdown();*/
            ???CEGUI::PushButton* quitButton = (CEGUI::PushButton*)CEGUI::WindowManager::getSingleton().createWindow("TaharezLook/Button", (CEGUI::utf8*)"Quit");
            ???CEGUI::WindowManager& wmgr = CEGUI::WindowManager::getSingleton();
            ???wmgr.getWindow((CEGUI::utf8*)"MyFrameWindow")->addChildWindow(quitButton);
            ???//mEditorGuiSheet->addChildWindow(quitButton);
            ???quitButton->setPosition(CEGUI::Point(0.65f, 0.25f));
            ???quitButton->setSize(CEGUI::Size(0.3f, 0.06f));
            ???quitButton->setText((CEGUI::utf8*)"退出");
            ???mButtonQuitBuild=true;
            ???return true;
            ??}
            ??return true;
            ?}

            protected:
            ?void createScene(void)
            ?{
            ??// Set ambient light
            ??mSceneMgr->setAmbientLight(ColourValue(0.5, 0.5, 0.5));
            ??// Set up GUI system
            ??mGUIRenderer = new CEGUI::OgreCEGUIRenderer(mWindow, Ogre::RENDER_QUEUE_OVERLAY, false, 3000, mSceneMgr);
            ??mGUISystem = new CEGUI::System(mGUIRenderer);
            ??CEGUI::Logger::getSingleton().setLoggingLevel(CEGUI::Informative);
            ??CEGUI::SchemeManager::getSingleton().loadScheme((CEGUI::utf8*)"TaharezLookSkin.scheme");
            ??mGUISystem->setDefaultMouseCursor((CEGUI::utf8*)"TaharezLook", (CEGUI::utf8*)"MouseArrow");
            ??CEGUI::MouseCursor::getSingleton().setImage("TaharezLook", "MouseMoveCursor");
            ??mGUISystem->setDefaultFont((CEGUI::utf8*)"SimHei-12");

            ??
            ??//////////////////////////////////////////////////////////////////////////
            ??mEditorGuiSheet = CEGUI::WindowManager::getSingleton().loadWindowLayout((CEGUI::utf8*)"My2.xml");
            ??mGUISystem->setGUISheet(mEditorGuiSheet);
            ??//CEGUI::PushButton* quitButton = (CEGUI::PushButton*)CEGUI::WindowManager::getSingleton().getWindow((CEGUI::utf8*)"MyButton");
            ??//////////////////////////////////////////////////////////////////////////


            ??

            ??CEGUI::Combobox* objectComboBox = (CEGUI::Combobox*)CEGUI::WindowManager::getSingleton().getWindow("MyComboBox");
            ??CEGUI::ListboxTextItem* item = new CEGUI::ListboxTextItem((CEGUI::utf8*)"飛機", 0);
            ??objectComboBox->addItem(item);
            ??item = new CEGUI::ListboxTextItem((CEGUI::utf8*)"汽車", 1);
            ??objectComboBox->addItem(item);
            ??item = new CEGUI::ListboxTextItem((CEGUI::utf8*)"輪船", 2);
            ??objectComboBox->addItem(item);
            ??item = new CEGUI::ListboxTextItem((CEGUI::utf8*)"StaticText", 3);
            ??objectComboBox->addItem(item);
            ??item = new CEGUI::ListboxTextItem((CEGUI::utf8*)"StaticImage", 4);
            ??objectComboBox->addItem(item);
            ??item = new CEGUI::ListboxTextItem((CEGUI::utf8*)"Render to Texture", 5);
            ??objectComboBox->addItem(item);

            ??//////////////////////////////////////////////////////////////////////////
            ??setupEventHandlers();


            ?}
            ?void createFrameListener(void)
            ?{
            ??mFrameListener = new GuiFrameListener(mWindow, mCamera, mGUIRenderer);
            ??mRoot->addFrameListener(mFrameListener);
            ?}
            };

            #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
            #define WIN32_LEAN_AND_MEAN
            #include "windows.h"

            INT WINAPI WinMain( HINSTANCE hInst, HINSTANCE, LPSTR strCmdLine, INT )
            #else
            int main(int argc, char **argv)
            #endif
            {
            ?// Create application object
            ?TutorialApplication app;

            ?try {
            ??app.go();
            ?} catch( Exception& e ) {
            #if OGRE_PLATFORM == OGRE_PLATFORM_WIN32
            ??MessageBox( NULL, e.getFullDescription().c_str(), "An exception has occured!", MB_OK | MB_ICONERROR | MB_TASKMODAL);
            #else
            ??fprintf(stderr, "An exception has occured: %s\n",
            ???e.getFullDescription().c_str());
            #endif
            ?}

            ?return 0;
            }

            ?

            posted on 2006-10-19 17:16 清源游民 閱讀(3004) 評論(1)  編輯 收藏 引用

            FeedBack:
            # ugqpndup
            2007-12-25 21:42 | ugqpndup
            [URL=http://vjpicxic.com]fyukkshj[/URL] hmudomnv http://bcjkzpdi.com wyclnfww tvqvanvg <a href="http://tcxwuvyf.com">yiynryyd</a>   回復  更多評論
              
            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            留言簿(35)

            隨筆分類(78)

            隨筆檔案(74)

            文章檔案(5)

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

            国产成人精品综合久久久| 99精品久久精品| 亚洲人AV永久一区二区三区久久| 亚洲日韩欧美一区久久久久我 | 无码乱码观看精品久久| 久久精品无码一区二区无码| 色婷婷综合久久久久中文字幕 | 精品久久香蕉国产线看观看亚洲| 热综合一本伊人久久精品| 热99RE久久精品这里都是精品免费| 99久久精品国内| 欧美国产精品久久高清| 99久久亚洲综合精品网站| 久久国产亚洲精品麻豆| 久久久久九国产精品| 国产精品丝袜久久久久久不卡| 欧美日韩精品久久久免费观看| 好久久免费视频高清| 久久久久亚洲AV成人网人人网站| 无码任你躁久久久久久久| 国内精品久久国产大陆| 亚洲精品白浆高清久久久久久 | 久久亚洲春色中文字幕久久久| 久久亚洲AV无码精品色午夜麻豆| 久久精品国产秦先生| 亚洲av日韩精品久久久久久a| 久久久久亚洲AV成人网人人网站| 国产一级持黄大片99久久| 亚洲精品乱码久久久久久| 一本大道久久东京热无码AV| 九九久久精品国产| 精品国产乱码久久久久软件| 久久久久97国产精华液好用吗| 久久久久国产精品| 国产欧美久久久精品影院| 99热都是精品久久久久久| 久久成人国产精品二三区| 久久精品国产99久久久| 国内精品久久久人妻中文字幕| 国产精品久久久久一区二区三区 | 亚洲欧美成人久久综合中文网|