Changeset 7894 for code/branches/tutoriallevel/src
- Timestamp:
- Feb 14, 2011, 11:02:58 PM (14 years ago)
- Location:
- code/branches/tutoriallevel/src
- Files:
-
- 6 edited
Legend:
- Unmodified
- Added
- Removed
-
code/branches/tutoriallevel/src/libraries/core/GUIManager.cc
r7811 r7894 37 37 #include <CEGUIDefaultLogger.h> 38 38 #include <CEGUIExceptions.h> 39 #include <CEGUIFontManager.h> 39 40 #include <CEGUIInputEvent.h> 40 41 #include <CEGUIMouseCursor.h> … … 43 44 #include <CEGUIWindow.h> 44 45 #include <CEGUIWindowManager.h> 46 #include <CEGUIXMLAttributes.h> 45 47 #include <elements/CEGUIListbox.h> 46 48 #include <elements/CEGUIListboxItem.h> … … 498 500 } 499 501 502 /** 503 @brief 504 Adds a new freetype font to the CEGUI system. 505 @param name 506 The name of the new font. 507 @param size 508 The font size of the new font in pixels. 509 @param fontName 510 The filename of the font. 511 */ 512 /*static*/ void GUIManager::addFontHelper(const std::string& name, int size, const std::string& fontName) 513 { 514 if(CEGUI::FontManager::getSingleton().isFontPresent(name)) // If a font with that name already exists. 515 return; 516 517 CEGUI::Font* font = NULL; 518 CEGUI::XMLAttributes xmlAttributes; 519 520 // Attributes specified within CEGUIFont 521 xmlAttributes.add("Name", name); 522 xmlAttributes.add("Filename", fontName); 523 xmlAttributes.add("ResourceGroup", ""); 524 xmlAttributes.add("AutoScaled", "true"); 525 xmlAttributes.add("NativeHorzRes", "800"); 526 xmlAttributes.add("NativeVertRes", "600"); 527 528 // Attributes specified within CEGUIXMLAttributes 529 xmlAttributes.add("Size", multi_cast<std::string>(size)); 530 xmlAttributes.add("AntiAlias", "true"); 531 532 font = CEGUI::FontManager::getSingleton().createFont("FreeType", xmlAttributes); 533 if(font != NULL) 534 font->load(); 535 } 536 500 537 } -
code/branches/tutoriallevel/src/libraries/core/GUIManager.h
r7801 r7894 109 109 110 110 // TODO: Temporary hack because the tolua exported CEGUI method does not seem to work 111 static void subscribeEventHelper(CEGUI::Window* window, const std::string& event, const std::string& function); //tolua_export 112 static void setTooltipTextHelper(CEGUI::ListboxItem* item, const std::string& toooltip); //tolua_export 113 static void setItemTooltipsEnabledHelper(CEGUI::Listbox* listbox, bool enabled); //tolua_export 111 static void subscribeEventHelper(CEGUI::Window* window, const std::string& event, const std::string& function); // tolua_export 112 static void setTooltipTextHelper(CEGUI::ListboxItem* item, const std::string& toooltip); // tolua_export 113 static void setItemTooltipsEnabledHelper(CEGUI::Listbox* listbox, bool enabled); // tolua_export 114 static void addFontHelper(const std::string& name, int size, const std::string& fontName); // tolua_export 114 115 115 116 static GUIManager& getInstance() { return Singleton<GUIManager>::getInstance(); } // tolua_export -
code/branches/tutoriallevel/src/modules/notifications/NotificationManager.cc
r7552 r7894 40 40 #include "network/Host.h" 41 41 #include "network/NetworkFunction.h" 42 #include "util/Convert.h" 42 43 #include "util/ScopedSingletonManager.h" 43 44 … … 338 339 /** 339 340 @brief 341 Fetches the newest Notifications for a specific NotificationListener and stores them in the input map. 342 @param listener 343 The NotificationListener the Notifications are fetched for. 344 @param map 345 A pointer to a multimap, in which the notifications are stored. The map needs to have been allocated. 346 @param numberOfNotifications 347 The number of newest Notifications to be got. 348 @return 349 Returns true if successful. 350 */ 351 void NotificationManager::getNewestNotifications(NotificationListener* listener, std::multimap<std::time_t, Notification*>* map, int numberOfNotifications) 352 { 353 assert(listener); 354 assert(map); 355 356 std::multimap<std::time_t, Notification*>* notifications = this->notificationLists_[this->listenerList_[listener]]; // All the Notifications for the input NotificationListener. 357 358 if(!notifications->empty()) // If the list of Notifications is not empty. 359 { 360 std::multimap<std::time_t,Notification*>::iterator it = notifications->end(); 361 for(int i = 0; i < numberOfNotifications; i++) // Iterate through the Notifications from the newest until we have the specified number of notifications. 362 { 363 it--; 364 map->insert(std::pair<std::time_t, Notification*>(it->first, it->second)); // Add the found Notifications to the map. 365 if(it == notifications->begin()) 366 break; 367 } 368 } 369 } 370 371 /** 372 @brief 340 373 Enters the edit mode of the NotificationLayer. 341 374 */ … … 381 414 void NotificationManager::loadQueues(void) 382 415 { 383 new NotificationQueue("all"); 416 NotificationQueue* allQueue = new NotificationQueue("all"); 417 GUIManager::getInstance().getLuaState()->doString("NotificationLayer.resizeQueue(\"all\", 0.5, 0, " + multi_cast<std::string>(allQueue->getMaxSize()) + ")"); 418 GUIManager::getInstance().getLuaState()->doString("NotificationLayer.moveQueue(\"all\", 0, 10, 0.3, 0)"); 419 420 NotificationQueue* infoQueue = new NotificationQueue("info", NotificationManager::ALL, 1, -1); 421 GUIManager::getInstance().getLuaState()->doString("NotificationLayer.changeQueueFont(\"info\", 24, 1.0, 1.0, 0.0, 0.8)"); 422 GUIManager::getInstance().getLuaState()->doString("NotificationLayer.resizeQueue(\"info\", 0.6, 0, " + multi_cast<std::string>(infoQueue->getMaxSize()) + ")"); 423 GUIManager::getInstance().getLuaState()->doString("NotificationLayer.moveQueue(\"info\", 0.2, 0, 0.8, 0)"); 384 424 } 385 425 -
code/branches/tutoriallevel/src/modules/notifications/NotificationManager.h
r7552 r7894 98 98 { this->getNotifications(listener, map, std::time(0)-timeDelay, std::time(0)); } 99 99 100 void getNewestNotifications(NotificationListener* listener, std::multimap<std::time_t, Notification*>* map, int numberOfNotifications); //!< Fetches the newest Notifications for a specific NotificationListener and stores them in the input map. 101 100 102 void enterEditMode(void); //!< Enters the edit mode of the NotificationLayer. 101 103 -
code/branches/tutoriallevel/src/modules/notifications/NotificationQueue.cc
r7489 r7894 159 159 { 160 160 this->tickTime_ += dt; // Add the time interval that has passed to the time counter. 161 if(this-> tickTime_ >= 1.0) // If the time counter is greater than 1s all Notifications that have expired are removed, if it is smaller we wait to the next tick.161 if(this->displayTime_ != INF && this->tickTime_ >= 1.0) // If the time counter is greater than 1s all Notifications that have expired are removed, if it is smaller we wait to the next tick. 162 162 { 163 163 this->timeLimit_.time = std::time(0)-this->displayTime_; // Container containig the current time. … … 187 187 std::multimap<std::time_t, Notification*>* notifications = new std::multimap<std::time_t, Notification*>; 188 188 // Get the Notifications sent in the interval from now to now minus the display time. 189 NotificationManager::getInstance().getNotifications(this, notifications, this->displayTime_); 189 if(this->displayTime_ == INF) 190 NotificationManager::getInstance().getNewestNotifications(this, notifications, this->getMaxSize()); 191 else 192 NotificationManager::getInstance().getNotifications(this, notifications, this->displayTime_); 190 193 191 194 if(!notifications->empty()) … … 355 358 Sets the maximum number of seconds a Notification is displayed. 356 359 @param time 357 The number of seconds the Notifications is displayed. 358 @return 359 Returns true if successful. 360 */ 361 void NotificationQueue::setDisplayTime(unsigned int time) 360 The number of seconds a Notification is displayed. 361 */ 362 void NotificationQueue::setDisplayTime(int time) 362 363 { 363 364 if(this->displayTime_ == time) -
code/branches/tutoriallevel/src/modules/notifications/NotificationQueue.h
r7552 r7894 121 121 { return this->maxSize_; } 122 122 123 void setDisplayTime( unsignedint time); //!< Sets the maximum number of seconds a Notification is displayed.123 void setDisplayTime(int time); //!< Sets the maximum number of seconds a Notification is displayed. 124 124 /** 125 125 @brief Returns the time interval the Notification is displayed. 126 126 @return Returns the display time. 127 127 */ 128 inline unsignedint getDisplayTime() const128 inline int getDisplayTime() const 129 129 { return this->displayTime_; } 130 130 // tolua_end … … 152 152 static const unsigned int DEFAULT_SIZE = 5; //!< The default maximum number of Notifications displayed. 153 153 static const unsigned int DEFAULT_DISPLAY_TIME = 30; //!< The default display time. 154 static const int INF = -1; //!< Constant denoting infinity. 154 155 155 156 std::string name_; //!< The name of the NotificationQueue. … … 157 158 unsigned int maxSize_; //!< The maximal number of Notifications displayed. 158 159 unsigned int size_; //!< The number of Notifications displayed. 159 unsignedint displayTime_; //!< The time a Notification is displayed.160 int displayTime_; //!< The time a Notification is displayed. 160 161 161 162 bool registered_; //!< Helper variable to remember whether the NotificationQueue is registered already.
Note: See TracChangeset
for help on using the changeset viewer.