[Date Prev][Date Next][Thread Prev][Thread Next][Thread Index]

[XaraXtreme-commits] Commit Complete



Commit by  : luke
Repository : xara
Revision   : 1766
Date       : Wed Jan 31 12:39:18 GMT 2007

Changed paths:
   A /Trunk/XaraLX/wxOil/fileinfolist.cpp
   A /Trunk/XaraLX/wxOil/fileinfolist.h

Add missing files from Mikhail's submission


Diff:
Index: Trunk/XaraLX/wxOil/fileinfolist.h
===================================================================
--- Trunk/XaraLX/wxOil/fileinfolist.h	(revision 0)
+++ Trunk/XaraLX/wxOil/fileinfolist.h	(revision 1766)
@@ -0,0 +1,162 @@
+// $Id: customlist.h 1080 2006-05-16 13:24:45Z alex $
+/* @@tag:xara-cn@@ DO NOT MODIFY THIS LINE
+================================XARAHEADERSTART===========================
+ 
+               Xara LX, a vector drawing and manipulation program.
+                    Copyright (C) 1993-2006 Xara Group Ltd.
+       Copyright on certain contributions may be held in joint with their
+              respective authors. See AUTHORS file for details.
+
+LICENSE TO USE AND MODIFY SOFTWARE
+----------------------------------
+
+This file is part of Xara LX.
+
+Xara LX is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License version 2 as published
+by the Free Software Foundation.
+
+Xara LX and its component source files are distributed in the hope
+that it will be useful, but WITHOUT ANY WARRANTY; without even the
+implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with Xara LX (see the file GPL in the root directory of the
+distribution); if not, write to the Free Software Foundation, Inc., 51
+Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+
+
+ADDITIONAL RIGHTS
+-----------------
+
+Conditional upon your continuing compliance with the GNU General Public
+License described above, Xara Group Ltd grants to you certain additional
+rights. 
+
+The additional rights are to use, modify, and distribute the software
+together with the wxWidgets library, the wxXtra library, and the "CDraw"
+library and any other such library that any version of Xara LX relased
+by Xara Group Ltd requires in order to compile and execute, including
+the static linking of that library to XaraLX. In the case of the
+"CDraw" library, you may satisfy obligation under the GNU General Public
+License to provide source code by providing a binary copy of the library
+concerned and a copy of the license accompanying it.
+
+Nothing in this section restricts any of the rights you have under
+the GNU General Public License.
+
+
+SCOPE OF LICENSE
+----------------
+
+This license applies to this program (XaraLX) and its constituent source
+files only, and does not necessarily apply to other Xara products which may
+in part share the same code base, and are subject to their own licensing
+terms.
+
+This license does not apply to files in the wxXtra directory, which
+are built into a separate library, and are subject to the wxWindows
+license contained within that directory in the file "WXXTRA-LICENSE".
+
+This license does not apply to the binary libraries (if any) within
+the "libs" directory, which are subject to a separate license contained
+within that directory in the file "LIBS-LICENSE".
+
+
+ARRANGEMENTS FOR CONTRIBUTION OF MODIFICATIONS
+----------------------------------------------
+
+Subject to the terms of the GNU Public License (see above), you are
+free to do whatever you like with your modifications. However, you may
+(at your option) wish contribute them to Xara's source tree. You can
+find details of how to do this at:
+  http://www.xaraxtreme.org/developers/
+
+Prior to contributing your modifications, you will need to complete our
+contributor agreement. This can be found at:
+  http://www.xaraxtreme.org/developers/contribute/
+
+Please note that Xara will not accept modifications which modify any of
+the text between the start and end of this header (marked
+XARAHEADERSTART and XARAHEADEREND).
+
+
+MARKS
+-----
+
+Xara, Xara LX, Xara X, Xara X/Xtreme, Xara Xtreme, the Xtreme and Xara
+designs are registered or unregistered trademarks, design-marks, and/or
+service marks of Xara Group Ltd. All rights in these marks are reserved.
+
+
+      Xara Group Ltd, Gaddesden Place, Hemel Hempstead, HP2 6EX, UK.
+                        http://www.xara.com/
+
+=================================XARAHEADEREND============================
+ */
+#ifndef WXOIL_FILEINFOLIST_H
+#define WXOIL_FILEINFOLIST_H
+
+
+
+class CFileInfoList
+{
+public:
+	class CListRow
+	{
+		private:
+			CListRow(CFileInfoList* plstParent, INT32 iRow);
+			friend class CFileInfoList;
+
+		public:
+			CListRow(const CListRow& roOtherRow);
+			~CListRow();
+	
+			const CListRow& operator= (const CListRow& roOtherRow);
+			
+			void SetBitmap(UINT32 uiBitmapID);
+			void SetText(INT32 iColumn, String_256 strText);
+	
+		protected:
+			CFileInfoList* m_plstParent;
+			INT32		  m_iRow;		// The row number this item represents.
+	};
+
+public:
+	CFileInfoList();
+	virtual ~CFileInfoList();
+	
+public:
+	// Initialize the control.
+	BOOL Init(CWindowID ParentDlg, CGadgetID GadgetID);
+	// Add a new column
+	void AddColumn(String_64 strHeader, INT32 iWidth = -1, INT32 iFormat = wxLIST_FORMAT_LEFT);
+	// Add a new row.
+	CListRow AddRow();
+
+	// Remove all entries from the list control.
+	void Clear();
+	
+protected:
+	// Set bitmap to a row. 
+	void SetRowBitmap(INT32 iRow, UINT32 uiBitmapID);
+	// Set text to a cell.
+	void SetRowText(INT32 iRow, INT32 iColumn, String_256 strText);
+	
+	friend class CListRow;
+	
+	// Helper functions.
+	wxListCtrl*  GetListCtrl();
+	wxImageList* GetImageList();
+	
+protected:
+	//	wxImageList* m_imglstListIcons;
+	CWindowID m_widParentDlg;
+	CGadgetID m_gdgidGadget;
+	
+	static const INT32 m_ciImageListType = wxIMAGE_LIST_SMALL;
+};
+
+
+#endif	// WXOIL_FILEINFOLIST_H
Index: Trunk/XaraLX/wxOil/fileinfolist.cpp
===================================================================
--- Trunk/XaraLX/wxOil/fileinfolist.cpp	(revision 0)
+++ Trunk/XaraLX/wxOil/fileinfolist.cpp	(revision 1766)
@@ -0,0 +1,371 @@
+// $Id: customlist.cpp 1082 2006-05-16 14:42:54Z alex $
+/* @@tag:xara-cn@@ DO NOT MODIFY THIS LINE
+================================XARAHEADERSTART===========================
+ 
+               Xara LX, a vector drawing and manipulation program.
+                    Copyright (C) 1993-2006 Xara Group Ltd.
+       Copyright on certain contributions may be held in joint with their
+              respective authors. See AUTHORS file for details.
+
+LICENSE TO USE AND MODIFY SOFTWARE
+----------------------------------
+
+This file is part of Xara LX.
+
+Xara LX is free software; you can redistribute it and/or modify it
+under the terms of the GNU General Public License version 2 as published
+by the Free Software Foundation.
+
+Xara LX and its component source files are distributed in the hope
+that it will be useful, but WITHOUT ANY WARRANTY; without even the
+implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
+See the GNU General Public License for more details.
+
+You should have received a copy of the GNU General Public License along
+with Xara LX (see the file GPL in the root directory of the
+distribution); if not, write to the Free Software Foundation, Inc., 51
+Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
+
+
+ADDITIONAL RIGHTS
+-----------------
+
+Conditional upon your continuing compliance with the GNU General Public
+License described above, Xara Group Ltd grants to you certain additional
+rights. 
+
+The additional rights are to use, modify, and distribute the software
+together with the wxWidgets library, the wxXtra library, and the "CDraw"
+library and any other such library that any version of Xara LX relased
+by Xara Group Ltd requires in order to compile and execute, including
+the static linking of that library to XaraLX. In the case of the
+"CDraw" library, you may satisfy obligation under the GNU General Public
+License to provide source code by providing a binary copy of the library
+concerned and a copy of the license accompanying it.
+
+Nothing in this section restricts any of the rights you have under
+the GNU General Public License.
+
+
+SCOPE OF LICENSE
+----------------
+
+This license applies to this program (XaraLX) and its constituent source
+files only, and does not necessarily apply to other Xara products which may
+in part share the same code base, and are subject to their own licensing
+terms.
+
+This license does not apply to files in the wxXtra directory, which
+are built into a separate library, and are subject to the wxWindows
+license contained within that directory in the file "WXXTRA-LICENSE".
+
+This license does not apply to the binary libraries (if any) within
+the "libs" directory, which are subject to a separate license contained
+within that directory in the file "LIBS-LICENSE".
+
+
+ARRANGEMENTS FOR CONTRIBUTION OF MODIFICATIONS
+----------------------------------------------
+
+Subject to the terms of the GNU Public License (see above), you are
+free to do whatever you like with your modifications. However, you may
+(at your option) wish contribute them to Xara's source tree. You can
+find details of how to do this at:
+  http://www.xaraxtreme.org/developers/
+
+Prior to contributing your modifications, you will need to complete our
+contributor agreement. This can be found at:
+  http://www.xaraxtreme.org/developers/contribute/
+
+Please note that Xara will not accept modifications which modify any of
+the text between the start and end of this header (marked
+XARAHEADERSTART and XARAHEADEREND).
+
+
+MARKS
+-----
+
+Xara, Xara LX, Xara X, Xara X/Xtreme, Xara Xtreme, the Xtreme and Xara
+designs are registered or unregistered trademarks, design-marks, and/or
+service marks of Xara Group Ltd. All rights in these marks are reserved.
+
+
+      Xara Group Ltd, Gaddesden Place, Hemel Hempstead, HP2 6EX, UK.
+                        http://www.xara.com/
+
+=================================XARAHEADEREND============================
+ */
+
+
+#include "camtypes.h"
+#include "camelot.h"
+#include "errors.h"
+#include "palman.h"
+#include "cartprov.h"
+
+#include "fileinfolist.h"
+
+
+
+/******************************************************************************
+Function  : CFileInfoList::CListRow::CListRow
+Author    : Mikhail Tatarnikov
+Purpose   : ListRow constructor
+Returns   : void
+Exceptions: 
+Parameters: [in] CFileInfoList* plstParent - list control to represent;
+            [in] INT32			iRow	   - the row to represent.
+Notes     : The constructor is private, only CFileInfoList can create it.
+******************************************************************************/
+CFileInfoList::CListRow::CListRow(CFileInfoList* plstParent, INT32 iRow)
+{
+	m_plstParent = plstParent;
+	m_iRow		 = iRow;
+}
+
+CFileInfoList::CListRow::~CListRow()
+{
+}
+
+CFileInfoList::CListRow::CListRow(const CListRow& roOtherRow)
+{
+	m_plstParent = roOtherRow.m_plstParent;
+	m_iRow		 = roOtherRow.m_iRow;
+}
+	
+const CFileInfoList::CListRow& CFileInfoList::CListRow::operator= (const CListRow& roOtherRow)
+{
+	m_plstParent = roOtherRow.m_plstParent;
+	m_iRow		 = roOtherRow.m_iRow;
+	
+	return roOtherRow;
+}
+			
+/******************************************************************************
+Function  : CFileInfoList::CListRow::SetBitmap
+Author    : Mikhail Tatarnikov
+Purpose   : Set a bitmap to the row
+Returns   : void
+Exceptions: 
+Parameters: [in] UINT32 uiBitmapID - a new row bitmap.
+Notes     : 
+******************************************************************************/
+void CFileInfoList::CListRow::SetBitmap(UINT32 uiBitmapID)
+{
+	m_plstParent->SetRowBitmap(m_iRow, uiBitmapID);
+}
+
+/******************************************************************************
+Function  : CFileInfoList::CListRow::SetText
+Author    : Mikhail Tatarnikov
+Purpose   : Set text to display
+Returns   : void
+Exceptions: 
+Parameters: [in] INT32		iColumn - column where the text should go;
+            [in] String_256 strText - new text.
+Notes     : 
+******************************************************************************/
+void CFileInfoList::CListRow::SetText(INT32 iColumn, String_256 strText)
+{
+	m_plstParent->SetRowText(m_iRow, iColumn, strText);
+}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+CFileInfoList::CFileInfoList()
+{
+	m_widParentDlg = 0;
+	m_gdgidGadget  = 0;
+}
+
+
+CFileInfoList::~CFileInfoList()
+{
+}
+
+
+/******************************************************************************
+Function  : CFileInfoList::GetListCtrl
+Author    : Mikhail Tatarnikov
+Purpose   : Helper function to retrieve the actual list control
+Returns   : wxListCtrl* - the list control associated with this object.
+Exceptions: 
+Parameters: None
+Notes     : 
+******************************************************************************/
+wxListCtrl* CFileInfoList::GetListCtrl()
+{
+	wxWindow* pwndGadget = DialogManager::GetGadget(m_widParentDlg, m_gdgidGadget);
+	if (!pwndGadget)
+		return NULL;
+	
+	if (!pwndGadget->IsKindOf(CLASSINFO(wxListCtrl)))
+		return NULL;
+	
+	wxListCtrl* plstList = (wxListCtrl*)pwndGadget;
+	
+	return plstList;
+}
+
+
+wxImageList* CFileInfoList::GetImageList()
+{
+	wxListCtrl* pListCtrl = GetListCtrl();
+	wxImageList* pilImageList = pListCtrl->GetImageList(m_ciImageListType);
+	
+	return pilImageList;
+}
+
+
+
+
+/******************************************************************************
+Function  : CBitmapDropDown::Init
+Author    : Mikhail Tatarnikov
+Purpose   : Initialize the control
+Returns   : BOOL - TRUE if success, FALSE otherwise.
+Exceptions: 
+Parameters: [in] CWindowID Window - the parent window, NULL to deinitialize;
+            [in] CGadgetID Gadget - the control ID.
+Notes     : 
+******************************************************************************/
+BOOL CFileInfoList::Init(CWindowID widParentDlg, CGadgetID gdgidGadget)
+{
+	// Obtain the gadget and check if it has an appropriate class (we can
+	// be attached to a wxListCtrl only).
+	wxWindow* pwndGadget = DialogManager::GetGadget(widParentDlg, gdgidGadget);
+	if (pwndGadget && pwndGadget->IsKindOf(CLASSINFO(wxListCtrl)))
+	{
+		m_widParentDlg = widParentDlg;
+		m_gdgidGadget  = gdgidGadget;
+		
+		return(TRUE);
+	}
+	
+	ERROR3("CBitmapDropDown::Init failed - illegal Gadget");
+	return(FALSE);
+}
+
+/******************************************************************************
+Function  : CFileInfoList::AddColumn
+Author    : Mikhail Tatarnikov
+Purpose   : Add a new column
+Returns   : void
+Exceptions: 
+Parameters: [in] String_64 strHeader - column label;
+            [in] INT32	   iWidth	 - column width;
+            [in] INT32	   iFormat	 - column format (see wxListCtrl::InsertColumn).
+Notes     : 
+******************************************************************************/
+void CFileInfoList::AddColumn(String_64 strHeader, INT32 iWidth, INT32 iFormat)
+{
+	wxListCtrl* plstList = GetListCtrl();
+	int iColNum = plstList->GetColumnCount();
+	plstList->InsertColumn(iColNum, strHeader, iFormat, iWidth);
+}
+
+
+/******************************************************************************
+Function  : CFileInfoList::AddRow
+Author    : Mikhail Tatarnikov
+Purpose   : Adds a new row
+Returns   : CFileInfoList::CListRow - an object to represet the new created row.
+Exceptions: 
+Parameters: None
+Notes     : 
+******************************************************************************/
+CFileInfoList::CListRow CFileInfoList::AddRow()
+{
+	wxListCtrl* plstList = GetListCtrl();
+	
+	INT32 iRowsCount = plstList->GetItemCount();
+	plstList->InsertItem(iRowsCount, _T(""));
+	
+	return CListRow(this, iRowsCount);
+}
+	
+/******************************************************************************
+Function  : CFileInfoList::Clear
+Author    : Mikhail Tatarnikov
+Purpose   : Removes all elements from the list
+Returns   : void
+Exceptions: 
+Parameters: None
+Notes     : 
+******************************************************************************/
+void CFileInfoList::Clear()
+{
+	wxListCtrl* plstList = GetListCtrl();
+	plstList->DeleteAllItems();
+
+	
+	plstList->AssignImageList(NULL, m_ciImageListType);
+}
+
+
+/******************************************************************************
+Function  : CFileInfoList::SetRowBitmap
+Author    : Mikhail Tatarnikov
+Purpose   : Set a bitmap to the row.
+Returns   : void
+Exceptions: 
+Parameters: [in] INT32  iRow	   - row to set the bitmap to;
+            [in] UINT32 uiBitmapID - new bitmap ID.
+Notes     : 
+******************************************************************************/
+void CFileInfoList::SetRowBitmap(INT32 iRow, UINT32 uiBitmapID)
+{
+	wxListCtrl* plstList = GetListCtrl();
+	if (plstList == NULL)
+		return;
+	
+	// Load the bitmap
+	wxBitmap* pBitmap = CamArtProvider::Get()->FindBitmap(uiBitmapID, CAF_DEFAULT);
+	if (pBitmap == NULL)
+		return;
+	
+	// Obtain the control's image list and add the new bitmap into it.
+	wxImageList* pilImageList = GetImageList();
+	
+	// Check if we have to create an image list ourselves.
+	if (pilImageList == NULL)
+	{
+		pilImageList = new wxImageList(pBitmap->GetWidth(), pBitmap->GetHeight(), true, 0);
+		plstList->AssignImageList(pilImageList, m_ciImageListType);
+	}
+	
+	int iBitmapIndex = pilImageList->Add(*pBitmap);
+	
+	// Finally set the item information.
+	plstList->SetItem(iRow, 0, _T(""), iBitmapIndex);
+}
+
+/******************************************************************************
+Function  : CFileInfoList::SetRowText
+Author    : Mikhail Tatarnikov
+Purpose   : Set new text to a row
+Returns   : void
+Exceptions: 
+Parameters: [in] INT32		iRow	- row to set the text to;
+            [in] INT32		iColumn - column to set the text to;
+            [in] String_256 strText - new text.
+Notes     : 
+******************************************************************************/
+void CFileInfoList::SetRowText(INT32 iRow, INT32 iColumn, String_256 strText)
+{
+	wxListCtrl* plstList = GetListCtrl();
+	plstList->SetItem(iRow, iColumn, strText);
+}
+
+


Xara