青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

Cpper
C/C++高級工程師 Android高級軟件工程師 IT集成工程師 音頻工程師 熟悉c,c++,java,c#,py,js,asp等多種語言 程序猿
當前在做引擎的GUI部分
設(shè)計的的首要原則是先做出來,如果有什么問題以后再改

當然GUI消息事件是這樣設(shè)計的
事件和聽者是2個模板
///////////////////////////////////////////////////////////
/// 定義引擎事件基類模板
///////////////////////////////////////////////////////////
template<class EventType = int>
class Event : NonCopyable
{
public:
    
///////////////////////////////////////////////////////
    
/// 事件基類構(gòu)造函數(shù)
    
///////////////////////////////////////////////////////
    Event(const EventType& type):type_(type){}    
    
    
////////////////////////////////////////////////////////
    
/// 事件基類析構(gòu)函數(shù)
    
////////////////////////////////////////////////////////
    virtual ~Event(){}
    
    
////////////////////////////////////////////////////////
    
/// 獲取事件類型
    
////////////////////////////////////////////////////////
    EventType GetEventType()const{return type_;}
private:
    
////////////////////////////////////////////////////////
    
/// 數(shù)據(jù)成員變量
    
////////////////////////////////////////////////////////
    EventType type_;    
};

////////////////////////////////////////////////////////////
/// 定義事件聽者基類 
////////////////////////////////////////////////////////////
template<class Event,class Object>
class EventListener
{    
public
    
    
////////////////////////////////////////////////////////
    
/// 事件聽者虛析構(gòu)函數(shù)
    
////////////////////////////////////////////////////////
    virtual ~EventListener(){}
    
    
////////////////////////////////////////////////////////
    
/// 消息派送
    
////////////////////////////////////////////////////////
    virtual bool Dispatch(const Event& message,Object* object= 0
};

可以看出這并不屬于GUI部分
在GUI中有
typedef Event<UI_EVENT> UIEvent; 
typedef EventListener
<UIEvent,Widget> UIEventListener; 

每一個控件可能都需要處理消息
所以控件有一個函數(shù)
    ////////////////////////////////////////////////////////
    
/// 消息處理
    
////////////////////////////////////////////////////////
    virtual bool Process(const UIEvent& event);


來響應(yīng)消息事件


基本的GUI事件有2類 一個是鼠標事件 一個是按鍵事件
所有有2個對象
class KeyEvent
class MouseEvent
對于鼠標還有幾個派生的對象比如雙擊事件等

控件需要處理UI事件那么在GUI的某個部分需要生成UI事件
當然事件的生產(chǎn)在UIWidgetManager中
啟用管理器的事件載入Input指針參數(shù)
然后不斷檢查鼠標和按鍵狀態(tài)生成相關(guān)事件然后傳遞給相關(guān)控件

我認為GUI設(shè)計有點難度
但是相對來說GUI編輯器應(yīng)該更難
小注:理想的編輯器應(yīng)該是這樣
通過編輯器生成控件配置文件(比如xml)
使用的時候只需要調(diào)用配置文件動態(tài)生成對等的控件,當然包含事件處理嘍

最后上一個半成品的圖圖

(cppblog似乎對firefox兼容不好?)

下一篇說控件Surface和Border部分
posted on 2010-06-08 18:48 ccsdu2009 閱讀(1802) 評論(9)  編輯 收藏 引用 所屬分類: Game引擎
Comments
  • # re: 蓋莫游戲引擎-GUI-消息系統(tǒng)
    陳梓瀚(vczh)
    Posted @ 2010-06-08 19:06
    Event<void(int,int)> == vector<function<void(int,int)>>  回復  更多評論   
  • # re: 蓋莫游戲引擎-GUI-消息系統(tǒng)
    ccsdu2009
    Posted @ 2010-06-08 19:15
    @陳梓瀚(vczh)
    function<void(int,int)>
    在boost里面有這樣的東西啊  回復  更多評論   
  • # re: 蓋莫游戲引擎-GUI-消息系統(tǒng)
    楊粼波
    Posted @ 2010-06-08 21:52
    用boost::signal足矣.  回復  更多評論   
  • # re: 蓋莫游戲引擎-GUI-消息系統(tǒng)
    陳梓瀚(vczh)
    Posted @ 2010-06-08 23:01
    @ccsdu2009
    VC++2010有TR1,就有了

    我自己也實現(xiàn)過,可以參考vlpp.codeplex.com  回復  更多評論   
  • # re: 蓋莫游戲引擎-GUI-消息系統(tǒng)
    ccsdu2009
    Posted @ 2010-06-09 08:43
    @楊粼波
    我不打算在表層使用boost !  回復  更多評論   
  • # re: 蓋莫游戲引擎-GUI-消息系統(tǒng)
    ccsdu2009
    Posted @ 2010-06-09 08:44
    @陳梓瀚(vczh)
    這個我知道
    但是vc2008,devc++不一定有吧  回復  更多評論   
  • # re: 蓋莫游戲引擎-GUI-消息系統(tǒng)
    陳梓瀚(vczh)
    Posted @ 2010-06-09 14:00
    @ccsdu2009
    gcc新版的也有,08沒有。  回復  更多評論   
  • # re: 蓋莫游戲引擎-GUI-消息系統(tǒng)[未登錄]
    姚冬
    Posted @ 2010-06-10 09:53
    可以考慮 用 sigslot
    http://sigslot.sourceforge.net/
    就一個頭文件,很輕量的 signal/slot實現(xiàn)
      回復  更多評論   
  • # re: 蓋莫游戲引擎-GUI-消息系統(tǒng)
    ccsdu2009
    Posted @ 2010-06-10 10:42
    @姚冬
    就是這個的變種  回復  更多評論   
 
青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <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>
            六月婷婷一区| 一区二区三区视频在线看| 亚洲成人在线视频播放 | 亚洲视频专区在线| 欧美精品成人| 亚洲精品视频免费在线观看| 久久综合九色99| 欧美亚洲综合网| 国产亚洲美州欧州综合国| 先锋影音国产一区| 亚洲无亚洲人成网站77777| 欧美日韩国产电影| 亚洲最新视频在线播放| 亚洲人成77777在线观看网| 欧美精品一二三| 一区二区三区日韩精品| 99热在这里有精品免费| 国产精品日韩电影| 久久精品视频一| 久久综合网色—综合色88| 在线精品视频一区二区| 欧美成熟视频| 欧美剧在线免费观看网站| 夜夜爽av福利精品导航 | 欧美中日韩免费视频| 亚洲欧美日韩国产中文 | 久久嫩草精品久久久精品| 亚洲私人影院| 国产精品久久久久久久久借妻 | 黄色av日韩| 欧美成人69av| 欧美激情精品久久久久久| 亚洲一区高清| 午夜宅男久久久| 亚洲福利视频三区| 99国产精品国产精品久久| 欧美日韩在线影院| 久久成人羞羞网站| 久久人人爽人人| 亚洲精品一区二区三| 一本一本大道香蕉久在线精品| 国产精品国产成人国产三级| 久久精品在线| 欧美成人精品在线观看| 亚洲欧美日韩天堂| 久久青青草原一区二区| 亚洲线精品一区二区三区八戒| 午夜精品短视频| 亚洲人成在线播放| 亚洲尤物精选| 亚洲精品免费一区二区三区| 亚洲一区二区三区精品动漫| 在线观看日韩www视频免费| 日韩视频在线免费观看| 伊人久久大香线蕉综合热线 | 欧美日韩国产不卡在线看| 久久精品二区三区| 欧美精品二区| 老司机成人网| 国产精品亚洲产品| 91久久精品美女高潮| 国产一区二区三区四区三区四| 亚洲精品国产精品国自产观看| 国产日韩视频| 亚洲午夜av在线| 亚洲久久视频| 久久久蜜桃精品| 欧美一站二站| 欧美午夜精品久久久| 欧美黄色小视频| 国产主播一区二区三区| 亚洲一区三区在线观看| 日韩一级片网址| 麻豆亚洲精品| 欧美ed2k| 在线观看欧美精品| 久久国产一区二区| 久久成人18免费观看| 国产精品久久二区二区| 日韩一级精品视频在线观看| 亚洲精品免费一区二区三区| 亚洲美女在线看| 欧美一二三区在线观看| 性久久久久久久久久久久| 欧美日韩不卡| 亚洲人成毛片在线播放女女| 91久久精品一区二区三区| 久久精品视频亚洲| 久久婷婷国产综合国色天香 | 欧美大片免费观看| 一区在线免费观看| 久久人人97超碰人人澡爱香蕉| 久久久av毛片精品| 国产欧美一区二区三区久久人妖| 亚洲一区二区三区精品在线| 亚洲欧美国产视频| 国产精品一区二区久久久 | 一区二区三区高清不卡| 亚洲视频在线二区| 国产精品国产自产拍高清av王其| 中日韩美女免费视频网站在线观看| 99re6热只有精品免费观看| 欧美精品一区二区三区一线天视频| 亚洲国产精品一区二区三区| 亚洲精品久久久久久久久| 欧美日韩精品二区第二页| 一本一本久久a久久精品牛牛影视| 亚洲无玛一区| 国产老女人精品毛片久久| 午夜亚洲视频| 免费在线成人av| 亚洲麻豆国产自偷在线| 欧美日韩国产a| 亚洲永久免费视频| 久久久午夜电影| 亚洲精选久久| 国产精品亚洲综合一区在线观看| 亚洲欧美日韩视频一区| 农夫在线精品视频免费观看| 亚洲精品五月天| 国产精品免费一区豆花| 久久国产精品网站| 亚洲欧洲中文日韩久久av乱码| 亚洲天堂免费观看| 国产亚洲精品激情久久| 欧美成人免费小视频| 亚洲色在线视频| 女人天堂亚洲aⅴ在线观看| 99re8这里有精品热视频免费| 国产精品女主播| 麻豆精品在线视频| 亚洲无亚洲人成网站77777| 免费欧美日韩国产三级电影| 亚洲第一区中文99精品| 国产精品成人av性教育| 久久免费精品日本久久中文字幕| 亚洲精品免费观看| 久热精品视频在线免费观看| 一本一本久久| 狠狠色丁香久久综合频道| 欧美日韩国产成人在线91| 久久久99免费视频| 一区二区三区国产在线观看| 欧美成人精品激情在线观看| 在线中文字幕不卡| 在线看视频不卡| 国产精品免费观看视频| 欧美激情综合五月色丁香小说| 亚洲一区二区三区777| 亚洲国产毛片完整版| 久久久久久久一区| 亚洲综合电影| 一区二区动漫| 亚洲黄色av一区| 国产精品综合网站| 欧美日韩福利视频| 欧美成人免费全部| 久久久在线视频| 久久成人综合网| 亚洲在线观看视频网站| 亚洲乱码日产精品bd| 欧美电影免费观看高清| 久久久久一区二区三区四区| 亚洲欧美视频在线观看| 亚洲调教视频在线观看| 亚洲精品中文字幕在线| 亚洲国产视频直播| 国精品一区二区| 国产视频在线观看一区二区三区| 国产精品v欧美精品v日本精品动漫| 欧美国产精品va在线观看| 久久久久久网站| 久久精品视频在线看| 欧美在线影院在线视频| 午夜亚洲视频| 久久精品卡一| 久久美女性网| 麻豆91精品91久久久的内涵| 久久综合五月天婷婷伊人| 另类激情亚洲| 欧美福利在线| 欧美激情片在线观看| 欧美激情欧美激情在线五月| 欧美精品一区二区视频| 欧美日韩中文字幕| 欧美视频二区| 国产欧美欧美| 国产自产v一区二区三区c| 在线激情影院一区| 亚洲老板91色精品久久| 中文欧美日韩| 欧美一区=区| 久久久免费精品| 欧美成人一二三| 亚洲精品乱码久久久久久日本蜜臀| 亚洲精品网址在线观看| 亚洲午夜精品福利| 久久久久9999亚洲精品| 久久综合久久综合这里只有精品| 老牛影视一区二区三区|