📄 mainfrm.cpp
字号:
{
TBSTYLE_BUTTON | TBSTYLE_DROPDOWN,
TBBS_SEPARATOR,
TBSTYLE_BUTTON | TBSTYLE_DROPDOWN,
TBSTYLE_BUTTON | TBSTYLE_DROPDOWN,
TBSTYLE_BUTTON,
TBSTYLE_BUTTON,
TBSTYLE_BUTTON,
TBBS_SEPARATOR,
TBSTYLE_BUTTON,
TBSTYLE_BUTTON,
TBSTYLE_BUTTON,
TBSTYLE_BUTTON,
TBSTYLE_BUTTON,
TBBS_SEPARATOR,
TBSTYLE_BUTTON | TBSTYLE_DROPDOWN,
TBSTYLE_BUTTON,
TBSTYLE_BUTTON | TBSTYLE_DROPDOWN,
TBSTYLE_BUTTON | TBSTYLE_DROPDOWN,
TBSTYLE_BUTTON | TBSTYLE_DROPDOWN,
TBSTYLE_BUTTON | TBSTYLE_DROPDOWN,
TBSTYLE_BUTTON,
TBSTYLE_BUTTON | TBSTYLE_DROPDOWN,
TBSTYLE_BUTTON,
TBSTYLE_BUTTON | TBSTYLE_DROPDOWN,
TBSTYLE_BUTTON | TBSTYLE_DROPDOWN,
TBSTYLE_BUTTON,
TBBS_SEPARATOR,
TBSTYLE_BUTTON,
TBSTYLE_BUTTON | TBSTYLE_DROPDOWN,
TBSTYLE_BUTTON,
TBSTYLE_BUTTON | TBSTYLE_DROPDOWN,
TBSTYLE_BUTTON | TBSTYLE_DROPDOWN,
TBSTYLE_BUTTON | TBSTYLE_DROPDOWN,
TBSTYLE_BUTTON,
TBSTYLE_BUTTON,
TBSTYLE_BUTTON,
TBSTYLE_BUTTON,
TBSTYLE_BUTTON | TBSTYLE_DROPDOWN,
TBSTYLE_BUTTON | TBSTYLE_DROPDOWN,
TBSTYLE_BUTTON,
TBSTYLE_BUTTON,
TBSTYLE_BUTTON | TBSTYLE_DROPDOWN,
TBSTYLE_BUTTON | TBSTYLE_DROPDOWN,
TBSTYLE_BUTTON,
};
UINT g_nToolBarImg[] =
{
9,0,0,1,2,3,4,0,5,6,12,23,24,0,25,7,13,8,14,10,11,15,16,17,18,19,0,21,20,22,26,28,27,29,30,31,32,33,34,35,36,37,38,39,
};
UINT g_ToolBarLabel[]=
{
0,0,1,1,0,0,0,0,0,1,1,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,
};
/////////////////////////////////////////////////////////////////////////////
// CMainFrame construction/destruction
CMainFrame::CMainFrame()
{
// TODO: add member initialization code here
m_pwndExpObj = NULL;
m_bFullScreenMode = FALSE;//full screen mode on
m_bFullScreened = FALSE;//when mouse move, some bars need auto show
m_bAutoHideMode = FALSE;
m_bAutoHided = FALSE;
m_bFavDirty=FALSE;
m_bMultiLineTab = FALSE;
m_bmBGPic = NULL;
m_bNoModemSpeed = TRUE;
m_bRemPsw = TRUE;
m_nProtectNum = 0;
m_nTimerID = 0;
m_nUpdateTimer = 0;
m_bRemPsw = TRUE;
m_nUndoStart = 0;
m_nUndoEnd = 0;
m_hResInst = NULL;
m_nNeedIB = 0;
m_bIsSecure = m_bLastIsSecure = FALSE;
m_bAllScroll = FALSE;
m_bSaveConfig = FALSE;
m_nWin=0;
m_nSwitch = 0;
CString str="yes";
g_bstrYes = str.AllocSysString();
m_nScrollWidth = GetSystemMetrics(SM_CXVSCROLL);
m_nScrollArrowH = GetSystemMetrics(SM_CYVSCROLL);
m_pCollectDlg = NULL;
m_pLinkListDlg = NULL;
m_pMonitor = NULL;
m_bIsOffline = FALSE;//get from register
m_nPopFiltered = 0;
m_bAutoPopWin = FALSE;
LOADSTR(g_strIeProxy ,IDS_IE_PROXY);
m_nPreLines = 0;//must do this, or tab will OnUpdateTab when start
m_bNotShowRightMenu = 0;
//
m_cTrafficClass[0].SetTrafficType(MFNetTraffic::IncomingTraffic);
m_cTrafficClass[1].SetTrafficType(MFNetTraffic::OutGoingTraffic);
m_cTrafficClass[2].SetTrafficType(MFNetTraffic::AllTraffic);
//
m_nSearchBarAction = 0;
m_bShowScriptResult = true;
//for ndebug add
m_bAutoRunExternal = 0;
m_bActiveNewWindow = 0;
m_bRMouseDrag = 0;
m_bRMouseGesture = 0;
//must init to 0, or it will be random
m_bIsAutoSave = 0;
m_pCurView = NULL;
m_strLastNavUrl.Empty();
m_nDialogFilterCount = 0;
}
CMainFrame::~CMainFrame()
{
try{
m_astrFavoriteFolders.RemoveAll();
m_ExternalUtilList.RemoveAll();
m_astrSkins.RemoveAll();
m_aProxyCategories.RemoveAll();
if(m_pwndExpObj)
delete m_pwndExpObj;
if(m_bmBGPic)
DeleteObject(m_bmBGPic);
if(m_nTimerID)
KillTimer(m_nTimerID);
if(m_nAnimateIconTimer)
KillTimer(m_nAnimateIconTimer);
SysFreeString(g_bstrYes);
pmf = NULL;
DestroyMenuData(m_TabMenu.m_hMenu,0);
DestroyMenuData(m_TrayMenu.m_hMenu,0);
FREENULL(g_strLngBuf);
}catch(...){}
}
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
pmf = this;
AfxOleInit();
//
CImageList img;
CString str;
CGreenBrowserApp* app = (CGreenBrowserApp*)AfxGetApp();
::SetProp(m_hWnd, app->m_pszAppName, (HANDLE)1);
if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
//create rebar
if (!m_wndReBar.Create(this,
RBS_BANDBORDERS | RBS_DBLCLKTOGGLE | RBS_REGISTERDROP | RBS_VARHEIGHT,
CCS_NODIVIDER | CCS_NOPARENTALIGN |
WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS | WS_VISIBLE | CBRS_TOP)
)
{
return -1; // fail to create
}
m_bLockToolbar = app->GetProfileInt("Settings", "LockToolbar", FALSE);
m_strSkinName = app->GetProfileString("Settings", "SkinName", "default");
m_dwFsShow = app->GetProfileInt("Settings", "FullScreenShow", 588);
m_dwAhShow = app->GetProfileInt("Settings", "AutoHideShow", 588);
CString filename = app->m_strSkinPath + m_strSkinName + "\\";
if ( !_FileIsExist(filename) )
m_strSkinName = "default";
//create main menu
CMenuBar& mb = m_wndMenuBar;
VERIFY(mb.CreateEx(this));
mb.ModifyStyle(0, TBSTYLE_TRANSPARENT|TBSTYLE_FLAT| TBSTYLE_LIST);
mb.LoadMenu(IDR_MAINFRAME);
InitMenuBarImage();
//menu
CMenu* pMenu = mb.GetMenu();
_LoadMenuStringOwnerDraw(pMenu, "MenuMain",&(mb.m_ImgMenu));
pMenu->Detach();
//tab menu
m_bTopTab = app->GetProfileInt("TabStyle", "TabPos", 0);
ReloadTabMenu();
//
m_TrayMenu.LoadMenu(IDR_TRAYMENU);
_LoadMenuStringOwnerDraw(m_TrayMenu.GetSubMenu(0),"MenuTray", &(mb.m_ImgMenu));
//sysmenu
if (!m_SysMenuBar.CreateEx(this))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
//load win buttons
char key[5]="W";
for(int i=0; i<6; i++)
{
itoa(i, key+1, 10);
m_abWinButtons[i] = app->GetProfileInt("WinButtons", key, 1);
}
InitSystemBarImage();
BuildWinButtons();
// link and fav menu
g_bCompactFavBar = app->GetProfileInt("Settings", "CompactFavBar", FALSE);
m_nMenuWidth = app->GetProfileInt("Settings", "MenuSize", 50);
m_bDisplayOpenAll = app->GetProfileInt("Settings", "DisplayOpenAll", TRUE);
m_bDisplayAddFav = app->GetProfileInt("Settings", "DisplayAddFav", TRUE);
m_bShowHiddenFav = app->GetProfileInt("Settings", "ShowHiddenFav", FALSE);
g_bSingleMenu = app->GetProfileInt("Settings", "SingleMenu", FALSE);
m_bUseDefaultFavPath = app->GetProfileInt("Settings", "UseDefaultFavPath", TRUE);
m_strFavPath = app->GetProfileString("Settings", "FavPath", "");
m_bUseDefaultLinkPath = app->GetProfileInt("Settings", "UseDefaultLinkPath", TRUE);
m_strLinkPath = app->GetProfileString("Settings", "LinkPath", "");
m_bFavShowUrl = app->GetProfileInt("Settings", "FavShowUrl", TRUE);
//link bar
if (!m_LinkBar.CreateEx(this))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
InitLinkBarImage();
m_LinkBar.ModifyStyle(0, TBSTYLE_FLAT | TBSTYLE_TRANSPARENT | TBSTYLE_LIST|TBSTYLE_TOOLTIPS );
m_LinkBar.SetBarStyle(m_LinkBar.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
//Favorite bar
if (!m_FavBar.CreateEx(this))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
InitFavBarImage();
m_FavBar.ModifyStyle(0, TBSTYLE_FLAT | TBSTYLE_TRANSPARENT | TBSTYLE_LIST|TBSTYLE_TOOLTIPS );
m_FavBar.SetBarStyle(m_FavBar.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
//
InitFavorites();
//Tool Bar
if (!m_wndToolBar.CreateEx(this))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
m_wndToolBar.ModifyStyle(0, TBSTYLE_FLAT | TBSTYLE_TRANSPARENT |TBSTYLE_TOOLTIPS );
//m_wndToolBar.ModifyStyleEx(0, WS_EX_TOOLWINDOW);
m_wndToolBar.GetToolBarCtrl().SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS);
// Create and set the hot toolbar image list.
m_bSmallToolBar = app->GetProfileInt("Settings", "SmallToolbar",0);
m_nTextLabel = app->GetProfileInt("Settings", "TextLabel", 0);
m_bColorIcon = app->GetProfileInt("Settings", "ColorIcon", TRUE);
InitToolBar();
//AddressBar
m_bShowToolbarLabel = app->GetProfileInt("Settings", "ShowToolbarLabel", TRUE);
m_bShowAddressBarButton = app->GetProfileInt("Settings", "ShowAddressBarButton", TRUE);
m_bShowSearchBarButton = app->GetProfileInt("Settings", "ShowSearchBarButton", TRUE);
m_bComboShowIcon = app->GetProfileInt("Settings", "ComboShowIcon", TRUE);
if (!m_AddressBar.CreateEx(this))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
InitGoImage();
m_AddressBar.ModifyStyle(0, TBSTYLE_FLAT | TBSTYLE_TRANSPARENT |TBSTYLE_TOOLTIPS );
m_AddressBar.GetToolBarCtrl().SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS);
m_AddressBar.SetButtons(NULL, 2);
m_AddressBar.SetButtonInfo(0, 0, TBBS_SEPARATOR, 0);
m_AddressBar.SetButtonInfo(1, IDOK, TBSTYLE_BUTTON| TBSTYLE_DROPDOWN,0 );//| TBSTYLE_DROPDOWN, 0);
CString strTip;
LOADSTR(strTip ,IDS_GO);
m_AddressBar.GetToolBarCtrl().GetToolTips()->UpdateTipText(strTip, &m_AddressBar, IDOK);
m_AddressBar.Init();
//get the reference to the comboboxex.
m_wndAddress = m_AddressBar.GetAddressBox();
//external tool bar
if (!m_ExternalTool.CreateEx(this))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
m_ExternalTool.ModifyStyle(0, TBSTYLE_FLAT | TBSTYLE_TRANSPARENT |TBSTYLE_TOOLTIPS );
m_ExternalTool.SetBarStyle(m_ExternalTool.GetBarStyle() |
CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC);
//
SHFILEINFO shFinfo;
HIMAGELIST hImgList = NULL;
hImgList = (HIMAGELIST)SHGetFileInfo( "C:\\",
0,
&shFinfo,
sizeof( shFinfo ),
SHGFI_SYSICONINDEX |
SHGFI_SMALLICON );
if ( !hImgList )
return FALSE;
m_ExternalTool.SendMessage(TB_SETIMAGELIST, 0, (LPARAM)hImgList);
//better place here, not flash when delay load config
CString wp;
CExternalUtilItem* eui;
wp = app->GetProfileString("ExUtils", "name1", NULL);
if(wp == "" || wp.IsEmpty())
{
}
else
{
//new format
char Keyname1[10] = "name", Keyname2[10] = "cmds", Keyname3[10] = "sta", Keyname4[10] = "cls", Keyname5[10] = "run";
char Keyname11[10] = "para", Keyname12[10] = "path";
CString cmd,para,path;
BOOL bstart, bClose,bRun;
int i=1;
cmd = app->GetProfileString("ExUtils", "cmds1", NULL);
para = app->GetProfileString("ExUtils", "para1", NULL);
path = app->GetProfileString("ExUtils", "path1", NULL);
bstart = app->GetProfileInt("ExUtils", "sta1", FALSE);
bClose = app->GetProfileInt("ExUtils", "cls1", bstart);
bRun = app->GetProfileInt("ExUtils", "run1", FALSE);
while(wp != "" && !wp.IsEmpty())
{
eui = new CExternalUtilItem;
eui->m_strUtilName = wp;
eui->m_strUtilCmd = "\""+cmd+"\"";
eui->m_strUtilPara = para;
eui->m_strUtilPath = path;
eui->m_bUtilStart = bstart;
eui->m_bUtilClose = bClose;
eui->m_bUtilRun = bRun;
m_ExternalUtilList.m_UtilList.Add(eui);
i++;
itoa(i, Keyname1+4, 10);
itoa(i, Keyname2+4, 10);
itoa(i, Keyname11+4, 10);
itoa(i, Keyname12+4, 10);
//
itoa(i, Keyname3+3, 10);
itoa(i, Keyname4+3, 10);
itoa(i, Keyname5+3, 10);
wp = app->GetProfileString("ExUtils", Keyname1, NULL);
cmd = app->GetProfileString("ExUtils", Keyname2, NULL);
para = app->GetProfileString("ExUtils", Keyname11, NULL);
path = app->GetProfileString("ExUtils", Keyname12, NULL);
bstart = app->GetProfileInt("ExUtils", Keyname3, FALSE);
bClose = app->GetProfileInt("ExUtils", Keyname4, bstart);
bRun = app->GetProfileInt("ExUtils", Keyname5, FALSE);
}
}
BuildUtilMenu();
//search bar
if (!m_SearchBar.CreateEx(this))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
m_SearchList.LoadSearchList();//must before init
m_SearchBar.Init();
m_wndSearch = &m_SearchBar.m_wndComboBox;
LoadTypedSearch();
m_SearchBar.ModifyStyle(0, TBSTYLE_FLAT | TBSTYLE_TRANSPARENT |TBSTYLE_TOOLTIPS );
m_SearchBar.GetToolBarCtrl().SetExtendedStyle(TBSTYLE_EX_DRAWDDARROWS);
m_SearchBar.InitButton();
//
//status bar
if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(g_nIndicators,
sizeof(g_nIndicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");
return -1; // fail to create
}
m_wndStatusBar.SetProgressBarWidth(80);
m_wndStatusBar.SetRange(0,100);
//
m_wndStatusBar.SetPaneStyle(0, SBPS_STRETCH|SBPS_NOBORDERS);
for (i=1 ; i<=3; i++)
m_wndStatusBar.SetPaneStyle(i, SBPS_NORMAL|SBPS_NOBORDERS);
UINT sbstyle, sbID;
m_wndStatusBar.GetPaneInfo(3, sbID, sbstyle, m_nBaseWidth);
m_wndStatusBar.SetPaneText(3, "");
m_wndStatusBar.SetPaneInfo(2, ID_INDICATOR_TOOLS , SBPS_NORMAL|SBPS_NOBORDERS, m_wndStatusBar.m_nToolbarWidth-4);
m_hNormalIcon = (HICON)LoadImage(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_NORMAL),IMAGE_ICON,16,16,LR_DEFAULTCOLOR);
m_hSecuIcon = (HICON)LoadImage(AfxGetInstanceHandle(),MAKEINTRESOURCE(IDI_SECU),IMAGE_ICON,16,16,LR_DEFAULTCOLOR);
m_wndStatusBar.GetStatusBarCtrl().SetIcon(0, m_hNormalIcon);
if(app->GetProfileInt("Bands", "Status", 1)==0)
m_wndStatusBar.ShowWindow(SW_HIDE);
//create bottom bar
if (!m_wndReBar2.Create(this,RBS_BANDBORDERS,WS_CHILD|WS_VISIBLE|WS_CLIPSIBLINGS| WS_CLIPCHILDREN | CBRS_BOTTOM))
{
TRACE0("Failed to create rebar\n");
return -1; // fail to create
}
m_bMultiLineTab = app->GetProfileInt("Settings", "MultiLineTab", 1);
m_bAutoTab = app->GetProfileInt("Settings", "AutoTab", 1);
m_nTabStyle = app->GetProfileInt("TabStyle", "TabStyle", 1);
CRect rect(0,0,300, TAB_HEIGHT);
if (m_nTabStyle == 0)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -