📄 mainfrm.cpp
字号:
}
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 + -