adium-1.4 3236:998a2971de8c: adiumPurpleRequestActionWithIcon su...

commits at adium.im commits at adium.im
Sat Nov 13 01:11:23 UTC 2010


details:	http://hg.adium.im/adium-1.4/rev/998a2971de8c
revision:	3236:998a2971de8c
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)

diffs (86 lines):

diff -r a1eb2bc3815c -r 998a2971de8c Plugins/Purple Service/ESPurpleRequestActionController.m
--- a/Plugins/Purple Service/ESPurpleRequestActionController.m	Fri Nov 12 10:32:43 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 a1eb2bc3815c -r 998a2971de8c Plugins/Purple Service/adiumPurpleRequest.m
--- a/Plugins/Purple Service/adiumPurpleRequest.m	Fri Nov 12 10:32:43 2010 +0100
+++ b/Plugins/Purple Service/adiumPurpleRequest.m	Fri Nov 12 19:11:06 2010 -0600
@@ -142,12 +142,14 @@
 	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, int default_action,
-									PurpleAccount *account, const char *who, PurpleConversation *conv,
-									void *userData,
-									size_t actionCount, va_list actions)
+/** @see purple_request_action_with_icon_varg(). */
+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 +242,40 @@
 			[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,6 +426,7 @@
 	adiumPurpleRequestFile,
     adiumPurpleRequestClose,
 	adiumPurpleRequestFolder,
+	adiumPurpleRequestActionWithIcon,
 	NULL, /* reserved */
 	NULL, /* reserved */
 	NULL, /* reserved */




More information about the commits mailing list