Latest post of the previous page:
Ещё патчик. Добавил поддержку флагов для диалога во внешнем билдере.DialogBuilder
-
- Posts: 1351
- Joined: Fri 30 Nov, 2007 15:32
- Location: Крым
- Has thanked: 15 times
- Been thanked: 50 times
- Contact:
Re: DialogBuilder
Ломать нехорошо, да. Но тут 2 проблемки вылезает:
1. Если всё таки захочется зафокусить дефолтную кнопку, то не получится. Может тогда параметр один добавить ещё для такого случая?
2. Если в диалоге нет активных элементов кроме ряда кнопок, и дефолтная кнопка не первая, то получается странное поведение: дефолтная кнопка одна, а фокус всегда на другой кнопке - самой первой. В принципе, добавления параметра выше позволит решить эту проблему правильными аргументами, но какое-то слабое решение.
1. Если всё таки захочется зафокусить дефолтную кнопку, то не получится. Может тогда параметр один добавить ещё для такого случая?
Code: Select all
void AddButtons(int ButtonCount, const int* MessageIDs, int defaultButtonIndex = 0, int cancelButtonIndex = -1, bool focusOnDefaultButton = false)
...
if (defaultButtonIndex == i)
{
NewButton->Flags |= DIF_DEFAULTBUTTON;
if (focusOnDefaultButton)
NewButton->Flags |= DIF_FOCUS;
}
- zg
- zero-gravity
- Posts: 6035
- Joined: Tue 15 Mar, 2005 17:36
- Location: riga
- Been thanked: 185 times
- Contact:
Re: DialogBuilder
диалог перезаписи же.DrKnS wrote:Я не совсем понял, зачем вообще фокусить дефолтную кнопку
- HaRT
- Moderator
- Posts: 10866
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 221 times
- Been thanked: 358 times
Re: DialogBuilder
Я тоже не понимаю, зачем, ведь естьDrKnS wrote:Я не совсем понял, зачем вообще фокусить дефолтную кнопку
[b]CtrlEnter[/b]
.Фар есть инструмент, а не нянька. © 2009 DrKnS
-
- Posts: 1351
- Joined: Fri 30 Nov, 2007 15:32
- Location: Крым
- Has thanked: 15 times
- Been thanked: 50 times
- Contact:
Re: DialogBuilder
Чтобы не сфокусировалось не то что надо . В частности, как я уже писал, сейчас фокусируется первая кнопка безотносительно кто там дефолтная.DrKnS wrote:Я не совсем понял, зачем вообще фокусить дефолтную кнопку,
-
- Posts: 1351
- Joined: Fri 30 Nov, 2007 15:32
- Location: Крым
- Has thanked: 15 times
- Been thanked: 50 times
- Contact:
Re: DialogBuilder
Вопрос интуитивности пусть каждый разработчик решает для себя. Я же не предлагаю в самом Far-е что-то менять. А инструмент должен быть гибким и непротиворечивым.
А какие принципиальные возражения против дополнительного параметра? Вроде ничего не ломает, только возможности расширяет.
А какие принципиальные возражения против дополнительного параметра? Вроде ничего не ломает, только возможности расширяет.
-
- Posts: 1351
- Joined: Fri 30 Nov, 2007 15:32
- Location: Крым
- Has thanked: 15 times
- Been thanked: 50 times
- Contact:
DialogBuilder
Нашел небольшой глючок в билдере. Если использовать фичу с колонками, и во второй колонке элементов меньше чем в первой, то рамка получается кривая. Билдер считает размер рамки по последнему элементу, но он в таком случае не самый низкий по вертикали.
В аттаче патч. Вместо последнего элемента берется максимальное значение Х2 из всех.
В аттаче патч. Вместо последнего элемента берется максимальное значение Х2 из всех.
- Attachments
-
- columns_box_fix.diff.txt
- (821 Bytes) Downloaded 241 times
-
- Posts: 1351
- Joined: Fri 30 Nov, 2007 15:32
- Location: Крым
- Has thanked: 15 times
- Been thanked: 50 times
- Contact:
DialogBuilder
В догонку. Оказалось что и горизонтально рамка неправильно считается. Правая колонка может налазить на рамку. Чтобы увидеть эффект можно следующий код запустить.
В итоге edit справа налезет на рамку.
Но тут немного непонятно куда чинить. Это так и задумано, что между колонками промежуток 2 знакоместа выделяется? Или они всё таки впритык должны идти? А то как раз эти 2 символа справа и не хватает для нормальной рамки. Но не зная как было всё задумано сложно предложить патч.
В итоге edit справа налезет на рамку.
Но тут немного непонятно куда чинить. Это так и задумано, что между колонками промежуток 2 знакоместа выделяется? Или они всё таки впритык должны идти? А то как раз эти 2 символа справа и не хватает для нормальной рамки. Но не зная как было всё задумано сложно предложить патч.
-
- Posts: 1351
- Joined: Fri 30 Nov, 2007 15:32
- Location: Крым
- Has thanked: 15 times
- Been thanked: 50 times
- Contact:
DialogBuilder
Поработаю немного археологом, чтобы новую тему не создавать.
Сочинил тут патчик с небольшим причесываем билдера:
1. Для некоторых контролов есть 2 метода: и с текстом надписи и с id (из Lng файлов), а для некоторых только с id. Внедрил всеобщее равенство.
2. AddRadioButtons теперь возвращает не void, а указатель на первую кнопку. Полезно, если надо между кнопками что-то вставить.
Я эти модификации у себя использовал, но думаю и ещё кому-нибудь могут пригодиться.
Сочинил тут патчик с небольшим причесываем билдера:
1. Для некоторых контролов есть 2 метода: и с текстом надписи и с id (из Lng файлов), а для некоторых только с id. Внедрил всеобщее равенство.
2. AddRadioButtons теперь возвращает не void, а указатель на первую кнопку. Полезно, если надо между кнопками что-то вставить.
Я эти модификации у себя использовал, но думаю и ещё кому-нибудь могут пригодиться.
- Attachments
-
- dlg_builder_tweaks_patch.txt
- (4.39 KiB) Downloaded 251 times