~ubuntu-branches/ubuntu/hoary/kvirc/hoary

« back to all changes in this revision

Viewing changes to src/kvirc/kvi_userlistbox.h

  • Committer: Bazaar Package Importer
  • Author(s): Robin Verduijn
  • Date: 2004-12-14 15:32:19 UTC
  • mfrom: (0.2.1 upstream) (1.1.1 warty)
  • Revision ID: james.westby@ubuntu.com-20041214153219-fdink3gyp2s20b6g
Tags: 2:2.1.3.1-2
* Change Recommends on xmms to a Suggests.
* Rebuild against KDE 3.3.1

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
#ifndef _KVI_USERLISTBOX_H_INCLUDED_
 
2
#define _KVI_USERLISTBOX_H_INCLUDED_
 
3
 
 
4
// =============================================================================
 
5
//
 
6
//      --- kvi_userlistbox.h ---
 
7
//
 
8
//   This file is part of the KVIrc IRC client distribution
 
9
//   Copyright (C) 1999-2000 Szymon Stefanek (stefanek@tin.it)
 
10
//
 
11
//   This program is FREE software. You can redistribute it and/or
 
12
//   modify it under the terms of the GNU General Public License
 
13
//   as published by the Free Software Foundation; either version 2
 
14
//   of the License, or (at your opinion) any later version.
 
15
//
 
16
//   This program is distributed in the HOPE that it will be USEFUL,
 
17
//   but WITHOUT ANY WARRANTY; without even the implied warranty of
 
18
//   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
19
//   See the GNU General Public License for more details.
 
20
//
 
21
//   You should have received a copy of the GNU General Public License
 
22
//   along with this program. If not, write to the Free Software Foundation,
 
23
//   Inc, 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
 
24
//
 
25
// =============================================================================
 
26
 
 
27
#include <qptrlist.h>
 
28
#include <qwidget.h>
 
29
 
 
30
class QPixmap;
 
31
class QScrollBar;
 
32
 
 
33
class KviFrame;
 
34
class KviIrcUser;
 
35
class KviIrcUserChanList;
 
36
class KviUserParser;
 
37
class KviWindow;
 
38
 
 
39
class KviUserListBox : public QWidget
 
40
{
 
41
        Q_OBJECT
 
42
public:
 
43
        KviUserListBox(QWidget *parent, KviWindow *parentWnd, KviUserParser *parser, KviFrame *pFrm);
 
44
        ~KviUserListBox();
 
45
 
 
46
        void partAll();
 
47
        void join(
 
48
                const KviIrcUser &user, char bOp = 0, char bVoice = 0, char bHalfOp = 0,
 
49
                char bUserOp = 0, char bOwner = 0, bool bRepaint = true
 
50
        );
 
51
        void part(const char *nick);
 
52
        void part(const KviIrcUser &user);
 
53
        void select(const char *nick);
 
54
        void select(const KviIrcUser &user);
 
55
        void selectAll();
 
56
        void deselect(const char *nick);
 
57
        void deselect(const KviIrcUser &user);
 
58
        void deselectAll();
 
59
        bool owner(const KviIrcUser &user, char bOwner);
 
60
        bool owner(const char *nick, char bOwner);
 
61
        bool op(const KviIrcUser &user, char bOp);
 
62
        bool op(const char *nick, char bOp);
 
63
        bool halfop(const KviIrcUser &user, char bHalfOp);
 
64
        bool halfop(const char *nick, char bHalfOp);
 
65
        bool nickChange(const KviIrcUser &nicker, const char *nick);
 
66
        bool voice(const KviIrcUser &user, char bVoice);
 
67
        bool voice(const char *nick, char bVoice);
 
68
        bool userop(const KviIrcUser &user, char bUserOp);
 
69
        bool userop(const char *nick, char bUserOp);
 
70
 
 
71
        QPtrList<KviStr> *createNickStringList();
 
72
 
 
73
        // Redirects
 
74
        bool isOwner(const KviIrcUser &user);
 
75
        bool isOwner(const char *nick);
 
76
        bool isOp(const KviIrcUser &user);
 
77
        bool isOp(const char *nick);
 
78
        bool isHalfOp(const KviIrcUser &user);
 
79
        bool isHalfOp(const char *nick);
 
80
        bool isVoice(const KviIrcUser &user);
 
81
        bool isVoice(const char *nick);
 
82
        bool isUserOp(const KviIrcUser &user);
 
83
        bool isUserOp(const char *nick);
 
84
 
 
85
        int count();
 
86
        int ownerCount();
 
87
        int opCount();
 
88
        int halfopCount();
 
89
        int voiceCount();
 
90
        int useropCount();
 
91
        int findUserPosition(const char *nick);
 
92
 
 
93
        KviIrcUser *findUser(const KviIrcUser &user);
 
94
        KviIrcUser *findUser(const char *nick);
 
95
        KviIrcUser *firstUser();
 
96
        KviIrcUser *lastUser();
 
97
        KviIrcUser *nextUser();
 
98
        KviIrcUser *prevUser();
 
99
        KviIrcUser *firstOp();
 
100
 
 
101
        KviIrcUserChanList *userList();
 
102
 
 
103
        void doRepaint();
 
104
 
 
105
        void appendSelectedNicknames(KviStr &buffer);
 
106
        void     appendSelectedMasks(KviStr &buffer);
 
107
        void     appendSelectedHosts(KviStr &buffer);
 
108
        void appendSelectedUsernames(KviStr &buffer);
 
109
 
 
110
        void   appendNickList(KviStr &str);
 
111
        void  appendOwnerList(KviStr &str);
 
112
        void     appendOpList(KviStr &str);
 
113
        void    appendNOpList(KviStr &str);
 
114
        void appendHalfOpList(KviStr &str);
 
115
        void  appendVoiceList(KviStr &str);
 
116
        void appendUserOpList(KviStr &str);
 
117
 
 
118
        virtual void wheelEvent(QWheelEvent *);
 
119
signals:
 
120
        void rightClicked();
 
121
protected slots:
 
122
        void scrollBarMoved(int value);
 
123
        int itemFromPos(QPoint pos);
 
124
protected:
 
125
        KviFrame           *m_pFrm;
 
126
        QPixmap            *m_pMemBuffer;
 
127
        HANDLE              m_hMemBuffer;
 
128
        int                 m_iCurTopItem;
 
129
        KviIrcUserChanList *m_pClientList;
 
130
        int                 m_iLastSelectedItem;
 
131
        KviUserParser      *m_pUserParser;
 
132
        KviWindow          *m_pParent;
 
133
 
 
134
        void updateScrollBar();
 
135
 
 
136
        virtual void            paintEvent(QPaintEvent *);
 
137
        virtual void           resizeEvent(QResizeEvent *);
 
138
        virtual void       mousePressEvent(QMouseEvent *);
 
139
        virtual void        mouseMoveEvent(QMouseEvent *);
 
140
        virtual void     mouseReleaseEvent(QMouseEvent *);
 
141
        virtual void        dragEnterEvent(QDragEnterEvent *);
 
142
        virtual void         dragMoveEvent(QDragMoveEvent *);
 
143
        virtual void             dropEvent(QDropEvent *);
 
144
        virtual void mouseDoubleClickEvent(QMouseEvent *);
 
145
private:
 
146
        QScrollBar *m_pScrollBar;
 
147
};
 
148
 
 
149
#endif // _KVI_USERLISTBOX_H_INCLUDED_