PDA

View Full Version : new test windowdialog does not open


yunusbbayram
06-05-2011, 04:57 PM
I do not know too much english
my problem, new test windowdialog does not open when I press the button asd

global test


Rollout test "cap1"
(
Spinner s1 "cap2"
)
-- createdialog test


test.isDisplayed

rollout test1 ""
(
subrollout asdf width:140 height:100
button asd""

on asd pressed do ------does not work
(createdialog test)


)
createdialog test1
AddSubRollout test1.asdf test


Would you help with code sample

lo
06-06-2011, 08:58 AM
I can only confirm that it doesn't work for me either.. I don't see anything you are doing wrong, I can only guess that rollouts that are inside subrollout controls can not be created independently as well.

LoneRobot
06-06-2011, 02:43 PM
is it not a scope issue?

rollout test1 ""
(
Rollout test "cap1"
(
Spinner s1 "cap2"
)

subrollout asdf width:140 height:100
button asd""

on asd pressed do createdialog test
)
createdialog test1
AddSubRollout test1.asdf test

lo
06-06-2011, 03:02 PM
@Pete: I think the OP's intent was to both have the dialog appear in the subrollout and be created independently as a floater using createDialog, or at least that's what I think... I read his post on the area but responded here. The code is different there.

Swordslayer
06-06-2011, 03:04 PM
LoneRobot: not really, in your example you'd have to have addSubRollout test1.asdf test1.test if there's no global test rollout already defined.

What's the use of having two instances of the same rollout floating around anyway? One can detach it to a floating dialog by replacing the button event handler with

on asd pressed do
(
removeSubRollout asdf test
createdialog test
)

but I'm not sure if that is what you really want to do...

LoneRobot
06-06-2011, 03:14 PM
@Pete: I think the OP's intent was to both have the dialog appear in the subrollout and be created independently as a floater using createDialog, or at least that's what I think... I read his post on the area but responded here. The code is different there.

ok guys, my bad. That makes sense. you can't have two instances of the same rollout. now why do this exactly? :-)

Swordslayer
06-06-2011, 04:15 PM
I can't think of no use for the original method either, but I kind of like the idea of detaching the subrollouts (but keeping the values). Could be fun and it could even be extended to work as a palette for some tools because the detached dialogs would stay there even after closing it. Something like this, but with .ini settings (and probably without destroying all the dialogs when run):

try (destroyDialog testParent; destroyDialog testParent.testChild1; destroyDialog testParent.testChild2; destroyDialog testParent.testChild3) catch()
rollout testParent "My Numerous Tools"
(
subRollout testContainer width:140 height:210
button btnDetach1 " 1 " across:3
button btnDetach2 " 2 "
button btnDetach3 " 3 "

rollout testChild1 "Child1"
(
spinner s1 "cap2"
)

rollout testChild2 "Child2"
(
label lbl1 "Test 2:"
editText etInput ""
)

rollout testChild3 "Child3"
(
label lbl1 "Test 3:"
editText etInput ""
)

fn transferValues target container: type:#dialog =
(

local settings = for ctrl in target.controls collect
(
case classOf ctrl of
(
SpinnerControl: #(ctrl.name, #value, ctrl.value)
EditTextControl: #(ctrl.name, #text, ctrl.text)
-- etc.
default: dontCollect
)
)

if type == #dialog then createDialog target
else addSubRollout container target

for s in settings do
setProperty (getProperty target s[1]) s[2] s[3] -- thanks denisT !
)

fn detachRollout target container =
(
if NOT target.inDialog then
(
removeSubRollout container target
transferValues target
)
else
(
try destroyDialog target catch()
transferValues target container:container type:#subRol
)
)

on testParent open do
(
addSubRollout testContainer testChild1
addSubRollout testContainer testChild2
addSubRollout testContainer testChild3
)

on btnDetach1 pressed do
detachRollout testChild1 testContainer

on btnDetach2 pressed do
detachRollout testChild2 testContainer

on btnDetach3 pressed do
detachRollout testChild3 testContainer
)
createDialog testParent

yunusbbayram
06-06-2011, 10:43 PM
I can't think of no use for the original method either, but I kind of like the idea of detaching the subrollouts (but keeping the values). Could be fun and it could even be extended to work as a palette for some tools because the detached dialogs would stay there even after closing it. Something like this, but with .ini settings (and probably without destroying all the dialogs when run):

try (destroyDialog testParent; destroyDialog testParent.testChild1; destroyDialog testParent.testChild2; destroyDialog testParent.testChild3) catch()
rollout testParent "My Numerous Tools"
(
subRollout testContainer width:140 height:210
button btnDetach1 " 1 " across:3
button btnDetach2 " 2 "
button btnDetach3 " 3 "

rollout testChild1 "Child1"
(
spinner s1 "cap2"
)

rollout testChild2 "Child2"
(
label lbl1 "Test 2:"
editText etInput ""
)

rollout testChild3 "Child3"
(
label lbl1 "Test 3:"
editText etInput ""
)

fn transferValues target container: type:#dialog =
(

local settings = for ctrl in target.controls collect
(
case classOf ctrl of
(
SpinnerControl: #(ctrl.name, #value, ctrl.value)
EditTextControl: #(ctrl.name, #text, ctrl.text)
-- etc.
default: dontCollect
)
)

if type == #dialog then createDialog target
else addSubRollout container target

for s in settings do
setProperty (getProperty target s[1]) s[2] s[3] -- thanks denisT !
)

fn detachRollout target container =
(
if NOT target.inDialog then
(
removeSubRollout container target
transferValues target
)
else
(
try destroyDialog target catch()
transferValues target container:container type:#subRol
)
)

on testParent open do
(
addSubRollout testContainer testChild1
addSubRollout testContainer testChild2
addSubRollout testContainer testChild3
)

on btnDetach1 pressed do
detachRollout testChild1 testContainer

on btnDetach2 pressed do
detachRollout testChild2 testContainer

on btnDetach3 pressed do
detachRollout testChild3 testContainer
)
createDialog testParent



great code thanks Swordslayer, LoneRobot

denisT
06-07-2011, 04:07 PM
I do not know too much english
my problem, new test windowdialog does not open when I press the button asd

global test


Rollout test "cap1"
(
Spinner s1 "cap2"
)
-- createdialog test


test.isDisplayed

rollout test1 ""
(
subrollout asdf width:140 height:100
button asd""

on asd pressed do ------does not work
(createdialog test)


)
createdialog test1
AddSubRollout test1.asdf test


Would you help with code sample

max doesn't allow to have more than one instance of the same rollout. You are trying to create dialog for already opened rollout. If you remove the sub-rollout you will be able to create the dialog:

global test
rollout test "cap1"
(
spinner s1 "cap2"
)
rollout test1 ""
(
subrollout asdf width:140 height:100
button asd""

on asd pressed do
(
removeSubRollout test1.asdf test
createdialog test
)
)
createdialog test1
AddSubRollout test1.asdf test

CGTalk Moderation
06-07-2011, 04:07 PM
This thread has been automatically closed as it remained inactive for 12 months. If you wish to continue the discussion, please create a new thread in the appropriate forum.