Forum: Poser Python Scripting


Subject: Poser and Events

Y-Phil opened this issue on Dec 29, 2021 ยท 6 posts


Y-Phil posted Wed, 29 December 2021 at 12:52 PM

Is there a way to trap the moment when a user change the current room (example: Pose to Material)
Is there a way to trap the moment when the current Poser document is being closed.

It would be great if I was able to bind a function to such events.
Thanks in advance.

๐’ซ๐’ฝ๐“Ž๐“


(ใฃโ—”โ—กโ—”)ใฃ

๐Ÿ‘ฟ Win11 on i9-13900K@5GHz, 64GB, RoG Strix B760F Gamng, Asus Tuf Gaming RTX 4070 OC Edition, 1 TB SSD, 6+4+8TB HD
๐Ÿ‘ฟ Mac Mini M2, Sequoia 15.2, 16GB, 500GB SSD
๐Ÿ‘ฟ Nas 10TB
๐Ÿ‘ฟ Poser 13 and soon 14 โค๏ธ


adp001 posted Wed, 29 December 2021 at 4:17 PM

Posers UI is wxPython. So: https://docs.wxpython.org/wx.aui.AuiManagerEvent.html




Y-Phil posted Fri, 31 December 2021 at 3:50 AM

adp001 posted at 4:17 PM Wed, 29 December 2021 - #4432580

Posers UI is wxPython. So: https://docs.wxpython.org/wx.aui.AuiManagerEvent.html

Thank you ๐Ÿ˜Š

๐’ซ๐’ฝ๐“Ž๐“


(ใฃโ—”โ—กโ—”)ใฃ

๐Ÿ‘ฟ Win11 on i9-13900K@5GHz, 64GB, RoG Strix B760F Gamng, Asus Tuf Gaming RTX 4070 OC Edition, 1 TB SSD, 6+4+8TB HD
๐Ÿ‘ฟ Mac Mini M2, Sequoia 15.2, 16GB, 500GB SSD
๐Ÿ‘ฟ Nas 10TB
๐Ÿ‘ฟ Poser 13 and soon 14 โค๏ธ


adp001 posted Fri, 31 December 2021 at 11:32 AM

Were you finally able to figure out how to successfully intercept the events?




Y-Phil posted Sat, 01 January 2022 at 2:30 AM

No.

Not sure if I understood correctly the online explanations but I suppose that the File->Close menu option is already intercepted and handled, as events aren't "going" further than the right destination window/panel.

When I see that the hierarchy window closes when a choose to close the current document, I was supposing that a kind of "Please close" event was being fired.

Then, I tried to add my panel to wx.aui.AuiManager. Upon closing the document, my dialog box is closed as well. But when I create a new document, my dialog is automatically re-opened, at the wrong place, either docked and undocked. ๐Ÿ˜‚
I'm clearly missing something, lol

๐’ซ๐’ฝ๐“Ž๐“


(ใฃโ—”โ—กโ—”)ใฃ

๐Ÿ‘ฟ Win11 on i9-13900K@5GHz, 64GB, RoG Strix B760F Gamng, Asus Tuf Gaming RTX 4070 OC Edition, 1 TB SSD, 6+4+8TB HD
๐Ÿ‘ฟ Mac Mini M2, Sequoia 15.2, 16GB, 500GB SSD
๐Ÿ‘ฟ Nas 10TB
๐Ÿ‘ฟ Poser 13 and soon 14 โค๏ธ


Y-Phil posted Sat, 01 January 2022 at 4:20 PM

Solution found ๐Ÿ˜Š  not using events but rather a simple poseraddon, with something like this in the __init__.,py

class MyClass(poseraddon.Addon, poseraddon.SceneObserver, poseraddon.SceneDataSaver, poseraddon.PrefsSaver):
    def __init__(self):
        self.addonInfo = {
            'id': 'com..my.addon',
            'author': 'me',
            'copyright': '(c) 2022 me',
            'name': "My addon",
            'version': '1.0',
            'observer': 1,
            'scenedata': 1,
        }

    def load(self):
        # load your stuff

    def unload(self):
        # unload your stuff

    def sceneDeleting(self, scene):
        # unload your stuff

    def sceneCreated(self, scene):
        # load your stuff


๐’ซ๐’ฝ๐“Ž๐“


(ใฃโ—”โ—กโ—”)ใฃ

๐Ÿ‘ฟ Win11 on i9-13900K@5GHz, 64GB, RoG Strix B760F Gamng, Asus Tuf Gaming RTX 4070 OC Edition, 1 TB SSD, 6+4+8TB HD
๐Ÿ‘ฟ Mac Mini M2, Sequoia 15.2, 16GB, 500GB SSD
๐Ÿ‘ฟ Nas 10TB
๐Ÿ‘ฟ Poser 13 and soon 14 โค๏ธ