MainFrm.cpp
上传用户:szled88
上传日期:2015-04-09
资源大小:43957k
文件大小:40k
- // MainFrm.cpp : implementation of the CMainFrame class
- //
- #include "stdafx.h"
- #include "Styler.h"
- #include "ComboBoxSearch.h"
- #include "InetTools.h"
- #include "MainFrm.h"
- #include "StylerView.h"
- #include "ChildFrm.h"
- #include "FilterDialog.h"
- #include "PopupFilter.h"
- #include "MouseManager.h"
- #include "OptionsDialog.h"
- #include "CWebBrowser2.h"
-
- #include "ControlFavorites.h"
-
- #ifdef _DEBUG
- #define new DEBUG_NEW
- #endif
- CStringArray CMainFrame::m_arrEncodingPage;
- BOOL CMainFrame::m_bConfirmCloseAll = FALSE;
- BOOL CMainFrame::m_bConfirmExit = FALSE;
- BOOL CMainFrame::m_bOneInstance = FALSE;
- int CMainFrame::m_nStartup = STARTUP_HOME;
- BOOL CMainFrame::m_bRestoreWindowPos = FALSE;
- XTPPaintTheme CMainFrame::m_themeCurrent = xtpThemeRibbon;
- #define ID_TOGGLE_DOCK 0xDDEE
-
-
- // CMainFrame
-
- IMPLEMENT_DYNAMIC(CMainFrame, CMDIFrameWnd)
- BEGIN_MESSAGE_MAP(CMainFrame, CMDIFrameWnd)
- ON_WM_CREATE()
-
- ON_XTP_EXECUTE(ID_GOTO_URL, OnGotoUrl)
- ON_UPDATE_COMMAND_UI(ID_GOTO_URL, OnUpdateGotoUrl)
- ON_XTP_EXECUTE(ID_FAVORITE_LINK, OnFavorite)
- ON_XTP_EXECUTE(ID_OPENALLFOLDERITEMS, OnOpenAllItems)
- ON_COMMAND(ID_ORGANIZE_FAV, OnOrganizeFavorites)
- ON_COMMAND(ID_FILE_WORKOFFLINE, OnFileWorkoffline)
- ON_UPDATE_COMMAND_UI(ID_FILE_WORKOFFLINE, OnUpdateFileWorkoffline)
- ON_COMMAND(ID_WINDOW_CLOSE_ALL, OnWindowCloseAll)
- ON_UPDATE_COMMAND_UI(ID_WINDOW_CLOSE_ALL, OnUpdateWindowCloseAll)
- ON_COMMAND(ID_TOOLS_IMAGESFILTER, OnToolsImagesfilter)
- ON_COMMAND(ID_TOOLS_POPUPFILTER, OnToolsPopupfilter)
- ON_COMMAND(ID_TOGGLE_DOCK, OnToggleDock)
- ON_COMMAND(ID_TOOLS_SWITCHTHEME, OnSwitchTheme)
-
- ON_UPDATE_COMMAND_UI(ID_WINDOW_CASCADE, OnDisableMenu)
- ON_UPDATE_COMMAND_UI(ID_WINDOW_TILE_HORZ, OnDisableMenu)
- ON_COMMAND(ID_VIEW_FULLSCREEN, OnViewFullscreen)
- ON_UPDATE_COMMAND_UI(ID_VIEW_FULLSCREEN, OnUpdateViewFullscreen)
- ON_COMMAND(ID_FILE_NEW_CURRENT, OnFileNewCurrent)
- ON_UPDATE_COMMAND_UI(ID_FILE_NEW_CURRENT, OnUpdateFileNewCurrent)
- ON_COMMAND(ID_FILE_NEW_BLANK, OnFileNewBlank)
- ON_WM_SETTINGCHANGE()
-
- ON_COMMAND(ID_EXPLORER_SEARCH, OnExploreSearch)
- ON_COMMAND(ID_EXPLORER_HISTORY, OnExploreHistory)
- ON_COMMAND(ID_EXPLORER_SOURCE, OnExploreSource)
- ON_COMMAND(ID_EXPLORER_FOLDER, OnExploreFolder)
- ON_COMMAND(ID_EXPLORER_NOTEPAD, OnExploreNotepad)
-
- ON_COMMAND(ID_TOOLS_STRUCTURE, OnToolsStructure)
- ON_UPDATE_COMMAND_UI(ID_TOOLS_STRUCTURE, OnUpdateToolsStructure)
- ON_COMMAND(ID_VIEW_ENCODING_AUTOSELECT, OnViewEncodingAuto)
- ON_UPDATE_COMMAND_UI(ID_VIEW_ENCODING_AUTOSELECT, OnUpdateViewEncodingAuto)
- //ON_COMMAND(ID_TOOLBAR_GO, OnGotoUrl)
- ON_WM_CLOSE()
- ON_COMMAND(ID_TOOLS_DEFAULTBROWSER, OnSetDefault)
- ON_COMMAND(ID_TOOLS_STYLEROPTIONS, OnStylerOptions)
- ON_MESSAGE(WM_USER_SHELL_OPEN, OnShellOpen)
- ON_XTP_EXECUTE(ID_GOTO_SEARCH, OnGotoSearch)
- ON_UPDATE_COMMAND_UI(ID_INDICATOR, OnUpdateIndicator)
- ON_WM_DESTROY()
- ON_MESSAGE(WM_XTP_PRETRANSLATEMOUSEMSG, OnTabbarMouseMsg)
- ON_COMMAND(ID_SEARCH_LIST, OnSearchList)
- ON_MESSAGE(XTPWM_DOCKINGPANE_NOTIFY, OnDockingPaneNotify)
- ON_COMMAND_RANGE(ID_THEME_DEFAULT, ID_THEME_RIBBON, OnTheme)
- ON_UPDATE_COMMAND_UI_RANGE(ID_THEME_DEFAULT, ID_THEME_RIBBON, OnUpdateTheme)
-
- ON_COMMAND(XTP_ID_CUSTOMIZE, OnCustomize)
- ON_XTP_CREATECONTROL()
- ON_MESSAGE(WM_XTP_CONTROLRBUTTONUP, OnControlRButtonUp)
- END_MESSAGE_MAP()
- // CMainFrame construction/destruction
- CMainFrame::CMainFrame()
- {
- m_pSession = NULL;
- m_bShowStructure = FALSE;
- m_hEncoding = 0;
- m_hFavorites = 0;
- m_bFullScreen = FALSE;
-
- XTAuxData().UpdateSysMetrics();
- TCHAR szStylesPath[_MAX_PATH];
- VERIFY(::GetModuleFileName(
- AfxGetApp()->m_hInstance, szStylesPath, _MAX_PATH));
-
- m_strStylesPath = szStylesPath;
- int nIndex = m_strStylesPath.ReverseFind(_T('\'));
- if (nIndex > 0) {
- m_strStylesPath = m_strStylesPath.Left(nIndex);
- }
- else {
- m_strStylesPath.Empty();
- }
-
- m_strStylesPath += _T("\Styles\");
- }
- CMainFrame::~CMainFrame()
- {
- if (m_bShowStructure)
- {
- CInetTools::SetStyleSheet(FALSE, FALSE);
- }
- UninitialNameSpace();
- }
- static UINT uHideCmds[] =
- {
- ID_FILE_PRINT,
- ID_FILE_PRINT_PREVIEW,
- ID_FILE_PRINT_SETUP,
- ID_FILE_PROPERTIES,
- ID_VIEW_SOURCE,
- ID_VIEW_FULLSCREEN,
- ID_TOOLS_STRUCTURE,
- ID_TOOLS_DEFAULTBROWSER,
- ID_SHOWIMAGES
- };
-
- int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
- {
- if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)
- return -1;
- if (!m_wndStatusBar.Create(this))
- {
- TRACE0("Failed to create status barn");
- return -1; // fail to create
- }
- m_wndStatusBar.AddIndicator(0);
- m_wndStatusBar.SetPaneStyle(0, SBPS_STRETCH);
- m_wndStatusBar.AddIndicator(new CIndicatorStatusBarPane(), ID_INDICATOR);
- m_wndStatusBar.SetPaneInfo(1, ID_INDICATOR, SBPS_NORMAL, 95);
- m_wndStatusBar.AddIndicator(ID_EMPTY);
- m_wndStatusBar.SetPaneInfo(2, ID_EMPTY, SBPS_NORMAL, 245);
- if (!InitCommandBars())
- return -1;
- //XTPOffice2007Images()->SetHandle(_T("Styles\Office2007Gray.dll"));
- XTPImageManager()->SetMaskColor(RGB(0, 255, 0));
-
- XTPImageManager()->SetIcons(IDR_MENUBAR);
-
- CXTPCommandBars* pCommandBars = GetCommandBars();
-
- CXTPCommandBar* pMenuBar = pCommandBars->SetMenu(_T("Menu Bar"), IDR_MAINFRAME);
- pMenuBar->SetFlags(xtpFlagHideMinimizeBox | xtpFlagHideMaximizeBox | xtpFlagIgnoreSetMenuMessage);
- //SetMenu(0);
-
- CXTPToolBar* pCommandBar = (CXTPToolBar*)pCommandBars->Add(_T("Standard"), xtpBarTop);
- if (!pCommandBar ||
- !pCommandBar->LoadToolBar(IDR_MAINFRAME))
- {
- TRACE0("Failed to create toolbarn");
- return -1;
- }
- CXTPToolBar* pSearchBar = (CXTPToolBar*)pCommandBars->Add(_T("Search"), xtpBarTop);
- if (!pSearchBar ||
- !pSearchBar->LoadToolBar(IDR_SEARCH))
- {
- TRACE0("Failed to create toolbarn");
- return -1;
- }
- DockRightOf(pSearchBar, pCommandBar);
- pCommandBar = (CXTPToolBar*)pCommandBars->Add(_T("Switch Theme"), xtpBarTop);
- if (!pCommandBar ||
- !pCommandBar->LoadToolBar(IDR_SWITCH))
- {
- TRACE0("Failed to create toolbarn");
- return -1;
- }
- DockRightOf(pCommandBar, pSearchBar);
- m_paneManager.InstallDockingPanes(this);
- CXTPDockingPane* A = m_paneManager.CreatePane(IDS_TITLE_HIS, CRect(0, 0,200, 120), xtpPaneDockLeft);
- CXTPDockingPane* B = m_paneManager.CreatePane(IDS_TITLE_SHELL, CRect(0, 0,200, 120), xtpPaneDockBottom, A);
- CXTPDockingPane* C = m_paneManager.CreatePane(IDS_TITLE_NOTEPAD, CRect(0, 0,200, 120), xtpPaneDockRight);
- CXTPDockingPane* D = m_paneManager.CreatePane(IDS_TITLE_SOURCE, CRect(0, 0,200, 120), xtpPaneDockBottom, C);
- CXTPDockingPane* E = m_paneManager.CreatePane(IDS_TITLE_SEARCH, CRect(0, 0,200, 120), xtpPaneDockBottom, D);
-
- m_paneManager.AttachPane(B, A);
- m_paneManager.AttachPane(C, A);
- m_paneManager.AttachPane(D, A);
- m_paneManager.AttachPane(E, A);
-
- A->Hide();
- CXTPDockingPaneLayout layout(&m_paneManager);
- if (layout.Load(_T("Standard")))
- m_paneManager.SetLayout(&layout);
- VERIFY(m_MTIClientWnd.Attach(this, TRUE));
- m_MTIClientWnd.LoadState();
- m_MTIClientWnd.EnableToolTips();
- m_MTIClientWnd.SetFlags(xtpWorkspaceHideClose | xtpWorkspaceHideArrows | xtpWorkspaceShowCloseSelectedTab);
-
- InitialNameSpace();
- BuildEncodingMenu();
- XTPPaintManager()->RefreshMetrics();
- RefreshIcons();
- CXTPCommandBarsOptions* pOptions = pCommandBars->GetCommandBarsOptions();
- pOptions->bAlwaysShowFullMenus = FALSE;
- pCommandBars->HideCommands(uHideCmds, _countof(uHideCmds));
- pOptions->ShowKeyboardCues(xtpKeyboardCuesShowWindowsDefault);
- pCommandBars->GetToolTipContext()->SetStyle(xtpToolTipOffice);
- pCommandBars->GetShortcutManager()->SetAccelerators(IDR_MAINFRAME);
- SetTheme(m_themeCurrent);
- LoadCommandBars(_T("CommandBarsv2"));
- return 0;
- }
- static LPCTSTR RegisterSimilarClass(LPCTSTR lpszNewClassName,
- LPCTSTR lpszOldClassName, UINT nIDResource)
- {
-
- HINSTANCE hInst = AfxGetInstanceHandle();
- WNDCLASS wc;
- if (!::GetClassInfo(hInst, lpszOldClassName, &wc))
- {
- TRACE(_T("Can't find window class %sn"), lpszOldClassName);
- return NULL;
- }
- wc.lpszClassName = lpszNewClassName;
- wc.hIcon = ::LoadIcon(hInst, MAKEINTRESOURCE(nIDResource));
- if (!AfxRegisterClass(&wc))
- {
- TRACE(_T("Unable to register window class%sn"), lpszNewClassName);
- return NULL;
- }
- return lpszNewClassName;
- }
- BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
- {
- if (!CMDIFrameWnd::PreCreateWindow(cs))
- return FALSE;
- static LPCTSTR lpszClass = NULL;
-
- if (lpszClass == NULL)
- lpszClass = RegisterSimilarClass(_T("StylerMainWindow"), cs.lpszClass, IDR_MAINFRAME);
- if (lpszClass == NULL)
- return FALSE;
-
- cs.lpszClass = lpszClass;
- return TRUE;
- }
- // CMainFrame diagnostics
- #ifdef _DEBUG
- void CMainFrame::AssertValid() const
- {
- CMDIFrameWnd::AssertValid();
- }
- void CMainFrame::Dump(CDumpContext& dc) const
- {
- CMDIFrameWnd::Dump(dc);
- }
- #endif //_DEBUG
- void CMainFrame::SetAddress(LPCTSTR lpszUrl)
- {
- CXTPControlComboBox* pCombo = GetAddressCombo();
- if (pCombo)
- {
- pCombo->SetEditText(lpszUrl);
- }
- }
- void OpenWindow(CString strUrl, BOOL bActivate, BOOL bReplaceBlank)
- {
- if (bReplaceBlank)
- {
- CChildFrame* pFrame = (CChildFrame*)((CMainFrame*)AfxGetMainWnd())->MDIGetActive();
- if (pFrame)
- {
- CStylerView* pView = (CStylerView*)pFrame->GetActiveView();
- if (pView->GetDocument()->GetCurrentUrl() == ABOUTBLANK)
- {
- pView->GetDocument()->SetUrl(strUrl);
- pView->Navigate(strUrl);
- return;
- }
- }
- }
-
- CWinApp* pApp = AfxGetApp();
- // Get the correct document template.
- POSITION pos = pApp->GetFirstDocTemplatePosition();
- CDocTemplate* pDocTemplate = pApp->GetNextDocTemplate( pos );
- CStylerDoc* pStylerDoc = (CStylerDoc*)pDocTemplate->CreateNewDocument();
- pStylerDoc->SetUrl(strUrl);
- // Create a new frame.
-
- CFrameWnd* pFrame = pDocTemplate->CreateNewFrame(
- pStylerDoc,
- (CFrameWnd*)AfxGetMainWnd() );
- // Activate the frame.
- if (!bActivate) ((CChildFrame*)pFrame)->m_bActivate = FALSE;
- pDocTemplate->InitialUpdateFrame( pFrame, NULL );
- CStylerView* pView = (CStylerView*)pFrame->GetActiveView();
- // Pass pointer of WebBrowser object.
- pView->SetRegisterAsBrowser( TRUE );
- pView->GetDocument()->SetUrl(strUrl);
- pView->Navigate(strUrl);
- }
- void CommonNavigate(CMDIChildWnd* pFrame, CString& strUrl)
- {
- if (pFrame == NULL)
- OpenWindow(strUrl);
- else
- {
- CStylerView* pView = (CStylerView*)pFrame->GetActiveView();
- if (pView)
- {
- pView->SetLoading(TRUE);
- pView->GetDocument()->SetUrl(strUrl);
- pView->Navigate(strUrl);
- }
- }
- }
- void CMainFrame::OnGotoUrl(NMHDR* pNMHDR, LRESULT* pResult)
- {
- NMXTPCONTROL* tagNMCONTROL = (NMXTPCONTROL*)pNMHDR;
-
- CXTPControlComboBox* pCombo = (CXTPControlComboBox*)tagNMCONTROL->pControl;
- ASSERT(pCombo);
- ASSERT(pCombo->GetType() == xtpControlComboBox);
- CString strUrl = pCombo->GetEditText();
-
- strUrl.TrimLeft();
-
- if (strUrl.IsEmpty())
- return;
- int nIndex = strUrl.Find(' ');
- if (nIndex != -1)
- {
-
- CString strKeyword = strUrl.Left(nIndex);
- CString strSearch = strUrl.Mid(nIndex + 1);
- strSearch.TrimLeft();
- for (int i = 0; i < CPageSearch::m_arrEngines.GetSize(); i++)
- {
- CPageSearch::ENGINE& engine = CPageSearch::m_arrEngines[i];
- if (engine.strKeyword.CompareNoCase(strKeyword) == 0)
- {
- strUrl = engine.strSearch;
- strUrl.Replace(_T("%s"), strSearch);
- CommonNavigate(MDIGetActive(), strUrl);
- pCombo->SetEditText(strUrl);
- return;
- }
- }
- }
- nIndex = strUrl.Find(':');
- if(nIndex >= 0) strUrl.Replace('\','/');
- else strUrl = _T("http://") + strUrl;
- CommonNavigate(MDIGetActive(), strUrl);
-
- if (strUrl.Right(1) == _T("/"))
- strUrl.Delete(strUrl.GetLength() - 1);
- if (pCombo->FindStringExact(0, strUrl) == CB_ERR)
- pCombo->InsertString(0, strUrl);
- *pResult = 1;
- }
- void CMainFrame::OnGotoSearch(NMHDR* pNMHDR, LRESULT* pResult)
- {
- NMXTPCONTROL* tagNMCONTROL = (NMXTPCONTROL*)pNMHDR;
-
- CComboBoxSearch* pCombo = (CComboBoxSearch*)tagNMCONTROL->pControl;
- ASSERT(pCombo);
- ASSERT(pCombo->GetType() == xtpControlComboBox);
- int nSearch = pCombo->m_nCurrentEngine;
- CString strSearch = pCombo->GetEditText();
- if (!strSearch.IsEmpty() && nSearch >= 0 && nSearch < CPageSearch::m_arrEngines.GetSize())
- {
- CPageSearch::ENGINE& engine = CPageSearch::m_arrEngines[nSearch ];
- if (engine.strTitle == strSearch)
- return;
- CString strUrl = engine.strSearch;
- strUrl.Replace(_T("%s"), strSearch);
- OpenWindow(strUrl, TRUE, TRUE);
- }
- *pResult = 1;
- }
- void CMainFrame::OnWindowCloseAll()
- {
- if (m_bConfirmCloseAll)
- {
- if (AfxMessageBox(IDS_CONFIRM_CLOSEALL, MB_YESNO | MB_ICONQUESTION ) != IDYES)
- return;
- }
- AfxGetApp()->CloseAllDocuments(FALSE);
- }
- void CMainFrame::OnUpdateWindowCloseAll(CCmdUI *pCmdUI)
- {
- pCmdUI->Enable((CChildFrame*)MDIGetActive() != NULL);
- }
- void CMainFrame::OnUpdateGotoUrl(CCmdUI *pCmdUI)
- {
- pCmdUI->Enable();
- }
- void CMainFrame::OnEmptyCommand()
- {
-
- }
- void CMainFrame::OnFavorite(NMHDR* pNMHDR, LRESULT* pResult)
- {
- NMXTPCONTROL* tagNMCONTROL = (NMXTPCONTROL*)pNMHDR;
- OpenWindow(tagNMCONTROL->pControl->GetParameter(), TRUE, TRUE);
- *pResult = 1;
- }
- void CMainFrame::OnOpenAllItems(NMHDR* pNMHDR, LRESULT* pResult)
- {
- NMXTPCONTROL* tagNMCONTROL = (NMXTPCONTROL*)pNMHDR;
- CString strPath = tagNMCONTROL->pControl->GetParameter();
- WIN32_FIND_DATA wfd;
- HANDLE h;
-
- h = FindFirstFile(strPath + _T("*.*"), &wfd);
- if(h != INVALID_HANDLE_VALUE)
- {
- do
- {
- CString strFile = wfd.cFileName;
-
- if((wfd.dwFileAttributes & (FILE_ATTRIBUTE_DIRECTORY|FILE_ATTRIBUTE_HIDDEN|FILE_ATTRIBUTE_SYSTEM))==0 &&
- strFile.Right(4).CompareNoCase(_T(".url")) == 0)
- {
- TCHAR buf[INTERNET_MAX_PATH_LENGTH];
- ::GetPrivateProfileString(_T("InternetShortcut"), _T("URL"),
- _T(""), buf, INTERNET_MAX_PATH_LENGTH,
- strPath + strFile);
-
- OpenWindow(buf);
- }
- } while(FindNextFile(h, &wfd));
- }
- FindClose(h);
- *pResult = 1;
- }
- void CMainFrame::OnOrganizeFavorites()
- {
- CInetTools::MtlOrganizeFavorite(GetSafeHwnd());
- }
- void CMainFrame::OnFileWorkoffline()
- {
- CInetTools::MtlSetGlobalOffline(!CInetTools::MtlIsGlobalOffline());
- }
- void CMainFrame::OnUpdateFileWorkoffline(CCmdUI *pCmdUI)
- {
- pCmdUI->SetCheck(CInetTools::MtlIsGlobalOffline());
- }
- void CMainFrame::OnToolsImagesfilter()
- {
- CFilterDialog fd;
- fd.DoModal();
- }
- void CMainFrame::OnToggleDock(void)
- {
- if (m_MTIClientWnd.GetPaintManager()->GetPosition() != xtpTabPositionTop)
- m_MTIClientWnd.GetPaintManager()->SetPosition(xtpTabPositionTop);
- else
- m_MTIClientWnd.GetPaintManager()->SetPosition(xtpTabPositionBottom);
- m_MTIClientWnd.SaveState();
- RecalcLayout(TRUE);
- }
- void CMainFrame::OnDisableMenu(CCmdUI *pCmdUI)
- {
- pCmdUI->Enable(FALSE);
- }
- void CMainFrame::OnViewFullscreen()
- {
- if (!m_bFullScreen)
- {
- GetWindowRect(&m_rcMainFrame);
- ModifyStyle(WS_CAPTION, 0);
- // Now resize the main window
- int cxScrn = ::GetSystemMetrics(SM_CXSCREEN);
- int cyScrn = ::GetSystemMetrics(SM_CYSCREEN);
- int cxBorder = ::GetSystemMetrics(SM_CXBORDER);
- int cyBorder = ::GetSystemMetrics(SM_CYBORDER);
- SetWindowPos(NULL, -cxBorder, -cyBorder, cxScrn + cxBorder * 2,
- cyScrn + cyBorder * 2, SWP_NOZORDER);
-
- RecalcLayout(TRUE);
- m_bFullScreen = TRUE;
- } else
- {
- ModifyStyle(0, WS_CAPTION);
- MoveWindow(&m_rcMainFrame);
- RecalcLayout(TRUE);
- m_bFullScreen = FALSE;
- }
- }
- void CMainFrame::OnUpdateViewFullscreen(CCmdUI *pCmdUI)
- {
- pCmdUI->SetCheck(m_bFullScreen);
- }
- void CMainFrame::OnFileNewBlank()
- {
- OpenWindow(ABOUTBLANK);
- CXTPControlComboBox* pCombo = GetAddressCombo();
- if (pCombo) pCombo->GetEditCtrl()->SetFocus();
- }
- void CMainFrame::OnFileNewCurrent()
- {
- CChildFrame* wndBrowserFrame = (CChildFrame*)MDIGetActive();
- if (wndBrowserFrame && wndBrowserFrame->GetActiveView())
- {
- CString str = ((CStylerView*)wndBrowserFrame->GetActiveView())->GetLocationURL();
- OpenWindow(str);
- }
- }
- void CMainFrame::OnUpdateFileNewCurrent(CCmdUI *pCmdUI)
- {
- pCmdUI->Enable((CChildFrame*)MDIGetActive() != NULL);
- }
- void CMainFrame::OnSettingChange(UINT uFlags, LPCTSTR lpszSection)
- {
- CRect rcC;
- GetClientRect(&rcC);
- CMDIFrameWnd::OnSettingChange(uFlags, lpszSection);
- RecalcLayout(FALSE);
- RedrawWindow(FALSE);
- }
- void CMainFrame::OnToolsStructure()
- {
- m_bShowStructure = !m_bShowStructure;
- CInetTools::SetStyleSheet(m_bShowStructure, TRUE);
- CChildFrame* wndBrowserFrame = (CChildFrame*)MDIGetActive();
- if (wndBrowserFrame && wndBrowserFrame->GetActiveView())
- {
- ((CStylerView*)wndBrowserFrame->GetActiveView())->Refresh();
- }
- }
- void CMainFrame::OnUpdateToolsStructure(CCmdUI *pCmdUI)
- {
- pCmdUI->SetCheck(m_bShowStructure);
- }
- void CMainFrame::InitialNameSpace()
- {
- if(CoInternetGetSession(0, &m_pSession, 0)==S_OK)
- {
- m_pFilter = (CFilterContent*)CFilterContent::CreateObject();
- m_pSession->RegisterNameSpace((LPCLASSFACTORY)m_pFilter->GetInterface(&IID_IClassFactory),
- CLSID_FilterContent, L"http", 0, NULL, 0);
- }
- }
- void CMainFrame::UninitialNameSpace()
- {
- if(m_pSession!=NULL)
- {
- m_pSession->UnregisterNameSpace((LPCLASSFACTORY)m_pFilter->GetInterface(&IID_IClassFactory), L"http");
- m_pSession->Release();
- m_pSession = NULL;
-
- ASSERT(m_pFilter);
- m_pFilter->InternalRelease();
- m_pFilter = NULL;
- }
- }
- void LoadEncoding(CMenu* pMenu)
- {
- CMainFrame::m_arrEncodingPage.RemoveAll();
- TCHAR chReturn[100];
- CString strLine;
- int nIndex = 0;
- CString strPath = GetModuleDir();
- strLine.Format(_T("line%i"), nIndex);
- BOOL bPrevSeparator = FALSE;
- int nID = ID_VIEW_ENCODING_FIRST;
- while (GetPrivateProfileString(_T("Encoding"), strLine, _T(""), chReturn, 100, strPath + _T("encoding.ini")) > 0)
- {
- CString strReturn(chReturn);
- if (!strReturn.IsEmpty())
- {
- int n = strReturn.Find(',');
- if (n != -1)
- {
- CString strPage = strReturn.Left(n);
- strPage.TrimLeft(); strPage.TrimRight();
- CString strDesc = strReturn.Right(strReturn.GetLength() - n - 1);
- strDesc.TrimLeft(); strDesc.TrimRight();
- if (!strDesc.IsEmpty() && !strPage.IsEmpty())
- {
- if (bPrevSeparator && nID != ID_VIEW_ENCODING_FIRST)
- pMenu->AppendMenu(MF_SEPARATOR);
- pMenu->AppendMenu(MF_STRING, nID++, strDesc);
- CMainFrame::m_arrEncodingPage.Add(strPage);
- bPrevSeparator = FALSE;
- }
- } else
- bPrevSeparator = TRUE;
- }
- strLine.Format(_T("line%i"), ++nIndex);
- }
- }
- void CMainFrame::OnViewEncodingAuto()
- {
- DWORD sz;
- HKEY hKey;
- DWORD dwSize = sizeof(DWORD);
- if(RegOpenKey(HKEY_CURRENT_USER, _T("Software\Microsoft\Internet Explorer\International"), &hKey) != ERROR_SUCCESS)
- {
- TRACE0("Global settings not foundn");
- return ;
- }
- if(RegQueryValueEx(hKey, _T("AutoDetect"), NULL, NULL, (LPBYTE)&sz, &dwSize) == ERROR_SUCCESS)
- {
- //set new offline value
- m_bAutoSelect = sz = !(BOOL)sz;
- } else
- m_bAutoSelect = sz = !m_bAutoSelect;
-
- RegSetValueEx(hKey, _T("AutoDetect"), NULL, REG_DWORD, (LPBYTE)(&sz), dwSize);
-
- CChildFrame* wndBrowserFrame = (CChildFrame*)MDIGetActive();
- if (wndBrowserFrame && wndBrowserFrame->GetActiveView())
- {
- ((CStylerView*)(wndBrowserFrame->GetActiveView()))->Refresh2(1);
- }
- RegCloseKey(hKey);
-
- }
- void CMainFrame::BuildEncodingMenu()
- {
- /*CXTPControl* pControl = GetCommandBars()->FindControl(xtpControlButton, ID_VIEW_ENCODING, FALSE, TRUE);
- ASSERT(pControl);
-
- if (pControl)
- {
- CMenu menuPopup;
- menuPopup.CreatePopupMenu();
-
- LoadEncoding(&menuPopup);
- if (menuPopup.GetMenuItemCount())
- {
- menuPopup.InsertMenu(0, MF_BYPOSITION | MF_STRING, ID_VIEW_ENCODING_AUTOSELECT, "Auto Select");
- menuPopup.InsertMenu(1, MF_BYPOSITION | MF_SEPARATOR);
-
- CXTPControlPopup* pPopup = (CXTPControlPopup*)pControl->GetControls()->SetControlType(pControl, xtpControlPopup);
- pPopup->SetCommandBar(&menuPopup);
- pPopup->SetID(0);
-
- }
-
- }*/
-
-
- m_bAutoSelect = FALSE;
- HKEY hKey;
- if(RegOpenKey(HKEY_CURRENT_USER, _T("Software\Microsoft\Internet Explorer\International"), &hKey) == ERROR_SUCCESS)
- {
-
- DWORD dwSize = sizeof(m_bAutoSelect);
- RegQueryValueEx(hKey, _T("AutoDetect"), NULL, NULL, (LPBYTE)&m_bAutoSelect, &dwSize);
- RegCloseKey(hKey);
- }
- }
- void CMainFrame::OnUpdateViewEncodingAuto(CCmdUI *pCmdUI)
- {
- pCmdUI->SetCheck(m_bAutoSelect);
- }
- void CMainFrame::OnToolsPopupfilter()
- {
- CPopupFilter fd;
- fd.DoModal();
- }
- void CMainFrame::OnClose()
- {
- if (m_bConfirmExit && MDIGetActive())
- {
- if (AfxMessageBox(IDS_CONFIRM_CLOSEALL, MB_YESNO | MB_ICONQUESTION ) != IDYES)
- return;
- }
- CComboBoxURL* pComboURL = DYNAMIC_DOWNCAST(CComboBoxURL, GetAddressCombo());
- if (pComboURL) pComboURL->SaveTypedURL();
- if (m_nStartup == STARTUP_LASTVISITED)
- {
- CString strPopups;
- int nIndex = AFX_IDM_FIRST_MDICHILD;
- CWnd* pMDIClient = CWnd::FromHandle(m_hWndMDIClient);
- CChildFrame* pWnd = (CChildFrame*) pMDIClient->GetDlgItem(nIndex);
- while (pWnd)
- {
- CStylerView* pView = (CStylerView*)pWnd->GetActiveView();
- ASSERT(pView);
- if (pView) strPopups += pView->GetDocument()->GetCurrentUrl() + _T(";");
-
- pWnd = (CChildFrame*) pMDIClient->GetDlgItem(++nIndex);
- }
-
- AfxGetApp()->WriteProfileString(_T("MainFrame"), _T("LastVisited"), strPopups);
-
- }
- CWindowPlacement(this, _T("Main Frame")).SaveWindowPos();
-
- SaveCommandBars(_T("CommandBarsv2"));
- CMDIFrameWnd::OnClose();
- }
- void SetDefault(LPCTSTR lpszKey, BOOL = TRUE)
- {
- HKEY hKey, hSubKey, hSubKey2;
- if(RegOpenKey(HKEY_CLASSES_ROOT, lpszKey, &hKey) == ERROR_SUCCESS)
- {
- DWORD dwRes;
- TCHAR lpszModule[_MAX_PATH];
- HINSTANCE hInstance = AfxGetInstanceHandle();
-
- RegSetValueEx(hKey, _T(""), NULL, REG_SZ, (LPBYTE)(_T("Styler")), 7 * sizeof(TCHAR));
-
- //open
- RegCreateKeyEx(hKey, _T("open"), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hSubKey, &dwRes);
- RegCreateKeyEx(hSubKey, _T("command"), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hSubKey2, &dwRes);
-
- if (GetModuleFileName(hInstance, lpszModule + 1, _MAX_PATH))
- {
- *lpszModule = _T('"');
- #if (_MSC_VER > 1310) // VS2005
- _tcscat_s(lpszModule, _MAX_PATH, _T("" "%1""));
- #else
- _tcscat(lpszModule, _T("" "%1""));
- #endif
- RegSetValueEx(hSubKey2, _T(""), NULL, REG_SZ, (LPBYTE)(lpszModule), ((int)_tcsclen(lpszModule) + 1) * sizeof(TCHAR));
- }
-
- RegCloseKey(hSubKey);
- RegCloseKey(hSubKey2);
-
-
- //myie
- RegCreateKeyEx(hKey, _T("Styler"), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hSubKey, &dwRes);
- RegCloseKey(hKey);
- RegCreateKeyEx(hSubKey, _T("command"), 0, NULL, REG_OPTION_NON_VOLATILE, KEY_ALL_ACCESS, NULL, &hKey, &dwRes);
-
-
- if (GetModuleFileName(hInstance, lpszModule+1, _MAX_PATH))
- {
- *lpszModule = _T('"');
- #if (_MSC_VER > 1310) // VS2005
- _tcscat_s(lpszModule, _MAX_PATH, _T("" "%1""));
- #else
- _tcscat(lpszModule, _T("" "%1""));
- #endif
- RegSetValueEx(hKey, _T(""), NULL, REG_SZ, (LPBYTE)(lpszModule), ((int)_tcsclen(lpszModule) + 1) * sizeof(TCHAR));
-
- }
-
- RegCloseKey(hSubKey);
- RegCloseKey(hKey);
- }
- }
- void CMainFrame::OnSetDefault()
- {
- SetDefault(_T("htmlfile\shell"));
- SetDefault(_T("InternetShortcut\shell"));
- SetDefault(_T("mhtmlfile\shell"));
- SetDefault( _T("http\shell"));
- SetDefault( _T("https\shell"));
- SetDefault( _T("file\shell"));
- SetDefault( _T("ftp\shell"));
- }
- void CMainFrame::Properties(int nPage)
- {
- COptionsDialog od;
-
- CPageGeneral pageGeneral;
- int nDocking = pageGeneral.m_nDocking = m_MTIClientWnd.GetPaintManager()->GetPosition()==xtpTabPositionBottom? 1 : 0;
- pageGeneral.m_bConfirmExit = m_bConfirmExit;
- pageGeneral.m_bConfirmCloseAll = m_bConfirmCloseAll;
- pageGeneral.m_bOneInstance = m_bOneInstance;
- pageGeneral.m_nStartup = m_nStartup;
- pageGeneral.m_bRestoreWindowPos = m_bRestoreWindowPos;
- od.AddPage(&pageGeneral);
- CPageKeyboard pageKeyboard;
- od.AddPage(&pageKeyboard);
- CPageMouse pageMouse;
- od.AddPage(&pageMouse);
- CPageSearch pageSearch;
- od.AddPage(&pageSearch);
-
- od.SetActivePage(nPage);
- if (od.DoModal() == IDOK)
- {
- if (pageGeneral.m_nDocking != nDocking)
- OnToggleDock();
-
- m_bConfirmExit = pageGeneral.m_bConfirmExit;
- m_bConfirmCloseAll = pageGeneral.m_bConfirmCloseAll;
- m_bOneInstance = pageGeneral.m_bOneInstance;
- m_nStartup = pageGeneral.m_nStartup;
- m_bRestoreWindowPos = pageGeneral.m_bRestoreWindowPos;
- Save();
- }
- }
- void CMainFrame::OnSearchList()
- {
- Properties(3);
- }
- void CMainFrame::OnStylerOptions()
- {
- Properties(0);
- }
- void CMainFrame::Load()
- {
- m_bConfirmExit = AfxGetApp()->GetProfileInt(_T("MainFrame"), _T("ConfirmExit"), m_bConfirmExit);
- m_bConfirmCloseAll = AfxGetApp()->GetProfileInt(_T("MainFrame"), _T("ConfirmCloseAll"), m_bConfirmCloseAll);
- m_bOneInstance = AfxGetApp()->GetProfileInt(_T("MainFrame"), _T("OneInstance"), m_bOneInstance);
- m_nStartup = AfxGetApp()->GetProfileInt(_T("MainFrame"), _T("Startup"), m_nStartup);
- m_bRestoreWindowPos = AfxGetApp()->GetProfileInt(_T("MainFrame"), _T("RestoreWindowPos"), m_bRestoreWindowPos);
- m_themeCurrent = (XTPPaintTheme)AfxGetApp()->GetProfileInt(_T("MainFrame"), _T("Theme"), m_themeCurrent);
- }
- void CMainFrame::Save()
- {
- AfxGetApp()->WriteProfileInt(_T("MainFrame"), _T("ConfirmExit"), m_bConfirmExit);
- AfxGetApp()->WriteProfileInt(_T("MainFrame"), _T("ConfirmCloseAll"), m_bConfirmCloseAll);
- AfxGetApp()->WriteProfileInt(_T("MainFrame"), _T("OneInstance"), m_bOneInstance);
- AfxGetApp()->WriteProfileInt(_T("MainFrame"), _T("Startup"), m_nStartup);
- AfxGetApp()->WriteProfileInt(_T("MainFrame"), _T("RestoreWindowPos"), m_bRestoreWindowPos);
- AfxGetApp()->WriteProfileInt(_T("MainFrame"), _T("Theme"), m_themeCurrent);
- }
- LRESULT CMainFrame::OnShellOpen(WPARAM, LPARAM)
- {
- try
- {
- HANDLE hMapping = CreateFileMapping( INVALID_HANDLE_VALUE, NULL,
- PAGE_READWRITE, 0, 2560, _T("STYLERSHARE"));
-
- if (hMapping == NULL)
- {
- TRACE(_T("Fail to create share memory!"));
- return FALSE;
- }
- LPTSTR lpData = (LPTSTR) MapViewOfFile(hMapping,FILE_MAP_ALL_ACCESS,0,0,0);
- if (lpData == NULL)
- {
- TRACE(_T("MapViewOfFile Fail"));
- CloseHandle(hMapping);
- return FALSE;
- }
- CString strURL = lpData;
- UnmapViewOfFile(lpData);
- CloseHandle(hMapping);
-
- TCHAR buf[INTERNET_MAX_PATH_LENGTH];
- if(strURL.Right(4).CompareNoCase(_T(".url")) == 0)
- {
- ::GetPrivateProfileString(_T("InternetShortcut"), _T("URL"),
- _T(""), buf, INTERNET_MAX_PATH_LENGTH, strURL);
- strURL = buf;
- }
- OpenWindow(strURL);
- }
- catch(...)
- {
- }
- return TRUE;
- }
- void CMainFrame::OpenLastVisited()
- {
- CString strBuffer = AfxGetApp()->GetProfileString(_T("MainFrame"), _T("LastVisited"));
-
- if (!strBuffer.IsEmpty())
- {
- LPTSTR pBuffer = strBuffer.GetBuffer(0);
-
- TCHAR* lpszContext = 0;
- TCHAR* token = STRTOK_S(pBuffer, _T(";"), &lpszContext);
- while (token)
- {
- OpenWindow(token);
- token = STRTOK_S( NULL, _T(";"), &lpszContext);
- }
- }
- }
- void CMainFrame::OnUpdateIndicator(CCmdUI *pCmdUI)
- {
- ASSERT_KINDOF(CXTPStatusBar, pCmdUI->m_pOther);
- ((CIndicatorStatusBar*) pCmdUI->m_pOther)->SetProgress(0);
- }
- void CMainFrame::OnDestroy()
- {
- CXTPDockingPaneLayout layout(&m_paneManager);
- m_paneManager.GetLayout(&layout);
- layout.Save(_T("Standard"));
- m_MTIClientWnd.Detach();
-
- CMDIFrameWnd::OnDestroy();
- }
- CXTPControlComboBox* GetAddressCombo()
- {
- return (CXTPControlComboBox*) GetMainFrame()->GetCommandBars()->FindControl(xtpControlComboBox, ID_GOTO_URL, FALSE, FALSE);
- }
- void CMainFrame::SetDockingPaneIcon(UINT nIDPane, UINT nIDIcon)
- {
- CXTPImageManagerIcon* pIcon = XTPImageManager()->GetImage(nIDIcon);
- m_paneManager.SetIcon(nIDPane, pIcon->GetIcon());
- }
- void CMainFrame::RefreshIcons()
- {
-
- XTPImageManager()->SetIcons(IDR_MAINFRAME, IDR_MAINFRAME);
- XTPImageManager()->SetIcons(IDR_SEARCH, IDR_SEARCH);
- XTPImageManager()->SetIcons(IDR_MENUBAR, IDR_MENUBAR);
-
- XTPPaintManager()->GetIconsInfo()->bUseDisabledIcons = TRUE;
- SetDockingPaneIcon(IDS_TITLE_SOURCE, ID_EXPLORER_SOURCE);
- SetDockingPaneIcon(IDS_TITLE_SHELL, ID_EXPLORER_FOLDER);
- SetDockingPaneIcon(IDS_TITLE_HIS, ID_EXPLORER_HISTORY);
- SetDockingPaneIcon(IDS_TITLE_NOTEPAD, ID_EXPLORER_NOTEPAD);
- SetDockingPaneIcon(IDS_TITLE_SEARCH, ID_EXPLORER_SEARCH);
- }
- void CMainFrame::SetTheme(XTPPaintTheme theme)
- {
- m_themeCurrent = theme;
- m_paneManager.SetTheme(
- m_themeCurrent == xtpThemeOffice2000 ? xtpPaneThemeDefault:
- m_themeCurrent == xtpThemeOfficeXP ? xtpPaneThemeOffice:
- m_themeCurrent == xtpThemeOffice2003 ? xtpPaneThemeOffice2003:
- m_themeCurrent == xtpThemeOffice2007 ? xtpPaneThemeOffice2007:
- m_themeCurrent == xtpThemeRibbon ? xtpPaneThemeOffice2007:
- m_themeCurrent == xtpThemeWhidbey ? xtpPaneThemeVisualStudio2005:
- xtpPaneThemeNativeWinXP);
- CXTPPaintManager::SetTheme(theme);
- EnableOffice2007Frame(theme == xtpThemeRibbon || theme == xtpThemeOffice2007 ? GetCommandBars() : 0);
- if (theme == xtpThemeOffice2000 || theme == xtpThemeNativeWinXP)
- {
- ((CXTPDefaultTheme*)XTPPaintManager())->m_bSelectImageInPopupBar = TRUE;
- ((CXTPDefaultTheme*)XTPPaintManager())->m_bThickCheckMark = TRUE;
- XTPPaintManager()->GetIconsInfo()->bUseFadedIcons = FALSE;
- }
- if (m_themeCurrent == xtpThemeRibbon)
- {
- m_MTIClientWnd.UpdateContents();
- m_MTIClientWnd.GetPaintManager()->SetAppearance(xtpTabAppearancePropertyPage2007);
- m_MTIClientWnd.GetPaintManager()->m_rcButtonMargin.SetRect(2, 2, 2, 2);
- }
- XTPPaintManager()->GetIconsInfo()->bUseDisabledIcons = TRUE;
- RecalcLayout(FALSE);
- GetCommandBars()->RedrawCommandBars();
- RedrawWindow();
- }
- void CMainFrame::OnTheme(UINT nTheme)
- {
- SetTheme((XTPPaintTheme)(nTheme - ID_THEME_DEFAULT));
- }
- void CMainFrame::OnUpdateTheme(CCmdUI *pCmdUI)
- {
- pCmdUI->SetCheck(int(pCmdUI->m_nID - ID_THEME_DEFAULT) == m_themeCurrent? TRUE: FALSE);
- }
- void CMainFrame::OnSwitchTheme()
- {
- if (m_themeCurrent == xtpThemeRibbon)
- SetTheme(xtpThemeOffice2000);
- else
- SetTheme((XTPPaintTheme)(m_themeCurrent + 1));
- }
- LRESULT CMainFrame::OnTabbarMouseMsg(WPARAM wParam,LPARAM lParam)
- {
- CPoint point = CPoint((DWORD)lParam);
-
- CXTPTabManagerItem* pItem = m_MTIClientWnd.HitTest(point);
- if (pItem)
- {
- CWnd* pFrame = CWnd::FromHandle(pItem->GetHandle());
- if (GetActiveFrame() != pFrame)
- {
- MDIActivate(pFrame);
- m_MTIClientWnd.Refresh();
- }
- int nCommand = CMouseManager::FindMouseCommand(MOUSE_AREA_TAB, (DWORD)wParam);
- if (nCommand != -1)
- {
- PostMessage(WM_COMMAND, nCommand);
- return TRUE;
- }
- if (wParam == WM_RBUTTONDOWN)
- {
- CMenu menuPopup;
- menuPopup.LoadMenu(IDR_WORKSPACE_POPUP);
- m_MTIClientWnd.WorkspaceToScreen(&point);
-
- CXTPCommandBars::TrackPopupMenu(menuPopup.GetSubMenu(0), TPM_RIGHTBUTTON, point.x, point.y, this);
-
- m_MTIClientWnd.Refresh();
- return TRUE;
- }
- return FALSE;
- }
-
- int nCommand = CMouseManager::FindMouseCommand(MOUSE_AREA_TABBAR, (DWORD)wParam);
- if (nCommand != -1)
- {
- PostMessage(WM_COMMAND, nCommand);
- return TRUE;
- }
- if (wParam == WM_RBUTTONDOWN)
- {
- CMenu menuPopup;
- menuPopup.CreatePopupMenu();
- menuPopup.AppendMenu(MF_STRING, ID_WINDOW_CLOSE_ALL, _T("&Close All"));
- menuPopup.AppendMenu(MF_STRING, ID_TOGGLE_DOCK, _T("&Toggle Docking"));
-
- m_MTIClientWnd.WorkspaceToScreen(&point);
- CXTPCommandBars::TrackPopupMenu(&menuPopup, TPM_RIGHTBUTTON, point.x, point.y, AfxGetMainWnd());
-
- m_MTIClientWnd.Refresh();
- return TRUE;
- }
- return FALSE;
- }
- LRESULT CMainFrame::OnDockingPaneNotify(WPARAM wParam, LPARAM lParam)
- {
- if (wParam != XTP_DPN_SHOWWINDOW)
- {
- return FALSE;
- }
- CXTPDockingPane* pPane = (CXTPDockingPane*)lParam;
- if (!pPane->IsValid())
- {
-
- //int nIndex = pPane->GetID() - IDS_TITLE_SEARCH;
- switch(pPane->GetID())
- {
- case IDS_TITLE_HIS:
- if (!m_bars.wndHistory.GetWindow()->m_hWnd)
- {
- m_bars.wndHistory.Create(this);
- m_bars.wndHistory.Initialize();
- }
- pPane->Attach(m_bars.wndHistory.GetWindow());
- break;
- case IDS_TITLE_SHELL:
- if (!m_bars.wndShell.m_hWnd)
- {
- m_bars.wndShell.Create(WS_VISIBLE|WS_CHILD, CRect(0,0,0,0), this, 100);
- m_bars.wndShell.Init();
- }
- pPane->Attach(&m_bars.wndShell);
- break;
- case IDS_TITLE_NOTEPAD:
-
- if (!m_bars.wndNotepad.m_hWnd)
- {
- m_bars.wndNotepad.Create(this);
- }
- pPane->Attach(&m_bars.wndNotepad);
- break;
- case IDS_TITLE_SOURCE:
- if (!m_bars.wndSource.m_hWnd)
- {
- m_bars.wndSource.Create(this);
- }
- {
- CChildFrame* wndBrowserFrame = (CChildFrame*)MDIGetActive();
- if (wndBrowserFrame && wndBrowserFrame->GetActiveView())
- {
- m_bars.wndSource.Refresh((CStylerView*)wndBrowserFrame->GetActiveView(), TRUE);
- }
- }
- pPane->Attach(&m_bars.wndSource);
- break;
- case IDS_TITLE_SEARCH:
- if (!m_bars.wndSearch.m_hWnd)
- {
- m_bars.wndSearch.Create(_T("STATIC"), _T(""), WS_CHILD|WS_CLIPCHILDREN|WS_CLIPSIBLINGS, CRect(0, 0, 0, 0), this, 0);
- m_bars.wndSearch.OnViewSearch();
- }
- pPane->Attach(&m_bars.wndSearch);
- break;
- }
- }
- return TRUE;
- }
- void CMainFrame::OnExploreSearch()
- {
- m_paneManager.ShowPane(IDS_TITLE_SEARCH);
- }
- void CMainFrame::OnExploreHistory()
- {
- m_paneManager.ShowPane(IDS_TITLE_HIS);
- }
- void CMainFrame::OnExploreFolder()
- {
- m_paneManager.ShowPane(IDS_TITLE_SHELL);
- }
- void CMainFrame::OnExploreSource()
- {
- m_paneManager.ShowPane(IDS_TITLE_SOURCE);
- }
- void CMainFrame::OnExploreNotepad()
- {
- m_paneManager.ShowPane(IDS_TITLE_NOTEPAD);
- }
- void CMainFrame::OnCustomize()
- {
- CXTPCustomizeSheet cs(GetCommandBars());
-
- CXTPCustomizeOptionsPage pageOptions(&cs);
- cs.AddPage(&pageOptions);
-
- CXTPCustomizeCommandsPage* pCommands = cs.GetCommandsPage();
- pCommands->AddCategories(IDR_CUSTOMIZE);
- pCommands->InsertAllCommandsCategory();
- pCommands->InsertBuiltInMenus(IDR_MAINFRAME);
- pCommands->InsertNewMenuCategory();
-
- cs.DoModal();
- }
- LRESULT CMainFrame::OnControlRButtonUp(WPARAM, LPARAM lParam)
- {
- CXTPControl* pControl = (CXTPControl*)lParam;
- if (pControl->GetID() == ID_FAVORITE_LINK)
- {
- CControlFavoriteLink* pLink = DYNAMIC_DOWNCAST(CControlFavoriteLink, pControl);
- if (!pLink)
- return FALSE;
- CMenu menu;
- menu.LoadMenu(IDR_MENU_FAVORITE_LINK);
-
- CPoint pt;
- GetCursorPos(&pt);
- UINT nReturn = CXTPCommandBars::TrackPopupMenu(menu.GetSubMenu(0), TPM_NONOTIFY|TPM_RECURSE|TPM_RETURNCMD, pt.x, pt.y, this);
- switch (nReturn)
- {
- case ID_LINK_OPEN:
- XTPMouseManager()->SendTrackLost();
- pControl->OnExecute();
- break;
- case ID_LINK_PROPERTIES:
- XTPMouseManager()->SendTrackLost();
- ShellExecute(m_hWnd, _T("properties"), pLink->m_strFileName, NULL, NULL, SW_SHOWNORMAL);
-
- break;
- }
- return TRUE;
- }
- return FALSE;
- }
- int CMainFrame::OnCreateControl(LPCREATECONTROLSTRUCT lpCreateControl)
- {
- class CXTPControlFriendly: public CXTPControl
- {
- friend class CMainFrame;
- };
-
- if (lpCreateControl->bToolBar)
- {
- CXTPToolBar* pToolBar = DYNAMIC_DOWNCAST(CXTPToolBar, lpCreateControl->pCommandBar);
- if (!pToolBar)
- return FALSE;
- if (lpCreateControl->nID == ID_TOOLS_SWITCHTHEME && pToolBar->GetBarID() == IDR_SWITCH)
- {
- lpCreateControl->buttonStyle = xtpButtonCaption;
- lpCreateControl->controlType = xtpControlSplitButtonPopup;
- return TRUE;
- }
- if (pToolBar->GetBarID() == IDR_MAINFRAME &&
- (
- lpCreateControl->nID == ID_EDIT_CUT ||
- lpCreateControl->nID == ID_EDIT_COPY ||
- lpCreateControl->nID == ID_EDIT_PASTE ||
-
- lpCreateControl->nID == ID_EXPLORER_SOURCE ||
- lpCreateControl->nID == ID_EXPLORER_FOLDER ||
- lpCreateControl->nID == ID_EXPLORER_HISTORY ||
- lpCreateControl->nID == ID_EXPLORER_NOTEPAD))
- {
- CXTPControlButton* pButton = (CXTPControlButton*)CXTPControlButton::CreateObject();
- pButton->SetHideFlags(xtpHideCustomize);
- lpCreateControl->pControl = pButton;
- return TRUE;
- }
- if (lpCreateControl->nID == ID_GOTO_URL && pToolBar->GetBarID() == IDR_MAINFRAME)
- {
- CComboBoxURL* pComboAddress = new CComboBoxURL(GetCommandBars());
- pComboAddress->UpdateComboBox();
- pComboAddress->SetWidth(350);
- pComboAddress->SetDropDownListStyle();
- pComboAddress->EnableShellAutoComplete();
-
- lpCreateControl->pControl = pComboAddress;
- return TRUE;
- }
- if (lpCreateControl->nID == ID_GOTO_SEARCH && pToolBar->GetBarID() == IDR_SEARCH)
- {
- CComboBoxSearch* pComboSearch = new CComboBoxSearch(GetCommandBars());
- pComboSearch->SetStyle(xtpComboLabel);
- pComboSearch->SetDropDownListStyle();
- pComboSearch->SetWidth(150);
- pComboSearch->SetFlags(xtpFlagManualUpdate);
- lpCreateControl->pControl = pComboSearch;
- return TRUE;
- }
- if (lpCreateControl->nID == ID_LINKS && pToolBar->GetBarID() == IDR_MAINFRAME)
- {
- CXTPControlPopup* pLinks = CXTPControlPopup::CreateControlPopup(xtpControlButtonPopup);
- pLinks->SetFlags(xtpFlagManualUpdate);
-
- CXTPPopupBar* pPopup = CXTPPopupBar::CreatePopupBar(GetCommandBars());
- CString strFavoriteDir;
- CInetTools::GetFavoriteFolder(strFavoriteDir);
- pPopup->GetControls()->Add(new CControlFavoriteFolder(strFavoriteDir), ID_FAVORITES_EX);
- pLinks->SetCommandBar(pPopup);
- pPopup->InternalRelease();
- lpCreateControl->pControl = pLinks;
-
- return TRUE;
- }
- }
- else
- {
- if (lpCreateControl->nID == ID_FAVORITES_EX)
- {
- CString strFavoriteDir;
- CInetTools::GetFavoriteFolder(strFavoriteDir);
- lpCreateControl->pControl = new CControlFavoriteFolder(strFavoriteDir);
- return TRUE;
-
- }
- }
- if (lpCreateControl->nID == ID_VIEW_ENCODING)
- {
-
- CXTPControlPopup* pControl = CXTPControlPopup::CreateControlPopup(lpCreateControl->bToolBar? xtpControlButtonPopup: xtpControlPopup);
-
- CMenu menuPopup;
- menuPopup.CreatePopupMenu();
-
- LoadEncoding(&menuPopup);
-
- if (menuPopup.GetMenuItemCount())
- {
- menuPopup.InsertMenu(0, MF_BYPOSITION | MF_STRING, ID_VIEW_ENCODING_AUTOSELECT, _T("Auto Select"));
- menuPopup.InsertMenu(1, MF_BYPOSITION | MF_SEPARATOR);
-
-
- pControl->SetCommandBar(&menuPopup);
- pControl->SetFlags(xtpFlagManualUpdate);
- } else
- {
- CXTPPopupBar* pPopupBar = CXTPPopupBar::CreatePopupBar(GetCommandBars());
- pControl->SetCommandBar(pPopupBar);
- pPopupBar->InternalRelease();
- pControl->SetVisible(FALSE);
- }
-
- if (lpCreateControl->bToolBar)
- pControl->SetHideFlags(xtpHideCustomize);
- lpCreateControl->pControl = pControl;
- return TRUE;
- }
- return FALSE;
- }
- CWindowPlacement::CWindowPlacement(CWnd* pOwner, CString strEntry)
- {
- ASSERT(!strEntry.IsEmpty() && pOwner);
- m_pOwner = pOwner;
- m_strEntry = strEntry;
- }
- void CWindowPlacement::ShowWindow(int nCmdShow, BOOL bRestore)
- {
- if (bRestore )
- {
- WINDOWPLACEMENT* lpwndpl;
- UINT nBytes;
- if ( AfxGetApp()->GetProfileBinary( m_strEntry,
- _T("WndPlacement"), ( LPBYTE* )&lpwndpl, &nBytes ) )
- {
- // Only restore if window intersects the screen
- if ( CRect().IntersectRect(&lpwndpl->rcNormalPosition, CXTPWindowRect(GetDesktopWindow()) ) )
- {
- if (lpwndpl->showCmd == SW_MAXIMIZE)
- nCmdShow = SW_MAXIMIZE;
- m_pOwner->SetWindowPlacement( lpwndpl );
- }
- delete lpwndpl;
- }
- }
- m_pOwner->ShowWindow(nCmdShow);
- }
- void CWindowPlacement::SaveWindowPos()
- {
- WINDOWPLACEMENT wndpl = { sizeof(WINDOWPLACEMENT) };
- if ( m_pOwner->GetWindowPlacement( &wndpl ) )
- {
- AfxGetApp()->WriteProfileBinary( m_strEntry,
- _T("WndPlacement"), ( LPBYTE )&wndpl, wndpl.length );
- }
- }