Перейти к содержанию

Дайджесты за январь-февраль

Обновления гайдов и аддонов

Январь Февраль

Мониторинг серверов и редактор аддонов

Представляем вам две легенды. То, о чем можно было только мечтать, стало реальностью.

Мониторинг серверов Редактор аддонов

Подсказки из игры на вашем сайте

Теперь вы можете отображать сведения о внутриигровых элементах простым наведением курсора мыши.

Подробнее

Апдейтер аддонов

Представляем вам программу для автообновления аддонов и делимся подробностями.

Подробнее Скачать

WidgetEditLine как?


Гость KaaPex

Рекомендуемые сообщения

Столкнулся с проблемой, как сделать чтобы было видно мигающий курсор и скорее всего надо обработку потери фокуса поля! Кто нить ковырял данный вопрос?

Ссылка на комментарий
Поделиться на другие сайты

Еще такой вопрос возник:

Можно ли указать на ссылку прототипа из переменных клиента, то есть не объявленных в аддоне, например AuctionEditLine.Prototype ? Если можно, то как?

Ссылка на комментарий
Поделиться на другие сайты

Я НЕ пробовал, но наверное, нужно сделать отдельный пустой слой для курсора, на котором он будет виден. Таких здесь, почему-то аж 2 - Cursor1Layer и Cursor2Layer:

Code:
<Cursor1Layer href="" />

<Cursor2Layer href="" />

<CursorWidth>2</CursorWidth>

<CursorChangeTimeMs>500</CursorChangeTimeMs>

Про реакции. Там есть реакции нажатия Enter и Esc, а также реакция на изменившийся текст (Changed). Реакции на потерю фокуса нет. А зачем она, без неё никак?

Ссылка на комментарий
Поделиться на другие сайты

Два слоя видимо чтобы реализовать эффект мигания курсора или для выделения текста вторым слоем.

По поводу потери фокуса, почему-то пока не закрою окно с полем WidgetEditLine все события приходят на него, вероятно Esc в данном контексте является признаком потери фокуса.

А где можно посмотреть всю структуру файла для WidgetEditLine? А то сижу методом тыка мучаюсь.

Ссылка на комментарий
Поделиться на другие сайты

Нигде. Беда в том, что разработчики не потрудились написать никакой документации по XDB файлам. Сами они пользуются каким-то полноценным IDE, поэтому, им самим такая документация вообще не нужна, у них её нет. Вот и приходится, методом тыка, разбираться в XDB файлах. Если нужно сделать пустой слой, то, имхо, это делается так:

Делаем TGA картинку такого размера, как этот WidgetEditLine. Содержание картинки не важно, мы её всё равно удалим. Конвертируем её ниваловским конвертером в WidgetLayerTiledTexture - получаются 4 файла:

(WidgetLayerTiledTexture).xdb

(UISingleTexture).xdb

(UITexture).xdb

(UITexture).bin

Теперь удаляем два нижних файла, а в файле (UISingleTexture).xdb удаляем href в теге <singleTexture>, получается так:

Code:
<?xml version="1.0" encoding="UTF-8" ?>

<UISingleTexture>

<textureElement href="" />

<singleTexture href="" />

</UISingleTexture>

Всё готово. Эти два файла - (WidgetLayerTiledTexture).xdb и отредактированный (UISingleTexture).xdb - это и есть пустой слой.

Ссылка на комментарий
Поделиться на другие сайты

Тоже полезное дело!

Но немного другое имел ввиду. Я про WidgetEditLine хотел узнать описание полей самого виджета, например есть же для кнопок и для текстовых полей. Про текстуры вроде бы все понятно.

Вот к примеру для кнопки

Code:

<?xml version="1.0" encoding="UTF-8" ?>

<WidgetButton>

<Header>

<Prototype href="/Mods/SampleCommon/Button/ButtonRegular.Prototype.(WidgetButton).xdb#xpointer(/WidgetButton)" />

</Header>

<Placement>

<X>

<Align>WIDGET_ALIGN_CENTER</Align>

<Size>200</Size>

</X>

<Y>

<Align>WIDGET_ALIGN_HIGH</Align>

<HighPos>30</HighPos>

<Size>30</Size>

</Y>

</Placement>

<Variants>

<Item>

<TextFileRef href="ButtonExecute.txt" />

<Reaction>execute</Reaction>

</Item>

</Variants>

</WidgetButton>

Ссылка на комментарий
Поделиться на другие сайты

Пустой WidgetLayerSimpleTexture решает все проблемы. Белый квадрат. Размеры - пофигу. Если надо покрасить - добавляем цвет.

Болванка пустого слоя:

Code:
<WidgetLayerSimpleTexture>

<Color>0xffffffff</Color>

<BlendEffect>BLEND_EFFECT_ALPHABLND</BlendEffect>

</WidgetLayerSimpleTexture>

Ссылка на комментарий
Поделиться на другие сайты

накопал тут для виджета ниже пример разрешающий вводить только русские буквы

Code:

<UITextFilter>

  <ranges>

    <Item>

      <minChar>А</minChar>

      <maxChar>я</maxChar>

    </Item>

  </ranges>

  <filter>Ёё</filter>

  <isAllowObject>false</isAllowObject>

</UITextFilter>

Ссылка на комментарий
Поделиться на другие сайты

Методом тыка было выяснено, что эти два слоя отвечают за эффект мигания курсора разными текстурами.

Ссылка на комментарий
Поделиться на другие сайты

  • 4 года спустя...

похоже что то поменялось в WidgetEditLine после 6.0.01.
ни кто случайно не разобрался?

 

не удается его получить с помощью GetChildChecked

в логе ошибка 

Widgets::LuaGetChildChecked: can't find a child

Изменено пользователем Dubrion
Ссылка на комментарий
Поделиться на другие сайты

Если используешь <Cursor2Layer href="" />, то теперь придется задать прозрачный слой здесь.

Явно прописать:

 

<Cursor2Layer href="TransparentLayer.(WidgetLayerSimpleTexture).xdb#xpointer(/WidgetLayerSimpleTexture)" />

 

И создать TransparentLayer.(WidgetLayerSimpleTexture).xdb с прозрачным цветом (<Color>0x00000000</Color>) и без текстуры.

 

В противном случае виджет просто не создается.

Изменено пользователем hal.dll
Ссылка на комментарий
Поделиться на другие сайты

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Восстановить форматирование

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...

Важная информация

Пользуясь сайтом, вы принимаете Условия использования