Не получается создать диалоговое окно 40x40 пикселей

  • Автор темы Автор темы frSaSA
  • Дата начала Дата начала
Статус
Закрыто для дальнейших ответов.

frSaSA

Участник
Топикстартер
Сообщения
8
Реакции
0
Здравствуйте!

- осваиваю ESTK, и столкнулся с проблемой, которая долгое время не дает мне покоя.

Как бы я не пытался создать диалоговое окно маленького размера, на пример: 40x40 пикселей, при старте скрипта создается окно больше указанного размера: 140x40.
(Если создаю окно больше 140x140 пикселей, то все работает, как надо)
Проблема в том, что мне нужно именно маленькое окно, и именно "dialog" (а не "palette").

Использую вот такой код:

var window = new Window("dialog", undefined, undefined, {borderless: true});
window.orientation = 'stack';
window.margins = 0;
window.spacing = 0;

window.size = [40, 40]; // !!! ??? !!!

var text = window.add('statictext', undefined, "Hallo");
text.size = [40, 40];
text.alignment = ['left', 'top'];

window.show();

На выходе получаю окно размером: 140x40
Причем, если в это окно поместить кнопку, при нажатии на которую, будет выполнятся: window.size = [40, 40]; то окно будет уменьшатся до нужного размера в 40x40 пикселей.

Подразумеваю, что все дело в "Automatic layout" который однократно срабатывает при window.show(); и судя по "Adobe JavaScript Tools Guide", он может быть переопределён как "Custom layout-manager", к сожалению в документации всего один пример и я чето совсем не могу его понять.. :-(

Подскажите, пожалуйста, как же все-таки сделать маленькое диалоговое окно?
 
Напрашивается тогда такое:
Код:
var window = new Window("dialog", undefined, undefined, {borderless: true});
window.orientation = 'stack';
window.margins = 0;
window.spacing = 0;

window.size = [40, 40]; 

var text = window.add('statictext', undefined, "Hallo");
text.size = [40, 40];
text.alignment = ['left', 'top'];

// --------------------------------------------------------

window.onShow = function () { window.size = [40, 40]; }

// --------------------------------------------------------

window.show();


Но не знаю как это воспримет фотошоп, да, и спать охота.
 
В Photoshop почему-то минимальный квадрат получается c размерами~[100, 130], меньшая шиирина не выходит, как будто есть какое-то ограничение, хотя в Illustrator те же window.size = [40, 40] вылазят нормально, как 40х40.
Особенность/баг шоповской реализации js?
 
Последнее редактирование:
@qsedftghk, спасибо большое за участие, но такое решение я попробовал в первую очередь, дело в том что .onShow срабатывает до того, как окно фактически отрисовывается и размер - не меняется.
Нужен какой-то event, чтоб срабатывал после отрисовки окна. Я пробовал ловить на .onDraw, вешая его на text, (думал, типа раз последний элемент в окне, то мол сначала отрисуется само окно, а потом text и я поймаю .onDraw для text, и смогу обновить размер окна), но видимо окно рисуется сразу, со всем вместе, по крайней мере первый раз... вощим сплошные непонятки :-(

@dumbm1, вот я тоже первым делом на баг, подумал, но такая штука длится уже давно еще с первой версии СС, я пробовал всей апдейты вплоть до СС2014.2.1, все одно и тоже.. :-(
..а может оно и всегда так было, я ток с СС стал в скрипты вникать..
 
Особенность/баг шоповской реализации js?
Шоповская реализация GUI - вообще отдельная песня. Я уже как то писал, что в моем локализованном шопе вызов любого элемента вообще рушит шоп наповал, при том, что сам скриптинг работает.
 
на маке 40x40 без плясок. можно попробовать задавать не только size, но еще и minimumSize и maximumSize

а ради чего вообще копья ломать? абстрактный интерес?
 
У меня предположение, что это не шоп виноват, а виндовский GUI, с его гига бордерами и кнопками. И самое классное, что по кнопке, как и писалось выше, окно всё же можно сделать 40x40. Скриптинг, что ты со мной делаешь, ахаха, прекрати =)
 
@Skvoznyak, пробавал и minimumSize/maximumSize и bounds и всякие комбинации с .size .preferredSize
даж менял [40, 40] на .size.width = 40; и .size.height = 40; что одно и тоже, менял порядок строк, шаманил по полной, но ни с места.. :-(
..в общем то интерес даже и не абстрактный, это - уже глубоко личное :-) хотелось разобраться, понять..

но конечно тот факт что на маке да и в иллюстраторе работает как надо, совсем не оставляет надежд, на то что это я делаю что то не так, а не Adobe..
 
@_MBK_, О! да, плагины эт оч. интересная тема, я бы с радостью попробовал по вникать, но даж не представляю с чего начать... мож у кого-нибудь есть исходник плагинса? ну на уровне "Hallo World", чтоб можно было самому собрать и хоть от чего то оттолкнуться..
 
Спасибо, как то не замечал, что там есть готовые примеры, буду пробовать :-)
 
Полно там примеров под все случаи жизни. Берете наиболее похожий и на базе него делаете свой - самый верный метод, учитывая неуклюжую тупорылость и парадоксальность адобовских SDK '))'
 
у меня вот не получается минимальный размер масштабируемого окна задать. вернее, задать можно, а толку ноль - ресайзится почти до нуля спокойно
 
Статус
Закрыто для дальнейших ответов.