📄 greenbrowserview.cpp
字号:
tcf->m_nActive = m_nInNewWindow;
tcf->m_bForceActive = m_nInNewWindow & INW_ACTIVE;
tcf->m_pView->m_bIsActive = (CAN_ACTIVE(tcf) ? TRUE : FALSE);
m_nInNewWindow = 0;
}
//this maybe a blank window.
if(((CChildFrame*)GetParentFrame())->m_pBlankChild != tcf)
{
((CChildFrame*)GetParentFrame())->m_pBlankChild = tcf;
QueryPerformanceCounter(&((CChildFrame*)GetParentFrame())->m_tBlankChild);
}
else
((CChildFrame*)GetParentFrame())->m_pBlankChild = NULL;
tcf->m_pView->m_dwProperty = m_dwProperty;
tcf->m_pView->m_bIsNewPopup = TRUE;
tcf->m_pView->m_bIsPopUp = FALSE;
tcf->m_pView->m_bToClose = FALSE;
tcf->m_pView->m_nFilterDup = 1;
//tcf->m_pView->m_bForceResize = TRUE;
tcf->m_pView->m_nProgress = 0;
//tcf->m_pView->g_bKillAutoWin = g_bKillAutoWin;
*ppDisp = tcf->m_pView->GetApplication();
if(*ppDisp != NULL)
*Cancel = FALSE;
}catch(...){}
//CFixedHtmlView::OnNewWindow2(ppDisp, Cancel);
}
void CGreenBrowserView::OnProgressChange(long nProgress, long nProgressMax)
{
// TODO: Add your specialized code here and/or call the base class
try{
int oldp = m_nProgress;
if(nProgressMax>0 && nProgress>=0 && nProgressMax/100>0)
{
m_nProgress = nProgress/(nProgressMax/100);
if(m_nProgress>100)
m_nProgress=100;
}
else
{
m_nProgress = -10;
}
if(m_bIsActive)
g_nPercent = m_nProgress;
if(m_bIsActive && (m_bUseAutoScroll || pmf->m_bAllScroll) )
{
//start to scroll
if(m_nScrollTimer==0 && (m_bUseAutoScroll || pmf->m_bAllScroll) && m_nSrSpeed!=0)
{
if(m_nProgress==100 || m_nProgress<0 || (!m_bScrollAfterDL && m_nProgress>=0))
{
if(pmf->m_bMouseCtrlScrSpeed)
m_nLastScrSpd = STOP_TIMER;
else
m_nLastScrSpd = (UINT)((g_fSeed*100)/(m_nSrSpeed*m_nSrSpeed));
m_nScrollTimer = SetTimer(2132, m_nLastScrSpd, NULL);
}
}
else if(m_nScrollTimer && m_nProgress<20 && m_nProgress>0)
{
//stop the timer;
if(m_nScrollTimer)
KillTimer(m_nScrollTimer);
m_nScrollTimer = 0;
}
}
//set icon
if(pmf!=NULL)
{
int nIcon = m_nProgress/34+1;
int oi = m_nOldIcon;
if(m_nProgress<0)
nIcon=-1;
if((m_nProgress>=0 && nIcon != oi) || m_nProgress<0)
{
int nTabID;
nTabID = pmf->FindTab((CChildFrame*)GetParentFrame());
if(m_nProgress>=0 && nIcon != oi)
pmf->SetTabIcon( nIcon, nTabID, this );
else if(m_nProgress<0)
{
if(((CChildFrame*)GetParentFrame())->m_bLock)
pmf->SetTabIcon( TI_LOCK, nTabID, this );
else if(((CChildFrame*)GetParentFrame())->m_bProtect)
pmf->SetTabIcon( TI_PROTECT, nTabID, this );
else
{
if(!m_bIsActive)
{
if (m_nOldIcon!=TI_0 && nProgress==0 && nProgressMax==0 && m_lpszUrl != "about:blank")//3.3.6
pmf->SetTabIcon( TI_100, nTabID, this );
}
else
{
if (m_nOldIcon!=TI_0)
pmf->SetTabIcon( TI_NO, nTabID, this );
}
}
}
//update tab bar
if(m_nProgress*oldp<=0 && oi*m_nOldIcon<=0 && m_nOldIcon != oi && pmf->m_nTabStyle==2)
pmf->PostMessage(WM_UPDATE_TAB);
//complete
if (nProgress==0 && nProgressMax==0)
{
CChildFrame* tcf = (CChildFrame*)pmf->MDIGetActive();
if (tcf && pmf->m_nState)
{
if (tcf->m_pView->m_lpszUrl == "about:blank" &&
tcf == (CChildFrame*)GetParentFrame() )
{
pmf->m_wndAddress->SetFocus();
}
else
{
CWnd* pWnd = GetFocus();
if ( pWnd == (CWnd*)(pmf->m_wndAddress->GetEditCtrl()) || pWnd == (CWnd*)(pmf->m_wndSearch->GetEditCtrl()) )
;//do nothing
else if (IsTopParentActive())
tcf->ViewSetFocus();
}
}
//run internal plugin,must place here, for that refresh not get ondocumentcomplete
if (m_nOldIcon!=TI_0)// && m_lpszUrl!="about:blank")
{
if (pmf->m_bUseFlyingFilter)
pmf->RunKillFlying((CChildFrame*)GetParentFrame());
if (pmf->m_bKillBlank && pmf->m_bUseUrlFilter)
pmf->RunKillBlank((CChildFrame*)GetParentFrame());
}
}
}
}
}catch(...){}
//CFixedHtmlView::OnProgressChange(nProgress, nProgressMax);
}
void CGreenBrowserView::OnEditCopy()
{
// TODO: Add your command handler code here
ExecWB(OLECMDID_COPY, OLECMDEXECOPT_DONTPROMPTUSER, NULL, NULL);
}
void CGreenBrowserView::OnEditCut()
{
// TODO: Add your command handler code here
ExecWB(OLECMDID_CUT, OLECMDEXECOPT_DONTPROMPTUSER, NULL, NULL);
}
void CGreenBrowserView::OnEditFind()
{
// TODO: Add your command handler code here
pmf->ExecCmdTarget(HTMLID_FIND, this);
}
void CGreenBrowserView::OnEditPaste()
{
// TODO: Add your command handler code here
ExecWB(OLECMDID_PASTE, OLECMDEXECOPT_DONTPROMPTUSER, NULL, NULL);
}
void CGreenBrowserView::OnEditSelectAll()
{
// TODO: Add your command handler code here
ExecWB(OLECMDID_SELECTALL, OLECMDEXECOPT_DONTPROMPTUSER, NULL, NULL);
}
void CGreenBrowserView::OnStatusTextChange(LPCTSTR lpszText)
{
// TODO: Add your specialized code here and/or call the base class
try{
if(m_bIsActive && pmf!=NULL)
{
if(g_bDisScrollText && lpszText!=NULL && strlen(lpszText)!=0)
{
char* pdes = strstr(lpszText, "about:");
if(pdes!=lpszText)
{
pdes = strstr(lpszText, "://");
if(pdes == NULL)
{
pdes = strstr(lpszText, "mailto:");
if(pdes == NULL)
{
pdes = strstr(lpszText, "javascript:");
}
}
}
int pos =0;
if(pdes != NULL)
{
pos = pdes - lpszText;
}
if(strncmp(lpszText,"Shortcut", 8)!=0 && strstr(lpszText, "的快捷方式")==NULL && strstr(lpszText, "地址已")==NULL && strcmp(lpszText, "Done")!=0&& (pdes==NULL || pos>10 )
&& strncmp(lpszText, "正在", 4)!=0 && strncmp(lpszText, "完成", 4)!=0 && strncmp(lpszText, "完毕", 4)!=0 && strstr(lpszText, "项剩余")==NULL
&& strncmp(lpszText, "Wait", 4)!=0 && strncmp(lpszText, "Start", 5)!=0 && strncmp(lpszText, "Open", 4)!=0 && strncmp(lpszText, "Connect", 7)!=0 && strncmp(lpszText,"Find",4)!=0 && strncmp(lpszText, "download", 8)!=0 && strncmp(lpszText, "Web", 3)!=0 && strstr(lpszText, "remain")==NULL)
return;
}
if( !( pmf->m_bStatusBlank && lpszText!=NULL && strlen(lpszText)==0))
pmf->SetMessageText(lpszText);
if(strlen(lpszText)==0)
pmf->m_bStatusBlank = TRUE;
else
pmf->m_bStatusBlank = FALSE;
}
}catch(...){}
}
BOOL CGreenBrowserView::OnAmbientProperty(COleControlSite* pSite, DISPID dispid, VARIANT* pvar)
{
// TODO: Add your specialized code here and/or call the base class
if (dispid == DISPID_AMBIENT_DLCONTROL)
{
pvar->vt = VT_I4;
pvar->lVal = m_dwProperty;
if (pmf->m_bDisDownActivex)
pvar->lVal |= DLCTL_NO_DLACTIVEXCTLS;
return TRUE;
}
return CFixedHtmlView::OnAmbientProperty(pSite, dispid, pvar);
}
void CGreenBrowserView::OnOptionsLoadimage()
{
// TODO: Add your command handler code here
m_dwProperty ^= DLCTL_DLIMAGES;
ChangeProperty();
if (!PRESS_CTRL)
PowerRefresh();
}
void CGreenBrowserView::OnUpdateOptions(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
try{
switch (pCmdUI->m_nID)
{
case ID_OPTIONS_LOADIMAGE:
pmf->ToolBarSetCheck(pCmdUI, (m_dwProperty&DLCTL_DLIMAGES)!=0);
break;
case ID_OPTIONS_LOADVIDEOS:
if(m_dwProperty&DLCTL_VIDEOS)
pCmdUI->SetCheck(1);
else
pCmdUI->SetCheck(0);
break;
case ID_OPTIONS_LOADSOUNDS:
if(m_dwProperty&DLCTL_BGSOUNDS)
pCmdUI->SetCheck(1);
else
pCmdUI->SetCheck(0);
break;
case ID_OPTIONS_ALLOWSCRIPTS:
if(m_dwProperty&DLCTL_NO_SCRIPTS)
pCmdUI->SetCheck(0);
else
pCmdUI->SetCheck(1);
break;
case ID_OPTIONS_ALLOWJAVAAPPLET:
if(m_dwProperty&DLCTL_NO_JAVA)
pCmdUI->SetCheck(0);
else
pCmdUI->SetCheck(1);
break;
case ID_OPTIONS_ALLOWACTIVEX:
if(m_dwProperty&DLCTL_NO_RUNACTIVEXCTLS)
pCmdUI->SetCheck(0);
else
pCmdUI->SetCheck(1);
break;
}
}catch(...){}
}
void CGreenBrowserView::OnOptionsAllowscripts()
{
// TODO: Add your command handler code here
m_dwProperty ^= DLCTL_NO_SCRIPTS;
ChangeProperty();
if (!PRESS_CTRL)
PowerRefresh();
}
void CGreenBrowserView::OnOptionsLoadsounds()
{
// TODO: Add your command handler code here
m_dwProperty ^= DLCTL_BGSOUNDS;
ChangeProperty();
if (!PRESS_CTRL)
PowerRefresh();
}
void CGreenBrowserView::OnOptionsLoadvideos()
{
// TODO: Add your command handler code here
m_dwProperty ^= DLCTL_VIDEOS;
ChangeProperty();
if (!PRESS_CTRL)
PowerRefresh();
}
void CGreenBrowserView::OnOptionsUseWebp()
{
// TODO: Add your command handler code here
if(m_bEnWebProxy)
m_bEnWebProxy = FALSE;
else
{
m_bEnWebProxy = TRUE;
//auto refresh
if (m_strWebProxy.IsEmpty())
{
if (!pmf->m_strDefaultWebProxy.IsEmpty())
m_strWebProxy = pmf->m_strDefaultWebProxy;
else
{
m_bEnWebProxy = FALSE;
MSGBOX(IDS_NO_WEB_PROXY);
return;
}
}
if(!m_lpszUrl.IsEmpty() && m_lpszUrl!="about:blank")
{
ToNavigate(m_lpszUrl, 0, NULL, NULL, NULL, 0, TRUE);
}
}
}
void CGreenBrowserView::OnUpdateOptionsUseWebp(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
try
{
pmf->ToolBarSetCheck(pCmdUI, m_bEnWebProxy);
}catch(...){}
}
void CGreenBrowserView::OnOptionsAllowactivex()
{
// TODO: Add your command handler code here
m_dwProperty ^= DLCTL_NO_RUNACTIVEXCTLS;
ChangeProperty();
if (!PRESS_CTRL)
PowerRefresh();
}
void CGreenBrowserView::OnOptionsAllowjavaapplet()
{
// TODO: Add your command handler code here
m_dwProperty ^= DLCTL_NO_JAVA;
ChangeProperty();
if (!PRESS_CTRL)
PowerRefresh();
}
void CGreenBrowserView::OnCommandStateChange(long nCommand, BOOL bEnable)
{
// TODO: Add your specialized code here and/or call the base class
if(nCommand == 2)
m_bBack = bEnable;
else if(nCommand == 1)
m_bForward = bEnable;
// CFixedHtmlView::OnCommandStateChange(nCommand, bEnable);
}
void CGreenBrowserView::OnUpdateGoBack(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
try{
pCmdUI->Enable(m_bBack);
}catch(...){}
}
void CGreenBrowserView::OnUpdateGoForward(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
try{
pCmdUI->Enable(m_bForward);
}catch(...){}
}
void ResizeSibling(CGreenBrowserView* pvw)
{
try{
g_bMax = 0;
CChildFrame* tcf;
CRect oldrect,rect;
if(pmf!=NULL)
{
int n = pmf->m_wndTab.GetItemCount();
TCITEM TabCtrlItem;
TabCtrlItem.mask = TCIF_PARAM;
for(int i=n-1;i>=0;i--)
{
pmf->m_wndTab.GetItem(i, &TabCtrlItem);
tcf = ((CChildFrame*)TabCtrlItem.lParam);
if(tcf != NULL && tcf->m_pView!=NULL)
{
if(tcf->m_pView != pvw)
{
tcf->GetClientRect(&rect);
tcf->m_pView->m_wndBrowser.GetWindowRect(&oldrect);
tcf->m_pView->ScreenToClient(&oldrect);
if(oldrect.left != -BORDER && oldrect.top != -BORDER)
{
try{
tcf->m_pView->m_wndBrowser.MoveWindow(-2,-2, rect.Width()+BORDER+BORDER, rect.Height()+BORDER+BORDER);
}catch(...){}
}
else
{
try{
if(oldrect.Width()!=rect.Width()+BORDER+BORDER && rect.Width()!=0)
tcf->m_pView->SetWidth (rect.Width()+BORDER+BORDER);
if(oldrect.Height()!=rect.Height()+BORDER+BORDER && rect.Height()!=0)
tcf->m_pView->SetHeight (rect.Height()+BORDER+BORDER);
}catch(...){}
}
}
}
}
}
}catch(...){}
}
void CGreenBrowserView::OnSize(UINT nType, int cx, int cy)
{
try
{
if(g_bMax==1)
{
if(GetParentFrame()->IsZoomed())
{
CRect oldrect;
m_wndBrowser.GetWindowRect(&oldrect);
ScreenToClient(&oldrect);
if(oldrect.left != -BORDER && oldrect.top != -BORDER)
{
try{
m_wndBrowser.MoveWindow(-2,-2, cx+BORDER+BORDER, cy+BORDER+BORDER);
}catch(...){}
}
else
{
try{
if(oldrect.Width()!=cx+BORDER+BORDER )
SetWidth (cx+BORDER+BORDER);
if(oldrect.Height()!=cy+BORDER+BORDER)
SetHeight (cy+BORDER+BORDER);
}catch(...){}
}
}
}
else
{
CRect oldrect;
m_wndBrowser.GetWindowRect(&oldrect);
ScreenToClient(&oldrect);
if(oldrect.left != -BORDER && oldrect.top != -BORDER)
{
try{
m_wndBrowser.MoveWindow(-2,-2, cx+BORDER+BORDER, cy+BORDER+BORDER);
}catch(...){}
}
else
{
try{
if(oldrect.Width()!=cx+BORDER+BORDER && cx!=0)
SetWidth (cx+BORDER+BORDER);
if(oldrect.Height()!=cy+BORDER+BORDER && cy!=0)
SetHeight (cy+BORDER+BORDER);
}catch(...){}
}
if(GetParentFrame()->GetStyle() & WS_MAXIMIZE)
g_bMax = 1;
}
//size other views
if(g_bMax == 3)
ResizeSibling(this);
}catch(...){}
}
void CGreenBrowserView::OnUpdateViewFonts(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
if(pCmdUI->m_nID==ID_VIEW_FONTS_LARGEST+m_nFontSize)
pCmdUI->SetCheck(1);
else
pCmdUI->SetCheck(0);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -