📄 chatpage.h
字号:
/*
This file is part of KCeasy (http://www.kceasy.com)
Copyright (C) 2002-2005 Markus Kern <mkern@kceasy.com>
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.
*/
//---------------------------------------------------------------------------
#ifndef ChatPageH
#define ChatPageH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <ComCtrls.hpp>
#include <ExtCtrls.hpp>
#include <Buttons.hpp>
#include "XiRC.hpp"
#include "ChatChannelPage.h"
//---------------------------------------------------------------------------
class TChatForm : public TForm
{
__published: // IDE-managed Components
TPanel *CtrlPanel;
TEdit *NickEdit;
TLabel *NickLabel;
TSpeedButton *ConnectBtn;
TXiRC *Irc;
TBevel *BottomLineBevel;
TPageControl *PageCtrl;
TTabSheet *StatusSheet;
TTabSheet *ChannelsSheet;
TListView *ChannelsListView;
TPanel *PagePanel;
TBevel *Bevel1;
TSpeedButton *RefreshChannelsBtn;
TBevel *Bevel2;
TSpeedButton *CloseChannelBtn;
void __fastcall ConnectBtnClick(TObject *Sender);
void __fastcall IrcConnect();
void __fastcall IrcDisConnect();
void __fastcall IrcError(int ErrorNumber, AnsiString Errormsg);
void __fastcall IrcServerError(AnsiString ErrorMsg);
void __fastcall IrcLoggedIn(AnsiString ServerName,
AnsiString NickName);
void __fastcall IrcRaw(AnsiString Text);
void __fastcall IrcNames(AnsiString Channel, AnsiString Data);
void __fastcall IrcJoin(AnsiString Nick, AnsiString Address,
AnsiString Channel);
void __fastcall IrcKick(AnsiString Nick, AnsiString Address,
AnsiString Channel, AnsiString Person, AnsiString Reason);
void __fastcall IrcKill(AnsiString Oper, AnsiString Victium,
AnsiString Reason);
void __fastcall IrcPrivMsg(AnsiString Nick, AnsiString Address,
AnsiString Dest, AnsiString Content);
void __fastcall IrcTopicChange(AnsiString channel, AnsiString Who,
AnsiString Topic);
void __fastcall IrcTopic(AnsiString Channel, AnsiString Title);
void __fastcall IrcPart(AnsiString Nick, AnsiString Address,
AnsiString Channel, AnsiString PartMsg);
void __fastcall IrcQuit(AnsiString Nick, AnsiString Address,
AnsiString QuitMsg);
void __fastcall IrcAction(AnsiString Nick, AnsiString Address,
AnsiString Channel, AnsiString Content);
void __fastcall IrcTopicInfo(AnsiString channel, AnsiString Who,
TDateTime When);
void __fastcall IrcNotice(AnsiString From, AnsiString Dest,
AnsiString Text);
void __fastcall IrcNick(AnsiString OldNick, AnsiString Address,
AnsiString NewNick);
void __fastcall IrcServerMsg(AnsiString Text);
void __fastcall IrcNumeric(int CMD, AnsiString Content,
AnsiString Nick, AnsiString Address);
void __fastcall PageCtrlChange(TObject *Sender);
void __fastcall IrcMOTD(AnsiString Content);
void __fastcall IrcInfo(AnsiString Info);
void __fastcall IrcMOTDEnd(AnsiString Content);
void __fastcall IrcUserMode(AnsiString Modes);
void __fastcall IrcChannelMode(AnsiString Nick, AnsiString Channel,
AnsiString Modes);
void __fastcall IrcWhoIS(AnsiString Data);
void __fastcall ChannelsListViewCompare(TObject *Sender,
TListItem *Item1, TListItem *Item2, int Data, int &Compare);
void __fastcall ChannelsListViewColumnClick(TObject *Sender,
TListColumn *Column);
void __fastcall ChannelsListViewDblClick(TObject *Sender);
void __fastcall NickEditKeyPress(TObject *Sender, char &Key);
void __fastcall RefreshChannelsBtnClick(TObject *Sender);
void __fastcall CloseChannelBtnClick(TObject *Sender);
private: // User declarations
// text font
TFont* ChatFont;
// text colors
TColor ColNormal; // default text
TColor ColOthers; // text other people wrote
TColor ColOwn; // text user wrote
TColor ColNotice;
TColor ColAction;
TColor ColJoin; // text used for join/part/kick/etc
TColor ColInfo; // status info from client software
TColor ColDebug;
TColor ColWarn; // errors/warnings
bool Connected;
bool LogRaw;
bool GotInfo;
bool GotMOTD;
bool ListingChannels;
AnsiString NewHost;
unsigned int NewPort;
// status page
TChatChannelFrame* StatusFrame;
bool PrintStatus(AnsiString Msg, TColor Color, bool Time = false, bool Star = false);
TChatChannelFrame* NewChannelFrame(AnsiString Channel, bool UserChat);
bool DeleteChannelFrame(TChatChannelFrame* ChannelFrame);
TChatChannelFrame* GetChannelFrame(AnsiString Channel);
// user input parsing
AnsiString FilterColors(AnsiString Text);
AnsiString GetToken(AnsiString* Text);
void __fastcall ChannelFrameOnCommand(TChatChannelFrame* ChannelFrame, AnsiString Text);
public: // User declarations
__fastcall TChatForm(TComponent* Owner);
__fastcall ~TChatForm();
void __fastcall Release();
void __fastcall PageActivated();
bool Connect(AnsiString Host = "", unsigned int Port = 0);
bool Disconnect();
};
//---------------------------------------------------------------------------
extern PACKAGE TChatForm *ChatForm;
//---------------------------------------------------------------------------
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -