// // Copyright 1997 Nicholas J. Irias. All rights reserved. // // // JobView.cpp : implementation file // #include "stdafx.h" #include "p4win.h" #include "JobView.h" #include "MainFrm.h" #include "ImageList.h" #ifdef _DEBUG #define new DEBUG_NEW #undef THIS_FILE static char THIS_FILE[] = __FILE__; #endif ///////////////////////////////////////////////////////////////////////////// // CJobView IMPLEMENT_DYNCREATE(CJobView, CP4PaneView) BEGIN_MESSAGE_MAP(CJobView, CP4PaneView) ON_NOTIFY(TBN_DROPDOWN, AFX_IDW_TOOLBAR, OnDropDown) ON_UPDATE_COMMAND_UI(ID_SETFILTER_JOBS, OnUpdateSetFilterJobs) ON_UPDATE_COMMAND_UI(ID_CLEARFILTER_JOBS, OnUpdateClearFilterJobs) END_MESSAGE_MAP() CJobView::CJobView() { m_content = &m_jobListCtrl; } CJobView::~CJobView() {} bool CJobView::CreateContent() { if(!m_jobListCtrl.Create( WS_CHILD | WS_VISIBLE, CRect(0, 0, 10, 10), this, 1)) return false; return true; } void CJobView::SetToolBarButtons() { m_toolBar.SetButtons(NULL, 4); m_toolBar.SetButtonInfo(0, ID_VIEW_UPDATE_RIGHT, TBBS_BUTTON, CP4WinToolBarImageList::TBI_REFRESH); m_toolBar.SetButtonInfo(1, ID_SETFILTER_JOBS, TBBS_DROPDOWN, CP4WinToolBarImageList::TBI_SETFILTER); m_toolBar.SetButtonInfo(2, ID_CLEARFILTER_JOBS, TBBS_DROPDOWN, CP4WinToolBarImageList::TBI_CLEARFILTER); m_toolBar.SetButtonInfo(3, ID_JOB_CONFIGURE, TBBS_BUTTON, CP4WinToolBarImageList::TBI_COLUMNS); if (MainFrame()->m_osVer.dwMajorVersion >= 5 && MainFrame()->m_IconsInMenus) MainFrame()->SaveToolBarBitmap(CP4WinToolBarImageList::TBI_COLUMNS, ID_JOB_CONFIGURE); } void CJobView::OnUpdateSetFilterJobs(CCmdUI* pCmdUI) { ((CJobListCtrl *)GetContentWnd())->OnUpdateSetFilterJobs(pCmdUI); } void CJobView::OnUpdateClearFilterJobs(CCmdUI* pCmdUI) { ((CJobListCtrl *)GetContentWnd())->OnUpdateClearFilterJobs(pCmdUI); } void CJobView::OnDropDown(NMHDR* pNotifyStruct, LRESULT* pResult) { // this function handles the dropdown menus from the toolbar NMTOOLBAR* pNMToolBar = (NMTOOLBAR*)pNotifyStruct; CRect rect; // translate the current toolbar item rectangle into screen coordinates // so that we'll know where to pop up the menu m_toolBar.GetToolBarCtrl().GetRect(pNMToolBar->iItem, &rect); rect.top = rect.bottom; ::ClientToScreen(pNMToolBar->hdr.hwndFrom, &rect.TopLeft()); CMenu menu; switch(pNMToolBar->iItem) { case ID_SETFILTER_JOBS: menu.LoadMenu(IDR_SETFILTER_JOB); if (!GET_P4REGPTR()->GetEnableSubChgIntegFilter()) menu.DeleteMenu(ID_JOB_SETFILEFILTERINTEG, MF_BYCOMMAND); break; case ID_CLEARFILTER_JOBS: menu.LoadMenu(IDR_CLEARFILTER_JOB); break; default: MainFrame()->OnDropDown(pNotifyStruct, pResult); return; } menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, rect.left, rect.top + 1, AfxGetMainWnd()); *pResult = TBDDRET_DEFAULT; } void CJobView::LButtonDblClk() { ((CJobListCtrl *)GetContentWnd())->OnJobFilter3(); }