📄 kceasy.h
字号:
/*
This file is part of KCeasy (http://www.kceasy.com)
Copyright (C) 2002-2004 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 KCeasyH
#define KCeasyH
//---------------------------------------------------------------------------
#include <Buttons.hpp>
#include <Classes.hpp>
#include <ComCtrls.hpp>
#include <Controls.hpp>
#include <ExtCtrls.hpp>
#include <ImgList.hpp>
#include <Menus.hpp>
#include <StdCtrls.hpp>
#include <ToolWin.hpp>
#include <AppEvnts.hpp>
#include "Engine.h"
#include "istring.h"
#include "Magnet.h"
#include "IconManager.h"
#include "TrayIcon.h"
#include "MessageTarget.h"
#include "Config.h"
#include "PathMapper.h"
#include "FileLauncher.h"
#include "ThemeMgr.hpp"
#include "VclHelper.h"
#include "Brand.h"
#include "gnugettext.hpp"
//---------------------------------------------------------------------------
static const char* KCEASY_CONF_PATH = "\\{AppName}.conf"; // relative to KCeasy.exe
static const char* BOOKMARKS_CONF_PATH = "\\Bookmarks.conf"; // relative to KCeasy.exe
static const char* BANLISTS_CONF_PATH = "\\Banlists.conf"; // relative to KCeasy.exe
static const char* OPENFT_CONF_PATH = "\\giFT\\conf\\OpenFT\\OpenFT.conf"; // HACK: used in config and auto update dialogs!
static const char* KCEASY_STARTUP_KEY = "HKCU\\Software\\Microsoft\\Windows\\CurrentVersion\\Run\\{AppName}";
static const UINT WM_KCEASY_EXTERNAL_SHOW = WM_USER + 1; // also change in KCeasy_p.cpp
static const UINT WM_KCEASY_EXTERNAL_SHUTDOWN = WM_USER + 2;
static const char* TCPIP_PATCHER_LOG_PATH = "\\tcpip_patcher.log"; // relative to KCeasy.exe
static const unsigned int TCPIP_PATCHER_LIMIT = 150; // min limit while we are running
//---------------------------------------------------------------------------
using namespace KCeasyEngine;
// global _() which does branding after translating
AnsiString _(const AnsiString Str);
class TMainForm : public TForm
{
__published: // IDE-managed Components
TMainMenu *MainMenu;
TMenuItem *KCeasyMnu;
TMenuItem *HelpMnu;
TMenuItem *ConnectMnu;
TMenuItem *DisconnectMnu;
TMenuItem *ExitMnu;
TMenuItem *ConfigMnu;
TMenuItem *OnlineHelpMnu;
TMenuItem *AboutMnu;
TStatusBar *MainStatusBar;
TImageList *FileImageList;
TPopupMenu *TrayPopup;
TMenuItem *TrayHideMnu;
TMenuItem *TrayShowMnu;
TMenuItem *N1;
TMenuItem *TrayExitMnu;
TPanel *PlayerPanel;
TSpeedButton *StopBtn;
TSpeedButton *PrevBtn;
TSpeedButton *PlayBtn;
TSpeedButton *PauseBtn;
TSpeedButton *NextBtn;
TLabel *TimeLabel;
TLabel *TitleLabel;
TPanel *BottomSpacerPanel;
TBevel *V2Bevel;
TBevel *V1Bevel;
TMenuItem *ConfigWizardMnu;
TMenuItem *N2;
TMenuItem *N3;
TMenuItem *RemoveSharesDbMnu;
TMenuItem *N4;
TMenuItem *UpdateBanlistsMnu;
TProgressBar *PlayProgressBar;
TBevel *V3Bevel;
TApplicationEvents *ApplicationEvents;
TToolBar *MainToolBar;
TToolButton *BrowserPageBtn;
TToolButton *SearchPageBtn;
TToolButton *TransferPageBtn;
TToolButton *LibraryPageBtn;
TToolButton *PlayerPageBtn;
TToolButton *ChatPageBtn;
TToolButton *StatusPageBtn;
TImageList *MainToolBarImageList;
TImageList *MainToolBarDisabledImageList;
TMenuItem *CheckForUpdatesMnu;
void __fastcall ConnectMnuClick(TObject *Sender);
void __fastcall DisconnectMnuClick(TObject *Sender);
void __fastcall ExitMnuClick(TObject *Sender);
void __fastcall FormClose(TObject *Sender, TCloseAction &Action);
void __fastcall AboutMnuClick(TObject *Sender);
void __fastcall ConfigMnuClick(TObject *Sender);
void __fastcall TrayHideMnuClick(TObject *Sender);
void __fastcall TrayShowMnuClick(TObject *Sender);
void __fastcall ConfigWizardMnuClick(TObject *Sender);
void __fastcall RemoveSharesDbMnuClick(TObject *Sender);
void __fastcall UpdateBanlistsMnuClick(TObject *Sender);
void __fastcall OnlineHelpMnuClick(TObject *Sender);
void __fastcall PlayProgressBarMouseDown(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y);
void __fastcall PlayProgressBarMouseMove(TObject *Sender,
TShiftState Shift, int X, int Y);
void __fastcall PlayProgressBarMouseUp(TObject *Sender,
TMouseButton Button, TShiftState Shift, int X, int Y);
void __fastcall ApplicationEventsActivate(TObject *Sender);
void __fastcall BrowserPageBtnClick(TObject *Sender);
void __fastcall SearchPageBtnClick(TObject *Sender);
void __fastcall TransferPageBtnClick(TObject *Sender);
void __fastcall LibraryPageBtnClick(TObject *Sender);
void __fastcall PlayerPageBtnClick(TObject *Sender);
void __fastcall ChatPageBtnClick(TObject *Sender);
void __fastcall StatusPageBtnClick(TObject *Sender);
void __fastcall CheckForUpdatesMnuClick(TObject *Sender);
protected:
void __fastcall WMTaskbarCreated(TMessage& Msg);
void __fastcall WMEngineCallback(TMessage& Msg);
void __fastcall ShowMsgHandler(TMessage &Message);
void __fastcall ShutdownMsgHandler(TMessage &Message);
UINT WM_TASKBARCREATED; // set in constructor
virtual void __fastcall Dispatch(void *Message);
/*
BEGIN_MESSAGE_MAP
VCL_MESSAGE_HANDLER(WM_TASKBARCREATED, TMessage, WMTaskbarCreated)
VCL_MESSAGE_HANDLER(WM_ENGINE_CALLBACK, TMessage, WMEngineCallback)
END_MESSAGE_MAP(TForm)
*/
private: // User declarations
TForm* VisiblePage;
bool ShuttingDown;
unsigned int PreviousSP2Limit;
TToolButton* PageButtonFromForm(TForm* Page);
void RemoveSP2Limit();
void RestoreSP2Limit();
public: // User declarations
TThemeManager* ThemeManager;
TIconManager* IconManager;
TTrayIcon* TrayIcon;
TMessageTarget* MessageTarget;
__fastcall TMainForm(TComponent* Owner);
__fastcall ~TMainForm();
TForm* __fastcall GetVisiblePage();
void __fastcall SetVisiblePage(TForm* Form);
};
//---------------------------------------------------------------------------
extern TMainForm *MainForm;
extern TEngine* Engine;
extern TFileConfig* Config;
extern TPathMapper* PathMapper;
extern TBrand* Brand;
//---------------------------------------------------------------------------
#endif
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -