void main_frame::OnAuthSuccess( VARIANT *&url ) { USES_CONVERSION; LPCTSTR lpstrAddress = (LPCTSTR)url->bstrVal; CDuiString str(lpstrAddress); int pos = -1; pos = str.Find('='); CDuiString retnCode = str.Right(str.GetLength() - pos - 1); m_weiboManage.GetMethod()->oauth2Code(W2A(retnCode), REDIRECT_URL , NULL); CWebBrowserUI *pLoginWeb = static_cast<CWebBrowserUI*>(m_PaintManager.FindControl(_T("loginWnd"))); if (pLoginWeb) { pLoginWeb->SetVisible(false); } CLabelUI *pUnReadTimelineCount = static_cast<CLabelUI*>(m_PaintManager.FindControl(_T("unreadTimelineCount"))); if (pUnReadTimelineCount) { m_PaintManager.SetTimer(pUnReadTimelineCount,1,1000*10); } }
LUA_METHOD_IMPL(CWebBrowserUI, IsAutoNavigation) { try { CWebBrowserUI* self; self = static_cast<CWebBrowserUI*>(LuaStatic::CheckUserData(l, 1)); lua_pushboolean(l,self->IsAutoNavigation() ? 1 :0); return 1; } catch (...) { DuiException(_T("LuaCWebBrowserUI::IsAutoNavigation")); return 0; } }
IMPL_LUA_FUNC(LuaCWebBrowserUI, Refresh) { try { CWebBrowserUI* self; self = static_cast<CWebBrowserUI*>(LuaStatic::CheckUserData(l, 1)); self->Refresh(); return 0; } catch (...) { DuiException(_T("LuaCWebBrowserUI::Refresh")); return 0; } }
LUA_METHOD_IMPL(CWebBrowserUI, DoCreateControl) { try { CWebBrowserUI* self; self = static_cast<CWebBrowserUI*>(LuaStatic::CheckUserData(l, 1)); lua_pushboolean(l,self->DoCreateControl() ? 1 :0); return 1; } catch (...) { DuiException(_T("LuaCWebBrowserUI::DoCreateControl")); return 0; } }
LUA_METHOD_IMPL(CWebBrowserUI, NavigateHomePage) { try { CWebBrowserUI* self; self = static_cast<CWebBrowserUI*>(LuaStatic::CheckUserData(l, 1)); self->NavigateHomePage(); return 0; } catch (...) { DuiException(_T("LuaCWebBrowserUI::NavigateHomePage")); return 0; } }
LUA_METHOD_IMPL(CWebBrowserUI, GoBack) { try { CWebBrowserUI* self; self = static_cast<CWebBrowserUI*>(LuaStatic::CheckUserData(l, 1)); self->GoBack(); return 0; } catch (...) { DuiException(_T("LuaCWebBrowserUI::GoBack")); return 0; } }
LUA_METHOD_IMPL(CWebBrowserUI, Refresh2) { try { CWebBrowserUI* self; self = static_cast<CWebBrowserUI*>(LuaStatic::CheckUserData(l, 1)); int nLevel = lua_tointeger(l,2); self->Refresh2(nLevel); return 0; } catch (...) { DuiException(_T("LuaCWebBrowserUI::Refresh2")); return 0; } }
void main_frame::OnPrepare( TNotifyUI& msg ) { m_weiboManage.StartUp(); m_layoutManage.SetPaintManage(&m_PaintManager); //m_weiboManage.m_pLayoutManage = &m_layoutManage; m_weiboManage.UpdateUserProfile = std::tr1::bind(&CLayoutManage::UpdateUserProfile,&m_layoutManage,_1,_2,_3); m_weiboManage.UpdateUnread = std::tr1::bind(&CLayoutManage::UpdateUnread,&m_layoutManage,_1); m_weiboManage.UpdateTimelineList = std::tr1::bind(&CLayoutManage::UpdateTimelineList,&m_layoutManage,_1,_2,_3,_4,_5); CRichEditUI *pWeiboCotent = static_cast<CRichEditUI*>(m_PaintManager.FindControl(_T("weiboContent"))); if (pWeiboCotent) { pWeiboCotent->OnEvent += MakeDelegate(this,&main_frame::OnWeiboContentEvent); pWeiboCotent->OnNotify += MakeDelegate(this,&main_frame::OnWeiboContentNotify); pWeiboCotent->SetAutoURLDetect(); } CWebBrowserUI *pLoginWeb = static_cast<CWebBrowserUI*>(m_PaintManager.FindControl(_T("loginWnd"))); if (m_weiboManage.CheckExistUser()) { m_weiboManage.InitWeibo(); pLoginWeb->SetVisible(false); } else { CWebBrowserUI *pLoginWeb = static_cast<CWebBrowserUI*>(m_PaintManager.FindControl(_T("loginWnd"))); if (pLoginWeb) { m_pWebBrowserEventHander = new CMagiccWebBrowserEventHandler; m_pWebBrowserEventHander->SetMainFrame(this); pLoginWeb->SetWebBrowserEventHandler(m_pWebBrowserEventHander); pLoginWeb->NavigateUrl(_T("https://api.weibo.com/oauth2/authorize?client_id=397065771&response_type=code&redirect_uri=www.baidu.com")); } } CLabelUI *pUnreadTimeline = static_cast<CLabelUI*>(m_PaintManager.FindControl(_T("unreadTimelineCount"))); if (pUnreadTimeline) { pUnreadTimeline->OnEvent += MakeDelegate(this,&main_frame::OnRefreshUnReadTimeline); m_PaintManager.SetTimer(pUnreadTimeline,1,1000*10); } }
LUA_METHOD_IMPL(CWebBrowserUI, GetHomePage) { try { CWebBrowserUI* self; self = static_cast<CWebBrowserUI*>(LuaStatic::CheckUserData(l, 1)); CDuiString pstrText = self->GetHomePage(); lua_op_t<CDuiString>::push_stack(l, pstrText); return 1; } catch (...) { DuiException(_T("LuaCWebBrowserUI::GetHomePage")); return 0; } }
LUA_METHOD_IMPL(CWebBrowserUI, Navigate2) { try { CWebBrowserUI* self; self = static_cast<CWebBrowserUI*>(LuaStatic::CheckUserData(l, 1)); CDuiString pstrText; lua_op_t<CDuiString>::lua_to_value(l, 2, pstrText); self->Navigate2(pstrText); return 0; } catch (...) { DuiException(_T("LuaCWebBrowserUI::Navigate2")); return 0; } }
IMPL_LUA_FUNC(LuaCWebBrowserUI, SetHomePage) { try { CWebBrowserUI* self; self = static_cast<CWebBrowserUI*>(LuaStatic::CheckUserData(l, 1)); CDuiString pstrText; lua_op_t<CDuiString>::lua_to_value(l, 2, pstrText); self->SetHomePage(pstrText); return 0; } catch (...) { DuiException(_T("LuaCWebBrowserUI::SetHomePage")); return 0; } }
LUA_METHOD_IMPL(CWebBrowserUI, SetAutoNavigation) { try { CWebBrowserUI* self; self = static_cast<CWebBrowserUI*>(LuaStatic::CheckUserData(l, 1)); bool bAuto = true; if(!lua_isnone(l,2)) bAuto = lua_toboolean(l,2) != 0; self->SetAutoNavigation(bAuto); return 0; } catch (...) { DuiException(_T("LuaCWebBrowserUI::SetAutoNavigation")); return 0; } }
void CVideoFrame::OnPrepare(TNotifyUI& msg) { CVerticalLayoutUI* pVideoLayoutUI = static_cast<CVerticalLayoutUI*>(m_PaintManager.FindControl(_T("videoViewLayout"))); if (pVideoLayoutUI) { CDuiRect rcWindow; GetWindowRect(m_hWnd, &rcWindow); rcWindow.top += 80; LONG height = rcWindow.bottom - rcWindow.top; LONG width = rcWindow.right - rcWindow.left; int nControlWidth = pVideoLayoutUI->GetFixedWidth();//pActiveXUI->GetWidth(); int nControlHeight = pVideoLayoutUI->GetFixedHeight();//pActiveXUI->GetHeight(); RECT posRect; posRect = rcWindow; posRect.top = (height - nControlHeight)/2; posRect.left= (width - nControlWidth) /2; posRect.bottom = posRect.top + nControlHeight; posRect.right = posRect.left + nControlWidth; pVideoLayoutUI->SetVisible(true); pVideoLayoutUI->SetPos(posRect); } CWebBrowserUI* pActiveXUI = static_cast<CWebBrowserUI*>(m_PaintManager.FindControl(_T("htmlView"))); if( pActiveXUI ) { pActiveXUI->SetVisible(true); pActiveXUI->SetDelayCreate(true); CWebEventHandlerEx *pWebHandle = new CWebEventHandlerEx; pActiveXUI->SetWebBrowserEventHandler(pWebHandle); //这行代码,如果注释掉,就不会去掉边框,IE有bug,第二次加载网页才会让事件处理器有效 pActiveXUI->Navigate2(L"about:blank"); std::wstring strHtml = CPaintManagerUI::GetInstancePath() + _T("UIRes\\html\\video.html"); pActiveXUI->Navigate2(strHtml.c_str()); //pActiveXUI->Navigate2(L"http://www.baidu.com/"); } }
int CMainWnd::CreateNewTab(int nIndex, LPCTSTR pstrUrl) { TabInfo* pInfo = new TabInfo(); pInfo->nID = m_nTabID++; CBrowserTab* pTab = new CBrowserTab(); pTab->SetName(_T("browsertab")); m_pBrowserTabBar->AddAt(pTab, nIndex); pTab->SetAttribute(_T("style"), _T("tabbtn_style")); CWebBrowserUI* pWeb = new CWebBrowserUI(); m_pBrowserTabBody->AddAt(pWeb, nIndex); pWeb->SetHomePage(_T("about:blank")); pWeb->SetAutoNavigation(true); pWeb->SetDelayCreate(false); pWeb->SetWebBrowserEventHandler(this); if(pstrUrl == NULL) { lstrcpy(pInfo->szUrl, _T("about:blank")); lstrcpy(pInfo->szTitle, _T("空白页")); pTab->SetText(_T("空白页")); } else { lstrcpy(pInfo->szUrl, pstrUrl); lstrcpy(pInfo->szTitle, pstrUrl); pTab->SetText(pstrUrl); pWeb->Navigate2(pstrUrl); } pInfo->pTab = pTab; pInfo->pWebBrowser = pWeb; m_vTabs.push_back(pInfo); return nIndex; }
void CMainWnd::Refresh() { CWebBrowserUI* pWeb = GetCurWeb(); pWeb->Refresh(); }
void CMainWnd::Home() { CWebBrowserUI* pWeb = GetCurWeb(); pWeb->Navigate2(sHomePage); }
void CMainWnd::Forward() { CWebBrowserUI* pWeb = GetCurWeb(); pWeb->GoForward(); }
void CMainWnd::Back() { CWebBrowserUI* pWeb = GetCurWeb(); pWeb->GoBack(); }
void CMainWnd::AddressGo() { CDuiString sUrl = m_pAddressEdit->GetText(); CWebBrowserUI* pWeb = GetCurWeb(); pWeb->Navigate2(sUrl); }