IUP настройка / локализация элементов управления

Можно ли создать подкласс или аналогичные элементы управления IUP для получения изменений в функциональности на более низком уровне, чтобы изменения могли применяться ко всему проекту (все экземпляры элементов управления)

1)
Например, в моей локали у нас нет десятичной точки, но знак десятичной запятой на цифровой клавиатуре. В идеале спин IUP принимает кому и точку для десятичной точки. Можно ли это сделать и как?

2)
Как получить параллельную навигацию с помощью клавиатуры (вверх / вниз) в диалогах IUP, как у нас есть tab / shift + tab.

3)
Как получить значение для элементов управления вводом, которые будут выбраны при получении фокуса?

4)
Как распознать двойной щелчок мыши на ячейке матрицы IUP?

Извините за смешанные вопросы, но мне нужны эти ответы сейчас.
Благодарю.

1 ответ

Решение

Да, это можно сделать подклассом. Но это очень низкий уровень и требует загрузки исходного кода IUP. Документация уже включает информацию о внутреннем SDK. Проще просто создать функцию, например, myIupLabel(), которая создает IupLabel и устанавливает некоторые предварительно определенные атрибуты, которые будут использоваться приложением.

1) Насколько я знаю, нет контроля десятичной точки в спине IUP. Вы должны подробно описать, что вы используете. Если это элемент управления IupSpin, если это элемент управления IupText с атрибутом SPIN, и если вы используете атрибут MASK IupText. И да, это возможно, поэтому решить эту проблему, но как зависит от этих деталей.

2) Это уже сделано для переключателей и кнопок.

3) Вы имеете в виду элементы управления IupText? Используйте обратный вызов GETFOCUS_CB и установите атрибут SELECTION внутри обратного вызова.

4) Двойной клик используется для редактирования. EDITION_CB вызывается, когда происходит двойной щелчок. Но есть и другой способ. Вы можете установить обратный вызов BUTTON_CB, поскольку IupMatrix наследуется от IupCanvas, но вам придется сохранить предыдущий и вызвать его изнутри вашего.

Другие вопросы по тегам