⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainfrm.cpp

📁 beereader source code
💻 CPP
📖 第 1 页 / 共 3 页
字号:
}

void CMainFrame::OnUpdateChannelUpdateall(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	
}

void CMainFrame::OnChannelUpdate() 
{
	// TODO: Add your command handler code here
	CBeeReaderApp*  pApp = (CBeeReaderApp*)AfxGetApp();
    ASSERT(pApp);
    CNewsGroup* pNewsGroup = pApp->GetNewsGroup();
 	ASSERT(pNewsGroup);

	HTREEITEM  hItem = GetNewsTree()->GetSelectedItem();
	if( hItem == NULL ) return;
		
	PGROUPNODE pNode = (PGROUPNODE)GetNewsTree()->GetItemData(hItem);
	if( pNode->dwData != 0 ) 
	{
        UpdateChannel(pNode,TRUE);
	}
}

void CMainFrame::OnChannelUpdateall() 
{
	// TODO: Add your command handler code here
	CBeeReaderApp*  pApp = (CBeeReaderApp*)AfxGetApp();
    ASSERT(pApp);
    CNewsGroup* pNewsGroup = pApp->GetNewsGroup();
 	ASSERT(pNewsGroup);

	HTREEITEM  hItem = GetNewsTree()->GetSelectedItem();
	if( hItem == NULL ) return;
		
	PGROUPNODE pNode = (PGROUPNODE)GetNewsTree()->GetItemData(hItem);
	if( pNode->dwData == 0 ) 
	    UpdateChannel(pNode->pFirstChild);        	
	else
		UpdateChannel(pNode,TRUE);
}

void CMainFrame::UpdateChannel(PGROUPNODE pNode,BOOL bAll)
{
   	if( !pNode ) return;
    
    if( pNode->dwData != 0 )
	{
        PCHANNELDATA data = (PCHANNELDATA)pNode->dwData;
		if( data->iUpdateing <= 0 )
		{
			if( pRSSManager->Update(data->pChannel, FALSE) == 1 )
			   GetNewsTree()->SendMessage(WM_UPDATE_CHANNEL,1,(LPARAM)data->pChannel);
		}
		if( bAll ) return;
	}
	
	if( pNode->pNextSibling != pNode->pParentNode->pFirstChild ) 	
		UpdateChannel( pNode->pNextSibling);		
	
	if( pNode->pFirstChild ) 
		UpdateChannel( pNode->pFirstChild);
		
}

void CMainFrame::OnTimer(UINT nIDEvent) 
{
	// TODO: Add your message handler code here and/or call default
	CBeeReaderApp*  pApp = (CBeeReaderApp*)AfxGetApp();
    ASSERT(pApp);
    CNewsGroup* pNewsGroup = pApp->GetNewsGroup();
 	ASSERT(pNewsGroup);
	PGROUPNODE pNode = pNewsGroup->GetRootNode()->pNextSibling;
	PCHANNELDATA data;
	while( pNode )
	{
	   data = (PCHANNELDATA)pNode->dwData;
	   if( data )
	   {
		  if( data->iUpdateing <= 0 )
		  {
			if( pRSSManager->Update(data->pChannel, TRUE) == 1 )
				GetNewsTree()->SendMessage(WM_UPDATE_CHANNEL,1,(LPARAM)data->pChannel);
		  }
	   }
	   pNode = pNode->pNextNode;
	}

	CXTFrameWnd::OnTimer(nIDEvent);
}

void CMainFrame::OnClose() 
{
	if( m_WorkingChannel )
	{
	     if( m_WorkingChannel->GetSaveTag() )
		 {
		     pRSSManager->GetWriter()->Save( m_WorkingChannel,m_WorkingChannel->GetCacheGUID() ); 
		 	 m_WorkingChannel = NULL;
		 }
	}

	if( m_iSuspendWriterThread == 1 )
	{
        m_bCloseSystem = TRUE;
		return;
	}
	// TODO: Add your message handler code here and/or call default
	CXTFrameWnd::OnClose();
}

BOOL CMainFrame::DestroyWindow() 
{
	// TODO: Add your specialized code here and/or call the base class
	return CXTFrameWnd::DestroyWindow();
}

void CMainFrame::OnDestroy() 
{
	CXTFrameWnd::OnDestroy();
	
	// TODO: Add your message handler code here

}

LRESULT CMainFrame::OnSuspendWriterThread(WPARAM wParam,LPARAM lParam)
{
    m_iSuspendWriterThread = (int)wParam;
	if( m_iSuspendWriterThread == 2 )
	{
		CRSSChannel* pChannel = (CRSSChannel*)lParam;
		ASSERT(pChannel);

		pChannel->SetSaveTag(FALSE);
	}
	else if( m_iSuspendWriterThread == 3 && m_bCloseSystem )
	{
	      SendMessage(WM_CLOSE,0,0);
		  AfxMessageBox("现在可以安全退出系统");
	}

	return 0;
}

void CMainFrame::OnChannelProp() 
{
	// TODO: Add your command handler code here
	HTREEITEM  hItem = GetNewsTree()->GetSelectedItem();
	if( hItem == NULL ) return;
		
	PGROUPNODE pNode = (PGROUPNODE)GetNewsTree()->GetItemData(hItem);
	if( pNode->dwData ==0 ) return;
	PCHANNELDATA  pData = (PCHANNELDATA)pNode->dwData;

	if( pData->pChannel )
	{
	    CChannelPropSheet sheet(pNode,_T("频道属性"));
	    sheet.DoModal(); 
	}
}

void CMainFrame::OnUpdateChannelProp(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	HTREEITEM  hItem = GetNewsTree()->GetSelectedItem();
	if( hItem == NULL ) { pCmdUI->Enable(FALSE); return; }
		
	PGROUPNODE pNode = (PGROUPNODE)GetNewsTree()->GetItemData(hItem);
	if( pNode->dwData ==0 )  { pCmdUI->Enable(FALSE); return; }
	PCHANNELDATA  pData = (PCHANNELDATA)pNode->dwData;

	if( pData->pChannel )
	   pCmdUI->Enable(TRUE);
	else
	   pCmdUI->Enable(FALSE);	
}

void CMainFrame::OnRename() 
{
	// TODO: Add your command handler code here
	HTREEITEM  hItem = GetNewsTree()->GetSelectedItem();
	if( hItem == NULL ) return;

	GetNewsTree()->EditLabel(hItem);
}

void CMainFrame::OnToolsOption() 
{
	// TODO: Add your command handler code here

}

void CMainFrame::OnSize(UINT nType, int cx, int cy) 
{
	CXTFrameWnd::OnSize(nType, cx, cy);
	
	// TODO: Add your message handler code here

}

BOOL CMainFrame::OnCommand(WPARAM wParam, LPARAM lParam) 
{
	// TODO: Add your specialized code here and/or call the base class

	return CXTFrameWnd::OnCommand(wParam, lParam);
}
/*************************************************************
 *  隐藏/显示频道树、项列表和浏览器窗口函数。
 ************************************************************/
void CMainFrame::OnViewHidelist() 
{
	// TODO: Add your command handler code here
	if( m_bHideListView )
	{
		m_wndSplit.ShowRow();
	}
	else
	{
		m_wndSplit.HideRow(0);
	}

	m_bHideListView = !m_bHideListView;
	m_wndSplit.RecalcLayout();
}

void CMainFrame::OnUpdateViewHidelist(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->SetCheck( m_bHideListView ? 0 : 1 );
}
void CMainFrame::OnViewRssnav() 
{
	// TODO: Add your command handler code here
	if( m_wndTabDockBar.IsWindowVisible() )
		m_wndTabDockBar.ShowWindow(SW_HIDE);
	else
		m_wndTabDockBar.ShowWindow(SW_SHOW	);
}

void CMainFrame::OnUpdateViewRssnav(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->SetCheck( m_wndTabDockBar.IsWindowVisible() ? 1 : 0 );
}

void CMainFrame::OnViewBrowser() 
{
	// TODO: Add your command handler code here
	if( m_bHideBrowser )
	{
		m_wndSplit.ShowRow();
	}
	else
	{
		m_wndSplit.HideRow(1);
	}

	m_bHideBrowser = !m_bHideBrowser;
	m_wndSplit.RecalcLayout();
}

void CMainFrame::OnUpdateViewBrowser(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	pCmdUI->SetCheck( m_bHideBrowser ? 0 : 1 );
}

/*************************************************************
 * 设置与项列表有关的菜单项
**************************************************************/

void CMainFrame::OnMarkAllItem(CCmdUI* pCmdUI)
{
    if( GetListCtrl()->GetItemCount() <= 0 )
        pCmdUI->Enable(FALSE);
	else
	{
		if( pCmdUI->m_nID == IDM_LIST_FLAGREAD || pCmdUI->m_nID == IDM_LIST_FLAGRED )
		{
			if( GetListCtrl()->GetSelectedCount()<=0 )
	            pCmdUI->Enable(FALSE);
		    else
	            pCmdUI->Enable(TRUE);
		}
		else  pCmdUI->Enable(TRUE);
	}
}

void CMainFrame::OnRemoveItem(CCmdUI* pCmdUI)
{
    if( GetListCtrl()->GetItemCount() <= 0 )
        pCmdUI->Enable(FALSE);
	else
	{
		if( pCmdUI->m_nID == IDM_LIST_DELETE_01 && GetListCtrl()->GetSelectedCount()<=0 )
	        pCmdUI->Enable(FALSE);
		else
	        pCmdUI->Enable(TRUE);
	}
}	  

void CMainFrame::OnFilterItem(CCmdUI* pCmdUI)
{
     CBeeReaderView* pView = (CBeeReaderView*)GetListCtrl();
	 ASSERT(pView);

	 int i = pCmdUI->m_nID - IDM_LIST_FILTER_01;
	 if( i >=0 && i< 10 )
	 {
	     if( i == pView->m_iFilter )
			 pCmdUI->SetCheck(TRUE);
		 else
			 pCmdUI->SetCheck(FALSE);
	 }
}

void CMainFrame::OnSortItem(CCmdUI* pCmdUI)
{
    CBeeReaderView* pView = (CBeeReaderView*)GetListCtrl();
	ASSERT(pView);

	switch ( pCmdUI->m_nID )
	{
	   case IDM_LIST_SORT_ASC:
		   if( pView->m_bAscending ) pCmdUI->SetCheck(TRUE);
		   else pCmdUI->SetCheck(FALSE);
		   break;
	   case IDM_LIST_SORT_DES:
		   if( !pView->m_bAscending ) pCmdUI->SetCheck(TRUE);
		   else pCmdUI->SetCheck(FALSE);		   
		   break;
	   case IDM_LIST_SORTS_01:
		   if( pView->m_nSortedCol==0 ) pCmdUI->SetCheck(TRUE);
		   else pCmdUI->SetCheck(FALSE);
		   break;
       case IDM_LIST_SORTS_02:
		   if( pView->m_nSortedCol==1 ) pCmdUI->SetCheck(TRUE);
		   else pCmdUI->SetCheck(FALSE);
		   break;
       case IDM_LIST_SORTS_03:
		   if( pView->m_nSortedCol==2 ) pCmdUI->SetCheck(TRUE);
		   else pCmdUI->SetCheck(FALSE);
		   break;
       case IDM_LIST_SORTS_04:
		   if( pView->m_nSortedCol==3 ) pCmdUI->SetCheck(TRUE);
		   else pCmdUI->SetCheck(FALSE);
		   break;
       default:break;
	}
}

void CMainFrame::OnUpdateListBrowse(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	if( GetListCtrl()->GetSelectedCount()<=0 )
		pCmdUI->Enable(FALSE);
	else pCmdUI->Enable(TRUE);
}

void CMainFrame::OnUpdateListView(CCmdUI* pCmdUI) 
{
	// TODO: Add your command update UI handler code here
	if( GetListCtrl()->GetSelectedCount()<=0 )
		pCmdUI->Enable(FALSE);
	else pCmdUI->Enable(TRUE);
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -