*****************************************************************
***               LineBoard AkelPad plugin v12.6              ***
*****************************************************************

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


***  ***

1. ʾкźкš
2. ǩ֧֡

ʾ:
- δ ɾǩ ȼʱôǩõȼ/ɾķʽ


***  ***

LineBoard::Main
ֹͣ

LineBoard::Settings
öԻ


*** ⲿ ***

Call("LineBoard::Main", 1)
  :
    1
      ȴʼ

Call("LineBoard::Main", 2, *HEIGHT, *ENABLE)
  :
    2
      ȡ߸߶ȡ
    *HEIGHT
      ָָһձ߸߶ȵڴ档
    *ENABLE
      ѡָָһձ߿Եڴ档
  :
    WScript.Echo(GetRulerHeight());

    function GetRulerHeight()
    {
      var lpHeight;
      var nHeight=0;

      if (lpHeight=AkelPad.MemAlloc(4 /*sizeof(int)*/))
      {
        AkelPad.CallW("LineBoard::Main", 2, lpHeight);
        nHeight=AkelPad.MemRead(lpHeight, 3 /*DT_DWORD*/);
        AkelPad.MemFree(lpHeight);
      }
      return nHeight;
    }

Call("LineBoard::Main", 3, HEIGHT)
  :
    3
      ñ߸߶ȡ
    HEIGHT
      ߸߶ȡ
        µı߸߶ȵڵǰģô߽ (߶Ϊ 0)
        Ϊ -1, ôתߵĿԡ


Call("LineBoard::Main", 4, *BOOL)
  :
    4
      ʾ/塣
    *BOOL
      ѡָָһı
   (ȡ):
    WScript.Echo(IsLineBoardVisible());

    function IsLineBoardVisible()
    {
      var lpVisible;
      var bVisible=false;

      if (lpVisible=AkelPad.MemAlloc(4 /*sizeof(BOOL)*/))
      {
        AkelPad.CallW("LineBoard::Main", 4, lpVisible);
        bVisible=AkelPad.MemRead(lpVisible, 3 /*DT_DWORD*/);
        AkelPad.MemFree(lpVisible);
      }
      return bVisible;
    }

Call("LineBoard::Main", 11, WINDOW, DOCUMENT, *RECT)
  :
    11
      ȡ塣
    WINDOW
      ༭ھ
    DOCUMENT
      ༭ĵ
    *RECT
      ָָһվڴ档
        RECT.left - кȡ
        RECT.top - ߸߶ȡ
        RECT.right - ༭ڿͻұ߱Ե
        RECT.bottom - ༭ڿͻĵױ߱Ե
  :
    WScript.Echo(GetBoardWidth(AkelPad.GetEditWnd(), 0));

    function GetBoardWidth(hWndEdit, hDocEdit)
    {
      var lpRect;
      var nWidth=0;

      if (lpRect=AkelPad.MemAlloc(16 /*sizeof(RECT)*/))
      {
        AkelPad.CallW("LineBoard::Main", 11, hWndEdit, hDocEdit, lpRect);
        nWidth=AkelPad.MemRead(lpRect + 0 /*offsetof(RECT, left)*/, 3 /*DT_DWORD*/);
        AkelPad.MemFree(lpRect);
      }
      return nWidth;
    }

Call("LineBoard::Main", 12, WINDOW, DOCUMENT, *BOOKMARK, *BOOKMARKLENGTH)
  :
    12
      ȡǩкżϵַ
    WINDOW
      ༭ھ
    DOCUMENT
      ༭ĵ
    *BOOKMARK
      ָָһԶŷָǩкŵļϵַΪ NULLַΪ Unicode
    *BOOKMARKLENGTH
       BOOKMARK ַΪ NULL
  :
    WScript.Echo(GetBookmarksString(AkelPad.GetEditWnd(), 0));

    function GetBookmarksString(hWndEdit, hDocEdit)
    {
      var pBookmarksStr="";
      var lpBookmarksStr;
      var nBookmarksLen;
      var lpBookmarksLen;

      if (lpBookmarksLen=AkelPad.MemAlloc(4 /*sizeof(int)*/))
      {
        AkelPad.CallW("LineBoard::Main", 12, hWndEdit, hDocEdit, 0, lpBookmarksLen);

        if ((nBookmarksLen=AkelPad.MemRead(lpBookmarksLen, 3 /*DT_DWORD*/)) > 1)
        {
          if (lpBookmarksStr=AkelPad.MemAlloc(nBookmarksLen * 2 /*sizeof(wchar_t)*/))
          {
            AkelPad.CallW("LineBoard::Main", 12, hWndEdit, hDocEdit, lpBookmarksStr, 0);
            pBookmarksStr=AkelPad.MemRead(lpBookmarksStr, 1 /*DT_UNICODE*/);
            AkelPad.MemFree(lpBookmarksStr);
          }
        }
        AkelPad.MemFree(lpBookmarksLen);
      }
      return pBookmarksStr;
    }

Call("LineBoard::Main", 13, WINDOW, DOCUMENT, "BOOKMARK")
  :
    13
      ǩ
    WINDOW
      ༭ھ
    DOCUMENT
      ༭ĵ
    "BOOKMARK"
      Զŷָǩкŵļϵַ: "10,14,20"

Call("LineBoard::Main", 14, WINDOW, DOCUMENT)
  :
    14
      ɾǩ
    WINDOW
      ѡ༭ھ
    DOCUMENT
      ѡ༭ĵ

Call("LineBoard::Main", 15, WINDOW, DOCUMENT)
  :
    15
      ΪǰǩδΪɾǩÿݼʱлǩ
    WINDOW
      ѡ༭ھ
    DOCUMENT
      ѡ༭ĵ

Call("LineBoard::Main", 16, WINDOW, DOCUMENT)
  :
    16
      ӵǰɾǩ
    WINDOW
      ѡ༭ھ
    DOCUMENT
      ѡ༭ĵ

Call("LineBoard::Main", 17, WINDOW, DOCUMENT)
  :
    17
      ʾǩ˵
    WINDOW
      ѡ༭ھ
    DOCUMENT
      ѡ༭ĵ

Call("LineBoard::Main", 18, WINDOW, DOCUMENT)
  :
    18
      תһǩ
    WINDOW
      ѡ༭ھ
    DOCUMENT
      ѡ༭ĵ

Call("LineBoard::Main", 19, WINDOW, DOCUMENT)
  :
    19
      תһǩ
    WINDOW
      ѡ༭ھ
    DOCUMENT
      ѡ༭ĵ
