AIMP Forum

AIMP для Windows => Предложения => Skin Editor / Skin Engine => Skin Engine => Topic started by: w7rus on January 03, 2017, 13:51:39

Title: Advanced element positioning
Post by: w7rus on January 03, 2017, 13:51:39
Новая система позиционирования с флагами, которые позволят позиционировать все 4 края элемента и его размеры расширенным количеством способов:

Size:____
F
The flag "f" or "F" means that the size value shall fill up to the parent's corresponding size variable, subtracting the given offset.
O
The flag "o" or "O" means the control's size variable is proportional to the other correlating size variable, with a given float scale.

Aligment:____
R
The flag "r" or "R" means that the control shall be aligned to the fullest extent of the respective value, subtracting a provided offset.
C
The flag "c" or "C" means that the value shall be centered for its respective value, with a provided offset.
S
The flag "s" or "S" means that the control shall be offset by a given float scale with regards to the control's correlating size variable.
P
The flag "p" or "P" means that the control shall be offset by a given float scale with regards to the control's parent's correlating size variable.

Пример взят отсюда: https://developer.valvesoftware.com/w/index.php?title=VGUI_Position_and_Size_Flags&oldid=205730
Title: Re: Advanced element positioning
Post by: Artem on January 03, 2017, 15:14:52
Единственное, чего у нас сейчас нет, это флажка, который бы сказал, что маргины заданы в процентах, а не пикселях. К слову, в мобильной версии такой флажок есть. Но тут есть одно но - за много-много лет я не видел ни одного интерфейса, где бы такой флажок потребовался.
Title: Re: Advanced element positioning
Post by: w7rus on January 03, 2017, 17:47:23
Да, отступ и позиционирование в процентах не помешало бы добавить
Title: Re: Advanced element positioning
Post by: Artem on January 03, 2017, 18:33:25
Да, отступ и позиционирование в процентах не помешало бы добавить

Можете пример привести, когда это полезно?
Title: Re: Advanced element positioning
Post by: w7rus on January 04, 2017, 10:28:31
Можете пример привести, когда это полезно?

Да, к примеру у меня есть 2 TASEGauge для положительных значений и отрицательных в Equalizer, но когда окно увеличивается по высоте я не могу сделать так чтобы нижняя граница одного элемента и верхняя другого были на середине, вот скрины с примерами:

(http://i.imgur.com/VMnB1K3.png)

(http://i.imgur.com/oxZLc8g.png)

Происходит при растягивании

Title: Re: Advanced element positioning
Post by: Artem on January 04, 2017, 12:13:12
Косвенно это можно решить и сейчас - нужно сделать группу с выравниванием по правому краю, в нее положить два контейнера с выравниванием Client, задать MinSize, в каждый из контейнеров положить Gauge.
Title: Re: Advanced element positioning
Post by: w7rus on January 04, 2017, 12:34:16
Косвенно это можно решить и сейчас - нужно сделать группу с выравниванием по правому краю, в нее положить два контейнера с выравниванием Client, задать MinSize, в каждый из контейнеров положить Gauge.

Но это муторно делать для каждого, нежели использовать функции (%) или экспрешоны (ContainerHeigh/2) в значениях отступов или размере. Очень облегчит создание.
Title: Re: Advanced element positioning
Post by: Black_AVP on January 04, 2017, 13:15:07
И для чего так заморачиваться (имеется ввиде применение Gauge)??? Разве что, с целью самого себя перехитрить...
Указанная вами проблема решается на самих же слайдерах эквалайзера с несколько иной текстурой. Пример во вложении.
Title: Re: Advanced element positioning
Post by: Artem on January 04, 2017, 13:35:59
Но это муторно делать для каждого, нежели использовать функции (%) или экспрешоны (ContainerHeigh/2) в значениях отступов или размере. Очень облегчит создание.

Это я к тому, что если очень хочется - можно уже сейчас.
А вот экспрешенов уж точно не будет.
Title: Re: Advanced element positioning
Post by: w7rus on January 04, 2017, 13:53:10
Это я к тому, что если очень хочется - можно уже сейчас.
А вот экспрешенов уж точно не будет.

Тогда уж по голосованию