summaryrefslogtreecommitdiffstats
path: root/ksirc/ksircprocess.h
blob: 6c34485d0a505a2838282d520b5c18d55815ac3d (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
83
84
85
86
87
88
89
90
91
92
93
#ifndef KSIRCPROCESS
#define KSIRCPROCESS

class KSircProcess;
class KSircTopLevel;

#include <tqdict.h>
#include <tqobject.h>

#include "iocontroller.h"
#include "ksircserver.h"
#include "ksircchannel.h"

class KProcess;
class KSircIOController;
class KSircMessageReceiver;
class KSircIOController;

class KSircProcess : public TQObject
{
  Q_OBJECT
  
  friend class KSircIOController;
public:
  KSircProcess(TQString &server_id, KSircServer &kss, TQObject * parent=0, const char * name=0);
  virtual ~KSircProcess();

  TQDict<KSircMessageReceiver> &getWindowList()
    {
      return TopList;
    }

  TQPtrList<KSircMessageReceiver> messageReceivers() const;
  const TQDict<KSircMessageReceiver> &mrList() const;

  TQString serverName() const { return m_kss.server(); }
  TQString serverPort() const { return m_kss.port(); }
  TQString serverID() const { return m_serverid; }

  KSircIOController *getIOController() { return iocontrol; }

  const TQString getNick() const;
  void setNick(const TQString nick);


signals:
  void ProcMessage(TQString, int, TQString);

public slots:
 virtual void ServMessage(TQString server, int command, TQString args);
 virtual void close_toplevel(KSircTopLevel *, TQString);
 virtual void default_window(KSircTopLevel *);
 virtual void recvChangeChannel(const TQString &, const TQString &);
 virtual void new_toplevel(const KSircChannel &, bool safe = false);

 virtual void filters_update();

 virtual void notify_forw_online(TQString);
 virtual void notify_forw_offline(TQString);

protected slots:
  virtual void clean_toplevel(TQObject *clean);
  virtual void request_quit( const TQCString& command );
  virtual void do_quit();

  virtual void turn_on_autocreate();


private:
  void base_filters();
  void cleanup();

  KSircIOController *iocontrol;
  KProcess *proc;

  TQDict<KSircMessageReceiver> TopList;

  bool running_window;
  bool default_follow_focus;
  bool auto_create_really;

  KSircServer m_kss;
  const TQString m_serverid;

  /*
   * m_nick is our nick as reported by the lower levels
   */
  TQString m_nick;

//  char *server;
};

#endif