Click here to Skip to main content
15,896,606 members
Articles / Desktop Programming / MFC

The Ultimate Toolbox - Updates and User Contributions

Rate me:
Please Sign up or sign in to vote.
4.79/5 (26 votes)
12 Feb 2013CPOL8 min read 256.7K   23.7K   170  
Updates and User Contributions for the Ultimate Toolbox Libraries
/*************************************************************************
				Class Declaration : CUGCTAutoSize
**************************************************************************
	Source file : UGCTAutoSize.cpp
	Header file : UGCTAutoSize.h
// This software along with its related components, documentation and files ("The Libraries")
// is � 1994-2007 The Code Project (1612916 Ontario Limited) and use of The Libraries is
// governed by a software license agreement ("Agreement").  Copies of the Agreement are
// available at The Code Project (www.codeproject.com), as part of the package you downloaded
// to obtain this file, or directly from our office.  For a copy of the license governing
// this software, you may contact us at legalaffairs@codeproject.com, or by calling 416-849-8900.

	Purpose:
		The CUGCTAutoSize celltype extends the standard celltype providing
		funcitonality to size its cell to make sure that cell's data is
		visible in full.  It will not make columns or rows smaller,
		but it will enlarge them whenever needed.
	
	Details:
		This celltype does not send any notifications to the CUGCtrl derived
		classes.
*************************************************************************/
#ifndef _UGCTMail_H_
#define _UGCTMail_H_

#include <time.h>


class UG_CLASS_DECL CUGCTMail: public CUGCellType
{
public:

	struct mailItem
	{
		mailItem::mailItem()
		{
			leftIcon = -1;
			sender = "";
			dateString = "";
			subject = "";
			rightIcon = -1;
			isRead = false;
			mail = "";
			size = 0;
			attachmentPath = "";
			didParseOK = false;
		}

		int		leftIcon;
		CString sender;
		CString dateString;
		CString subject;
		int		rightIcon;
		bool	isRead;
		CString	mail;
		CTime	date;
		bool	didParseOK;
		CString	attachmentPath; // "" == no attachment
		int		size;
	};

protected:

public:
	CUGCTMail();
	~CUGCTMail();
	
	enum AddToImageList { left, right};
	int AddImage(CBitmap * bmp, AddToImageList addTo, COLORREF mask = RGB(255, 0,255));
	bool AddImageList(UINT resourceID, int width, AddToImageList addTo, COLORREF mask = RGB(255, 0,255));

	void SetAttachmentImage(HBITMAP img) { m_attachmentImage.Attach(img); }

	int  GetDefaultFlagIndex() { return m_defaultFlagIndex; }
	void SetDefaultFlagIndex(int flag) { m_defaultFlagIndex = flag; }
	void SetCheckIndex(int check) { m_checkIndex = check; }
	bool DoesTextFit(mailItem item, int col = 0);

	static mailItem ParseString(CUGCell * cell);
	static void SetString(mailItem item, int col, int row, CUGCell * cell, CUGCtrl * ctrl);
private:
	void SetString(mailItem item, int col, int row, CUGCell * cell);

	// Overrides
	virtual BOOL OnLClicked(int col,long row,int updn,RECT *rect,POINT *point);
	virtual BOOL OnRClicked(int col,long row,int updn,RECT *rect,POINT *point);
	virtual void OnDraw(CDC *dc,RECT *rect,int col,long row,CUGCell *cell,int selected,int current);

	// member variables
	CBrush		m_whiteBrush;
	CPen		m_bluePen;
	CBrush		m_blueBrush;
	CFont		m_fontNormal;
	CFont		m_fontBold;

	CImageList	m_leftImages;
	CImageList	m_rightImages;

	int			m_defaultFlagIndex;
	int			m_checkIndex;

	CBitmap		m_attachmentImage;
};

#endif // _UGCTMail_H_

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.

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


Written By
Web Developer
Canada Canada
In January 2005, David Cunningham and Chris Maunder created TheUltimateToolbox.com, a new group dedicated to the continued development, support and growth of Dundas Software’s award winning line of MFC, C++ and ActiveX control products.

Ultimate Grid for MFC, Ultimate Toolbox for MFC, and Ultimate TCP/IP have been stalwarts of C++/MFC development for a decade. Thousands of developers have used these products to speed their time to market, improve the quality of their finished products, and enhance the reliability and flexibility of their software.
This is a Organisation

476 members

Comments and Discussions