Jump to content
Alloder.pro: about Allods with love
Search In
  • More options...
Find results that contain...
Find results in...

New program for writers

We turn from quantity to quality and tell you how we will supplement the Allods Team program with rewards in rubles.

More

The new Updater

Let us to introduce the new addon updater software and to share the details

Read more

Alloder 2.0

We have started the process of project evolve, and this relates not only, and not even primarily of the site's view

Read more

WidgetEditLine как?


Guest KaaPex
 Share

Recommended Posts

Guest KaaPex

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

Link to comment
Share on other sites

Guest KaaPex

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

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

Link to comment
Share on other sites

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

Code:
<Cursor1Layer href="" />

<Cursor2Layer href="" />

<CursorWidth>2</CursorWidth>

<CursorChangeTimeMs>500</CursorChangeTimeMs>

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

Link to comment
Share on other sites

Guest KaaPex

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

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

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

Link to comment
Share on other sites

Нигде. Беда в том, что разработчики не потрудились написать никакой документации по 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 - это и есть пустой слой.

Link to comment
Share on other sites

Guest KaaPex

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

Но немного другое имел ввиду. Я про 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>

Link to comment
Share on other sites

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

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

Code:
<WidgetLayerSimpleTexture>

<Color>0xffffffff</Color>

<BlendEffect>BLEND_EFFECT_ALPHABLND</BlendEffect>

</WidgetLayerSimpleTexture>

Link to comment
Share on other sites

Guest KaaPex

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

Code:

<UITextFilter>

  <ranges>

    <Item>

      <minChar>А</minChar>

      <maxChar>я</maxChar>

    </Item>

  </ranges>

  <filter>Ёё</filter>

  <isAllowObject>false</isAllowObject>

</UITextFilter>

Link to comment
Share on other sites

Guest KaaPex

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

Link to comment
Share on other sites

  • 4 years later...

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

 

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

в логе ошибка 

Widgets::LuaGetChildChecked: can't find a child

Edited by Dubrion
Link to comment
Share on other sites

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

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

 

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

 

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

 

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

Edited by hal.dll
Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

 Share

×
×
  • Create New...

Important Information

By using our site you agree to the Terms of Use