JobListCtrl.h. #1

  • //
  • guest/
  • YourUncleBob/
  • p4win/
  • main/
  • gui/
  • JobListCtrl.h.
  • View
  • Commits
  • Open Download .zip Download (5 KB)
//
// Copyright 1997 Nicholas J. Irias.  All rights reserved.
//
//

// JobListCtrl.h : header file
//

#ifndef __JOBLISTCTRL__
#define __JOBLISTCTRL__

#include "P4ListCtrl.h"
#include "P4Job.h"

// Note: this value must be <= MAX_P4OBJECTS_COLUMNS in P4ListCtrl.h
#define	MAX_JOBS_COLUMNS	16

class CJobListCtrl : public CP4ListCtrl
{
public:
	CJobListCtrl();           // protected constructor used by dynamic creation
	DECLARE_DYNCREATE(CJobListCtrl)

// Attributes
public:
	CString m_SpecText;
    int  m_PostListToChangeNum;
    HWND m_PostListToChangeWnd;

protected:
	CString m_ActiveJob;  // Name of job being edited or deleted
	BOOL m_NewJob;        // Does an edit operation refer to a new job
	BOOL m_Need2DoNew;	  // New Menuitem click still needs to be handled
	CString m_Spec;		  // Job Spec - gotten from OnP4JobSpecColumnNames()
	CP4Job *m_pNewSpec;
    CArray<int, int> m_ColCodes;
	CStringArray m_ColNames;	// Column names for the ListView
	CStringArray m_FieldNames;	// Names of the fields as given in the JobSpec
	CStringArray m_DesiredCols;	// Column names or numbers from Registry
	CStringArray m_SpecNames;	// Names of ALL the fields in the JobSpec
	BOOL m_FastJobs;			// True=>p4 jobs; FALSE=p4 -Ztag jobs
	BOOL m_FilterIncIntegs;		// True->p4 jobs -i
	CStringList m_FilterView;	// Files name(s) or path(s) for filtering
	CStringList m_StrList;		// Temp string list
	BOOL m_Need2CallOnJobConfigure;	// Need to call OnJobConfigure() after getting spec

	// Internal clipboard formats
	CLIPFORMAT m_CF_JOB;
	CLIPFORMAT m_CF_DEPOT;

	// Drag info stored in OnDragEnter
	UINT m_DragDataFormat;   // clipboard data format (also indicates source)
	DROPEFFECT m_DropEffect;

// Operations
public:
	void Clear();
	void EditTheSpec(CString *name);
	CString SetCaption( );

private:
	CString m_sFilter;
	void EditSpec();
	DWORD GetNumCols( void );
	BOOL GetFldNames( CStringArray & , const CString &spec );
	int GetFieldNbr( CString str, const CString &spec );
	LRESULT OnP4JobSpecColumnNames( WPARAM wParam, LPARAM lParam );
	BOOL m_bAlreadyGotColumns;
	void GetJobs( );
	void GetJobSpec( );


protected:
	BOOL TryDragDrop( );
	DROPEFFECT OnDragEnter(COleDataObject* pDataObject, DWORD dwKeyState, CPoint point); 
	DROPEFFECT OnDragOver(COleDataObject* pDataObject, DWORD dwKeyState, CPoint point); 
	BOOL OnDrop(COleDataObject* pDataObject, DROPEFFECT dropEffect, CPoint point); 
	void InsertJob(CP4Job *job, int index);
	void UpdateJob(CP4Job *job, int index);
	int FindJob(LPCTSTR jobName);
	CString GetSelectedJob();
	void OnJobEditspec(CString *jobname);
	inline CP4winApp *TheApp() { return (CP4winApp *) AfxGetApp(); }
	virtual BOOL OKToDelete( ) { return TRUE; }

	void PersistentJobFilter( REGSAM );

// Overrides

// Implementation
public:
	virtual ~CJobListCtrl();
	virtual int OnCompareItems(LPARAM lParam1, LPARAM lParam2, int subItem);
	void ViewUpdate() { OnViewUpdate(); }
protected:
#ifdef _DEBUG
	virtual void AssertValid() const;
	virtual void Dump(CDumpContext& dc) const;
#endif

	// Generated message map functions
public:
	afx_msg void OnViewUpdate();
	afx_msg void OnUpdateSetFilterJobs(CCmdUI* pCmdUI);
	afx_msg void OnUpdateClearFilterJobs(CCmdUI* pCmdUI);
protected:
	afx_msg void OnUpdateViewUpdate(CCmdUI* pCmdUI);
	afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
	afx_msg void OnUpdateJobDelete(CCmdUI* pCmdUI);
	afx_msg void OnJobDelete();
	afx_msg void OnUpdateJobEditspec(CCmdUI* pCmdUI);
	afx_msg void OnJobEditspec();
	afx_msg void OnDeleteitem(NMHDR* pNMHDR, LRESULT* pResult);
	afx_msg void OnUpdateJobDescribe(CCmdUI* pCmdUI);
	afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);

	afx_msg void OnUpdateJobSetFilter(CCmdUI* pCmdUI);
	afx_msg void OnJobSetFilter();
	afx_msg void OnUpdateJobRemovefilter(CCmdUI* pCmdUI);
	afx_msg void OnJobRemovefilter();
	afx_msg void OnUpdateJobSetFileFilter(CCmdUI* pCmdUI);
	afx_msg void OnJobSetFileFilter();
	afx_msg void OnJobSetFileFilterInteg();
	afx_msg void OnUpdateJobRemoveFileFilter(CCmdUI* pCmdUI);
	afx_msg void OnJobRemoveFileFilter();

	afx_msg void OnUpdateJobNew(CCmdUI* pCmdUI);
	afx_msg void OnJobNew() ;
	afx_msg void OnUpdateJobConfigure(CCmdUI* pCmdUI);
	afx_msg void OnJobConfigure();
	afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
	afx_msg void OnPerforceOptions();
	LRESULT OnP4JobSpec(WPARAM wParam, LPARAM lParam);
	LRESULT OnP4EndSpecEdit(WPARAM wParam, LPARAM lParam);
	LRESULT OnP4JobList(WPARAM wParam, LPARAM lParam);
    LRESULT OnQueryJobs( WPARAM wParam, LPARAM lParam );
    LRESULT OnQueryJobSpec( WPARAM wParam, LPARAM lParam );
    LRESULT OnQueryJobFields( WPARAM wParam, LPARAM lParam );
	LRESULT OnQueryJobColumns( WPARAM wParam, LPARAM lParam );
	LRESULT OnQueryJobSelection( WPARAM wParam, LPARAM lParam );
    LRESULT OnFetchJobs( WPARAM wParam, LPARAM lParam );
	LRESULT OnJobFilter2( WPARAM wParam, LPARAM lParam );
	LRESULT OnClear( WPARAM wParam, LPARAM lParam );

public:
	void OnDescribeJob();
	void OnJobFilter3() { OnJobSetFilter(); }

	DECLARE_MESSAGE_MAP()
};

#endif //__JOBLISTCTRL__
/////////////////////////////////////////////////////////////////////////////
# Change User Description Committed
#1 19924 YourUncleBob Populate -o //guest/perforce_software/p4win/...
//guest/YourUncleBob/p4win/.....
//guest/perforce_software/p4win/main/gui/JobListCtrl.h
#1 16169 perforce_software Move files to follow new path scheme for branches.
//guest/perforce_software/p4win/gui/JobListCtrl.h
#1 8562 Matt Attaway These feet never stop running.

Initial commit of the P4Win source code.  To the best of our knowledge this
compiles and runs using the 2013.3 P4 API and VS 2010. Expect a few changes
as we refine the build process. Please post any build issues to the forums.