adium 3511:0c604ef6e66a: adiumPurpleRequestActionWithIcon suppor...
commits at adium.im
commits at adium.im
Sat Nov 13 04:10:09 UTC 2010
details: http://hg.adium.im/adium/rev/0c604ef6e66a
revision: 3511:0c604ef6e66a
author: Evan Schoenberg
date: Fri Nov 12 19:11:06 2010 -0600
adiumPurpleRequestActionWithIcon support (Only new UI callback in libpurple 2.7.0 per Changelog.API)
(transplanted from 998a2971de8c936336f15f3a9ae027ffc0a1ef39)
diffs (87 lines):
diff -r 9a2fefbb1bf2 -r 0c604ef6e66a Plugins/Purple Service/ESPurpleRequestActionController.m
--- a/Plugins/Purple Service/ESPurpleRequestActionController.m Fri Nov 12 10:36:18 2010 +0100
+++ b/Plugins/Purple Service/ESPurpleRequestActionController.m Fri Nov 12 19:11:06 2010 -0600
@@ -101,6 +101,9 @@
andMessage:attributedMessage
target:self
userInfo:infoDict] retain];
+ if ([infoDict objectForKey:@"Image"])
+ [requestController setImage:[infoDict objectForKey:@"Image"]];
+
[requestController setAllowsCloseWithoutResponse:NO];
}
diff -r 9a2fefbb1bf2 -r 0c604ef6e66a Plugins/Purple Service/adiumPurpleRequest.m
--- a/Plugins/Purple Service/adiumPurpleRequest.m Fri Nov 12 10:36:18 2010 +0100
+++ b/Plugins/Purple Service/adiumPurpleRequest.m Fri Nov 12 19:11:06 2010 -0600
@@ -142,12 +142,13 @@
return nil;
}
-//Purple requests the user take an action such as accept or deny a buddy's attempt to add us to her list
-static void *adiumPurpleRequestAction(const char *title, const char *primary,
- const char *secondary, gint default_action,
- PurpleAccount *account, const char *who, PurpleConversation *conv,
- void *userData,
- size_t actionCount, va_list actions)
+static void *adiumPurpleRequestActionWithIcon(const char *title, const char *primary,
+ const char *secondary, int default_action,
+ PurpleAccount *account, const char *who,
+ PurpleConversation *conv,
+ gconstpointer icon_data, gsize icon_size,
+ void *user_data,
+ size_t action_count, va_list actions)
{
NSString *titleString = (title ? [NSString stringWithUTF8String:title] : @"");
NSString *primaryString = (primary ? [NSString stringWithUTF8String:primary] : nil);
@@ -240,12 +241,37 @@
[infoDict setObject:[NSString stringWithUTF8String:who] forKey:@"who"];
}
+ if (icon_data && (icon_size > 0)) {
+ NSData *imageData = [NSData dataWithBytes:icon_data length:icon_size];
+ NSImage *image = [[[NSImage alloc] initWithData:imageData] autorelease];
+ if (image)
+ [infoDict setObject:image forKey:@"Image"];
+ }
+
requestController = [ESPurpleRequestActionController showActionWindowWithDict:infoDict];
}
return requestController;
}
+//Purple requests the user take an action such as accept or deny a buddy's attempt to add us to her list
+static void *adiumPurpleRequestAction(const char *title, const char *primary,
+ const char *secondary, int default_action,
+ PurpleAccount *account, const char *who,
+ PurpleConversation *conv,
+ void *userData,
+ size_t actionCount, va_list actions)
+{
+ adiumPurpleRequestActionWithIcon(title, primary,
+ secondary, default_action,
+ account, who,
+ conv,
+ /* iconData */ NULL, /* iconSize */ 0,
+ userData,
+ actionCount, actions);
+
+}
+
static void *adiumPurpleRequestFields(const char *title, const char *primary,
const char *secondary, PurpleRequestFields *fields,
const char *okText, GCallback okCb,
@@ -396,8 +422,10 @@
adiumPurpleRequestFile,
adiumPurpleRequestClose,
adiumPurpleRequestFolder,
- /* _purple_reserved 1-4 */
- NULL, NULL, NULL, NULL
+ adiumPurpleRequestActionWithIcon,
+ NULL, /* reserved */
+ NULL, /* reserved */
+ NULL /* reserved */
};
PurpleRequestUiOps *adium_purple_request_get_ui_ops()
More information about the commits
mailing list