//============================================================================== void* console::parse_thread::Entry() { // wxLogMessage(_T("Mouse is %s (%ld, %ld)"), where.c_str(), x, y); // wxLogMessage(_T("Mutex try to lock...")); while (wxMUTEX_NO_ERROR != _mutex.TryLock()); telllloc.first_column = telllloc.first_line = 1; telllloc.last_column = telllloc.last_line = 1; telllloc.filename = NULL; void* b = tell_scan_string( command.mb_str() ); StatusBusy(command); tellparse(); my_delete_yy_buffer( b ); _mutex.Unlock(); if (Console->canvas_invalid()) { wxPaintEvent upde(wxEVT_PAINT); wxPostEvent(_canvas_wnd, upde); Console->set_canvas_invalid(false); } StatusReady(); // wxLogMessage(_T("Mutex unlocked")); return NULL; };
QMenuBar *SessionManager::ConstructMenuBar() { // QMenuBar and QMenu init menu_bar_ = new QMenuBar(main_parent_); // FILE MENU QMenu *file_menu = new QMenu("File", main_parent_); QAction *hide_action = file_menu->addAction("Hide", this, SLOT( Hide() )); //hide_action->setEnabled(false); // Can't support hide on external mode // STATUS menu QMenu *status_menu = new QMenu("Status", main_parent_); set_status_message = status_menu->addAction("Set Status Message", session_helper_, SLOT( SetStatusMessage() )); status_menu->addSeparator(); available_status = status_menu->addAction("Available", this, SLOT( StatusAvailable() )); chatty_status = status_menu->addAction("Chatty", this, SLOT( StatusChatty() )); away_status = status_menu->addAction("Away", this, SLOT( StatusAway() )); extended_away_status = status_menu->addAction("Extended Away", this, SLOT( StatusExtendedAway() )); busy_status = status_menu->addAction("Busy", this, SLOT( StatusBusy() )); hidden_status = status_menu->addAction("Hidden", this, SLOT( StatusHidden() )); set_status_message->setIcon(QIcon(":images/iconRename.png")); available_status->setCheckable(true); available_status->setIcon(UiDefines::PresenceStatus::GetIconForStatusCode("available")); chatty_status->setCheckable(true); chatty_status->setIcon(UiDefines::PresenceStatus::GetIconForStatusCode("chat")); away_status->setCheckable(true); away_status->setIcon(UiDefines::PresenceStatus::GetIconForStatusCode("away")); extended_away_status->setCheckable(true); extended_away_status->setIcon(UiDefines::PresenceStatus::GetIconForStatusCode("xa")); busy_status->setCheckable(true); busy_status->setIcon(UiDefines::PresenceStatus::GetIconForStatusCode("dnd")); hidden_status->setCheckable(true); hidden_status->setIcon(UiDefines::PresenceStatus::GetIconForStatusCode("hidden")); QActionGroup *status_group = new QActionGroup(main_parent_); status_group->addAction(available_status); status_group->addAction(chatty_status); status_group->addAction(away_status); status_group->addAction(extended_away_status); status_group->addAction(busy_status); status_group->addAction(hidden_status); available_status->setChecked(true); status_menu->addSeparator(); signout = status_menu->addAction("Sign out", this, SLOT( SignOut() )); signout->setIcon(QIcon(":images/iconSignout.png")); // JOIN MENU QMenu *actions_menu = new QMenu("Actions", main_parent_); add_new_friend = actions_menu->addAction("Add New Friend"); add_new_friend->setIcon(QIcon(":images/iconAdd.png")); join_chat_room = actions_menu->addAction("Join Chat Room", this, SLOT( JoinChatRoom() )); join_chat_room->setIcon(QIcon(":/images/iconConference.png")); manage_spatial_voice = actions_menu->addAction("Manage 3D Voice", this, SLOT( Show3DSoundManager() )); manage_spatial_voice->setIcon(QIcon(":images/iconProperties.png")); // Add sub menus to menu bar menu_bar_->addMenu(file_menu); menu_bar_->addMenu(status_menu); menu_bar_->addMenu(actions_menu); menu_bar_->addAction("Show Friend List", this, SLOT( ToggleShowFriendList() )); // Connect signals connect(add_new_friend, SIGNAL( triggered() ), session_helper_, SLOT( SendFriendRequest() )); connect(this, SIGNAL( StatusChange(const QString&) ), session_helper_, SLOT( SetMyStatus(const QString&) )); connect(session_helper_, SIGNAL( ChangeMenuBarStatus(const QString &) ), this, SLOT( StatusChangedOutSideMenuBar(const QString &) )); return menu_bar_; }