//==============================================================================
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;
};
Beispiel #2
0
    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_;
    }