summaryrefslogtreecommitdiffstats
path: root/kopete/protocols/sms/services/smssendprovider.h
blob: bd0461042fa861dd57a2983c569cf675856cb31c (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
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/*  *************************************************************************
    *   copyright: (C) 2003 Richard Lärkäng <nouseforaname@home.se>         *
    *   copyright: (C) 2003 Gav Wood <gav@kde.org>                          *
    *************************************************************************
*/

/*  *************************************************************************
    *                                                                       *
    * This program is free software; you can redistribute it and/or modify  *
    * it under the terms of the GNU General Public License as published by  *
    * the Free Software Foundation; either version 2 of the License, or     *
    * (at your option) any later version.                                   *
    *                                                                       *
    *************************************************************************
*/

#ifndef SMSSENDPROVIDER_H
#define SMSSENDPROVIDER_H

#include <tqstring.h>
#include <tqstringlist.h>
#include <tqptrlist.h>
#include <tqlabel.h>
#include <tqvaluelist.h>

#include <klineedit.h>

#include "kopetemessage.h"

#include "smsaccount.h"

class KProcess;
namespace Kopete { class Account; }
class SMSContact;

class SMSSendProvider : public QObject
{
	Q_OBJECT
public:
	SMSSendProvider(const TQString& providerName, const TQString& prefixValue, Kopete::Account* account, TQObject* parent = 0, const char* name = 0);
	~SMSSendProvider();

	void setAccount(Kopete::Account *account);

	int count();
	const TQString& name(int i);
	const TQString& value(int i);
	const TQString& description(int i);
	const bool isHidden(int i);

	void save(TQPtrList<KLineEdit>& args);
	void send(const Kopete::Message& msg);

	int maxSize();
private slots:
	void slotReceivedOutput(KProcess*, char  *buffer, int  buflen);
	void slotSendFinished(KProcess*);
private:
	TQStringList names;
	TQStringList descriptions;
	TQStringList values;
	TQValueList<bool> isHiddens;

	int messagePos;
	int telPos;
	int m_maxSize;

	TQString provider;
	TQString prefix;
	TQCString output;

	Kopete::Account* m_account;

	Kopete::Message m_msg;

	bool canSend;
signals:
	void messageSent(const Kopete::Message& msg);
	void messageNotSent(const Kopete::Message& msg, const TQString &error);
} ;

#endif //SMSSENDPROVIDER_H