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

[XaraXtreme-commits] Commit Complete



Commit by  : alex
Repository : xara
Revision   : 1322
Date       : Wed Jun 14 17:57:11 BST 2006

Changed paths:
   M /Trunk/XaraLX/Kernel/Makefile.am
   M /Trunk/XaraLX/Kernel/cameleps.cpp
   M /Trunk/XaraLX/Kernel/filters.cpp
   A /Trunk/XaraLX/Kernel/xsepsops.cpp (from /Trunk/XaraLX/wxOil/xsepsops.cpp:1314)
   A /Trunk/XaraLX/Kernel/xsepsops.h (from /Trunk/XaraLX/wxOil/xsepsops.h:1314)
   D /Trunk/XaraLX/wxOil/xsepsops.cpp
   D /Trunk/XaraLX/wxOil/xsepsops.h

Put the EPS Export Options dialog in the Kernel


Diff:
Index: Trunk/XaraLX/Kernel/filters.cpp
===================================================================
--- Trunk/XaraLX/Kernel/filters.cpp	(revision 1321)
+++ Trunk/XaraLX/Kernel/filters.cpp	(revision 1322)
@@ -148,6 +148,7 @@
 #include "swffiltr.h"		// For the SWF export filter.
 //#include "extfilts.h"		// For the TIFF filter.
 #include "kerneldc.h"
+#include "xsepsops.h"
 
 #include "giffiltr.h"		// Transparent and interlaced GIF filter``
 #include "htmlfltr.h"		// HTML filter
@@ -890,7 +891,7 @@
 	Camelot.DeclarePref(_T("Filters"), _T("AddUnnamedColours"), &AddUnnamedColours); 
 
 #endif
-
+	XSEPSExportOptions::Init();
 	BaseBitmapFilter::InitBaseClass();
 	// All ok
 	return TRUE;
Index: Trunk/XaraLX/Kernel/Makefile.am
===================================================================
--- Trunk/XaraLX/Kernel/Makefile.am	(revision 1321)
+++ Trunk/XaraLX/Kernel/Makefile.am	(revision 1322)
@@ -75,7 +75,8 @@
 	release.cpp ai_eps.cpp ai8_eps.cpp ai5_eps.cpp ai_epsrr.cpp ai_layer.cpp \
 	ai_bmp.cpp ai_grad.cpp freeeps.cpp swffiltr.cpp swfrndr.cpp swfbitmp.cpp \
 	swfbuttn.cpp swffont.cpp swfplace.cpp swfrndr.cpp swfshape.cpp swfsprit.cpp \
-	swfexpdc.cpp swftext.cpp pmaskrgn.cpp printctl.cpp prnmkcom.cpp prnmks.cpp
+	swfexpdc.cpp swftext.cpp pmaskrgn.cpp printctl.cpp prnmkcom.cpp prnmks.cpp \
+	xsepsops.cpp
 
 
 AM_CXXFLAGS = $(XARAFLAGS)
Index: Trunk/XaraLX/Kernel/xsepsops.cpp
===================================================================
--- Trunk/XaraLX/Kernel/xsepsops.cpp	(revision 0)
+++ Trunk/XaraLX/Kernel/xsepsops.cpp	(revision 1322)
@@ -0,0 +1,283 @@
+// $Id: wxOil/xsepsops.cpp, 1, 01-Jan-2006, Anonymous $
+/* @@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============================
+ */
+//
+// XSEPSExportOptions - implements the options relevant to the export of XS EPS
+
+/*
+*/
+
+#include "camtypes.h"
+#include "xsepsops.h"
+//#include "printdlg.h"
+#include "epsfiltr.h"
+//#include "markn.h"
+//#include "resource.h"
+#include "helpuser.h"
+
+DECLARE_SOURCE("$Revision: 2 $");
+
+CC_IMPLEMENT_DYNCREATE(XSEPSExportOptions, DialogOp)
+
+#define new CAM_DEBUG_NEW
+
+const CDlgMode XSEPSExportOptions::Mode = MODAL ;// Mode of the dialog
+const UINT32 XSEPSExportOptions::IDD = _R(IDD_XSEPSOPS);
+BOOL XSEPSExportOptions::Aborted = FALSE;
+
+/********************************************************************************************
+
+>	XSEPSExportOptions::XSEPSExportOptions()
+
+	Author:		Alex Bligh <alex@xxxxxxxxxxx>
+	Created:	14/06/2006
+	Inputs:		-
+	Returns:	-
+	Purpose:	Constructs the dlg.
+	SeeAlso:	-
+
+********************************************************************************************/
+
+
+XSEPSExportOptions::XSEPSExportOptions(): DialogOp(XSEPSExportOptions::IDD, XSEPSExportOptions::Mode)
+{
+}
+
+
+/********************************************************************************************
+
+>	BOOL XSEPSExportOptions::Do(OpDescriptor*)
+
+	Author:		Alex Bligh <alex@xxxxxxxxxxx>
+	Created:	14/06/2006
+	Inputs:		-
+	Returns:	TRUE if OK, FALSE otherwise
+	Purpose:	Inits the dialog's controls, and calls the base classes OnInitDialog() function
+	SeeAlso:	-
+
+********************************************************************************************/
+
+void XSEPSExportOptions::Do(OpDescriptor*)
+{
+	Create(); // Modal dialog, so this will actually run the dialog
+}
+
+/********************************************************************************************
+
+>	BOOL XSEPSExportOptions::GetState(String_256*, OpDescriptor*)
+
+	Author:		Alex Bligh <alex@xxxxxxxxxxx>
+	Created:	14/06/2006
+	Inputs:		-
+	Returns:	TRUE if OK, FALSE otherwise
+	Purpose:	Inits the dialog's controls, and calls the base classes OnInitDialog() function
+	SeeAlso:	-
+
+********************************************************************************************/
+
+OpState	XSEPSExportOptions::GetState(String_256*, OpDescriptor*)
+{
+	OpState OpSt;
+	return(OpSt);
+}
+
+/********************************************************************************************
+
+>	BOOL XSEPSExportOptions::XSEPSExportOptions::Init()
+
+	Author:		Alex Bligh <alex@xxxxxxxxxxx>
+	Created:	14/06/2006
+	Inputs:		-
+	Returns:	TRUE if OK, FALSE otherwise
+	Purpose:	Inits the dialog's controls, and calls the base classes OnInitDialog() function
+	SeeAlso:	-
+
+********************************************************************************************/
+
+BOOL XSEPSExportOptions::Init()
+{
+	return (RegisterOpDescriptor(
+									0,
+									_R(IDD_XSEPSOPS),
+									CC_RUNTIME_CLASS(XSEPSExportOptions),
+									OPTOKEN_XSEPSEXPORTOPTIONS,
+									XSEPSExportOptions::GetState,
+									0,	/* help ID */
+									0, 	/* bubble help*/
+									0	/* bitmap ID */
+									));
+}
+
+/********************************************************************************************
+
+>	MsgResult XSEPSExportOptions::Message( Msg* Message)
+
+	Author:		Alex Bligh <alex@xxxxxxxxxxx>
+	Created:	14/06/2006
+	Inputs:		-
+	Returns:	-
+	Purpose:	Overrides the default OnOK() func so that we can check the values set by the user.
+				If dodgy values have been put in, the user is warned.
+	SeeAlso:	-
+
+********************************************************************************************/
+
+MsgResult XSEPSExportOptions::Message( Msg* Message)
+{
+
+	if (IS_OUR_DIALOG_MSG(Message))
+	{
+		DialogMsg* Msg = (DialogMsg*)Message;
+		// Handle ok button
+		if (Msg->DlgMsg == DIM_CREATE)
+		{
+			SetLongGadgetValue(_R(IDC_DPIEDIT), 150, FALSE, 0);
+			SetLongGadgetValue(_R(IDC_DPIEDIT), 200, FALSE, 1);
+			SetLongGadgetValue(_R(IDC_DPIEDIT), 300, FALSE, 2);
+			SetLongGadgetValue(_R(IDC_DPIEDIT), (INT32) EPSFilter::XSEPSExportDPI, FALSE, -1);
+	
+			/*
+			SetBoolGadgetSelected(_R(IDC_PSLEVELAUTO),	EPSFilter::XSEPSExportPSType == 0);
+			SetBoolGadgetSelected(_R(IDC_PSLEVEL1),	EPSFilter::XSEPSExportPSType == 1);
+			SetBoolGadgetSelected(_R(IDC_PSLEVEL2),	EPSFilter::XSEPSExportPSType == 2);
+			*/
+	
+			SetBoolGadgetSelected(_R(IDC_EXPORTTEXTASCURVES), EPSFilter::XSEPSExportTextAsCurves);
+		}
+		else if (Msg->DlgMsg == DIM_COMMIT)
+		{
+			Aborted = FALSE;
+			// DPI ed field
+			UINT32 DPI = GetLongGadgetValue(_R(IDC_DPIEDIT),10,2400);
+			if (DPI < 10)
+				DPI = 10;
+		
+			if (DPI > 600)
+				DPI = 600;
+
+			if (DPI > 300)
+			{
+				INT32 b = InformWarning(_R(IDS_EXPORT_BIGDPI),_R(IDS_OK),_R(IDS_CANCEL));
+				if (b != 1)
+					Aborted = TRUE;
+			}
+
+			if (Aborted)
+			{
+				Msg->DlgMsg=DIM_NONE; // prevent dialog from going away
+			}
+			else
+			{
+				/*
+				// Job 10463: remove PS Level bits - default to Level 2
+				INT32 ps = 0;
+				if (GetBoolGadgetSelected(_R(IDC_PSLEVEL1)))
+					ps = 1;
+				if (GetBoolGadgetSelected(_R(IDC_PSLEVEL2)))
+					ps = 2;
+				*/
+			
+				EPSFilter::XSEPSExportDPI 	 = DPI;
+				// EPSFilter::XSEPSExportPSType = ps;
+			
+				EPSFilter::XSEPSExportTextAsCurves = GetBoolGadgetSelected(_R(IDC_EXPORTTEXTASCURVES));
+			}	
+		}
+	}
+	return DialogOp::Message(Message);
+}
+
Index: Trunk/XaraLX/Kernel/xsepsops.h
===================================================================
--- Trunk/XaraLX/Kernel/xsepsops.h	(revision 0)
+++ Trunk/XaraLX/Kernel/xsepsops.h	(revision 1322)
@@ -0,0 +1,132 @@
+// $Id: wxOil/xsepsops.h, 1, 01-Jan-2006, Anonymous $
+/* @@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============================
+ */
+// Header for dlg that controls the XS EPS options
+
+#ifndef INC_XSEPSOPS
+#define INC_XSEPSOPS
+
+#define OPTOKEN_XSEPSEXPORTOPTIONS _T("XSEPSExpOpts")
+
+/********************************************************************************************
+
+>	class XSEPSExportOptions : public CDialog
+
+	Author:		Mark_Neves (Xara Group Ltd) <camelotdev@xxxxxxxx>
+	Created:	26/5/95
+	Purpose:	This gets options relevant to the export of XS EPS
+	SeeAlso:	
+
+********************************************************************************************/
+
+class XSEPSExportOptions: public DialogOp
+{         
+	CC_DECLARE_DYNCREATE( XSEPSExportOptions )  
+public:
+
+	XSEPSExportOptions(); 
+	MsgResult Message( Msg* Message );  
+	void Do(OpDescriptor*);		// "Do" function        
+	static BOOL Init();
+	static OpState GetState(String_256*, OpDescriptor*);	
+
+	static BOOL Aborted;
+	static const UINT32 IDD;
+	static const CDlgMode Mode;   
+}; 
+
+#endif  // INC_XSEPSOPS
Index: Trunk/XaraLX/Kernel/cameleps.cpp
===================================================================
--- Trunk/XaraLX/Kernel/cameleps.cpp	(revision 1321)
+++ Trunk/XaraLX/Kernel/cameleps.cpp	(revision 1322)
@@ -159,7 +159,7 @@
 
 //#include "will2.h"
 
-//#include "xsepsops.h"		// export eps options
+#include "xsepsops.h"		// export eps options
 #include "ctrlhelp.h"		// ControlHelper class
 
 #include "unicdman.h"		// For MBCS support
@@ -547,26 +547,13 @@
 
 BOOL CamelotEPSFilter::GetExportOptions( )
 {
-PORTNOTE("other", "Remove XSEPSExportOptions")
-#ifndef EXCLUDE_FROM_XARALX
 #if !defined(EXCLUDE_FROM_RALPH)
-	XSEPSExportOptions XSOpts;
-
-	// Keep Control Helper system informed
-	ControlHelper::InformModalDialogOpened();
-		 
-	ResourceID reason = XSOpts.DoModal();
-
-	// Keep Control Helper system informed
-	ControlHelper::InformModalDialogClosed();				
+	OpDescriptor* pOpDesc = OpDescriptor::FindOpDescriptor(CC_RUNTIME_CLASS(XSEPSExportOptions)); 
+	if ( pOpDesc )
+		pOpDesc->Invoke();
 	
-	if (reason != _R(IDOK))
-	{
-		// User decided not to export - abort.
-		return FALSE;
-	}
+	return !XSEPSExportOptions::Aborted;
 #endif
-#endif
 	return TRUE;
 }
 
Index: Trunk/XaraLX/wxOil/xsepsops.h (deleted)
===================================================================
Index: Trunk/XaraLX/wxOil/xsepsops.cpp (deleted)
===================================================================


Xara