📄 emuledlg.h
字号:
//this file is part of eMule
//Copyright (C)2002 Merkur ( devs@emule-project.net / http://www.emule-project.net )
//
//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., 675 Mass Ave, Cambridge, MA 02139, USA.
#pragma once
#include "TrayDialog.h"
#include "MeterIcon.h"
#include "TitleMenu.h"
namespace Kademlia {
class CSearch;
class CContact;
class CEntry;
class CUInt128;
};
class CChatWnd;
class CIrcWnd;
class CKademliaWnd;
class CKnownFileList;
class CMainFrameDropTarget;
class CMuleStatusBarCtrl;
class CMuleToolbarCtrl;
class CPreferencesDlg;
class CSearchDlg;
class CServerWnd;
class CSharedFilesWnd;
class CStatisticsDlg;
class CTaskbarNotifier;
class CTransferWnd;
struct Status;
class CSplashScreen;
class CMuleSystrayDlg;
class CMiniMule;
// emuleapp <-> emuleapp
#define OP_ED2KLINK 12000
#define OP_CLCOMMAND 12001
#define EMULE_HOTMENU_ACCEL 'x'
#define EMULSKIN_BASEEXT _T("eMuleSkin")
class CemuleDlg : public CTrayDialog
{
friend class CMuleToolbarCtrl;
friend class CMiniMule;
public:
CemuleDlg(CWnd* pParent = NULL);
~CemuleDlg();
enum { IDD = IDD_EMULE_DIALOG };
bool IsRunning();
void ShowConnectionState();
void ShowNotifier(CString Text, int MsgType, LPCTSTR pszLink = NULL, bool ForceSoundOFF = false);
void ShowUserCount();
void ShowMessageState(uint8 iconnr);
void SetActiveDialog(CWnd* dlg);
void ShowTransferRate(bool forceAll=false);
void ShowPing();
void Localize();
// Logging
void AddLogText(UINT uFlags, LPCTSTR pszText);
void AddServerMessageLine(LPCTSTR pszText);
void ResetLog();
void ResetDebugLog();
CString GetLastLogEntry();
CString GetLastDebugLogEntry();
CString GetAllLogEntries();
CString GetAllDebugLogEntries();
CString GetConnectionStateString();
CString GetTransferRateString();
CString GetUpDatarateString(UINT uUpDatarate = -1);
CString GetDownDatarateString(UINT uDownDatarate = -1);
void StopTimer();
void DoVersioncheck(bool manual);
void ApplyHyperTextFont(LPLOGFONT pFont);
void ApplyLogFont(LPLOGFONT pFont);
void ProcessED2KLink(LPCTSTR pszData);
void SetStatusBarPartsSize();
int ShowPreferences(UINT uStartPageID = (UINT)-1);
bool IsPreferencesDlgOpen() const;
virtual void RestoreWindow();
virtual void HtmlHelp(DWORD_PTR dwData, UINT nCmd = 0x000F);
CTransferWnd* transferwnd;
CServerWnd* serverwnd;
CPreferencesDlg* preferenceswnd;
CSharedFilesWnd* sharedfileswnd;
CSearchDlg* searchwnd;
CChatWnd* chatwnd;
CMuleStatusBarCtrl* statusbar;
CStatisticsDlg* statisticswnd;
CIrcWnd* ircwnd;
CTaskbarNotifier* m_wndTaskbarNotifier;
CReBarCtrl m_ctlMainTopReBar;
CMuleToolbarCtrl* toolbar;
CKademliaWnd* kademliawnd;
CWnd* activewnd;
uint8 status;
protected:
HICON m_hIcon;
bool ready;
bool m_bStartMinimizedChecked;
bool m_bStartMinimized;
WINDOWPLACEMENT m_wpFirstRestore;
HICON connicons[9];
HICON transicons[4];
HICON imicons[3];
HICON m_icoSysTrayCurrent;
HICON usericon;
CMeterIcon m_TrayIcon;
HICON m_icoSysTrayConnected; // do not use those icons for anything else than the traybar!!!
HICON m_icoSysTrayDisconnected; // do not use those icons for anything else than the traybar!!!
HICON m_icoSysTrayLowID; // do not use those icons for anything else than the traybar!!!
int m_iMsgIcon;
UINT m_uLastSysTrayIconCookie;
uint32 m_uUpDatarate;
uint32 m_uDownDatarate;
CImageList imagelist;
CTitleMenu trayPopup;
CMuleSystrayDlg* m_pSystrayDlg;
CMainFrameDropTarget* m_pDropTarget;
CMenu m_SysMenuOptions;
CMenu m_menuUploadCtrl;
CMenu m_menuDownloadCtrl;
char m_acVCDNSBuffer[MAXGETHOSTSTRUCT];
// Splash screen
CSplashScreen *m_pSplashWnd;
DWORD m_dwSplashTime;
void ShowSplash();
void DestroySplash();
// Mini Mule
CMiniMule* m_pMiniMule;
void DestroyMiniMule();
//CMap<UINT, UINT, LPCTSTR, LPCTSTR> m_mapCmdToIcon;
//void CreateMenuCmdIconMap();
//LPCTSTR GetIconFromCmdId(UINT uId);
// Startup Timer
UINT_PTR m_hTimer;
static void CALLBACK StartupTimer(HWND hwnd, UINT uiMsg, UINT idEvent, DWORD dwTime);
void StartConnection();
void CloseConnection();
void PostStartupMinimized();
void UpdateTrayIcon(int iPercent);
void ShowConnectionStateIcon();
void ShowTransferStateIcon();
void ShowUserStateIcon();
void AddSpeedSelectorSys(CMenu* addToMenu);
int GetRecMaxUpload();
void LoadNotifier(CString configuration);
bool notifierenabled;
void ShowToolPopup(bool toolsonly = false);
void SetAllIcons();
bool CanClose();
virtual void DoDataExchange(CDataExchange* pDX);
virtual BOOL OnInitDialog();
virtual void OnCancel();
virtual void OnOK();
virtual void OnTrayRButtonUp(CPoint pt);
virtual void OnTrayLButtonUp(CPoint pt);
virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
virtual BOOL PreTranslateMessage(MSG* pMsg);
DECLARE_MESSAGE_MAP()
afx_msg void OnClose();
afx_msg void OnSize(UINT nType,int cx,int cy);
afx_msg void OnSysCommand(UINT nID, LPARAM lParam);
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
afx_msg void OnBnClickedButton2();
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnBnClickedHotmenu();
afx_msg LRESULT OnMenuChar(UINT nChar, UINT nFlags, CMenu* pMenu);
afx_msg void OnSysColorChange();
afx_msg BOOL OnQueryEndSession();
afx_msg void OnEndSession(BOOL bEnding);
afx_msg LRESULT OnKickIdle(UINT nWhy, long lIdleCount);
afx_msg void OnShowWindow( BOOL bShow, UINT nStatus );
afx_msg BOOL OnChevronPushed(UINT id, NMHDR *pnm, LRESULT *pResult);
// quick-speed changer -- based on xrmb
afx_msg void QuickSpeedUpload(UINT nID);
afx_msg void QuickSpeedDownload(UINT nID);
afx_msg void QuickSpeedOther(UINT nID);
// end of quick-speed changer
afx_msg LRESULT OnTaskbarNotifierClicked(WPARAM wParam,LPARAM lParam);
afx_msg LRESULT OnWMData(WPARAM wParam,LPARAM lParam);
afx_msg LRESULT OnFileHashed(WPARAM wParam,LPARAM lParam);
afx_msg LRESULT OnHashFailed(WPARAM wParam,LPARAM lParam);
afx_msg LRESULT OnFileAllocExc(WPARAM wParam,LPARAM lParam);
afx_msg LRESULT OnFileCompleted(WPARAM wParam,LPARAM lParam);
afx_msg LRESULT OnFileOpProgress(WPARAM wParam,LPARAM lParam);
//Framegrabbing
afx_msg LRESULT OnFrameGrabFinished(WPARAM wParam,LPARAM lParam);
afx_msg LRESULT OnAreYouEmule(WPARAM, LPARAM);
//Webserver [kuchin]
afx_msg LRESULT OnWebServerConnect(WPARAM wParam, LPARAM lParam);
afx_msg LRESULT OnWebServerDisonnect(WPARAM wParam, LPARAM lParam);
afx_msg LRESULT OnWebServerRemove(WPARAM wParam, LPARAM lParam);
afx_msg LRESULT OnWebSharedFilesReload(WPARAM wParam, LPARAM lParam);
// VersionCheck DNS
afx_msg LRESULT OnVersionCheckResponse(WPARAM wParam, LPARAM lParam);
// Peercache DNS
afx_msg LRESULT OnPeerCacheResponse(WPARAM wParam, LPARAM lParam);
// Mini Mule
afx_msg LRESULT OnCloseMiniMule(WPARAM wParam, LPARAM lParam);
};
enum EEMuleAppMsgs
{
//thread messages
TM_FINISHEDHASHING = WM_APP + 10,
TM_HASHFAILED,
TM_FRAMEGRABFINISHED,
TM_FILEALLOCEXC,
TM_FILECOMPLETED,
TM_FILEOPPROGRESS
};
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -