Commit 545616ae authored by Felix Paul Kühne's avatar Felix Paul Kühne

macosx/extensions: implement new dialog callback

parent e3f2ec3e
...@@ -38,9 +38,8 @@ ...@@ -38,9 +38,8 @@
* VLCExtensionsDialogProvider implementation * VLCExtensionsDialogProvider implementation
*****************************************************************************/ *****************************************************************************/
static int extensionDialogCallback(vlc_object_t *p_this, const char *psz_variable, static void extensionDialogCallback(extension_dialog_t *p_ext_dialog,
vlc_value_t old_val, vlc_value_t new_val, void *p_data);
void *param);
static NSView *createControlFromWidget(extension_widget_t *widget, id self) static NSView *createControlFromWidget(extension_widget_t *widget, id self)
{ {
...@@ -245,22 +244,18 @@ static void updateControlFromWidget(NSView *control, extension_widget_t *widget, ...@@ -245,22 +244,18 @@ static void updateControlFromWidget(NSView *control, extension_widget_t *widget,
/** /**
* Ask the dialogs provider to create a new dialog * Ask the dialogs provider to create a new dialog
**/ **/
static int extensionDialogCallback(vlc_object_t *p_this, const char *psz_variable,
vlc_value_t old_val, vlc_value_t new_val, static void extensionDialogCallback(extension_dialog_t *p_ext_dialog,
void *param) void *p_data)
{ {
@autoreleasepool { @autoreleasepool {
(void) p_this; ExtensionsDialogProvider *provider = (__bridge ExtensionsDialogProvider *)p_data;
(void) psz_variable; if (!provider)
(void) old_val; return;
ExtensionsDialogProvider *provider = (__bridge ExtensionsDialogProvider *)param;
if (!new_val.p_address)
return VLC_EGENERIC;
extension_dialog_t *p_dialog = (extension_dialog_t*) new_val.p_address; [provider manageDialog:p_ext_dialog];
[provider manageDialog:p_dialog]; return;
return VLC_SUCCESS;
} }
} }
...@@ -271,16 +266,14 @@ static int extensionDialogCallback(vlc_object_t *p_this, const char *psz_variabl ...@@ -271,16 +266,14 @@ static int extensionDialogCallback(vlc_object_t *p_this, const char *psz_variabl
self = [super init]; self = [super init];
if (self) { if (self) {
intf_thread_t *p_intf = getIntf(); intf_thread_t *p_intf = getIntf();
var_Create(p_intf, "dialog-extension", VLC_VAR_ADDRESS); vlc_dialog_provider_set_ext_callback(p_intf, extensionDialogCallback, (__bridge void *)self);
var_AddCallback(p_intf, "dialog-extension", extensionDialogCallback, (__bridge void *)self);
// dialog_Register(p_intf) is called by coredialog provider
} }
return self; return self;
} }
- (void)dealloc - (void)dealloc
{ {
var_DelCallback(getIntf(), "dialog-extension", extensionDialogCallback, (__bridge void *)self); vlc_dialog_provider_set_ext_callback(getIntf(), NULL, NULL);
} }
- (void)performEventWithObject:(NSValue *)objectValue ofType:(const char*)type - (void)performEventWithObject:(NSValue *)objectValue ofType:(const char*)type
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment