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/CAG90yJ3UvOKU3DnwYBgGEoRiSYda1MV2frY7e8HzcRzri6_E2g%40mail.gmail.com.
AnimatedDialog.java
Description: Binary data
