Thanks I tried to use the resize method as it seems to be useful in my case.
backgroundInteractionDialog.resize(0,h,0,w); //w=2048 h=1534 makes it disappear completely (w,h are the screen dimensions). instead backgroundInteractionDialog.resize(0,100,0,100); makes the backgroundInteractionDialog almost the size of the screen. It seems that the values are not in pixels (?). Regards Il giorno sabato 2 gennaio 2021 alle 16:07:20 UTC+1 [email protected] ha scritto: > Hi P5, > > I took a similar path as yours some time ago. Instead of extending > InteractionDialog, I created a separate class with similar functionality > and tweaked part of its code. I recall that extending it wasn't working. > > I am sending you my version of it, perhaps you will find it useful.. > Sample usage: > > Form f = getCurrentForm(); > AnimatedDialog newDlg = new AnimatedDialog(); > newDlg.setLayout(new BorderLayout()); > Label titleLable = new Label("some title"); > titleLable.getAllStyles().setAlignment(Component.CENTER); > Container myTitle = new Container(new BorderLayout()); > Border lineBorder = Border.createLineBorder(2, 0x33b5e5); > Border emptyBorder = Border.createEmpty(); > Border newBorder = Border.createCompoundBorder(emptyBorder, > lineBorder, emptyBorder, emptyBorder); > myTitle.getAllStyles().setBorder(newBorder); > myTitle.add(BorderLayout.CENTER, titleLable); > newDlg.add(BorderLayout.NORTH, myTitle); > Button okBtn = new Button("OK"); > okBtn.getUnselectedStyle().setAlignment(4); > okBtn.addActionListener(e -> { > newDlg.disposeToTheTop(); > }); > FlowLayout centerLayout = new FlowLayout(); > centerLayout.setValign(CENTER); > Container boxCenter = new Container(centerLayout); > SpanLabel msgLbl = new SpanLabel("some msg"); > boxCenter.add(msgLbl); > newDlg.add(CENTER, boxCenter); > newDlg.add(BorderLayout.SOUTH, okBtn); > int msgHeight = boxCenter.getPreferredH(); > int height = newDlg.getPreferredH(); > int width = newDlg.getPreferredW(); > int sideMargins = (f.getWidth() - width - 30) / 2; > int verticalMargin = (f.getHeight() - height - > f.getToolbar().getHeight()) /2; > newDlg.setDisposeWhenPointerOutOfBounds(true); > newDlg.setAnimationSync(true); > newDlg.show(verticalMargin/2, verticalMargin + verticalMargin/2, > sideMargins, sideMargins); > int newMsgHeight = boxCenter.getPreferredH(); > if(newMsgHeight != msgHeight) > { > int newHeight = (newMsgHeight - msgHeight) + height; > int newVerticalMargin = (f.getHeight() - newHeight - > f.getToolbar().getHeight()) /2; > newDlg.resize(verticalMargin/2, verticalMargin/2 + > (newVerticalMargin - (verticalMargin - newVerticalMargin)), sideMargins, > sideMargins, false); > } > > > > On Mon, 28 Dec 2020 at 09:22, 'P5music' via CodenameOne Discussions < > [email protected]> wrote: > >> (Merry Christmas) >> >> My app now features a new dialog class, I called it CommandDialog. It >> leverages both the features of InteractionDialog and Dialog, so the show() >> method now returns a Command. >> This class has to be completed to be fully functional: >> I subclassed InteractionDialog so now I need to prevent the mouse events >> from hitting the underlying components in the form. >> I tried >> form.setGrabsPointerEvents(false); >> form.setIgnorePointerEvents(true); >> but they seem not to be working at all. Furthermore they seem to be the >> same instruction with negated boolean parameter. >> Moreover I need the setDisposeWhenPointerOutOfBounds(value) feature that >> also seem not to be working. >> >> I need a workaround if necessary. I have some ideas but maybe something >> simple is available. >> >> This applies also to the InteractionDialog itself. >> >> Thanks in advance >> >> -- >> You received this message because you are subscribed to the Google Groups >> "CodenameOne Discussions" group. >> To unsubscribe from this group and stop receiving emails from it, send an >> email to [email protected]. >> To view this discussion on the web visit >> https://groups.google.com/d/msgid/codenameone-discussions/dc0981af-019d-4433-8658-f8b39d326f3dn%40googlegroups.com >> >> <https://groups.google.com/d/msgid/codenameone-discussions/dc0981af-019d-4433-8658-f8b39d326f3dn%40googlegroups.com?utm_medium=email&utm_source=footer> >> . >> > -- You received this message because you are subscribed to the Google Groups "CodenameOne Discussions" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/codenameone-discussions/46dda134-a710-443b-9f6e-6d4ee42894d4n%40googlegroups.com.
