summaryrefslogtreecommitdiffstats
path: root/examples/network/remotecontrol/remotectrlimpl.cpp
blob: 68e0a3c7a52b50fdd26b0dd2cd48be49ca7da18e (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
#include "remotectrlimpl.h"

#include <ntqpushbutton.h>
#include <ntqlineedit.h>
#include <ntqsocket.h>
#include <ntqfiledialog.h>
#include <ntqcolordialog.h>
#include <ntqimage.h>

RemoteCtrlImpl::RemoteCtrlImpl( TQSocket *s )
{
    socket = s;
    connect( sImage, TQ_SIGNAL(clicked()), TQ_SLOT(sendImage()) );
    connect( sText, TQ_SIGNAL(clicked()), TQ_SLOT(sendText()) );
    connect( sPalette, TQ_SIGNAL(clicked()), TQ_SLOT(sendPalette()) );
}

void RemoteCtrlImpl::sendPacket( const TQVariant &v )
{
    TQByteArray ba;
    TQDataStream varDs( ba, IO_WriteOnly );
    varDs << v;

    TQDataStream ds( socket );
    ds << (TQ_UINT32) ba.size();
    socket->writeBlock( ba.data(), ba.size() );
}

void RemoteCtrlImpl::sendImage()
{
    TQString imageName = TQFileDialog::getOpenFileName( TQString::null,
	    "Images (*.png *.xpm *.jpg)", this );
    TQImage image( imageName );
    if ( !image.isNull() ) {
	sendPacket( image );
    }
}

void RemoteCtrlImpl::sendText()
{
    sendPacket( textToSend->text() );
}

void RemoteCtrlImpl::sendPalette()
{
    TQColor col = TQColorDialog::getColor( white, this );
    if ( col.isValid() ) {
	sendPacket( TQPalette(col,col) );
    }
}