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