请用xcode或eclipse编译程式代码
/* * CBSlideBar.h * CloudBox Cross-Platform Framework Project * * Created by Cloud on 2012/4/8. * Copyright 2012 Orz. All rights reserved. * */ #include "CBView.h" #include "CBAction.h" #ifdef __CBIOS__ #define OPTION_NAME "button_options.png" #define OPTION_BG_NAME "options_bg.png" #define OPTION_MUSIC_ON_NAME "button_music_on.png" #define OPTION_MUSIC_OFF_NAME "button_music_off.png" #define OPTION_INFO_NAME "button_info.png" #define OPTION_HELP_NAME "button_help.png" #define OPTION_CLOSE_NAME "button_close.png" #else #define OPTION_NAME "system/button_options.png" #define OPTION_BG_NAME "system/options_bg.png" #define OPTION_MUSIC_ON_NAME "system/button_music_on.png" #define OPTION_MUSIC_OFF_NAME "system/button_music_off.png" #define OPTION_CLOSE_NAME "system/button_close.png" #define OPTION_INFO_NAME "system/button_info.png" #define OPTION_HELP_NAME "system/button_help.png" #define OPTION_CLOSE_NAME "system/button_close.png" #endif enum SlideBarStatus { SlideBarHide = 0, SlideBarShow = 1 }; enum DefaultSlideBar { DefaultSlideBar1 = 1 }; class CBSlideBar : public CBView { private: SlideBarStatus m_status; CBView* m_optionButton; CBView* m_optionBar; CBDelegate<void(int)>* m_click; vector<CBView* > m_options; CBAction* m_optionButtonShowClick; CBAction* m_optionButtonHideClick; CBAction* m_optionBarShow; CBAction* m_optionBarHide; void onClickOption(); void onBarAnimationScrolling(CBView* target); void onBarAnimationFinish(CBView* target); void setDefaultBar1(); protected: void draw(); public: CBSlideBar(); CBSlideBar(DefaultSlideBar defaultType); ~CBSlideBar(); inline void setShowButtonAction(CBAction* action) { m_optionButtonShowClick = action; } inline void setHideButtonAction(CBAction* action) { m_optionButtonHideClick = action; } inline void setShowBarAction(CBAction* action) { m_optionBarShow = action; } inline void setHideBarAction(CBAction* action) { m_optionBarHide = action; } void onClick(float x,float y); void setOptionButton(const string& imageName); void setOptionBar(const string& imageName); void addButton(const string& imageName); void addSwitchButton(const string& imageName1,const string& imageName2); };
/* * CBSlideBar.cpp * CloudBox Cross-Platform Framework Project * * Created by Cloud on 2012/4/8. * Copyright 2012 Orz. All rights reserved. * */ #include "CBSlideBar.h" #include "CBImage.h" #include "CBRotateAction.h" #include "CBPropertyAction.h" CBSlideBar::CBSlideBar() : m_optionButton(NULL), m_optionBar(NULL), m_status(SlideBarHide), m_optionButtonShowClick(NULL), m_optionButtonHideClick(NULL), m_optionBarShow(NULL), m_optionBarHide(NULL) { registerClickEvent(); } CBSlideBar::CBSlideBar(DefaultSlideBar defaultType) : m_optionButton(NULL), m_optionBar(NULL), m_status(SlideBarHide), m_optionButtonShowClick(NULL), m_optionButtonHideClick(NULL), m_optionBarShow(NULL), m_optionBarHide(NULL) { registerClickEvent(); setDefaultBar1(); } CBSlideBar::~CBSlideBar() { DELETE(m_optionButton); DELETE(m_optionBar); for(int i = 0 ; i < m_options.size() ; i++) { DELETE(m_options[i]); } m_options.clear(); } void CBSlideBar::setDefaultBar1() { // template in CloudBox setOptionButton(OPTION_NAME); setOptionBar(OPTION_BG_NAME); m_optionButtonShowClick = new CBPropertyAction(Property(ActionPropertyAngle,0,360,10, PropertyFromCurrent), 0.015, ActionManualRelease); m_optionButtonHideClick = new CBPropertyAction(Property(ActionPropertyAngle,360,0,10, PropertyFromCurrent), 0.015, ActionManualRelease); m_optionBarShow = new CBPropertyAction( Property(ActionPropertyWidth,m_optionButton->getWidth(),m_optionBar->getWidth(),10, PropertyFromCurrent), 0.025, ActionManualRelease); m_optionBarShow->addTriggerEvent(this,&CBSlideBar::onBarAnimationScrolling); m_optionBarHide = new CBPropertyAction( Property(ActionPropertyWidth,m_optionBar->getWidth(),m_optionButton->getWidth(),-10, PropertyFromCurrent), 0.025, ActionManualRelease); m_optionBarHide->addTriggerEvent(this,&CBSlideBar::onBarAnimationScrolling); m_optionBarHide->addFinishEvent(this,&CBSlideBar::onBarAnimationFinish); m_optionBar->setWidth(m_optionButton->getWidth()); addButton(OPTION_INFO_NAME); addButton(OPTION_HELP_NAME); addButton(OPTION_CLOSE_NAME); } void CBSlideBar::onBarAnimationScrolling(CBView* target) { int x = target->getX() + target->getWidth(); for(int i = 0 ; i < m_options.size() ; i++) { if(m_status == SlideBarShow) { if((m_options[i]->getX() + m_options[i]->getWidth()) < x) { m_options[i]->show(); } } else if(m_status == SlideBarHide) { if((m_options[i]->getX() + m_options[i]->getWidth()) > x) { m_options[i]->hide(); } } } } void CBSlideBar::onBarAnimationFinish(CBView* target) { if(m_status == SlideBarHide) { target->hide(); } } void CBSlideBar::setOptionButton(const string& imageName) { DELETE(m_optionButton); m_optionButton = new CBImage(imageName); } void CBSlideBar::setOptionBar(const string& imageName) { DELETE(m_optionBar); m_optionBar = new CBImage(imageName); m_optionBar->hide(); } void CBSlideBar::addButton(const string& imageName) { CBImage* image = new CBImage(imageName); image->hide(); m_options.push_back(image); } void CBSlideBar::addSwitchButton(const string& imageName1,const string& imageName2) { } void CBSlideBar::onClickOption() { if(m_status == SlideBarShow) { m_status = SlideBarHide; m_optionButtonHideClick->stop(); m_optionBarShow->stop(); m_optionButtonHideClick->commit(m_optionButton); m_optionBarHide->commit(m_optionBar); } else { m_status = SlideBarShow; m_optionButtonHideClick->stop(); m_optionBarHide->stop(); m_optionButtonShowClick->commit(m_optionButton); m_optionBarShow->commit(m_optionBar); m_optionBar->show(); } } void CBSlideBar::onClick(float x,float y) { if(m_optionButton->isTrigger(x, y)) { onClickOption(); } if(m_status == SlideBarShow) { } } void CBSlideBar::draw() { m_optionBar->moveToAbsolute(m_x, m_y); m_optionBar->visit(); m_optionButton->moveToAbsolute(m_x, m_y); m_optionButton->visit(); int width = 0; for(int i = 0 ; i < m_options.size() ; i++) { m_options[i]->moveToAbsolute(m_x + m_optionButton->getWidth() + width, m_y); m_options[i]->visit(); width += m_options[i]->getWidth(); } }
http://download.csdn.net/detail/cloudhsu/4212237
如何设定Eclipse Builder设定透过Eclipse建制项目