zoukankan      html  css  js  c++  java
  • Add command menuitem

    Motive: adding a new command as a menuitem 'Clear Cell Content' and merging it with a present

    command menuitem 'Clear Format' of 'FormatMenu' into one popup menuitem of 'EditMenu'.

    Steps need to do as follow:

    1. add a new command/define everything for the new command
    1.1 define id
       #define  FN_CLEAR_CELL_CONTENT   ...
    1.2 define status
       FN_CLEAR_CELL_CONTENT   //status(final|play)
       [
        ExecMethod = Execute;
        StateMethod = NoState;
       ]
    1.3 define flags and config
    SfxVoidItem ClearCellContent FN_CLEAR_CELL_CONTENT   
    ()
    [
        /*flags:*/
        HasDialog=TRUE,
            AutoUpdate=FALSE,
        ....
        /*config:*/
        AccelConfig=TRUE,
            MenuConfig=TRUE,
        ...
    ]
    1.4 define slotinfo
    SfxSlotInfo FN_CLEAR_CELL_CONTENT   
    {
        Slotname[en-US]="...";
    };

    1.5 define operation for the command
    case FN_CLEAR_CELL_CONTENT   
    {
     //opertation to do
    }


    1.6 add a menuitem for the command
    <menu:menuitem menu:id=".uno:ClearCellContent">


    1.7 add a node for the command in ***.xcu
    <node oor:name=".uno:ClearCellContent" oor:op="replace">
       <prop oor:name="Label" oor:type="xs:string">
        <value xml:lang="en-US">~Clear Cell Content</value>
       </prop>
       <prop oor:name="Properties" oor:type="xs:int">
        <value>1</value>
       </prop>
    </node>
    spotted-The 'Label' property of node specifies its dispaly name in en-US. But for GenericalCommands.xcu

    and CalcCommands.xcu, which one could be the proper file to add it in? The answer is it depends. They decide a menuitem can be used/showed in multip module or only one module. If you add it in the latter one but still use this it as a menuitem for another application, there will be one menuitem diaplayed but with blank name.

    2. Merge two command menuitems into one popup menuitem


    ->Find the present menuitem definition in menubar.xml
    <menu:menuitem menu:id=".uno:FormatMenu">
       <menu:menupopup>  
          <menu:menuitem menu:id=".uno:ClearFormat"/>
          <munu:menuseparator/>
          ...
       </menu:menupopup>
    </menu>

    ->add a node in .xcu file for your new popup menu
      <node oor:name=".uno:Clear" oor:op="replace">
       <prop oor:name="Label" oor:type="xs:string">
        <value xml:lang="en-US">~Clear</value>
       </prop>
       <prop oor:name="Properties" oor:type="xs:int">
        <value>1</value>
       </prop>
      </node>
    spotted-all nodes here are commands,but Only those you defined the operation for them are excutable.For the others you can click but no response.

    ->difine the popup menu as a menuitem of 'Edit' menu
    <menu:menuitem menu:id=".uno:EditMenu">
       <menu:menupopup>
         <menu:menu menu:id=".uno:Clear">
            <menu:menuitem menu:id=".uno:ClearCellContent"/>
        <menu:menuitem menu:id=".uno:ClearFormat"/>
         </menu:menu>
         ...
       </menu:menupopup>
    </menu>  
    spotted- here it specified 'Clear' was a popup menuitem and you will find a triangle direction following.

    My doubts:

    According to .xcs, there are two sets repectively naming 'Commands' and 'Popups'. Does it seriously distinguish them? Like my new popup menuitem, Should i add it into 'Popups' sets? (In fact, i added it into 'Commands' sets but it works well...)

  • 相关阅读:
    python 函数的参数
    python 函数
    python set
    python 字典
    python 条件判断和循环
    OSMC Vs. OpenELEC Vs. LibreELEC – Kodi Operating System Comparison
    深度学习中噪声标签的影响和识别
    Open images from USB camera on linux using V4L2 with OpenCV
    球面镜成像原理,焦距推导
    动画演示10个有趣但毫无用处的Linux命令
  • 原文地址:https://www.cnblogs.com/zhyryxz/p/1693854.html
Copyright © 2011-2022 走看看