📄 buddylist.h
字号:
/*
This file is part of SWAIN (http://sourceforge.net/projects/swain).
Copyright (C) 2006 Daniel Lindstr鰉 and Daniel Nilsson
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.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA 02110-1301, USA.
*/
#pragma once
#include "DynList.h"
#include "Map.h"
#include "defines.h"
#include "BuddyListUI.h"
#include "ConnectionHandler.h"
struct CacheEntry {
WCHAR name[NAME_BUF_SIZE];
int status;
};
class BuddyList {
private:
DynList<int> favUsers;
DynList<int> favGroups;
DynList<int> selectedGroups;
Map<CacheEntry *> userCache;
Map<CacheEntry *> groupCache;
BuddyListUI *ui;
ConnectionHandler *conHandler;
int serverCid;
int lowestStatus;
bool onlyFavUsers;
bool onlyFavGroups;
bool refreshUserStatus;
CacheEntry *makeUserCacheEntry(int gid);
CacheEntry *makeGroupCacheEntry(int gid);
public:
BuddyList(ConnectionHandler *ch, int cid);
~BuddyList(void);
bool load(char *filename);
bool save(char *filename);
// These are for calling from the GUI code
void setUI(BuddyListUI *ui);
void refresh(bool users, bool groups, bool status);
void showOnlyFavUsers(bool b);
void showOnlyFavGroups(bool b);
bool getOnlyFavUsers(void);
bool getOnlyFavGroups(void);
void setLowestStatus(int status);
int getLowestStatus(void);
void selectGroup(int gid);
void deselectGroup(int gid);
bool isSelectedGroup(int gid);
void addFavUser(int uid);
void removeFavUser(int uid);
bool isFavUser(int uid);
void addFavGroup(int gid);
void removeFavGroup(int gid);
bool isFavGroup(int gid);
// These are for calling from the network code
void newUserList(const int *uids, int num);
void newGroupList(const int *uids, int num);
void setUserName(int uid, WCHAR *name);
void setGroupName(int gid, WCHAR *name);
void setUserStatus(int uid, int status);
void setGroupStatus(int gid, int status);
void connectTo(int uid);
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -