[AI CC-CC2021] RECOLOR ENGINE v2 by S.H.

Станислав Хоффман

Участник
Топикстартер
Сообщения
277
Реакции
23
ну, надо вызывать из обработчика клика функцию с параметром (1 или 2), текущее окно прямо из обработчика закрывать, а из этой функции запускать новое в зависимости от параметра. так по-моему нормально работает.
ага, такой вариант работает, а вот обратно уже никак. Меня такой вариант вполне устроит.
 

Skvoznyak

15 лет на форуме
Сообщения
5 500
Реакции
2 168
в смысле никак? можно любое окно же открыть
 

splxgf

12 лет на форуме
Сообщения
7 742
Реакции
3 424
Переключаться между модальными окнами плохая идея, лучше один вариант скрипта реализовать.
Ну или пробовать через panel.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 187
Реакции
10 844
Модальное окно на то и модальное, что никуда из него не переключишься в рамках одного приложения.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 187
Реакции
10 844
А под иллюстратором такое работает, проверяли?
 

splxgf

12 лет на форуме
Сообщения
7 742
Реакции
3 424
Да тут вопрос даже не в том работает ли под иллюстратором, а вопрос в размерах окна, оно должно меняться.
Кстати нужно с этим поиграться, если размеры можно менять на лету и делать show/hide (или visible) определенным контейнерам, то можно не плодить несколько окон.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 187
Реакции
10 844
По мне, так самый идеальный вариант, лучше него только вкладки, но я не уверен, что на Script UI они вообще реализуемы
 

splxgf

12 лет на форуме
Сообщения
7 742
Реакции
3 424
лучше него только вкладки, но я не уверен, что на Script UI они вообще реализуемы
С этим как раз проблем нет, tabbedpanel работает из коробки. Один вариант нужно раскидать на две вкладки, а второй вариант это содержимое второй вкладки пристроить сбоку. Но два окна городить ради этого это лишнее.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 187
Реакции
10 844
tabbedpanel работает из коробки
Точно, пробовал, работает? Тогда вообще не пойму, почему сразу через вкладки не сделали? Лично я подобные вещи на си и VBA делаю всегда именно так 'hz'
 

splxgf

12 лет на форуме
Сообщения
7 742
Реакции
3 424
Вкладки это один из вариантов, а второй вариант нужно чтобы все элементы были видны сразу...
грубо говоря в одном варианте идет CM, YK на вкладках, а в другом варианте чтобы сразу были видны все элементы для CMYK.
Если делать три вкладки, то непонятно с размерами окна и скролом, хотя возможно это решаемо.
 

Станислав Хоффман

Участник
Топикстартер
Сообщения
277
Реакции
23
Вариант ниже работает в одну сторону - к окну 2. Обратно вернуться к окну 1 не получается.
Подумаю на счёт изменения размеров окна.

p.s. кто-то может объяснить последние строчки кода?
button1.onClick = function(){
win.close(1); // закрываем второй окно, это понятно
}
if ( win.show()==1 ) win2.show(); // здесь что? если окно 1 показано, выводим окно 2 ? А где команда на закрытие окна 1?


Код:
       var win = new Window ("dialog", "Window 1", [150, 150, 1040, 880]); //  WIN 1

     var win2 = new Window("dialog", "Window 2", [150, 150, 600, 250]);   //  WIN 2
          win2_pnl = win2.add("panel", [10, 10, 440, 100], "Move slider around"); 
     resetButton2 = win2_pnl.add("button", [25, 10, 150, 40], "Back to Full view");       

var tpanel = win.add ("tabbedpanel", [5, 5, 650, 680]);
var general = tpanel.add ("tab", [5, 5, 400, 300], "1, 2");  ////  TAB
var win_pnl = general.add ("panel", [0, 0, 500, 500], "1"); ////  PANEL

    var ys1 = 5;    var ys2 = 30;    var xxx = 20;    var yyy = 10;    var xx2 = 230;    var yy2 = 45;
    var dfg = 8;
    label_CC = win_pnl.add("edittext", [xxx+220, 19+dfg, 280, 38+dfg],             "100"); 
        var slideCC = win_pnl.add("slider", [xxx, 25, xx2, 50], 0, -200, 200);      slideCC.value = 100;
var images = tpanel.add ("tab", undefined, "3, 4");  ////  TAB
images.alignChildren = "fill";
var imwin_pnl = images.add ("panel", undefined, "Options");  ////  PANEL
imwin_pnl.dtd_decl = imwin_pnl.add ("checkbox", undefined, "123");
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////  BUTTONS
//var buttons = win.add ("group");
button1 = win.add ("button", [50, 200, 150, 230], "Compact view", {name: "ok"});
button2 = win.add ("button", [250, 200, 300, 230], "Cancel");
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

button1.onClick = function(){
win.close(1);
}

if ( win.show()==1 ) win2.show();
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 187
Реакции
10 844
button1.onClick = function(){
win.close(1); // закрываем второй окно, это понятно
}
if ( win.show()==1 ) win2.show(); // здесь что? если окно 1 показано, выводим окно 2 ? А где команда на закрытие окна 1?
Если окно закрыто с кодом 1 то показать второе окно
Где вы этот кусок кода взяли?
 

Станислав Хоффман

Участник
Топикстартер
Сообщения
277
Реакции
23
Если окно закрыто с кодом 1 то показать второе окно
Где вы этот кусок кода взяли?
на форуме adobe вчера подкинули.

где почитать про параметры окон ==1, ==0 ? Не складывается в голове (win.show ==1) = закрыть.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 187
Реакции
10 844
Что не складывается?
Вы ж предыдущей строкой возврат этого значения делаете
win.close(1);
Нельзя ж настолько бездумно куски кода копипастить! 'fp'
 

Станислав Хоффман

Участник
Топикстартер
Сообщения
277
Реакции
23
Что не складывается?
Вы ж предыдущей строкой возврат этого значения делаете
win.close(1);
Нельзя ж настолько бездумно куски кода копипастить! 'fp'
я понял, думал мы закрываем окно 2 - win(1) - 0 - первое, 1 - второе), а здесь close(1). Начинает проясняться.
 

_MBK_

Пикирующий бомбардировщик
15 лет на форуме
Сообщения
33 187
Реакции
10 844
я понял, думал мы закрываем окно 2 - win(1) - 0 - первое, 1 - второе), а здесь close(1).
Вы, все таки, покурите основные принципы программирования на яваскрипте. А то, вроде, серьезные программы пишете, но, временами, зияющие пробелы в базовых понятиях просто ужасают. 'fp'
 
  • Спасибо
Реакции: MrDesigner

Станислав Хоффман

Участник
Топикстартер
Сообщения
277
Реакции
23
сейчас подкинули новый вариант с resize:

Код:
var   
u, 
ui = new Window('dialog'), 
mainStack = ui.add('group'), 
fullView = mainStack.add('group'), 
basicView = mainStack.add('group'), 
fullBtn = fullView.add('button',u,'Go to full view'), 
basicBtn = basicView.add('button',u,'Go to basic view'), 
basicDims = [400,500], 
fullDims =[150,200] ; 
fullBtn.id = "full"; 
basicBtn.id = "basic"; 
 
ui.preferredSize = fullDims; 
mainStack.alignment = ["fill","fill"]; 
mainStack.alignChildren = ["fill","top"]; 
mainStack.orientation = "stack"; 
basicView.visible = false; 
 
basicBtn.onClick = fullBtn.onClick = function(){ 
var id = this.id; 
if ( id == "full" ) { 
fullView.visible = false; 
basicView.visible = true; 
ui.size = basicDims; 
ui.layout.resize(); 
//ui.center(); 
} 
else { 
fullView.visible = true; 
basicView.visible = false; 
ui.size = fullDims; 
ui.layout.resize(); 
//ui.center(); 
} 
} 
 
ui.show();
 

Станислав Хоффман

Участник
Топикстартер
Сообщения
277
Реакции
23
Вы, все таки, покурите основные принципы программирования на яваскрипте. А то, вроде, серьезные программы пишете, но, временами, зияющие пробелы в базовых понятиях просто ужасают. 'fp'
прекрасно Вас понимаю, спасибо за тактичность и терпение.