Scripts discussion (1)

Discuss and announce AkelPad plugins
Locked
  • Author
  • Message
Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

DV
Посмотри биндинги zen coding в коллекции. Там есть файлик zen_file.js медот read. Выполняется CreateFile/ReadFile в память/CloseHandle. из памяти указанные байты помещаются в масив сиволов {array.push(string.fromCharCode(каждый байт))} , из которого потом делается строка(str = array.join('')). Потом эту строку кормят base64 кодеру ну и т.д. обратное преобразование с записью в файл выполнятся аналогично, бинарный файл получается идентичный исходному.

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

Translator.js
Added: change font.
Last edited by KDJ on Wed May 25, 2011 7:27 pm, edited 1 time in total.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

KDJ wrote:
Infocatcher wrote:In addition I request option to invert Enter and Ctrl+Enter behavior.
I don't know how to do that when you press Ctrl+Enter in the edit box does not insert a new line. :cry:
Like this:

Code: Select all

      else if (wParam == 13) //VK_RETURN
      {
        hFocus = oSys.Call("user32::GetFocus");
        if ((hFocus != aWnd[IDSWITCH  ][WND]) && (hFocus != aWnd[IDTRANSLATE][WND]) &&
            (hFocus != aWnd[IDOPTIONS ][WND]) && (hFocus != aWnd[IDOPAQMINUS][WND]) &&
            (hFocus != aWnd[IDOPAQPLUS][WND]))
          oSys.Call("user32::PostMessage" + _TCHAR, hWnd, 273 /*WM_COMMAND*/, IDTRANSLATE, 0);
      }

Code: Select all

    AkelPad.SendMessage(aWnd[IDTXTSOURCE][WND], 197 /*EM_SETLIMITTEXT*/, aAPIs[oSelect.API].TextLen, 0);
    AkelPad.SendMessage(aWnd[IDTXTTARGET][WND], 197 /*EM_SETLIMITTEXT*/, nBufSize - 1, 0);
    AkelPad.WindowSubClass(aWnd[IDTXTSOURCE][WND], EditCallback);
    AkelPad.WindowSubClass(aWnd[IDTXTTARGET][WND], EditCallback);

Code: Select all

function EditCallback(hWnd, uMsg, wParam, lParam)
{
  if (uMsg == 0x87) //WM_GETDLGCODE
  {
    return 0x4 /*DLGC_WANTALLKEYS*/;
  }
  else if (uMsg == 0x102) //WM_CHAR
  {
    //Ctrl+Enter
    if (wParam == 0xA)
    {
      oSys.Call("user32::PostMessage" + _TCHAR, hWndDlg, 273 /*WM_COMMAND*/, IDTRANSLATE, 0);
      return 1;
    }
  }
  return 0;
}



Maybe add option to switch only languages (but not text) or another button under IDTXTSOURCE and IDTXTTARGET to switch only text. Because if I open Translator.js, text from edit control copied to IDTXTSOURCE and if language direction is wrong, I need firstly copy text from IDTXTSOURCE then switch language (text is also changed) and then paste text to IDTXTSOURCE.

TabSwitch.js
Исправлено: отображение списка в Win95/98/Me.

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

Instructor
Thank you very much for your help and suggestions.

Translator.js
Added: button to switch languages only.
Changed: shortcut key for translation (Ctrl+Enter).
Last edited by KDJ on Wed May 25, 2011 7:28 pm, edited 1 time in total.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

KDJ
"AkelPad.GetSelText()" for checking non-empty selection can be very slow. Faster will be "AkelPad.GetSelStart() != AkelPad.GetSelEnd()" or "AkelPad.SendMessage(hWndEdit, 3125 /*AEM_GETSEL*/, 0, 0)".

KDJ
Offline
Posts: 1949
Joined: Sat Mar 06, 2010 7:40 pm
Location: Poland

Post by KDJ »

Instructor
Thank you for your remark.
Of these three methods, I think the last will be fastest.
Soon I make the change.

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

Instructor wrote:TabSwitch.js
Исправлено: отображение списка в Win95/98/Me.
Похоже, что теперь поломалось под XP и 7... Под XP частенько активный элемент списка вместо синего заднего фона оказывается прозрачным, а под 7 иногда вообще пол-списка не видно.

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

DV
Изменения были только для "!AkelPad.IsOldWindows()". На всякий случай проверил на XP x32 все нормально.

DV
Offline
Posts: 1250
Joined: Thu Nov 16, 2006 11:53 am
Location: Kyiv, Ukraine

Post by DV »

Instructor wrote:DV
Изменения были только для "!AkelPad.IsOldWindows()". На всякий случай проверил на XP x32 все нормально.
Значит, это и раньше было, просто я только сейчас начал им пользоваться :) Под XP выделенный элемент в списке становится прозрачным раз на 10-20 случаев, а под 7 (тема Aero) часть списка пропадает с вероятностью более 50%. Под 7 с темой Classic это случается реже. Если убрать из автозагрузки все плагины, кроме Scripts, воспроизводится как минимум при каждом третьем вызове Ctrl+Tab.

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

TabSwitch.JS
Всё последних версий.
Вот http://staynormal.org.ua/akelpad/tsb.png

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »


Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

DV
Исправлено. См. TabSwitch версии 2.1.

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Instructor, в v2.1 опять поломался размер(не знаю может быть и в 2.0 тоже, не заметил)

Offline
Site Admin
Posts: 6311
Joined: Thu Jul 06, 2006 7:20 am

Post by Instructor »

FeyFre
Как работает версия 2.2?

Offline
Posts: 2247
Joined: Tue Aug 07, 2007 2:03 pm
Location: Vinnitsa, Ukraine

Post by FeyFre »

Instructor, вроде бы нормально(что было не так: две вкладки с шрифтами разного размера, при переключении высота элемента и размер шрифта элемента не соответствовали друг другу).
Locked