get an event when something is done [SOLVED]

On 19/05/2015 at 03:20, xxxxxxxx wrote:

Hi all,

I'm working on a Modal Dialog Plungin.
And I whant to change my Plugin-Dialog when a object or a Tag is selectet while the Dialog is open.
I've found thomething in the SDK under "Continuous polling"
But I dont know what and where to insert.

I only need something like:

  
def something_is_seleced_or_deseleckted(doc) :   
    something_is_done = False   
    # here is the dedection....   
    something_is_done = True   
    return something_is_done   
  
if something_is_seleced_or_deseleckted(doc) :   
   self.update_status()   

Thanks a lot

On 19/05/2015 at 08:48, xxxxxxxx wrote:

Hi Kissling,

I did not find 'continuous polling' in the SDK.  In any case, modal dialogs are meant to block all other UI to inform the user with a message, usually with a warning or error, or to get needed input of some kind before it can continue, especially in terms of accepting other input from the dialog it spawned from.  Therefore, what you describe cannot be done with a modal dialog, whether with a messaging system or polling.

To implement more or less what you describe, you must create a asynchronous (or modeless) dialog and make your main dialog send messages to it.  The asynchronous dialog will have to have message processing code to handle the updates.

Let me know if you need more info.

Joey Gaspe
SDK Support Engineer

On 19/05/2015 at 14:15, xxxxxxxx wrote:

Hy Joey,

in the C4D-SDK
at the end of the page I found this:

https://developers.maxon.net/docs/Cinema4DPythonSDK/help/misc/inputevents.html?highlight=continuous polling

  
state=c4d.BaseContainer()   
while gui.GetInputState(c4d.BFM_INPUT_MOUSE, c4d.BFM_INPUT_MOUSELEFT, state) :   
    if state.GetInt32(c4d.BFM_INPUT_VALUE)==0: break   
  
    x=state.GetInt32(c4d.BFM_INPUT_X)   
    y=state.GetInt32(c4d.BFM_INPUT_Y)   
  
    #x, y   

On 19/05/2015 at 16:15, xxxxxxxx wrote:

You can't interact with anything but the dialog when using a modal dialog.

On 20/05/2015 at 07:48, xxxxxxxx wrote:

Hi Kissling,

The continuous polling you pointed out is for modeless dialogs only. As I already stated and NiklasR also pointed out, a modal dialog cannot receive messages once it's created.  Please read the following Wikipedia page for an explanation of modal and modeless dialogs (the later ones are called asynchronous dialogs in the SDK) :
http://en.wikipedia.org/wiki/Dialog_box

Joey Gaspe
SDK Support Engineer

On 21/05/2015 at 11:20, xxxxxxxx wrote:

Ok,
i will beleve in you 🙂

So I will change to non-modal-dialog!
Thanks a lot.

On 21/05/2015 at 11:30, xxxxxxxx wrote:

Hi Kissling,

Thanks for replying! I'll flag this topic as closed but leave it open for any follow up questions.

Joey Gaspe
SDK Support Engineer