menumanager.cpp
来自「这是VCF框架的代码」· C++ 代码 · 共 150 行
CPP
150 行
//MenuManager.cpp/*Copyright 2000-2004 The VCF Project.Please see License.txt in the top level directorywhere you installed the VCF.*/#include "vcf/ApplicationKit/ApplicationKit.h"#include "vcf/ApplicationKit/MenuManager.h"#include "vcf/ApplicationKit/MenuManagerPeer.h"using namespace VCF;MenuManager* MenuManager::menuManager = NULL;MenuManager::MenuManager(): peer_(NULL), mainMenu_(NULL){ peer_ = UIToolkit::createMenuManagerPeer(); if ( NULL == peer_ ) { throw InvalidPeer( MAKE_ERROR_MSG_2("Unable to create MenuManager peer") ); } mainMenu_ = new MenuBar(); }MenuManager::~MenuManager(){ if ( NULL != mainMenu_ ) { mainMenu_->free(); } delete peer_;}void MenuManager::create(){ MenuManager::menuManager = new MenuManager();}void MenuManager::terminate(){ delete MenuManager::menuManager;}MenuItemPeer* MenuManager::getMenuItemPeer( MenuItem* item ){ return MenuManager::menuManager->peer_->getMenuItemPeer( item );}void MenuManager::destroyMenuItemPeer( MenuItem* item ){ MenuManager::menuManager->peer_->destroyMenuItemPeer( item );}void MenuManager::registerWindow( Window* window ){ VCF_ASSERT( NULL != window ); EventHandler* ev = MenuManager::menuManager->getEventHandler( "MenuManager::onWindowActivated" ); if ( NULL == ev ) { ev = new GenericEventHandler<MenuManager>( MenuManager::menuManager, &MenuManager::onWindowActivated, "MenuManager::onWindowActivated" ); } window->FrameActivation += ev; ev = MenuManager::menuManager->getEventHandler( "MenuManager::onWindowClosed" ); if ( NULL == ev ) { ev = new GenericEventHandler<MenuManager>( MenuManager::menuManager, &MenuManager::onWindowClosed, "MenuManager::onWindowClosed" ); } window->FrameClose += ev;}void MenuManager::registerMenuBar( MenuBar* menuBar ){ VCF_ASSERT( NULL != menuBar ); EventHandler* ev = MenuManager::menuManager->getEventHandler( "MenuManager::onMenuItemChange" ); if ( NULL == ev ) { ev = new GenericEventHandler<MenuManager>( MenuManager::menuManager, &MenuManager::onMenuItemChange, "MenuManager::onMenuItemChange" ); } menuBar->MenuItemChanged += ev;}void MenuManager::registerPopupMenu( PopupMenu* popupMenu ){ VCF_ASSERT( NULL != popupMenu ); EventHandler* ev = MenuManager::menuManager->getEventHandler( "MenuManager::onMenuItemChange" ); if ( NULL == ev ) { ev = new GenericEventHandler<MenuManager>( MenuManager::menuManager, &MenuManager::onMenuItemChange, "MenuManager::onMenuItemChange" ); } popupMenu->MenuItemChanged += ev;}void MenuManager::onWindowActivated( Event* event ){ Window* window = (Window*)event->getSource(); peer_->windowActivated( window );}void MenuManager::onWindowClosed( Event* event ){ Window* window = (Window*)event->getSource(); peer_->windowClosed( window );}void MenuManager::onMenuItemChange( Event* event ){ MenuItem* item = (MenuItem*)event->getSource(); peer_->menuItemChanged( event->getType(), item );}Menu* MenuManager::getMainMenu(){ return menuManager->mainMenu_;}/***CVS Log info*$Log$*Revision 1.3 2006/04/07 02:35:24 ddiego*initial checkin of merge from 0.6.9 dev branch.**Revision 1.2.2.1 2005/08/27 04:49:35 ddiego*menu fixes.**Revision 1.2 2005/07/09 23:14:53 ddiego*merging in changes from devmain-0-6-7 branch.**Revision 1.1.2.5 2005/06/08 13:51:29 marcelloptr*added CVS log section**/
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?