⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 kceasy.h

📁 Last change: 2008-02-03 This is the source code of 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 + -