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

[XaraXtreme-dev] Commit Complete



Commit by  : alex
Repository : xara
Revision   : 710
Date       : Wed Mar 22 16:10:46 GMT 2006

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

Forgot 2 files (thanks Luke)


Diff:
Index: Trunk/XaraLX/wxOil/drawctl.h
===================================================================
--- Trunk/XaraLX/wxOil/drawctl.h	(revision 0)
+++ Trunk/XaraLX/wxOil/drawctl.h	(revision 710)
@@ -0,0 +1,234 @@
+// $Id: drawctl.h 662 2006-03-14 21:31:49Z 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 INC_DRAWCTL
+#define	INC_DRAWCTL
+
+#include <wx/wxprec.h>
+#include <wx/event.h>
+#include <wx/xrc/xmlres.h>
+
+#include "ctrllist.h"
+
+enum wxCamDrawControlStyle
+{
+	// Caching flags start here - the art provider may have a different bitmap depending on the
+	// state of these flags...
+
+	wxCDCS_DEFAULT			= 0
+};
+
+/*******************************************************************************************
+
+>	class wxCamDrawControlEvent : public wxEvent
+
+	Author:		Alex_Bligh <alex@xxxxxxxxxxx>
+	Created:	19/12/2005
+	Purpose:	A derived event to allow for postprocessing of autorepeat on buttons
+	Notes:		In the OIL
+	See Also:	
+
+********************************************************************************************/
+
+class wxCamDrawControlEvent : public wxEvent
+{
+public:
+	// Aargh note wxEvent's constructor has paramaters the otherway around from this - designed to match wxCommandEvent
+	wxCamDrawControlEvent(wxEventType commandType = wxEVT_NULL, INT32 id=0 ) : wxEvent(id, commandType) {}
+
+	wxCamDrawControlEvent(const wxCamDrawControlEvent& event) : wxEvent(event) {}
+
+	virtual wxEvent *Clone() const {return new wxCamDrawControlEvent(*this); }
+
+	DECLARE_DYNAMIC_CLASS(wxCamDrawControlEvent);
+
+};
+
+typedef void (wxEvtHandler::*wxCamDrawControlEventFunction)(wxCamDrawControlEvent &);
+
+DECLARE_EVENT_TYPE(wxEVT_CAMDRAWCONTROL_INVOKE, -1);
+
+#define EVT_CAMDRAWCONTROL_INVOKE(id, fn) DECLARE_EVENT_TABLE_ENTRY(wxEVT_CAMDRAWCONTROL_INVOKE, id, -1, \
+	(wxObjectEventFunction)(wxEventFunction)(wxCamDrawControlEventFunction) &fn, (wxObject *) NULL),
+
+/*******************************************************************************************
+
+>	class wxCamDrawControl : public wxEvtHandler
+
+	Author:		Alex_Bligh <alex@xxxxxxxxxxx>
+	Created:	19/12/2005
+	Purpose:	A base class for controls using the CamDrawProvider to paint themselves
+	Notes:		In the OIL
+	See Also:	
+
+This class is specificly written so it will provided cached vector-drawn art.
+
+********************************************************************************************/
+
+class wxCamDrawControl : public wxControl
+{
+	DECLARE_DYNAMIC_CLASS(wxControl)
+	DECLARE_EVENT_TABLE()
+public:
+	// Creation
+	BOOL Create( wxWindow * parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
+					 /*TYPENOTE: Correct*/ long style = 0, const wxValidator& validator = wxDefaultValidator,
+					 wxCamDrawControlStyle cacstyle = wxCDCS_DEFAULT,
+					 wxString opdesc = wxString(_T("")));
+
+	// Common init
+	void Init() {
+					m_CamDrawControlStyle=wxCDCS_DEFAULT;
+					m_OpDesc=wxString(_T(""));
+				}
+
+	// Constructors
+	wxCamDrawControl() { Init(); }
+	wxCamDrawControl( wxWindow * parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
+					 /*TYPENOTE: Correct*/ long style = 0, const wxValidator& validator = wxDefaultValidator,
+					 wxCamDrawControlStyle cacstyle = wxCDCS_DEFAULT,
+					 wxString opdesc = wxString(_T("")))
+					{
+						Init();
+						ControlList::Get()->NewControl(this);
+						Create(parent, id, pos, size, style, validator, cacstyle, opdesc);
+					}
+	~wxCamDrawControl() {  }
+
+	// EventHandlers
+	void OnPaint(wxPaintEvent & event);
+	void OnInvoke(wxCamDrawControlEvent& event);
+
+	virtual void SetStyle(wxCamDrawControlStyle style) { m_CamDrawControlStyle=style; }
+	virtual wxCamDrawControlStyle GetStyle() { return m_CamDrawControlStyle;}
+
+	wxString GetOpDesc() {return m_OpDesc;}
+	
+protected:
+	wxCamDrawControlStyle m_CamDrawControlStyle;
+
+	wxString m_OpDesc;
+
+	void Invoke();
+
+};
+
+/*******************************************************************************************
+
+>	class wxCamDrawControlXmlHandler : public wxXmlResourceHandler
+
+	Author:		Alex_Bligh <alex@xxxxxxxxxxx>
+	Created:	19/12/2005
+	Purpose:	A resource handler to enable wxCamDrawControl items to be loaded from XML
+	Notes:		In the OIL
+	See Also:	
+
+********************************************************************************************/
+
+class wxCamDrawControlXmlHandler : public wxXmlResourceHandler
+{
+DECLARE_DYNAMIC_CLASS(wxCamDrawControlXmlHandler)
+public:
+	wxCamDrawControlXmlHandler();
+	virtual wxObject *DoCreateResource();
+	virtual bool /*TYPENOTE: Correct*/ CanHandle(wxXmlNode *node);
+};
+
+
+#endif
+
Index: Trunk/XaraLX/wxOil/drawctl.cpp
===================================================================
--- Trunk/XaraLX/wxOil/drawctl.cpp	(revision 0)
+++ Trunk/XaraLX/wxOil/drawctl.cpp	(revision 710)
@@ -0,0 +1,319 @@
+// $Id: drawctl.cpp 662 2006-03-14 21:31:49Z 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 "dlgevt.h"
+#include "drawctl.h"
+
+/*****************************************************************************
+
+This file contains the class for wxCamDrawControl, derived from
+wxEvtHandler. This contains a mapping allowing dialogs of ANY class
+derived from wxDialog to call the relevant bits of DialogManager.
+
+*****************************************************************************/
+
+DEFINE_EVENT_TYPE(wxEVT_CAMDRAWCONTROL_INVOKE)
+IMPLEMENT_DYNAMIC_CLASS( wxCamDrawControlEvent, wxEvent )
+
+IMPLEMENT_DYNAMIC_CLASS( wxCamDrawControl, wxControl )
+BEGIN_EVENT_TABLE(wxCamDrawControl, wxControl)
+	EVT_CAMDRAWCONTROL_INVOKE(wxID_ANY, wxCamDrawControl::OnInvoke)
+	EVT_PAINT(wxCamDrawControl::OnPaint)
+END_EVENT_TABLE();
+
+IMPLEMENT_DYNAMIC_CLASS( wxCamDrawControlXmlHandler, wxXmlResourceHandler)
+
+/********************************************************************************************
+
+>	BOOL wxCamDrawControl::Create( wxWindow * parent, wxWindowID id, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxDefaultSize,
+					 [TYPENOTE: Correct] long style, const wxValidator& validator = wxDefaultValidator,
+					 wxCamDrawControlStyle cacstyle = (wxCamDrawControlStyle)0,
+					 wxString opdesc = wxString(_T("")))
+
+	Author:		Alex_Bligh <alex@xxxxxxxxxxx>
+	Created:	30/12/2005
+	Inputs:		parent - parent window
+				id - id to use
+				pos - position
+				size - size
+				style - style
+				validator - validator (up to here, all the same as wxControl)
+				cacstyle - the style of CamDrawControl to use, i.e. the flags passed
+				opdesc - the opdescriptor to use, OR the empty string
+	Outputs:	None
+	Returns:	TRUE if succeeded, FALSE if fails
+	Purpose:	Initialize the control
+	Errors:		via wxMessageBox
+	SeeAlso:	-
+
+********************************************************************************************/
+
+BOOL wxCamDrawControl::Create( wxWindow * parent, wxWindowID id, const wxPoint& pos, const wxSize& size,
+					 /*TYPENOTE: Correct*/ long style, const wxValidator& validator,
+					 wxCamDrawControlStyle cacstyle,
+					 wxString opdesc)
+{
+	if (!wxControl::Create(parent, id, pos, size, style, validator))
+		return FALSE;
+
+	m_CamDrawControlStyle = cacstyle;
+	m_OpDesc = opdesc;
+	return TRUE;
+}
+
+
+/********************************************************************************************
+
+>	void wxCamDrawControl::OnPaint(wxPaintEvent & event)
+
+
+	Author:		Alex_Bligh <alex@xxxxxxxxxxx>
+	Created:	30/12/2005
+	Inputs:		event - the event
+	Outputs:	-
+	Returns:	-
+	Purpose:	Paints the control
+	Errors:		-
+	SeeAlso:	-
+
+********************************************************************************************/
+
+void wxCamDrawControl::OnPaint(wxPaintEvent & event)
+{
+	wxCamDialogEvent RedrawEvent(wxEVT_CAMDIALOG_REDRAW, GetId());
+	wxWindow * pParent=GetParent();
+	if (pParent)
+		pParent->GetEventHandler()->ProcessEvent(RedrawEvent);	
+}
+
+
+/********************************************************************************************
+
+>	void wxCamDrawControl::OnInvoke(wxCamDrawControlEvent & event)
+
+
+	Author:		Alex_Bligh <alex@xxxxxxxxxxx>
+	Created:	30/12/2005
+	Inputs:		event - the event
+	Outputs:	-
+	Returns:	-
+	Purpose:	Handles deferred invoke events
+	Errors:		-
+	SeeAlso:	-
+
+We do not process these immediately because otherwise the application does not have a chance
+to redraw between undo etc. Instead we send a deferred message back to ourselves
+
+********************************************************************************************/
+
+void wxCamDrawControl::OnInvoke(wxCamDrawControlEvent & event)
+{
+	Invoke();
+}
+
+/********************************************************************************************
+
+>	void wxCamDrawControl::Invoke()
+
+
+	Author:		Alex_Bligh <alex@xxxxxxxxxxx>
+	Created:	30/12/2005
+	Inputs:		-
+	Outputs:	-
+	Returns:	-
+	Purpose:	Does the work of the button being pressed
+	Errors:		-
+	SeeAlso:	-
+
+We send ourselves our COMMAND event (which DialogManager picks up) and invoke the op
+descriptor attached ourselves.
+
+********************************************************************************************/
+
+void wxCamDrawControl::Invoke()
+{
+	if (!IsEnabled())
+	{
+		return; // Don't even send messages if the control is greyed
+	}
+
+	wxCommandEvent ButtonEvent(wxEVT_COMMAND_BUTTON_CLICKED, GetId());
+	ProcessEvent(ButtonEvent);
+	// If it's attached to an OpDescriptor, we invoke it.
+//	ControlList::Get()->Invoke(this);
+}
+
+/********************************************************************************************
+
+>	wxCamDrawControlXmlHandler::wxCamDrawControlXmlHandler()
+
+
+	Author:		Alex_Bligh <alex@xxxxxxxxxxx>
+	Created:	30/12/2005
+	Inputs:		-
+	Outputs:	-
+	Returns:	-
+	Purpose:	Constructor
+	Errors:		-
+	SeeAlso:	-
+
+********************************************************************************************/
+
+wxCamDrawControlXmlHandler::wxCamDrawControlXmlHandler() : wxXmlResourceHandler()
+{
+	XRC_ADD_STYLE(wxCDCS_DEFAULT);
+	AddWindowStyles();
+}
+
+/********************************************************************************************
+
+>	wxObject * wxCamDrawControlXmlHandler::DoCreateResource()
+
+
+	Author:		Alex_Bligh <alex@xxxxxxxxxxx>
+	Created:	30/12/2005
+	Inputs:		-
+	Outputs:	-
+	Returns:	-
+	Purpose:	Creates a wxCamDrawControl from XML
+	Errors:		-
+	SeeAlso:	-
+
+********************************************************************************************/
+
+wxObject * wxCamDrawControlXmlHandler::DoCreateResource()
+{
+	XRC_MAKE_INSTANCE(control, wxCamDrawControl);
+	control->Create(m_parentAsWindow,
+					GetID(),
+					GetPosition(),
+					GetSize(),
+					(GetStyle() & ~wxBORDER_MASK) | wxNO_BORDER,
+					wxDefaultValidator,
+					(wxCamDrawControlStyle)GetStyle(_T("camdrawstyle")),
+					GetParamValue(_T("optoken"))
+					);
+
+	SetupWindow(control);
+
+	return control;
+}
+
+/********************************************************************************************
+
+>	bool [TYPENOTE: Correct] wxCamDrawControlXmlHandler::DoCreateResource()
+
+
+	Author:		Alex_Bligh <alex@xxxxxxxxxxx>
+	Created:	30/12/2005
+	Inputs:		node - a pointer to the xml node
+	Outputs:	-
+	Returns:	TRUE if we can load it
+	Purpose:	Determines whether or not we can handle an object type
+	Errors:		-
+	SeeAlso:	-
+
+********************************************************************************************/
+
+bool /*TYPENOTE: Correct*/ wxCamDrawControlXmlHandler::CanHandle(wxXmlNode *node)
+{
+	return (IsOfClass(node, wxT("wxCamDrawControl")));
+}


Xara