QSearch plugin

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

Post by FeyFre »

DV, а Вы не пытались при отображении MessageBox добавить флажок MB_DEFBUTTON1 ?
И вообще, помоему не стоит думать о MessageBox как об обычном диалоге. Там кнопки/иконки/надписи рождаются на диалоге по ходу дела, а не с ресурсов достают, так что на работоспсобность это "фичи" ставить не стоит ИМХО

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

Post by DV »

FeyFre wrote:при отображении MessageBox добавить флажок MB_DEFBUTTON1 ?
Как раз первым делом пытался. Не работает, что неудивительно хотя бы потому, что

Code: Select all

#define MB_DEFBUTTON1               0x00000000L
FeyFre wrote:И вообще, помоему не стоит думать о MessageBox как об обычном диалоге.
А разве об этом должны были подумать не в Майкрософт?
Как я уже пейсал выше, в MessageBox с двумя кнопками эта фича работала.

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

Post by FeyFre »

Точно работает на всех двукнопочных сообщениях? И на MB_OKCANCEL и на MB_YESNO ? А на трехкнопочных? На четрыекнопочных? Дело конечно не наше - искать в чём глюк,

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

Post by DV »

QSearch v.3.7
* третья годовщина QSearch :)
* изменено поведение 'srch_pickup_selection'
+ добавлено: 'editor_autofocus'

Offline
Posts: 767
Joined: Mon Sep 28, 2009 10:03 am
Location: Minsk, Belarus

Post by se7h »

поздравляю :)

за автофокус отдельное спасибо

Offline
Posts: 3234
Joined: Wed Nov 29, 2006 1:19 pm
Location: Киев, Русь
Contact:

Post by VladSh »

DV, 8)
Огромное спасибо! Это именно то, что хотелось :D

Offline
Posts: 1873
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

Мысли вслух: а ведь можно пойти дальше звездочек и вопросиков и искать через регулярные выражения Scripts-плагином при вводе строки в обрамлении слешей. :roll:

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

Post by FeyFre »

Infocatcher
Тогда можно и без Scripts-плагина обойтись, а слинковаться с pcre.lib, всё-же по мощнее реализация будет.

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

Post by DV »

FeyFre wrote:слинковаться с pcre.lib
Ковырял я как-то pcre, но до полноценного использования так и не дошёл. Да и понимает он, вроде, только ANSI с подключаемой поддержкой UTF-8. Хотя это, конечно, мелочи - WideCharToMultiByte и наоборот никто не отменял.
Однако, есть следующие два момента, почему pcre надо было бы включить не в QSearch, а в сам AkelPad:
1) pcre слишком "пухлый" по сравнению с размером плагина
2) поддержка регулярных выражений только для поиска без возможности замены строк - это, хм, как смотреть новости без звука. Вроде и картинка есть, и всё красиво, но толку мало.

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

Post by FeyFre »

DV
Я и сам ковырял pcre.lib с целью привязать к одному проекту(ATL/MFC-ый CAtlRegExp просто убожество). Да, с заюзом POSIX-совместимых либ у Win32 проблемы(как у меня с Aspell), но нерешаемых нету. Хотя я уже давно жду когда M$ подключит UTF8 в системные вызова(типа CreateFileU), а то уже даже обрезанный ucs2 начинает раздражать.
RE: Однако:
1. Не обязательно линковать статически. Динамически слинковаться, и сделать приписку: "pcre.dll скачать оттуда, и положить туда". Тогда несколько плагинов смогут им пользоваться.
2. Ну например глухонемым звука и не надо, им достаточно сурдопереводчика или же просто читать по губам. Для замены регулярками сейчас есть SearchReplace.js так что пока нужно экспериментировать хотя бы только с поиском.

Offline
Posts: 876
Joined: Tue Jul 24, 2007 8:54 am

Post by Fr0sT »

При наведении мыши на edit плагина окно Акеля выскакивает наверх, если было накрыто другими окнами. Это как-то обескураживает.

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

Post by FeyFre »

Fr0sT
Такова природа фокуса ввода клавиатуры. Из MSDN:
The concept of keyboard focus is related to that of the active window. The active window is the top-level window the user is currently working with. The window with the keyboard focus is either the active window, or a child window of the active window. To help the user identify the active window, the system places it at the top of the Z order and highlights its title bar (if it has one) and border.

Offline
Posts: 1873
Joined: Mon Aug 06, 2007 1:07 pm
Contact:

Post by Infocatcher »

А разве плагин не может проверить, является ли окно AkelPad'а самым верхним?

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

Post by FeyFre »

Infocatcher
Может, а толку? Фокус ввода окно получает, и система автоматически его поднимает вверх, где-бы оно не лежало.

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

Post by Instructor »

QSearchDlg.c

Code: Select all

                    // 1, 10 and 11 accepted
                    HWND hFocusedWnd = GetFocus();

                    if ( hFocusedWnd && hFocusedWnd != hEdit )
                    {
                        SetFocus(hEdit);
                    }
QSearch.c

Code: Select all

                    HWND hFocusedWnd = GetFocus();

                    if ( hFocusedWnd && hFocusedWnd != hWnd )
                    {
                        if ( hFocusedWnd == g_QSearchDlg.hFindEdit )
                        {
                            SetFocus(hWnd);
                        }
                    }
Или можно с помощью GetForegroundWindow.
Post Reply