Hi Mikhail an Felix, while reading this I got another idea: in case we have a replacement image, why not printing this one instead of the document? If the whole container document is printed it will also print the replacement images of its OLE objects.
This can be implemented for COM objects also, BTW. But it doesn't work for linked objects, of course. But in case of these objects we perhaps shouldn't offer printing them directly. Or should we? For our own objects printing the replacement imaghe can help to solve another problem: the embedded document might contain more than just what is visible in the visible area. By printing the replacement image we can make sure that we print only what the user sees as embedded. Regards, Mathias Mikhail Voitenko wrote: > Hi Felix, > > The proposed change looks good from the first view. One small change is > still necessary, the verb id -6 is already reserved. Please see my > comments inline. > > On 12/05/08 09:11, Zhang Xiaofei wrote: >> Hi Mikhail, >> >> Here I created a patch which adds a new verb to >> /officecfg/registry/data/org/openoffice/Office/Embedding.xcu. >> I looked up through the website and found the struct >> com.sun.star.embed.VerbDescriptor. So I set the value of >> VerbAttributes to 2 which means MS_VERBATTR_ONCONTAINERMENU according >> to the IDL referrence. Could you tell me if I did it right or should >> MS_VERBATTR_NEVERDIRTIES be set in this case, too? (because the object >> should not be changed when being printed as I understand) > > It is ok to use MS_VERBATTR_ONCONTAINERMENU only. I also would not add > MS_VERBATTR_NEVERDIRTIES here, since it is better to let the application > decide whether it is changed. Although in general the document should > not be changed, there is already an issue to store the metadata along > with embedded objects, and metadata contains last printed date. > >> And I left the comment field empty because I can't be sure if the >> translation of the VerbUIName here will be "copied from sfx2 project" >> as well as the PROPERTIES and SAVECOPYAS verbs. It will be filled when >> I have your suggestions. > > In this case it is a new verb, so there is no existing translation in > sfx2 for this. You can just leave a comment for translation that this > verb will let the object be printed. > > As the next step please add the verb to the embedded objects based on > own applications, you can recognize them by ObjectDocumentServiceName > value ( com.sun.star.sheet.SpreadsheetDocument, > com.sun.star.chart2.ChartDocument, com.sun.star.drawing.DrawingDocument, > com.sun.star.presentation.PresentationDocument, > com.sun.star.formula.FormulaProperties, com.sun.star.text.TextDocument > ). After that change the string should appear in the menu of the > embedded objects, now the object printing should be implemented. > > The verb id should be registered in > offapi/com/sun/star/embed/EmbedVerbs.idl, -6 had been already reserved > there, -7 still looks to be free, please do not forget to changed the id > in the xcu file. > > The implementation for the action should be done in > embeddedobj/source/commonembedding/embedobj.cxx in function > OCommonEmbeddedObject::doVerb(). This verb will have no related state, > although it needs the object to be at least in running state. Thus the > implementation should be done in the block that checks whether the > nNewState is equal -1. In this case the implementation should switch the > object to the running state if it is the print verb, get XPrintable from > the model and call XPrintable::print() method. > > Best regards, > Mikhail. > >> >> Best Regards, >> Felix. > > -- Mathias Bauer (mba) - Project Lead OpenOffice.org Writer OpenOffice.org Engineering at Sun: http://blogs.sun.com/GullFOSS Please don't reply to "[EMAIL PROTECTED]". I use it for the OOo lists and only rarely read other mails sent to it. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]