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

📄 browserpage.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 BrowserPageH
#define BrowserPageH
//---------------------------------------------------------------------------
#include <Classes.hpp>
#include <Controls.hpp>
#include <StdCtrls.hpp>
#include <Forms.hpp>
#include <Buttons.hpp>
#include <ComCtrls.hpp>
#include <ExtCtrls.hpp>
#include <ToolWin.hpp>
#include <OleCtrls.hpp>
#include <Menus.hpp>
#include "SHDocVw_OCX.h"
#include "BrowserUtils.h"
#include "BrowserWrapper.h"
#include "Bookmark.h"
#include <ImgList.hpp>
#include <Graphics.hpp>
//---------------------------------------------------------------------------
class TBrowserForm : public TForm
{
__published:	// IDE-managed Components
    TPanel *CtrlPanel;
    TSpeedButton *StopBtn;
    TSpeedButton *RefreshBtn;
    TSpeedButton *HomeBtn;
    TSpeedButton *ForwardBtn;
    TSpeedButton *BackBtn;
    TSpeedButton *BookmarkBtn;
    TEdit *UrlEdit;
    TBevel *BottomLineBevel;
    TSpeedButton *GoBtn;
    TTabControl *TabControl;
    TPanel *BrowserPanel;
    TPanel *TabPanel;
    TPopupMenu *TabPopupMenu;
    TMenuItem *CloseTabMnu;
    TMenuItem *NewTabMnu;
    TMenuItem *CloseAllOtherTabsMnu;
    TMenuItem *N1;
    TImageList *BrowserImageList;
    TAnimate *StatusAnimate;
    TImage *PopupImage;
    TSpeedButton *NewTabBtn;
    void __fastcall BackBtnClick(TObject *Sender);
    void __fastcall ForwardBtnClick(TObject *Sender);
    void __fastcall RefreshBtnClick(TObject *Sender);
    void __fastcall StopBtnClick(TObject *Sender);
    void __fastcall HomeBtnClick(TObject *Sender);
    void __fastcall BookmarkBtnClick(TObject *Sender);
    void __fastcall UrlEditKeyPress(TObject *Sender, char &Key);
    void __fastcall GoBtnClick(TObject *Sender);
    void __fastcall TabControlChange(TObject *Sender);
    void __fastcall NewTabMnuClick(TObject *Sender);
    void __fastcall CloseTabMnuClick(TObject *Sender);
    void __fastcall CloseAllOtherTabsMnuClick(TObject *Sender);
    void __fastcall TabControlGetImageIndex(TObject *Sender, int TabIndex,
          int &ImageIndex);
    void __fastcall TabControlMouseUp(TObject *Sender, TMouseButton Button,
          TShiftState Shift, int X, int Y);
    void __fastcall NewTabBtnClick(TObject *Sender);
    void __fastcall UrlEditKeyDown(TObject *Sender, WORD &Key,
          TShiftState Shift);

protected:
    void __fastcall LaunchBookmarkMnuClick(TObject *Sender);
    void __fastcall RemoveBookmarkMnuClick(TObject *Sender);
    void __fastcall AddBookmarkMnuClick(TObject *Sender);

    void __fastcall BrowserTitleChange(TObject *Sender, BSTR Title);
    void __fastcall BrowserCommandStateChange(TObject *Sender,
          long Command, VARIANT_BOOL Enable);
    void __fastcall TBrowserForm::BrowserProgressChange(TObject* Sender,
          long Progress, long ProgressMax);
    void __fastcall BrowserNewWindow2(TObject *Sender,
          LPDISPATCH *ppDisp, VARIANT_BOOL *Cancel);
    void __fastcall BrowserWindowClosing(TObject * Sender,
          VARIANT_BOOL IsChildWindow, VARIANT_BOOL* Cancel);
    void __fastcall BrowserBeforeNavigate2(TObject *Sender,
          LPDISPATCH pDisp, VARIANT *URL, VARIANT *Flags,
          VARIANT *TargetFrameName, VARIANT *PostData, VARIANT *Headers,
          VARIANT_BOOL *Cancel);
    void __fastcall TBrowserForm::BrowserDocumentComplete(TObject *Sender,
          IDispatch *pDisp, VARIANT *URL);
    void __fastcall BrowserStatusTextChange(TObject *Sender, BSTR StatusText);
    void __fastcall BrowserNavigateError(TObject *Sender,
          LPDISPATCH pDisp, VARIANT *URL, VARIANT *Frame,
          VARIANT *StatusCode, VARIANT_BOOL *Cancel);

private:	// User declarations
    TPopupMenu* BookmarkPopup;
    TBookmarkManager* Bookmarks;
    bool BlockNewWindows;
    bool HandleMagnets;

    // tab management
    TBrowserWrapper* CreateTab(bool SwitchToTab = true);
    void CloseTab(int Index);
    void CloseAllOtherTabs(int Index);
    void SetTabCaption(int Index, AnsiString Caption);
    TBrowserWrapper* GetActiveBrowserWrapper();
    TCppWebBrowser* GetActiveBrowser();

public:		// User declarations
    __fastcall TBrowserForm(TComponent* Owner);
    __fastcall ~TBrowserForm();

    bool __fastcall EngineCallback(TCallbackInfo* CbInfo);
    void __fastcall PageActivated();
    void __fastcall ConfigChanged();

    void NavigateTo(const string Url, bool NewTab = true,
                    bool SwitchToTab = true);
    void NavigateToResource(const string Url, bool NewTab = true,
                            bool SwitchToTab = true);
    void NavigateToHome();
    void CloseAllTabs();
};
//---------------------------------------------------------------------------
extern PACKAGE TBrowserForm *BrowserForm;
//---------------------------------------------------------------------------
#endif

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -