*****************************************************************
***              ContextMenu AkelPad plugin v17.6             ***
*****************************************************************

2007-2017 Shengalts Aleksander aka Instructor (Shengalts@mail.ru)


***  ***

˵ͱ༭ؼMDI ǩӺļĲ˵

ע:
-  Ctrl ͬʱڷ˵Ŀ򿪲Ի򲢶λĿ롣
- ļ˵ Win95 вá


***  ***

ContextMenu::Main
Ự

ContextMenu::Show
ʾû˵


*** ﷨ ***

:
  %f ļ
  %d ļĿ¼
  %a AkelPad Ŀ¼
  %m ˵ ID ()
  %i ˵Ŀ ID
  %u URL ַ ( "URL ˵")
  %%  %
  %ϵͳ%

ע:
  # ע
  ; ע

˵Ŀ:
  SEPARATOR
    ˵Ŀָ
  SEPARATOR1
     SEPARATOR ͬ:
    - ָ SEPARATOR1ôϲɵһһ SEPARATOR1;
    - ָ SEPARATOR1 Ӳ˵ĿͷƳ
  EXPLORER
    Դ˵
  FAVOURITES
    ղؼļб
  RECENTFILES
    ļ˵
  LANGUAGES
    ģб
  OPENCODEPAGES
    ´ļĴҳб
  SAVECODEPAGES
    ļĴҳб
  MDIDOCUMENTS
    MDI ĵб ( "˵"  MDI ģʽ)
  CLEAR
    ˵ ( "˵")
  INCLUDE("MENU NAME")
    "MENU NAME"
       "ContextMenu::Show menu" ָӲ˵.
    INCLUDE("SYNTAXTHEME")
       "ContextMenu::Show menu" "SYNTAXTHEME" Ӳ˵
  SET([, Ӳ])
    ֽ (Ѿõıǲᱻɾ)֮:
      SET(1)
        SDI ģʽʱС
      SET(2)
        MDI ģʽʱС
      SET(4)
        PMDI ģʽʱС
      SET(8)
        ˵ʱ׽ȼ
      SET(16)
        ǲش˵ (ر: ͼꡢMenu()  INCLUDE)
        Ҫڵһ˵֮ǰ SET(16) һ˵֮ UNSET(16)
      SET(32, "%a\AkelFiles\Plugs\Scripts.dll")
        Scripts.dllļھͽС
      SET(64, If("expression"[, IfTrue, IfFalse]))
        ͽС
          "expression"
            ʽ:
            - ѧ:
              +, -, *, /, %, &, |, ^.
            - ߼:
              >, <, ==, !=, >=, <=, &&, ||, x?y:z.
            - ע:
              /*ע*/
            - :
              SendMain(nMessage, wParam, lParam)
                nMessage
                  ָҪ͸ڵϢ
                wParam
                  ָϢضϢ
                lParam
                  ָϢضϢ
              SendEdit(nMessage, wParam, lParam)
                nMessage
                  ָҪ͸ǰ༭ڵϢ
                wParam
                  ָϢضϢ
                lParam
                  ָϢضϢ
              Call("Plugin::Function"[, Ӳ])
                - һôָͨĲ &nResult ˳롣&nResult ⲿ﷨ָһָλá
                  SET(64, If(`Call("Coder::CodeFold", 1, &nResult)`)
                     CodeFold Ѵ򿪾ͽС
                - һűôбҪʹⲿ 2  4һͨ AkelPad.ScriptExitCode ӽű˳롣
                  SET(64, If(`Call("Scripts::Main", 4, "EvalCmd.js", 'if (AkelPad.GetEditFile(0)) AkelPad.ScriptExitCode(1);')`)
                    ǰĵͽС
                - ֱӵ Scripts 
                  SET(64, If(`AkelPad.Constants._X64 == 1`))
                    Ϊ x64 ͽС
          IfTrue
            ֵʽΪ ()
          IfFalse
            ֵʽΪ ()
        SET(64, If(`SendMain(1222 /*AKD_GETMAININFO*/, 5 /*MI_SAVESETTINGS*/, 0) == 2 /*SS_INI*/`))
          Ǳ浽 ini ļͽС
      SET(128, If("expression"[, IfTrue, IfFalse]))
        ò˵״̬
          "expression"
             SET(64) ˵
          IfTrue
            0x0 //IFS_NORMAL    ׼Ĳ˵
            0x1 //IFS_CHECKED   ѡĲ˵
            0x2 //IFS_GRAYED    ñҵĲ˵
            0x4 //IFS_DISABLED  õĲ˵
          IfFalse
            0x0 //IFS_NORMAL    ׼Ĳ˵
            0x1 //IFS_CHECKED   ѡĲ˵
            0x2 //IFS_GRAYED    ñҵĲ˵
            0x4 //IFS_DISABLED  õĲ˵
        SET(128, If("SendMain(1223 /*AKD_GETFRAMEINFO*/, 69 /*FI_CARETOPTIONS*/, 0) & 0x2 /*CO_CARETVERTLINE*/", 0x1, 0x0))
          Ѵ򿪾͸ѡĲ˵
        SET(128, If(`Call("Scripts::Main", 5, "SearchReplace.js", 2 /*SH_THISSCRIPT*/, &nResult)`, 0x1, 0x0))
           SearchReplace.js о͸ѡĲ˵
        SET(128, If(`AkelPad.IsPluginRunning("Coder::HighLight")`, 0x1, 0x0))
           Coder::HighLight о͸ѡĲ˵
  UNSET()
    ȡֽǡ SET() 

˵Ŀ:
  [-]"[˵Ŀ]"  [Command() | Call() | +Call() | Exec() | OpenFile() | SaveFile() | Font() | Recode() | Insert() | Link() | Favourites() | Menu()] [Icon()]

  [-]"[˵Ŀ]"
    "ҵĲ˵Ŀ"
      ˵Ŀ֡
    -"ҵĲ˵Ŀ"
      иŵĲ˵Ŀ״̬ᱻĳַı(Ϊãѡ)
    ""
      ˵ĿҲԱ Command() ʹãʹ Command() õ˵Ŀ档

    Command([, ])
      Command(4162)
         4162 ڲӵ "ת..." Ի
         AkelHelp-Eng.htm Դе AkelDLL.h ˽б
    Call("::"[, Ӳ])
      Call("Scripts::Main")
        ýű
    +Call("::"[, Ӳ])
      +Call("LineBoard::Main")
         LineBoard ԻڳС
    Exec(""[, "Ŀ¼"][, ȴ][, ʽ])
      ""
        ַ
      "Ŀ¼"
        Ŀ¼ַĬֵΪ ""
      ȴ
        ȴֱ1 - ȴ, 0 - (Ĭֵ)
      ʽ (֮һ):
        0 شڡ
        1 ԭ (Ĭֵ)
        2 Сڡ
        3 󻯴ڡ
        6 С(ǻ)
        9 󻯴ڡ
        ע: ܻ
      Exec("notepad.exe")
         ±
      Exec(`notepad.exe`)
         ±
      Exec('notepad.exe')
         ±
      Exec('%windir%\notepad.exe')
         ±
      Exec(`rundll32.exe shell32,ShellExec_RunDLL "%f"`, "%d")
         Windows 򿪻ļ
    OpenFile("ļ"[, ʹôҳ][, ʹBOM])
      "ļ"
        Ҫ򿪵ļ
      ʹôҳ
        򿪴ҳ -1 δָʾԶ⡣
      ʹBOM
        ļֽ˳ǡ -1 δָʾԶ⡣
      OpenFile("C:\File.txt", 65001, -1)
        ʹ UTF-8 ҳļ
    SaveFile("ļ"[, ʹôҳ][, ʹBOM])
      "ļ"
        浱ǰĵָļ
      ʹôҳ
        ҳ -1 δָʾʹõǰĴҳ
      ʹBOM
        ֽ˳ǡ1 ʾڣ0 ʾڣ-1 ʾδָʹõǰ BOM
      SaveFile("C:\File.txt", 65001, 0)
        ʹ BOM  UTF-8 ҳļ
    Font("", , С)
      ""
        , 磺"Courier". "" ʾı䡣
       (֮һ):
        0  .
        1  .
        2  .
        3  б.
        4  б.
      С
        С. 0 ʾı䡣
      Font("Courier", 4, 10)
         Courier б壬С 10 pt.
    Recode(Դ, Ŀ)
      Դ
      ԴҳֵΪ -1 ʾԶ⡣
      Ŀ
      ĿҳֵΪ -1 ʾԶ⡣
      Recode(1252, 437)
        ±ֵĴҳ 1252  437
    Insert(""[, ת])
      ""
        Ҫ֡
      ת:
        0 - "" ת (Ĭֵ)
        1 - "" תС
           תмĲ/滻Իͬ:
           "\s" - 滻Ϊ༭еѡ֣
           "\|" - òλڲı֮
      Insert("һЩַ")
        ָ滻ѡ
      Insert("<B>\s</B>", 1)
        Χѡ
      Insert("\[0031 0032 0033]", 1)
        滻ѡΪ "123"
    Link()
      Link(1)
        򿪳 ( "URL ˵")
      Link(2)
        Ƴ ( "URL ˵")
      Link(3)
        ѡ ( "URL ˵")
      Link(4)
        г ( "URL ˵")
      Link(5)
        ʹüı滻 ( "URL ˵")
      Link(6)
        ɾ ( "URL ˵")
    Favourites()
      Favourites(1)
        ӵǰļղؼ (Ի)
      Favourites(2)
        ӵǰļղؼ (Ի)
      Favourites(3)
        ղؼеĶԻ
      Favourites(4)
        ղؼɾǰļ
    Menu("˵")
      "˵"
        "ContextMenu::Show ˵" ָӲ˵ơ
      Menu("SYNTAXTHEME")
         "ContextMenu::Show ˵"  "SYNTAXTHEME" Ӳ˵

    Icon(["ļ"][, ])
      Icon("Shell32.dll", 47)
        ͼλļ Shell32.dll 47
      Icon("%a\AkelFiles\Plugs\Explorer.dll")
        ͼλļ Explorer.dll 0
      Icon("%a\AkelFiles\Plugs\Toolbar\MyIcon.ico")
        ͼλļ MyIcon.ico
      Icon(12)
        ͼλļ ToolBar.dll 12

:
  "±ѡ" Command(4182)
  "" Command(4182)
  "" Call("Format::LineSortStrAsc")
  -"ƴд" Call("Scripts::Main", 1, "SpellCheck.js", "")
  "﷨ʾ" +Call("Coder::Highlight")
  "ע༭" Exec("regedit.exe") Icon("regedit.exe")


Ӳ˵Ĵ:
  "[Ӳ˵ı]" [Index() | Break() | Icon()]
  {
  }

  "[Ӳ˵ı]"
    "My Submenu"
      Ӳ˵ı

    Index()
      Index(-1)
        Ӳ˵ΪͲӲ˵˵ָλã˵ĩβʼ
    Break()
      Break(-1)
         Index() ͬӲ˵뵽˵µһС
    Icon (["ļ"] [])
      Icon(0)
        ο˵Ŀ˵ Icon() ˵еӲ˵á

:
  "ҳ(&C)" Index(-1)
  {
    "Ϊ ANSI	Alt+W" Command(4122)
    "Ϊ OEM	Alt+D" Command(4123)
    "Ϊ UTF-16LE (׼)	Alt+L" Command(4125)
    "Ϊ UTF-16BE	Alt+B" Command(4126)
    "Ϊ UTF-8	Alt+U" Command(4127)
    SEPARATOR
    "Ϊ(&O)" Icon("%a\AkelFiles\Plugs\ToolBar.dll", 36)
    {
      OPENCODEPAGES
    }
    SEPARATOR
    "Ϊ ANSI	Shift+Alt+W" Command(4131)
    "Ϊ OEM	Shift+Alt+D" Command(4132)
    "Ϊ UTF-16LE (׼)	Shift+Alt+L" Command(4134)
    "Ϊ UTF-16BE	Shift+Alt+B" Command(4135)
    "Ϊ UTF-8	Shift+Alt+U" Command(4136)
    "Ϊ UTF-8 ( BOM)" Command(4137)
    SEPARATOR
    "Ϊ(&S)" Icon("%a\AkelFiles\Plugs\ToolBar.dll", 5)
    {
      SAVECODEPAGES
    }
    SEPARATOR
    "ҳ	Alt+F5" Command(4121)
  }


*** ⲿ ContextMenu::Main ***

Call("ContextMenu::Main", 1, INDEX, "STRING")
  :
    1
      򿪶Իѡ˵
    INDEX
       (ĬֵΪ 0)
    STRING
      ַѡ (ĬֵΪ "")
Call("ContextMenu::Main", 2, OPERATION)
  :
    2
      ⲿòղؼļб
    OPERATION
      ֡ Favourites() ˵

Call("ContextMenu::Main", 10)
  :
    10
      ޶Ի/ֹͣ 

*** ⲿ ContextMenu::Show ***

Call("ContextMenu::Show", 1, "X", "Y", INDEX, "SUBMENU", *MENUHEIGHT)
  :
    1
      ָλôû˵
    "X"
      X Ļλ (ĬֵΪ "-1")
    "Y"
      Y Ļλ (ĬֵΪ "-1")
    INDEX
      ִָӲ˵ -1 ʾв˵ (Ĭֵ)
    "SUBMENU"
      ƴָӲ˵INDEX  -1
    *MENUHEIGHT
      ָһղ˵߶ȵĻָ롣ָô˵򿪡
  ע:
    -  X  Y  "-1"ʹñ༭ڵϽλá
    -  X  Y  "-2"ʹñ༭ڵϽλá
    -  X  Y  "-3"ʹñ༭ڵ½λá
    -  X  Y  "-4"ʹñ༭ڵ½λá
    -  X  Y  "-5"ʹñ༭ڵĲλá
    -  X  Y  "-6"ʹָλá
    - INDEX 㡣

Call("ContextMenu::Show", 2, "X", "Y")
  :
    2
      ָλô˵
    "X"
      X Ļλ (ĬֵΪ "-1")
    "Y"
      Y Ļλ (ĬֵΪ "-1")
  ע:
    -  X  Y  "-1"ʹñ༭ڵϽλá
    -  X  Y  "-2"ʹñ༭ڵϽλá
    -  X  Y  "-3"ʹñ༭ڵ½λá
    -  X  Y  "-4"ʹñ༭ڵ½λá
    -  X  Y  "-5"ʹñ༭ڵĲλá
    -  X  Y  "-6"ʹùλá
