|
/************************************************************************
*
* Resource ID Organiser Core Library
*
* (c) Copyright 2000-2004 by Riverblade Limited (UK). All rights reserved.
*
************************************************************************
*
* Description : CResOrgSymbolsListView - list view class for a resource
* symbol file
*
* Target
* Environment : Windows 98/NT/2000/XP
*
* NOTE:
*
* This software is provided "as is". All title and copyrights in and
* to the software, including but not limited to any images, text etc.
* etc. incorporated into it, are the property of Anna-Jayne Metcalfe
* and Riverblade Limited, except where acknowledged otherwise.
*
* Your may freely use this code in your own products, PROVIDED
* this notice is not removed or modified.
*
* For support and updates please visit http://www.riverblade.co.uk/products/resorg
* or email support@riverblade.co.uk
*
************************************************************************
*
* MODIFICATION HISTORY:
*
* This is a controlled document. See project configuration
* control tool for latest version and full version history.
*
* $Archive: /Projects/AddIns/ResOrg/ResOrgCore/ResOrgSymbolsListView.h $
* $Revision: 20 $
* $Date: 13/12/04 3:58 $
* $Author: Anna $
*
* $History: ResOrgSymbolsListView.h $
*
* ***************** Version 20 *****************
* User: Anna Date: 13/12/04 Time: 3:58
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* 1. Modifications fo compatibility with dynamic splitters
* 2. Updated file banners
*
* ***************** Version 19 *****************
* User: Anna Date: 29/08/04 Time: 21:16
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* CResourceSymbolsListView::OnCmdSymbolProperties() now allows the
* command to continue routing if there isn't a single selection...this
* allows CResOrgSymbolsDoc to handle it to display Symbol File properties
* instead.
*
* ***************** Version 18 *****************
* User: Anna Date: 11/07/04 Time: 16:17
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* Added support for detection of out of range symbols
*
* ***************** Version 17 *****************
* User: Anna Date: 2/06/04 Time: 22:56
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* Added "Next Conflict" and "Previous Conflict" commands
*
* ***************** Version 16 *****************
* User: Anna Date: 15/04/03 Time: 20:39
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* 1. Removed unnecessary file guards (#pragma once works well enough)
* 2. Updated file banners
*
* ***************** Version 15 *****************
* User: Anna Date: 15/02/03 Time: 20:48
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* Changed big BOOLs into little bools
*
* ***************** Version 14 *****************
* User: Anna Date: 3/01/03 Time: 15:52
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* Disabled the "Add Symbol" command if the view is multi-file. This ay be
* temporary - wait and see
*
* ***************** Version 13 *****************
* User: Anna Date: 2/01/03 Time: 23:54
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* Added filtering to the Symbols Display
*
* ***************** Version 12 *****************
* User: Anna Date: 25/11/02 Time: 15:14
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* Changed website address in banner
*
* ***************** Version 11 *****************
* User: Anna Date: 22/10/02 Time: 13:24
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* Changed name/mail address (at last!)
*
* ***************** Version 10 *****************
* User: Andy Date: 7/06/02 Time: 17:04
* Updated in $/Projects/AddIns/ResOrg/ResOrgCore
* Renamed the ResOrgUtils module to ResOrgCore. Updated file banners
* accordingly
*
* ***************** Version 9 *****************
* User: Andy Date: 27/05/02 Time: 14:51
* Updated in $/Projects/AddIns/ResOrg/ResOrgUtils
* Knock on changes from CResourceSymbolBuffer (now
* CResourceSymbolManager) and CResourceSymbol
*
* ***************** Version 8 *****************
* User: Andy Date: 12/29/01 Time: 6:26p
* Updated in $/Projects/AddIns/ResOrg/ResOrgUtils
* Added "Restore Original Value" command
*
* ***************** Version 7 *****************
* User: Andy Date: 15/08/01 Time: 13:37
* Updated in $/Projects/AddIns/ResOrg/ResOrgUtils
* Added a "Fix Conflicts" context menu command
*
* ***************** Version 6 *****************
* User: Andy Date: 22/06/01 Time: 9:50
* Updated in $/Projects/AddIns/ResOrg/ResOrgUtils
* Made class declaration "Rose friendly"
*
* ***************** Version 5 *****************
* User: Andy Date: 26/05/01 Time: 15:23
* Updated in $/Projects/AddIns/ResOrg/ResOrgUtils
* Added OnHelpHitTest() override
*
* ***************** Version 4 *****************
* User: Andy Date: 2/04/01 Time: 17:40
* Updated in $/Projects/AddIns/ResOrg/ResOrgUtils
* Added "Autosize Columns" context menu entry
*
* ***************** Version 3 *****************
* User: Andy Date: 17/02/01 Time: 7:00
* Updated in $/Projects/AddIns/ResOrg/ResOrgUtils
* 1. Moved generic list control code into a new class
* (CResOrgSymbolsListCtrl)
* 2. Class renamed for consistancy
* 3. Added a "Status" column
* 4. Show modified symbols in blue, and read-only symbols in grey
* [handled by CResOrgSymbolsListCtrl]
* 5. Use new wrapper methods in the document to manipulate its
* CResourceSymbolBuffer object rather than accessing it directly. This
* allows most of the view hints to be moved to the document
*
* ***************** Version 2 *****************
* User: Andy Date: 29/11/00 Time: 18:38
* Updated in $/Projects/AddIns/ResOrg/ResOrgUtils
* Added file banners
*
* $Nokeywords: $
*
************************************************************************/
#pragma once
class CResOrgSymbolsDoc;
class CResourceSymbol;
#include "ResOrgSymbolsListCtrl.h"
#define CResOrgSymbolsListView_BASE CView
class RESORGCORE_EXT_CLASS CResOrgSymbolsListView : public CView
{
DECLARE_DYNCREATE(CResOrgSymbolsListView)
protected: // create from serialization only
CResOrgSymbolsListView(void);
virtual ~CResOrgSymbolsListView(void);
// Attributes
protected:
CResOrgSymbolsListCtrl m_ctrlSymbols;
BOOL m_bInitialised;
int m_nLastHPos;
int m_nLastVPos;
// Operations
public:
CResOrgSymbolsDoc* GetDocument(void);
// Virtual Overrides
public:
virtual void OnDraw(CDC* pDC); // overridden to draw this view
virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
protected:
virtual void OnInitialUpdate(void); // called first time after construct
virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
virtual void OnUpdate(CView* pSender, LPARAM lHint, CObject* pHint);
// Implementation
public:
#ifdef _DEBUG
virtual void AssertValid(void) const;
virtual void Dump(CDumpContext& dc) const;
#endif
void Initialise(void);
protected:
void ConfigureScrollbars(void);
BOOL ConfirmDelete(const CString& sSymbol = _T("") ) const;
BOOL IsValueUnique( CResourceSymbol* pSymbol,
UINT uValue);
// Message handlers
protected:
afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
afx_msg void OnSize(UINT nType, int cx, int cy);
afx_msg void OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
afx_msg void OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar);
afx_msg LRESULT OnMsgSetScrollInfo(WPARAM wParam, LPARAM lParam);
afx_msg void OnContextMenu(CWnd* pWnd, CPoint point);
afx_msg void OnCmdAutosizeColumns(void);
afx_msg void OnCmdShowProblemSymbolsOnly(void);
afx_msg void OnUpdateShowProblemSymbolsOnly(CCmdUI* pCmdUI);
afx_msg void OnCmdEditSelectAll(void);
afx_msg void OnUpdateEditSelectAll(CCmdUI* pCmdUI);
afx_msg BOOL OnCmdSymbolProperties(UINT nID = 0);
afx_msg void OnCmdAddSymbol(void);
afx_msg void OnUpdateAddSymbol(CCmdUI* pCmdUI);
afx_msg void OnCmdDeleteSymbol(void);
afx_msg void OnUpdateDeleteSymbol(CCmdUI* pCmdUI);
afx_msg void OnCmdRestoreOriginalValue(void);
afx_msg void OnUpdateRestoreOriginalValue(CCmdUI* pCmdUI);
afx_msg void OnCmdFixSymbolValue(void);
afx_msg void OnUpdateFixSymbolValue(CCmdUI* pCmdUI);
afx_msg void OnCmdPreviousProblemSymbol(void);
afx_msg void OnUpdatePreviousProblemSymbol(CCmdUI* pCmdUI);
afx_msg void OnCmdNextProblemSymbol(void);
afx_msg void OnUpdateNextProblemSymbol(CCmdUI* pCmdUI);
afx_msg LRESULT OnHelpHitTest(WPARAM, LPARAM);
afx_msg void OnItemChangedListCtrl(NMHDR* pNMHDR, LRESULT* pResult);
afx_msg void OnDblClickListCtrl(NMHDR* pNMHDR, LRESULT* pResult);
DECLARE_MESSAGE_MAP()
};
#ifndef _DEBUG // debug version in ResourceOrganiserView.cpp
inline CResOrgSymbolsDoc* CResOrgSymbolsListView::GetDocument()
{ return (CResOrgSymbolsDoc*)m_pDocument; }
#endif
|
By viewing downloads associated with this article you agree to the Terms of Service and the article's licence.
If a file you wish to view isn't highlighted, and is a text file (not binary), please
let us know and we'll add colourisation support for it.
I haven't always written software for a living. When I graduated from Surrey University in 1989, it was with an Electronic Engineering degree, but unfortunately that never really gave me the opportunity to do anything particularly interesting (with the possible exception of designing
Darth Vader's Codpiece * for the UK Army in 1990).
* Also known as the Standard Army Bootswitch. But that's another story...
Since the opportunity arose to lead a software team developing C++ software for
Avionic Test Systems in 1996, I've not looked back. More recently I've been involved in the development of subsea acoustic navigation systems, digital TV broadcast systems, port security/tracking systems, and most recently software development tools with my own company,
Riverblade Ltd.
One of my personal specialities is IDE plug-in development.
ResOrg was my first attempt at a plug-in, but my day to day work is with
Visual Lint, an interactive code analysis tool environment with works within the Visual Studio and Eclipse IDEs or on build servers.
I love lots of things, but particularly music, photography and anything connected with history or engineering. I
despise ignorant, intolerant and obstructive people - and it shows...I can be a bolshy cow if you wind me up the wrong way...
I'm currently based 15 minutes walk from the beach in Bournemouth on the south coast of England. Since I moved here I've grown to love the place - even if it is full of grockles in Summer!