Thanks very much for your explanation. >PS3: There is currently no way to force the (X) icon found in the active document tab to >invoke your custom "mydoc.close". This is actually a deficiency of our design.
Would it be possible to have an option to disable them then? Is there any way to force the "close all" and "quit" functions to execute the customized close function for each document instead of closing them in the standard way? Kevin Flynn -----Original Message----- From: [email protected] [mailto:xmleditor-support-bounces at xmlmind.com] On Behalf Of Hussein Shafie Sent: 2. desember 2005 13:02 To: Kevin Flynn Cc: xmleditor-support at xmlmind.com Subject: Re: [XXE] user interface redefinition problem Kevin Flynn wrote: > I am trying to make some simple changes to the XXE user interface for > a particular document (let's call it mydoc). The following xxe_gui file: > > <?xml version='1.0' encoding='UTF-8'?> <gui > xmlns="http://www.xmlmind.com/xmleditor/schema/gui" > xmlns:gui="http://www.xmlmind.com/xmleditor/schema/gui"> > > <include location="xxe-gui:app/default.xxe_gui" /> > > <action name="mydocSaveAction" label="_Save" > icon="xxe-gui:app/icons/saveAction.gif" accelerator="mod S"> > <context editingContextSensitive="false"> > <configuration name="mydoc"> > <command name="mydoc.save"/> > </configuration> > <default> > <class>com.xmlmind.xmleditapp.kit.part.SaveAction</class> > </default> > </context> > </action> > > <action name="mydocCloseAction" label="_Close" > icon="xxe-gui:app/icons/closeAction.gif" accelerator="mod shift W"> > <context editingContextSensitive="false"> > <configuration name="mydoc"> > <command name="mydoc.close"/> > </configuration> > <default> > <class>com.xmlmind.xmleditapp.kit.part.CloseAction</class> > </default> > </context> > </action> > > <menu name="fileMenu" label="_File" helpId="fileMenu"> > <action name="newAction"/> > <action name="openAsTemplateAction"/> > <action name="openCopyAction"/> > <separator/> > <action name="openAction"/> > <separator/> > <action name="mydocCloseAction"/> > <separator/> > <action name="mydocSaveAction"/> > <action name="saveAsAction"/> > <action name="saveCopyAction"/> > <separator/> > <action name="pageSetupAction"/> > <action name="printAction"/> > <separator/> > <action name="quitAction"/> > - Please remove this "-". It makes your custom.xxe_gui invalid (but this has nothing to do with your problem). > <!-- > No need to add a separator here. Separator is dynamic too. > --> > <menuItems name="recentFilesMenuItems"/> </menu> > > <menu name="windowMenu" label="_Window" helpId="windowMenu"> <action > name="precedingWindowAction"/> <action name="followingWindowAction"/> > <menuItems name="windowListMenuItems"/> </menu> > > <layout> > <insert /> > </layout> > </gui> > > is intended to: > > - remove the Save All and Close All functions > - move the Close function from the Window menu to the File menu > - redefine the actions of SaveAction and CloseAction for mydoc documents. > > Suppose that the definitions of mydoc.save and mydoc.close in the XXE > configuration file are: > > <cfg:command name="mydoc.save"> > <cfg:macro> > <cfg:sequence> > <cfg:command name="alert" parameter="Saving file" /> > <cfg:command name="XXE.save"/> > </cfg:sequence> > </cfg:macro> > </cfg:command> > > <cfg:command name="mydoc.close"> > <cfg:macro> > <cfg:sequence> > <cfg:command name="alert" parameter="Closing file" /> > <cfg:command name="XXE.close"/> > </cfg:sequence> > </cfg:macro> > </cfg:command> > > The Save function works (an alert is displayed, then the file is saved). > The Close function doesn't (an alert is displayed, then nothing > happens). Why does the Close function not work? It does not work simply because there is no longer a command called "XXE.close". Command "XXE.close" is implemented by the standard "closeAction" action. Standard "closeAction" action is *declared* in "xxe-gui:app/default.xxe_gui", but it is not *created* during XXE startup. This, because it is not referenced directly or indirectly by the "layout" element. If you rewrite your "layout" element like this: --- <layout> <hidden> <insert /> <action name="saveAction" /> <action name="closeAction" /> </hidden> </layout> --- It will work. --- PS: Now, why did "XXE.save" exist (and therefore works) and not "XXE.close"? Answer: Command "XXE.save" is implemented by the standard "saveAction" action. The standard "saveAction" action is referenced in the standard *toolBar* (which is not the case of "closeAction") which itself is referenced in the standard "layout" element. --- PS2: This means that you need to redefine the standard "toolBar" as well. --- PS3: There is currently no way to force the (X) icon found in the active document tab to invoke your custom "mydoc.close". This is actually a deficiency of our design. -- XMLmind XML Editor Support List xmleditor-support at xmlmind.com http://www.xmlmind.com/mailman/listinfo/xmleditor-support

