#pragma once #ifdef _NA_008283_20150511_NOTIFICATIONS_SYSTEM #include "uiBaseMan.h" struct IM_NOTIFICATIONS_SYSTEM_MANAGER { static const DWORD NOTIFICATIONS_SYSTEM_DIALOG; static const DWORD NOTIFICATIONS_SYSTEM_LIST; }; struct NotificationInfo_ForClient { TCHAR notification_string[INTERFACE_STRING_LENGTH]; NotificationInfo info; NotificationInfo_ForClient() { ZeroMemory(notification_string, INTERFACE_STRING_LENGTH); } }; class uiNotificationsSystemDialog; class uiNotificationsSystemListDialog; class uiNotificationsSystemMan : public uiBaseMan { public: uiNotificationsSystemMan(InterfaceManager* ui_manager); ~uiNotificationsSystemMan(void); public: virtual void OnInitialize(); virtual void NetworkProc( MSG_BASE* message ); public: void OnRecv_CW_NOTIFICATION_PREV_ACK( MSG_BASE* message ); void OnRecv_CW_NOTIFICATION_BRD( MSG_BASE* message ); public: void ShowNotificationsMessage(const NotificationInfo_ForClient& notification_info, const NotificationType& notification_type); void ToggleNotificationsList(); #ifdef _NA_008800_20160510_COMBAT_RECORD_SYSTEM void ShowNotificationsList(); void CloseNotificationsList(); #endif // _NA_008800_20160510_COMBAT_RECORD_SYSTEM void CheckNextNotificationsShow(); public: void PushBackNotificationsMessage(std::string message, const NotificationInfo& info); void PushBackNotificationsListMessage(std::string message, const NotificationInfo& info); void ClearTextTextureVector(); void DeleteNotificationsListBegin(); WzColor GetNotificationsTextColor(const NotificationInfo& info, const NotificationType& notification_type); private: void ParseNotificationsString(const NotificationInfo& notification_info, OUT TCHAR* out_string); public: std::vector& get_text_texture_vector() { return text_texture_vector_; } private: uiNotificationsSystemDialog* ui_notifications_system_dialog_; uiNotificationsSystemListDialog* ui_notifications_system_list_dialog_; std::vector text_texture_vector_; std::list notifications_list_; }; #endif // _NA_008283_20150511_NOTIFICATIONS_SYSTEM