Example #1
0
void TextMessageDlg::timerEvent(QTimerEvent *event)
{
    if(m_local_typing_id == event->timerId())
    {
        if(m_textchanged)
        {
            ServerProperties srvprop;
            if(TT_GetServerProperties(ttInst, &srvprop))
            {
                TextMessage msg;
                ZERO_STRUCT(msg);
                msg.nFromUserID = TT_GetMyUserID(ttInst);
                msg.nMsgType = MSGTYPE_CUSTOM;
                msg.nToUserID = m_userid;
                QString cmd = makeCustomCommand(TT_INTCMD_TYPING_TEXT,
                                                QString::number((int)!ui.newmsgTextEdit->toPlainText().isEmpty()));
                COPY_TTSTR(msg.szMessage, cmd);
                if(TT_DoTextMessage(ttInst, &msg)>0)
                    emit(newMyselfTextMessage(msg));
            }
            m_textchanged = false;
        }
    }

    if(m_remote_typing_id == event->timerId())
    {
        ui.newmsgLabel->setText(tr("New message"));
        killTimer(m_remote_typing_id);
        m_remote_typing_id = 0;
    }
}
void CUserDesktopDlg::MenuCommand(UINT uCmd)
{
    switch(uCmd)
    {
    case ID_POPUP_REQUESTDESKTOPACCESS :
    {
        TextMessage msg;
        ZERO_STRUCT(msg);
        msg.nMsgType = MSGTYPE_CUSTOM;
        msg.nToUserID = m_nUserID;
        if(m_bRequestedAccess)
        {
            CString szText = MakeCustomCommand(TT_INTCMD_DESKTOP_ACCESS, _T("0"));
            COPYTTSTR(msg.szMessage, szText);
        }
        else
        {
            CString szText = MakeCustomCommand(TT_INTCMD_DESKTOP_ACCESS, _T("1"));
            COPYTTSTR(msg.szMessage, szText);
        }

        TT_DoTextMessage(ttInst, &msg);
        m_bRequestedAccess = !m_bRequestedAccess;
        break;
    }
    }
}
void UserDesktopWidget::slotContextMenu(const QPoint& p)
{
    Q_UNUSED(p);

    //don't show context menu if we're currently using desktop access
    if(m_user.uPeerSubscriptions & SUBSCRIBE_DESKTOPINPUT)
        return;

    QMenu menu(this);
#ifndef USE_TT_PAINT
    QAction* save = menu.addAction(tr("&Save to Image File"));
#endif
    menu.addSeparator();

    QAction* access = NULL;
    if(m_access_requested)
        access = menu.addAction(tr("Retract &Desktop Access"));
    else
        access = menu.addAction(tr("Request &Desktop Access"));
    access->setIcon(QIcon(QString::fromUtf8(":/images/images/chalkstick.png")));
    QAction* result = menu.exec(QCursor::pos());
#ifndef USE_TT_PAINT
    if(result == save)
    {
        QString name = QFileDialog::getSaveFileName(this, tr("Save File"), 
                                                    "", tr("PNG files (*.png)"));
        if(name.size() && !m_image.save(name, "PNG"))
            QMessageBox::critical(this, tr("&Save to Image File"), tr("Failed to save file."));
    }
    else
#endif
    if(result == access)
    {
        TextMessage msg;
        ZERO_STRUCT(msg);
        msg.nFromUserID = TT_GetMyUserID(ttInst);
        msg.nMsgType = MSGTYPE_CUSTOM;
        msg.nToUserID = m_userid;
        m_access_requested = !m_access_requested;
        QString cmd = makeCustomCommand(TT_INTCMD_DESKTOP_ACCESS, 
                                        QString::number(m_access_requested));
        COPY_TTSTR(msg.szMessage, cmd);
        TT_DoTextMessage(ttInst, &msg);
    }
}
Example #4
0
void TextMessageDlg::slotSendMsg(const QString& txt_msg)
{
    if(txt_msg.isEmpty())
        return;

    TextMessage msg;
    ZERO_STRUCT(msg);
    msg.nFromUserID = TT_GetMyUserID(ttInst);
    msg.nChannelID = 0;
    msg.nMsgType = MSGTYPE_USER;
    msg.nToUserID = m_userid;
    COPY_TTSTR(msg.szMessage, txt_msg);
    if(TT_DoTextMessage(ttInst, &msg)>0)
    {
        ui.newmsgTextEdit->setPlainText("");
        newMsg(msg, true);
        emit(newMyselfTextMessage(msg));
        m_textchanged = false;
    }
}
Example #5
0
void CMessageDlg::OnButtonSend() 
{
    CString msg;
    m_richMessage.GetWindowText(msg);

    if(IsAlive() && msg.GetLength()>0)
    {
        m_richMessage.SetWindowText(_T(""));

        TextMessage usermsg;
        usermsg.nMsgType = MSGTYPE_USER;
        usermsg.nFromUserID = m_myself.nUserID;
        usermsg.nToUserID = m_user.nUserID;
        _tcsncpy(usermsg.szMessage, msg.GetBuffer(), TT_STRLEN - 1);

        if( TT_DoTextMessage(ttInst, &usermsg)>0)
            AppendMessage(usermsg, TRUE);
        else
            AfxMessageBox(_T("Failed to send message!"));
    }
}