+ interaction_dialog_t *p_dialog = (interaction_dialog_t *)
+ event.GetClientData();
+ if( p_dialog->i_widgets == 0 ) return;
+
+ /// \todo : Code this . This is only test code. No locking, ...
+ wxString message = wxU( p_dialog->pp_widgets[0]->psz_text );
+ REMOVE_ELEM( p_dialog->pp_widgets, p_dialog->i_widgets, 0 );
+ wxMessageBox( message, wxU( p_dialog->psz_title ) );
+ p_dialog->i_status = ANSWERED_DIALOG;
+}
+
+static int InteractCallback( vlc_object_t *p_this,
+ const char *psz_var, vlc_value_t old_val,
+ vlc_value_t new_val, void *param )
+{
+ Interface *p_interface = (Interface*)param;
+ interaction_dialog_t *p_dialog = (interaction_dialog_t*)(new_val.p_address);
+
+ /// Not handled
+ if( p_dialog->i_action == INTERACT_HIDE )
+ {
+ p_dialog->i_status = HIDDEN_DIALOG;
+ return;
+ }
+
+ wxCommandEvent event( wxEVT_INTERACTION, -1 );
+ event.SetClientData( new_val.p_address );
+ p_interface->AddPendingEvent( event );