AppBase::AppBase(AppListInterface * pList, QWidget *parent) : QWidget(parent) { setWindowFlags(Qt::FramelessWindowHint);//去掉标题栏 setGeometry(0,0,ui_app_width,ui_app_height); setBkgImage(":/images/mainbkg.png"); m_pList = pList; }
void CLeftView::selectItem(const int index) { currentSelectedItem = index; if (previousSelectedItem == currentSelectedItem) { return; } CConfigFrame *pConfigFrame=(CConfigFrame*) ((CMainSyncFrame*)AfxGetMainWnd())->pConfigFrame; if (currentSelectedItem == 0) { if ( (previousSelectedItem != -1) && ((CSyncSettings*)pConfigFrame->wndSplitter.GetPane(0,1))->saveSettings(false) ) { // stay to sync settings pane setBkgImage(1); lstConfig.SetSelectionMark(1); } else { // show account settings window pConfigFrame->wndSplitter.ReplaceView(0,1,RUNTIME_CLASS(CAccountSettings),CSize(100,100)); setBkgImage(0); } } else if (currentSelectedItem == 1) { if ( (previousSelectedItem != -1) && ((CAccountSettings*)pConfigFrame->wndSplitter.GetPane(0,1))->saveSettings(false) ) { // stay to account pane setBkgImage(0); lstConfig.SetSelectionMark(0); } else { // show settings pane pConfigFrame->wndSplitter.ReplaceView(0,1,RUNTIME_CLASS(CSyncSettings),CSize(100,100)); setBkgImage(1); } } }
void CLeftView::populateList() { CString s1; imgList.Create(32, 32, ILC_COLOR32, 0, 0); HICON ic1, ic2; ic1 = LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_ACCOUNT)); ic2 = LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_SYNC)); imgList.Add(ic1); imgList.Add(ic2); lstConfig.SetIconSpacing(64,36); // resize the list so it would have the same width as the window holding it if( ((CMainSyncFrame*)AfxGetMainWnd())->getDpiX() != 96) { // if it's normal 96dpi we leave as it is CRect rectLst,rectWnd; lstConfig.GetClientRect(rectLst); GetClientRect(rectWnd); lstConfig.SetWindowPos(&CWnd::wndTop, rectLst.TopLeft().x, rectLst.TopLeft().y, rectWnd.Width(), rectLst.Height(), SWP_SHOWWINDOW); } lstConfig.SetItemCount(2); lstConfig.SetImageList(&imgList, LVSIL_NORMAL); // uncomment this for OnGetDispInfo event lstConfig.SetCallbackMask(lstConfig.GetCallbackMask() | LVIS_SELECTED); s1.LoadString(IDS_ACCOUNT); lstConfig.InsertItem(0,s1, 0); s1.LoadString(IDS_SYNC); lstConfig.InsertItem(1,s1, 1); lstConfig.SetItemState(0, LVIS_SELECTED, LVIS_SELECTED); // Correct position of first item. POINT pt; pt.x = 15; pt.y = 10; lstConfig.SetItemPosition(0, pt); // Set bkground image on first item. setBkgImage(0); }
void CLeftView::OnLvnItemchangedLeftList(NMHDR *pNMHDR, LRESULT *pResult) { LPNMLISTVIEW pNMLV = reinterpret_cast<LPNMLISTVIEW>(pNMHDR); CConfigFrame *pConfigFrame=(CConfigFrame*) ((CMainSyncFrame*)AfxGetMainWnd())->pConfigFrame; // // First time // if (currentSelectedItem == -1) { currentSelectedItem = pNMLV->iItem; if (currentSelectedItem == 0) { pConfigFrame->wndSplitter.ReplaceView(0,1,RUNTIME_CLASS(CAccountSettings),CSize(100,100)); setBkgImage(0); } else if (currentSelectedItem == 1) { pConfigFrame->wndSplitter.ReplaceView(0,1,RUNTIME_CLASS(CAccountSettings),CSize(100,100)); setBkgImage(0); } return; } previousSelectedItem = currentSelectedItem; if(pNMLV->uNewState != 0) { currentSelectedItem = pNMLV->iItem; } else { // Not an event for a new state -> exit. return; } if (previousSelectedItem == currentSelectedItem) { // State not changed: nothing to do -> exit. return; } if (currentSelectedItem == 0) { if(! ((CSyncSettings*)pConfigFrame->wndSplitter.GetPane(0,1))->saveSettings(false)) { // stay to sync settings pane currentSelectedItem = 1; } else { // show account settings window pConfigFrame->wndSplitter.ReplaceView(0,1,RUNTIME_CLASS(CAccountSettings),CSize(100,100)); setBkgImage(0); } } else if (currentSelectedItem == 1) { if(! ((CAccountSettings*)pConfigFrame->wndSplitter.GetPane(0,1))->saveSettings(false)) { // stay to account pane currentSelectedItem = 0; } else { // show settings pane pConfigFrame->wndSplitter.ReplaceView(0,1,RUNTIME_CLASS(CSyncSettings),CSize(100,100)); setBkgImage(1); } } *pResult = 0; }