doccomp.cpp

Go to the documentation of this file.
00001 // $Id: doccomp.cpp 1302 2006-06-12 21:02:01Z alex $
00002 /* @@tag:xara-cn@@ DO NOT MODIFY THIS LINE
00003 ================================XARAHEADERSTART===========================
00004  
00005                Xara LX, a vector drawing and manipulation program.
00006                     Copyright (C) 1993-2006 Xara Group Ltd.
00007        Copyright on certain contributions may be held in joint with their
00008               respective authors. See AUTHORS file for details.
00009 
00010 LICENSE TO USE AND MODIFY SOFTWARE
00011 ----------------------------------
00012 
00013 This file is part of Xara LX.
00014 
00015 Xara LX is free software; you can redistribute it and/or modify it
00016 under the terms of the GNU General Public License version 2 as published
00017 by the Free Software Foundation.
00018 
00019 Xara LX and its component source files are distributed in the hope
00020 that it will be useful, but WITHOUT ANY WARRANTY; without even the
00021 implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
00022 See the GNU General Public License for more details.
00023 
00024 You should have received a copy of the GNU General Public License along
00025 with Xara LX (see the file GPL in the root directory of the
00026 distribution); if not, write to the Free Software Foundation, Inc., 51
00027 Franklin St, Fifth Floor, Boston, MA  02110-1301 USA
00028 
00029 
00030 ADDITIONAL RIGHTS
00031 -----------------
00032 
00033 Conditional upon your continuing compliance with the GNU General Public
00034 License described above, Xara Group Ltd grants to you certain additional
00035 rights. 
00036 
00037 The additional rights are to use, modify, and distribute the software
00038 together with the wxWidgets library, the wxXtra library, and the "CDraw"
00039 library and any other such library that any version of Xara LX relased
00040 by Xara Group Ltd requires in order to compile and execute, including
00041 the static linking of that library to XaraLX. In the case of the
00042 "CDraw" library, you may satisfy obligation under the GNU General Public
00043 License to provide source code by providing a binary copy of the library
00044 concerned and a copy of the license accompanying it.
00045 
00046 Nothing in this section restricts any of the rights you have under
00047 the GNU General Public License.
00048 
00049 
00050 SCOPE OF LICENSE
00051 ----------------
00052 
00053 This license applies to this program (XaraLX) and its constituent source
00054 files only, and does not necessarily apply to other Xara products which may
00055 in part share the same code base, and are subject to their own licensing
00056 terms.
00057 
00058 This license does not apply to files in the wxXtra directory, which
00059 are built into a separate library, and are subject to the wxWindows
00060 license contained within that directory in the file "WXXTRA-LICENSE".
00061 
00062 This license does not apply to the binary libraries (if any) within
00063 the "libs" directory, which are subject to a separate license contained
00064 within that directory in the file "LIBS-LICENSE".
00065 
00066 
00067 ARRANGEMENTS FOR CONTRIBUTION OF MODIFICATIONS
00068 ----------------------------------------------
00069 
00070 Subject to the terms of the GNU Public License (see above), you are
00071 free to do whatever you like with your modifications. However, you may
00072 (at your option) wish contribute them to Xara's source tree. You can
00073 find details of how to do this at:
00074   http://www.xaraxtreme.org/developers/
00075 
00076 Prior to contributing your modifications, you will need to complete our
00077 contributor agreement. This can be found at:
00078   http://www.xaraxtreme.org/developers/contribute/
00079 
00080 Please note that Xara will not accept modifications which modify any of
00081 the text between the start and end of this header (marked
00082 XARAHEADERSTART and XARAHEADEREND).
00083 
00084 
00085 MARKS
00086 -----
00087 
00088 Xara, Xara LX, Xara X, Xara X/Xtreme, Xara Xtreme, the Xtreme and Xara
00089 designs are registered or unregistered trademarks, design-marks, and/or
00090 service marks of Xara Group Ltd. All rights in these marks are reserved.
00091 
00092 
00093       Xara Group Ltd, Gaddesden Place, Hemel Hempstead, HP2 6EX, UK.
00094                         http://www.xara.com/
00095 
00096 =================================XARAHEADEREND============================
00097  */
00098 
00099 // Implementation of the Document Component objects.
00100 
00101 /*
00102 */
00103 
00104 #include "camtypes.h"
00105 
00106 //#include "doccomp.h" - in camtypes.h [AUTOMATICALLY REMOVED]
00107 
00108 
00109 DECLARE_SOURCE("$Revision: 1302 $");
00110 
00111 // Declare smart memory handling in Debug builds
00112 #define new CAM_DEBUG_NEW
00113 
00114 
00115 CC_IMPLEMENT_DYNAMIC(DocComponentClass, ListItem)
00116 CC_IMPLEMENT_DYNAMIC(DocComponent,      ListItem)
00117 
00118 
00119 /********************************************************************************************
00120 
00121 >   BOOL DocComponentClass::AddComponent(Document *pDocument)
00122 
00123     Author:     Tim_Browse (Xara Group Ltd) <camelotdev@xara.com>
00124     Created:    01/08/94
00125     Inputs:     pDocument - the document object to add the document component to.
00126     Returns:    TRUE if the component was added without problems;
00127                 FALSE if not.
00128     Purpose:    Add an instance of a document component to the specified document.
00129                 This function should create a default instance of the relevant 
00130                 DocComponent object for this class, and add it to the document.
00131                 The function should check to see if one already exists in this document,
00132                 and either replace it, or leave it alone, depending on the nature of the
00133                 component.
00134 
00135                 NB. This is a pure virtual function in the base class - you must override it.
00136 
00137     Errors:     Out of memory.
00138     SeeAlso:    DocComponentClass
00139 
00140 ********************************************************************************************/
00141 
00142 /********************************************************************************************
00143 
00144 >   BOOL DocComponent::EPSStartImport(BaseCamelotFilter *pFilter)
00145 
00146     Author:     Neville_Humphrys (Xara Group Ltd) <camelotdev@xara.com>
00147     Created:    21/5/96
00148     Inputs:     pFilter - the BaseCamelotFilter filter that is being used to import a file.
00149     Returns:    TRUE if the component was able to prepare for importing;
00150                 FALSE if not (e.g. out of memory)
00151     Purpose:    Inform the document component that a Native or Web import is about to start.
00152     SeeAlso:    DocComponent
00153 
00154 ********************************************************************************************/
00155 
00156 BOOL DocComponent::StartImport(BaseCamelotFilter *pFilter)
00157 {
00158     return TRUE;
00159 }
00160 
00161 /********************************************************************************************
00162 
00163 >   BOOL DocComponent::EndImport(BaseCamelotFilter *pFilter, BOOL Success)
00164 
00165     Author:     Neville_Humphrys (Xara Group Ltd) <camelotdev@xara.com>
00166     Created:    21/5/96
00167     Inputs:     pFilter - the BaseCamelotFilter filter that is being used to import a file.
00168                 Success - TRUE => The import was successful;
00169                          FALSE => The import failed - abandon any changes.
00170     Returns:    TRUE if the component was able to end the importing;
00171                 FALSE if not (e.g. out of memory)
00172     Purpose:    Inform the document component that a Native or Web import has just finished.
00173     SeeAlso:    DocComponent
00174 
00175 ********************************************************************************************/
00176 
00177 BOOL DocComponent::EndImport(BaseCamelotFilter *pFilter, BOOL Success)
00178 {
00179     return TRUE;
00180 }
00181 
00182 /********************************************************************************************
00183 
00184 >   BOOL DocComponent::StartExportBeforeComp(BaseCamelotFilter *pFilter)
00185 
00186     Author:     Mark_Neves (Xara Group Ltd) <camelotdev@xara.com>
00187     Created:    30/7/96
00188     Returns:    TRUE if the component was able to prepare for exporting;
00189                 FALSE if not (e.g. out of memory)
00190     Inputs:     pFilter - the BaseCamelotFilter filter that is being used to export a file.
00191     Purpose:    Inform the document component that a Web or Native export is about to start.
00192                 
00193                 This is called before zlib compression is turned on, to give the doc component
00194                 a chance to write out uncompressed records.
00195 
00196     SeeAlso:    DocComponent
00197 
00198 ********************************************************************************************/
00199 
00200 BOOL DocComponent::StartExportBeforeComp(BaseCamelotFilter *pFilter)
00201 {
00202     return TRUE;
00203 }
00204 
00205 /********************************************************************************************
00206 
00207 >   BOOL DocComponent::StartExport(BaseCamelotFilter *pFilter)
00208 
00209     Author:     Neville_Humphrys (Xara Group Ltd) <camelotdev@xara.com>
00210     Created:    21/5/96
00211     Returns:    TRUE if the component was able to prepare for exporting;
00212                 FALSE if not (e.g. out of memory)
00213     Inputs:     pFilter - the BaseCamelotFilter filter that is being used to export a file.
00214     Purpose:    Inform the document component that a WEb or Native export is about to start.
00215     SeeAlso:    DocComponent
00216 
00217 ********************************************************************************************/
00218 
00219 BOOL DocComponent::StartExport(BaseCamelotFilter *pFilter)
00220 {
00221     return TRUE;
00222 }
00223 
00224 /********************************************************************************************
00225 
00226 >   BOOL DocComponent::EndExport(BaseCamelotFilter *pFilter, BOOL Success)
00227 
00228     Author:     Neville_Humphrys (Xara Group Ltd) <camelotdev@xara.com>
00229     Created:    21/5/96
00230     Inputs:     pFilter - the BaseCamelotFilter filter that is being used to import a file.
00231                 Success - True if everything went swimmingly, False if just a clean up is required.
00232 
00233     Returns:    TRUE if the component was able to end the importing;
00234                 FALSE if not (e.g. out of memory)
00235 
00236     Purpose:    Inform the document component that a Web or Native export is just finishing.
00237                 This gives the component a chance to write out any pending data, such as
00238                 named colours that weren't referenced in the document, etc.
00239 
00240     Notes:      This saves any pending data (e.g. unreferenced Named colours) but DOES NOT
00241                 DELETE ANY DATA STRUCTURES - these should be deleted in the CleanUpAfterExport
00242                 function. This allows situations like: PrintComponent wants to save a colour
00243                 reference in it's Endxport call, but is called after the ColourComponent
00244                 EndExport. The ColourComponent EndExport does not delete its data structures,
00245                 so is still able to supply colour references to other components' EndExport
00246                 functions.
00247 
00248     SeeAlso:    DocComponent::StartExport; DocComponent::CleanUpAfterExport
00249 
00250 ********************************************************************************************/
00251 
00252 BOOL DocComponent::EndExport(BaseCamelotFilter *pFilter, BOOL Success)
00253 {
00254     return TRUE;
00255 }
00256 
00257 
00258 
00259 /********************************************************************************************
00260 
00261 >   virtual void DocComponent::CleanUpAfterExport(BOOL Success)
00262 
00263     Author:     Jason_Williams (Xara Group Ltd) <camelotdev@xara.com>
00264     Created:    21/8/96
00265     Inputs:     Success - True if everything went swimmingly, False if the export failed
00266 
00267     Purpose:    Inform the document component that a Web or Native export has just finished.
00268 
00269     Notes:      This is called after EndExport, so that the componenbt can clean up any 
00270                 during-export data structures. This allows situations like: PrintComponent
00271                 wants to save a colour reference in it's Endxport call, but is called after
00272                 the ColourComponent EndExport. The ColourComponent EndExport does not delete
00273                 its data structures, so is still able to supply colour references to other
00274                 components' EndExport functions.
00275 
00276                 The base class implementation does nothing
00277 
00278     SeeAlso:    DocComponent::EndExport
00279 
00280 ********************************************************************************************/
00281 
00282 void DocComponent::CleanUpAfterExport(BOOL Success)
00283 {
00284     // Base class does nothing
00285 }
00286 
00287 
00288 
00289 /********************************************************************************************
00290 
00291 >   BOOL DocComponent::EPSStartImport(EPSFilter *pFilter)
00292 
00293     Author:     Tim_Browse (Xara Group Ltd) <camelotdev@xara.com>
00294     Created:    03/08/94
00295     Inputs:     pFilter - the EPS filter that is being used to import a file.
00296     Returns:    TRUE if the component was able to prepare for importing;
00297                 FALSE if not (e.g. out of memory)
00298     Purpose:    Inform the document component that an EPS import is about to start.
00299     SeeAlso:    DocComponent
00300 
00301 ********************************************************************************************/
00302 
00303 BOOL DocComponent::EPSStartImport(EPSFilter *pFilter)
00304 {
00305     return TRUE;
00306 }
00307 
00308 /********************************************************************************************
00309 
00310 >   void DocComponent::EPSEndImport(EPSFilter *pFilter, BOOL Success)
00311 
00312     Author:     Tim_Browse (Xara Group Ltd) <camelotdev@xara.com>
00313     Created:    03/08/94
00314     Inputs:     pFilter - the EPS filter that is being used to import a file.
00315                 Success - TRUE => The import was successful;
00316                          FALSE => The import failed - abandon any changes.
00317     Purpose:    Inform the document component that an EPS import has just finished.
00318     SeeAlso:    DocComponent
00319 
00320 ********************************************************************************************/
00321 
00322 void DocComponent::EPSEndImport(EPSFilter *pFilter, BOOL Success)
00323 {
00324 }
00325 
00326 /********************************************************************************************
00327 
00328 >   BOOL DocComponent::EPSStartExport(EPSFilter *pFilter)
00329 
00330     Author:     Tim_Browse (Xara Group Ltd) <camelotdev@xara.com>
00331     Created:    03/08/94
00332     Returns:    TRUE if the component was able to prepare for exporting;
00333                 FALSE if not (e.g. out of memory)
00334     Inputs:     pFilter - the EPS filter that is being used to export a file.
00335     Purpose:    Inform the document component that an EPS export is about to start.
00336     SeeAlso:    DocComponent
00337 
00338 ********************************************************************************************/
00339 
00340 BOOL DocComponent::EPSStartExport(EPSFilter *pFilter)
00341 {
00342     return TRUE;
00343 }
00344 
00345 /********************************************************************************************
00346 
00347 >   void DocComponent::EPSEndExport(EPSFilter *pFilter)
00348 
00349     Author:     Tim_Browse (Xara Group Ltd) <camelotdev@xara.com>
00350     Created:    03/08/94
00351     Inputs:     pFilter - the EPS filter that is being used to import a file.
00352     Purpose:    Inform the document component that an EPS export has just finished.
00353     SeeAlso:    DocComponent
00354 
00355 ********************************************************************************************/
00356 
00357 void DocComponent::EPSEndExport(EPSFilter *pFilter)
00358 {
00359 }
00360 
00361 
00362 /********************************************************************************************
00363 
00364 >   BOOL DocComponent::WriteEPSProlog(EPSFilter *pFilter)
00365 
00366     Author:     Tim_Browse (Xara Group Ltd) <camelotdev@xara.com>
00367     Created:    01/08/94
00368     Inputs:     pFilter - the EPS filter that is being used to export a file.
00369     Returns:    TRUE if the Prolog for this component was written out successfully;
00370                 FALSE if not (e.g. out of disk space etc)
00371     Purpose:    Write out the EPS prolog for this document component, using the EPS
00372                 filter object supplied. 
00373                 (The base class does nothing)
00374 
00375     SeeAlso:    DocComponent::WriteEPSSetup; 
00376                 DocComponent::WriteEPSComments;
00377                 DocComponent::ProcessEPSComment; 
00378                 DocComponent; 
00379                 EPSFilter
00380 
00381 ********************************************************************************************/
00382 
00383 BOOL DocComponent::WriteEPSProlog(EPSFilter *pFilter)
00384 {
00385     return TRUE;
00386 }
00387 
00388 
00389 /********************************************************************************************
00390 
00391 >   BOOL DocComponent::WriteEPSSetup(EPSFilter *pFilter)
00392 
00393     Author:     Tim_Browse (Xara Group Ltd) <camelotdev@xara.com>
00394     Created:    01/08/94
00395     Inputs:     pFilter - the EPS filter that is being used to export a file.
00396     Returns:    TRUE if the Prolog for this component was written out successfully;
00397                 FALSE if not (e.g. out of disk space etc)
00398     Purpose:    Write out the EPS setup for this document component, using the EPS
00399                 filter object supplied.
00400                 (The base class does nothing)
00401 
00402     SeeAlso:    DocComponent::WriteEPSProlog; 
00403                 DocComponent::WriteEPSComments;
00404                 DocComponent::ProcessEPSComment; 
00405                 DocComponent; 
00406                 EPSFilter
00407 
00408 ********************************************************************************************/
00409 
00410 BOOL DocComponent::WriteEPSSetup(EPSFilter *pFilter)
00411 {
00412     return TRUE;
00413 }
00414 
00415 
00416 
00417 /********************************************************************************************
00418 
00419 >   BOOL DocComponent::WriteEPSComments(EPSFilter *pFilter)
00420 
00421     Author:     Tim_Browse (Xara Group Ltd) <camelotdev@xara.com>
00422     Created:    01/08/94
00423     Inputs:     pFilter - the EPS filter that is being used to export a file.
00424     Outputs:    -
00425     Returns:    TRUE if the Prolog for this component was written out successfully;
00426                 FALSE if not (e.g. out of disk space etc)
00427     Purpose:    Write out any comments that need to be in the initial batch of EPS
00428                 comments (i.e. before the %%EndComments line), using the specified EPS
00429                 Filter object.
00430                 (The base class does nothing)
00431 
00432     SeeAlso:    DocComponent::WriteEPSSetup; 
00433                 DocComponent::WriteEPSProlog;
00434                 DocComponent::ProcessEPSComment; 
00435                 DocComponent; 
00436                 EPSFIlter
00437 
00438 ********************************************************************************************/
00439 
00440 BOOL DocComponent::WriteEPSComments(EPSFilter *pFilter)
00441 {
00442     return TRUE;
00443 }
00444 
00445 
00446 
00447 /********************************************************************************************
00448 
00449 >   BOOL DocComponent::WriteScript(EPSFilter* pFilter)
00450 
00451     Author:     Rik_Heywood (Xara Group Ltd) <camelotdev@xara.com>
00452     Created:    18/1/95
00453     Inputs:     pFilter - the EPS filter that is being used to export a file.
00454     Returns:    TRUE if the Script for this component was written out successfully;
00455                 FALSE if not (e.g. out of disk space etc)
00456     Purpose:    This is called after all the Comments, Prolog etc have been output so that
00457                 DocComponents get a chance to do something right at the start of the real
00458                 EPS data, but before the tree starts to be exported.
00459                 (The base class does nothing)
00460     SeeAlso:    DocComponent::WriteEPSSetup; 
00461                 DocComponent::WriteEPSProlog;
00462                 DocComponent::ProcessEPSComment; 
00463                 DocComponent; 
00464                 EPSFIlter
00465 
00466 ********************************************************************************************/
00467 
00468 BOOL DocComponent::WriteScript(EPSFilter* pFilter)
00469 {
00470     return TRUE;
00471 }
00472 
00473 
00474 
00475 /********************************************************************************************
00476 
00477 >   ProcessEPSResult DocComponent::ProcessEPSComment(EPSFilter *pFilter, 
00478                                                      const THCAR *pComment)
00479 
00480     Author:     Tim_Browse (Xara Group Ltd) <camelotdev@xara.com>
00481     Created:    01/08/94
00482     Inputs:     pFilter - the EPS filter that is being used to import a file.
00483                 pComment - read only buffer containing the whole EPS comment to parse.
00484     Returns:    EPSCommentUnknown     - This EPS comment is not recognised by the document
00485                                         component.
00486                 EPSCommentError       - This EPS comment was recognised by this document
00487                                         component, but it contained an error.
00488                 EPSCommentSystemError - This EPS comment was recognised by this document
00489                                         component, but an error occured that was not caused
00490                                         directly by the comment, e.g. out of memory.
00491                 EPSCommentOK          - This EPS comment was recognised as a legal comment by 
00492                                         this document component, and was processed
00493                                         successfully.
00494     Purpose:    Process an EPS comment found in the file, if it 'belongs' to this
00495                 document component.  If it does not, then the document component should 
00496                 return EPSCommentUnknown, and the comment will be passed on to the next 
00497                 document component.
00498                 If the function returns EPSCommentOK, and the next line in the file starts 
00499                 with "%%+", i.e. an EPS/PostScript continuation comment, then this will be
00500                 passed to this document component immediately, without trying any of the
00501                 other document components first.  This allows items such a colour lists
00502                 to be imported easily, as they are usually specified on multiple lines in
00503                 the file, using "%%+" comments.
00504                 (The base class does nothing - it returns EPSCommentUnknown)
00505 
00506     SeeAlso:    DocComponent::EndOfEPSComment; 
00507                 DocComponent::WriteEPSProlog; 
00508                 DocComponent::WriteEPSSetup; 
00509                 DocComponent::WriteEPSComments; 
00510                 DocComponent; 
00511                 ProcessEPSResult;
00512                 EPSFIlter
00513 
00514 ********************************************************************************************/
00515 
00516 ProcessEPSResult DocComponent::ProcessEPSComment(EPSFilter *pFilter, 
00517                                                  const TCHAR *pComment)
00518 {
00519     return EPSCommentUnknown;
00520 }
00521 
00522 
00523 /********************************************************************************************
00524 
00525 >   void DocComponent::EndOfEPSComment(EPSFilter *pFilter)
00526 
00527     Author:     Tim_Browse (Xara Group Ltd) <camelotdev@xara.com>
00528     Created:    02/08/94
00529     Inputs:     pFilter - the EPS filter that is being used to import a file.
00530     Purpose:    Informs the document component that the comment it has been decoding has
00531                 now finished, and it should take whatever action required to act on
00532                 the comment.
00533                 This call is made even for single-line comments, because by the nature of
00534                 DSC comments, it is not known until the next comment starts or a
00535                 non-comment line is encountered that the comment is over and is not
00536                 multi-line.
00537 
00538     SeeAlso:    DocComponent::ProcessEPSComment; 
00539                 DocComponent::WriteEPSProlog; 
00540                 DocComponent::WriteEPSSetup; 
00541                 DocComponent::WriteEPSComments;
00542                 DocComponent; EPSFilter
00543 
00544 ********************************************************************************************/
00545 
00546 void DocComponent::EndOfEPSComment(EPSFilter *pFilter)
00547 {
00548 }
00549 
00550 
00551 /********************************************************************************************
00552 
00553 >   INT32 DocComponent::GetSizeOfExport(Filter *pFilter)
00554 
00555     Author:     Tim_Browse (Xara Group Ltd) <camelotdev@xara.com>
00556     Created:    27/01/95
00557     Inputs:     pFilter - the export filter that will be used.
00558     Returns:    An approximation of the size of data that will be exported by this
00559                 document component, in terms of nodes. (see NodeRenderable::GetSizeOfExport).
00560     Purpose:    Find out how many nodes will be exported when this document component
00561                 is exported.
00562                 The node can use the filter to find out how it will be exported, e.g.
00563                 bitmap lists should return a value that reflects whether or not bitmap
00564                 indirection is possible with this filter and so on.
00565                 NB. This is virtual - the default implementation just returns 1 - only
00566                     override if this is not accurate.
00567     SeeAlso:    Node::NeedsToExport; Node::ExportRender; NodeRenderable::GetSizeOfExport
00568 
00569 ********************************************************************************************/
00570 
00571 INT32 DocComponent::GetSizeOfExport(Filter*)
00572 {
00573     // Default value is one node...
00574     return 1;
00575 }
00576 
00577 
00578 
00579 
00580 /********************************************************************************************
00581 
00582 >   virtual BOOL DocComponent::StartComponentCopy()
00583 
00584     Author:     Simon_Maneggio (Xara Group Ltd) <camelotdev@xara.com>
00585     Created:    16/8/94
00586     Inputs:     -
00587     Outputs:    -
00588     Returns:    FALSE if we run out of memory
00589     Purpose:    This function is called prior to nodes being copied from some Source document to
00590                 the document where this DocComponent lives. It gives the DocComponent a chance
00591                 to make preperations for caching any possible updates.
00592     Errors:     -
00593     SeeAlso:    NodeRenderable::CopyComponentData
00594     SeeAlso:    DocComponent::EndComponentCopy
00595     SeeAlso:    DocComponent::AbortComponentCopy
00596 
00597 ********************************************************************************************/
00598 
00599 BOOL DocComponent::StartComponentCopy() { return TRUE;}
00600 
00601 /********************************************************************************************
00602 
00603 >   virtual BOOL DocComponent::EndComponentCopy()
00604 
00605     Author:     Simon_Maneggio (Xara Group Ltd) <camelotdev@xara.com>
00606     Created:    16/8/94
00607     Inputs:     -
00608     Outputs:    -
00609     Returns:    -
00610     Purpose:    This function is called after a successful copy from another document. If 
00611                 changes have been made to the components data then now is the time to
00612                 commit them. 
00613     Errors:     -
00614     SeeAlso:    NodeRenderable::CopyComponentData
00615     SeeAlso:    DocComponent::StartComponentCopy
00616     SeeAlso:    DocComponent::AbortComponentCopy
00617 
00618 ********************************************************************************************/
00619 
00620 
00621 BOOL DocComponent::EndComponentCopy() { return TRUE; }  
00622 
00623 
00624 /********************************************************************************************
00625 
00626 >   virtual void DocComponent::AbortComponentCopy()
00627 
00628     Author:     Simon_Maneggio (Xara Group Ltd) <camelotdev@xara.com>
00629     Created:    16/8/94
00630     Inputs:     -
00631     Outputs:    -
00632     Returns:    -
00633     Purpose:    This function is called if a node copy has failed. If any changes have been 
00634                 made then they may need to be vaped at this point. Note this function could get
00635                 called without a prior StartComponentCopy call. Also it could get called more
00636                 than once.
00637     Errors:     -
00638     SeeAlso:    NodeRenderable::CopyComponentData
00639     SeeAlso:    DocComponent::EndComponentCopy
00640     SeeAlso:    DocComponent::StartComponentCopy
00641 
00642 ********************************************************************************************/
00643 
00644 void DocComponent::AbortComponentCopy() { }
00645 
00646 

Generated on Sat Nov 10 03:45:02 2007 for Camelot by  doxygen 1.4.4