adium-1.4 3345:483f78be95b9: Added the icons of group chat parti...

commits at adium.im commits at adium.im
Sun Feb 13 18:47:43 UTC 2011


details:	http://hg.adium.im/adium-1.4/rev/483f78be95b9
revision:	3345:483f78be95b9
author:		Thijs Alkemade <thijsalkemade at gmail.com>
date:		Sun Feb 13 19:45:43 2011 +0100

Added the icons of group chat participant lists to the Help. Removed outdated file transfer info.
Subject: adium-1.4 3346:678ffc1ba53c: Merged

details:	http://hg.adium.im/adium-1.4/rev/678ffc1ba53c
revision:	3346:678ffc1ba53c
author:		Thijs Alkemade <thijsalkemade at gmail.com>
date:		Sun Feb 13 19:47:25 2011 +0100

Merged

diffs (truncated from 2954 to 1000 lines):

diff -r 2cb58ee83c27 -r 678ffc1ba53c AdiumHelp/gfx/founder.png
Binary file AdiumHelp/gfx/founder.png has changed
diff -r 2cb58ee83c27 -r 678ffc1ba53c AdiumHelp/gfx/half-op.png
Binary file AdiumHelp/gfx/half-op.png has changed
diff -r 2cb58ee83c27 -r 678ffc1ba53c AdiumHelp/gfx/none.png
Binary file AdiumHelp/gfx/none.png has changed
diff -r 2cb58ee83c27 -r 678ffc1ba53c AdiumHelp/gfx/op.png
Binary file AdiumHelp/gfx/op.png has changed
diff -r 2cb58ee83c27 -r 678ffc1ba53c AdiumHelp/gfx/voice.png
Binary file AdiumHelp/gfx/voice.png has changed
diff -r 2cb58ee83c27 -r 678ffc1ba53c AdiumHelp/pgs/AdvancedFeatures-FileTransfer.html
--- a/AdiumHelp/pgs/AdvancedFeatures-FileTransfer.html	Tue Jan 25 18:58:45 2011 -0600
+++ b/AdiumHelp/pgs/AdvancedFeatures-FileTransfer.html	Sun Feb 13 19:47:25 2011 +0100
@@ -74,26 +74,6 @@
 	</div>
 	<div class="taskboxline">
 		<div class="taskboxheader">
-			<h3>Why is MSN file transfer so slow?</h3>
-		</div>
-		<div class="taskboxtext">
-			<p>The version of libpurple existing in current releases of Adium only supports MSN file transfer that go through the Microsoft server making them very reliable but also quite slow.</p>
-			<p>Current libpurple supports MSN peer-to-peer file transfer. This version will be added to Adium for version 1.5 at the latest.</p>
-		</div>
-	</div>
-	<div class="taskboxline">
-		<div class="taskboxheader">
-			<h3>Why doesn't file transfer work over Google Talk?</h3>
-		</div>
-		<div class="taskboxtext">
-			<p>Google Talk uses a different protocol, called Jingle, for file transfers (as well as voice calls - <a href="http://groups.google.ca/group/google-talk-open/browse_thread/thread/61ad293b4790faeb/821b891053a55a0b?lnk=arm#821b891053a55a0b">here</a> are the gritty details). The Google Talk servers disallow file transfers using the protocol that other Jabber services use.</p>
-			<ul>
-				<li>Note that although Google promised to release their specifications for this protocol back in 2007, they have not yet done so. This means we are unable to implement it, even if we had the time to do it.</li>
-			</ul>
-		</div>
-	</div>
-	<div class="taskboxline">
-		<div class="taskboxheader">
 			<h3>Improving Bonjour file transfer</h3>
 		</div>
 		<div class="taskboxtext">
diff -r 2cb58ee83c27 -r 678ffc1ba53c AdiumHelp/pgs/Messaging-GroupChat.html
--- a/AdiumHelp/pgs/Messaging-GroupChat.html	Tue Jan 25 18:58:45 2011 -0600
+++ b/AdiumHelp/pgs/Messaging-GroupChat.html	Sun Feb 13 19:47:25 2011 +0100
@@ -50,6 +50,21 @@
 	</div>
 	<div class="taskboxline">
 		<div class="taskboxheader">
+			<h3>Ranks and icons</h3>
+		</div>
+		<div class="taskboxtext">
+			<p>In IRC group chats, or XMPP MUCs, a number of ranks exists. While their usage and permissions can vary per server or channel, usually they mean the following:</p>
+			<ul>
+				<li style="list-style-image: url(../gfx/founder.png)">The <strong>founder</strong>. Only exists on XMPP. Can change the configuration of the room.</li>
+				<li style="list-style-image: url(../gfx/op.png)"><strong>Operators</strong> (mode <tt>+o</tt>). Have the ability to kick, ban or change the rank of other users, and can change the channel's topic.</li>
+				<li style="list-style-image: url(../gfx/half-op.png)"><strong>Half-operators</strong> (mode <tt>+h</tt>). Not available everywhere, often have same permissions as operators, but can't change the permissions of operators.</li>
+				<li style="list-style-image: url(../gfx/voice.png)"><strong>Voice</strong> (mode <tt>+v</tt>). Can still speak if the channel is muted (mode <tt>+m</tt>).</li>
+				<li style="list-style-image: url(../gfx/none.png)"><strong>Normal</strong>.</li>
+			</ul>
+		</div>
+	</div>
+	<div class="taskboxline">
+		<div class="taskboxheader">
 			<h3>Autojoining</h3>
 		</div>
 		<div class="taskboxtext">
diff -r 2cb58ee83c27 -r 678ffc1ba53c Plists/Info.plist
--- a/Plists/Info.plist	Tue Jan 25 18:58:45 2011 -0600
+++ b/Plists/Info.plist	Sun Feb 13 19:47:25 2011 +0100
@@ -470,6 +470,8 @@
 	</array>
 	<key>CFBundleVersion</key>
 	<string>1.4.2hg</string>
+	<key>LSApplicationCategoryType</key>
+	<string>public.app-category.social-networking</string>
 	<key>LSMinimumSystemVersion</key>
 	<string>10.5.8</string>
 	<key>LSRequiresNativeExecution</key>
diff -r 2cb58ee83c27 -r 678ffc1ba53c Plugins/WebKit Message View/AIWebKitMessageViewPlugin.m
--- a/Plugins/WebKit Message View/AIWebKitMessageViewPlugin.m	Tue Jan 25 18:58:45 2011 -0600
+++ b/Plugins/WebKit Message View/AIWebKitMessageViewPlugin.m	Sun Feb 13 19:47:25 2011 +0100
@@ -197,11 +197,22 @@
 																							group:loadFromGroup]];
 		if(!*thisStyle) {
 			/* If the path isn't cached yet, load the style and then store the path */
-			*thisStyle = [AIWebkitMessageViewStyle messageViewStyleFromBundle:[self messageStyleBundleWithIdentifier:[prefs preferenceForKey:KEY_WEBKIT_STYLE
-																																		   group:loadFromGroup]]];
-			[prefs setPreference:[[[*thisStyle bundle] bundlePath] stringByCollapsingBundlePath]
-						  forKey:KEY_CURRENT_WEBKIT_STYLE_PATH
-						   group:loadFromGroup];
+			*thisStyle = [AIWebkitMessageViewStyle messageViewStyleFromBundle:
+                          [self messageStyleBundleWithIdentifier:[prefs preferenceForKey:KEY_WEBKIT_STYLE
+                                                                                   group:loadFromGroup]]];
+            if (*thisStyle) {
+                [prefs setPreference:[[[*thisStyle bundle] bundlePath] stringByCollapsingBundlePath]
+                              forKey:KEY_CURRENT_WEBKIT_STYLE_PATH
+                               group:loadFromGroup];
+            } else {
+                /* If the style failed to load, clear our preference to fall back to the default */
+                /* XXX An error message could potentially be displayed here */
+                [prefs setPreference:nil forKey:KEY_WEBKIT_STYLE group:loadFromGroup];
+                
+                *thisStyle = [AIWebkitMessageViewStyle messageViewStyleFromBundle:
+                              [self messageStyleBundleWithIdentifier:[prefs preferenceForKey:KEY_WEBKIT_STYLE
+                                                                                       group:loadFromGroup]]];
+            }
 		}
 		[*thisStyle retain];
 	}
diff -r 2cb58ee83c27 -r 678ffc1ba53c Plugins/WebKit Message View/AIWebkitMessageViewStyle.h
--- a/Plugins/WebKit Message View/AIWebkitMessageViewStyle.h	Tue Jan 25 18:58:45 2011 -0600
+++ b/Plugins/WebKit Message View/AIWebkitMessageViewStyle.h	Sun Feb 13 19:47:25 2011 +0100
@@ -147,8 +147,10 @@
 
 /*!
  *  @brief Reloads the content of the style, useful for style authors and updates
+ *
+ *  @result YES if the style loaded succesfully; NO if an error (such as an incompatible style version) occurred.
  */
-- (void) reloadStyle;
+- (BOOL) reloadStyle;
 
 /*!
  *  @brief The name of the active variant.
diff -r 2cb58ee83c27 -r 678ffc1ba53c Plugins/WebKit Message View/AIWebkitMessageViewStyle.m
--- a/Plugins/WebKit Message View/AIWebkitMessageViewStyle.m	Tue Jan 25 18:58:45 2011 -0600
+++ b/Plugins/WebKit Message View/AIWebkitMessageViewStyle.m	Sun Feb 13 19:47:25 2011 +0100
@@ -39,9 +39,11 @@
 
 //
 #define LEGACY_VERSION_THRESHOLD		3	//Styles older than this version are considered legacy
+#define MAX_KNOWN_WEBKIT_VERSION        4   //Styles newer than this version are unknown entities
 
 //
 #define KEY_WEBKIT_VERSION				@"MessageViewVersion"
+#define KEY_WEBKIT_VERSION_MIN			@"MessageViewVersion_MinimumCompatible"
 
 //BOM scripts for appending content.
 #define APPEND_MESSAGE_WITH_SCROLL		@"checkIfScrollToBottomIsNeeded(); appendMessage(\"%@\"); scrollToBottomIfNeeded();"
@@ -142,19 +144,20 @@
 	if ((self = [super init])) {
 		styleBundle = [inBundle retain];
 		stylePath = [[styleBundle resourcePath] retain];
-		[self reloadStyle];
+        
+		if ([self reloadStyle] == FALSE) {
+            [self release];
+            return nil;
+        }
 	}
 
 	return self;
 }
 
-- (void) reloadStyle
+- (BOOL) reloadStyle
 {
 	[self releaseResources];
 	
-	//Default behavior
-	allowTextBackgrounds = YES;
-	
 	/* Our styles are versioned so we can change how they work without breaking compatibility.
 	 *
 	 * Version 0: Initial Webkit Version
@@ -173,6 +176,17 @@
 	 */
 	styleVersion = [[styleBundle objectForInfoDictionaryKey:KEY_WEBKIT_VERSION] integerValue];
 	
+    /* Refuse to load a version whose minimum compatible version is greater than the latest version we know about; that
+     * indicates this is a style FROM THE FUTURE, and we can't risk corrupting our own timeline.
+     */
+    NSInteger minimumCompatibleVersion = [[styleBundle objectForInfoDictionaryKey:KEY_WEBKIT_VERSION_MIN] integerValue];
+    if (minimumCompatibleVersion && (minimumCompatibleVersion > MAX_KNOWN_WEBKIT_VERSION)) {
+        return NO;
+    }
+
+    //Default behavior
+	allowTextBackgrounds = YES;
+
 	//Pre-fetch our templates
 	[self _loadTemplates];
 	
@@ -191,6 +205,8 @@
 	
 	NSNumber *allowsColorsNumber = [styleBundle objectForInfoDictionaryKey:@"AllowTextColors"];
 	allowsColors = (allowsColorsNumber ? [allowsColorsNumber boolValue] : YES);
+    
+    return YES;
 }
 
 /*!
@@ -799,8 +815,8 @@
 				  withString:[NSColor representedColorForObject:contentSource.UID withValidColors:self.validSenderColors]];
 	
 	//HAX. The odd conditional here detects the rtl html that our html parser spits out.
-	BOOL isRTL = ([inString rangeOfString:@"<div dir=\"rtl\">"
-								  options:(NSCaseInsensitiveSearch | NSLiteralSearch)].location != NSNotFound);
+	BOOL isRTL = ([htmlEncodedMessage rangeOfString:@"<div dir=\"rtl\">"
+                                            options:(NSCaseInsensitiveSearch | NSLiteralSearch)].location != NSNotFound);
 	[inString replaceKeyword:@"%messageDirection%"
 				  withString:(isRTL ? @"rtl" : @"ltr")];
 	
diff -r 2cb58ee83c27 -r 678ffc1ba53c Resources/Emoticons/iChat.AdiumEmoticonset/Emoticons.plist
--- a/Resources/Emoticons/iChat.AdiumEmoticonset/Emoticons.plist	Tue Jan 25 18:58:45 2011 -0600
+++ b/Resources/Emoticons/iChat.AdiumEmoticonset/Emoticons.plist	Sun Feb 13 19:47:25 2011 +0100
@@ -9,7 +9,7 @@
 	<key>Location</key>
 	<array>
 		<string>/System/Library/PrivateFrameworks/InstantMessage.framework/Versions/A/Resources</string>
-		<string>com.apple.iChat////Contents/Plugins/Standard.smileypack/Contents/Resources</string>
+		<string>com.apple.iChat////Contents/PlugIns/Standard.smileypack/Contents/Resources</string>
 		<string>com.apple.iChat////Contents/Resources</string>
 	</array>
 	<key>Emoticons</key>
diff -r 2cb58ee83c27 -r 678ffc1ba53c Resources/Message Styles/Mockie.AdiumMessageStyle/Contents/Resources/Styles/basestyle.css
--- a/Resources/Message Styles/Mockie.AdiumMessageStyle/Contents/Resources/Styles/basestyle.css	Tue Jan 25 18:58:45 2011 -0600
+++ b/Resources/Message Styles/Mockie.AdiumMessageStyle/Contents/Resources/Styles/basestyle.css	Sun Feb 13 19:47:25 2011 +0100
@@ -6,7 +6,7 @@
 #Chat
 {
 	overflow: hidden;
-	padding: 5px 10px 5px 10px;
+	padding: 5px 10px 5px 1em;
 }
 
 #topic
@@ -39,9 +39,11 @@
 	word-break: break-word;
 }
 
-#topic[title=""] #topicEdit:after
+#topic[title=""] #topicEdit
 {
-	content: "< no topic available >";
+	border-top: .2em solid rgba(184, 184, 184, 1);
+	margin-top: .4em;
+	margin-bottom: .4em;
 }
 
 .incoming,
@@ -72,8 +74,6 @@
 {
 	color: white;
 	font-weight: bold;
-	font-size: 11px;
-	height: 14px;
 	padding-right: 4px;
 	padding-left: 4px;
 	overflow: hidden;
@@ -89,14 +89,10 @@
 {
 	color: rgba(255, 255, 255, .5);
 	font-weight: bold;
-	font-size: 11px;
 	float: right;
-	position: relative;
-	height: 14px;
-	top: -14px;
+	margin-top: -1.18em;
 	padding-right: 4px;
 	right: 0px;
-	margin-bottom: -14px;
 	word-wrap: normal;
 }
 
@@ -159,142 +155,49 @@
 	width:auto;
 }
 
-.firstFocus.message .x-text:before,
-.firstFocus.status .x-wrap:before,
-.firstFocus.event .x-wrap:before
+.focus .x-message:before
 {
 	position: absolute;
-	right: 10px;
-	margin-top: -19px;
-	content: "focus lost here";
-	background: rgba(184, 184, 184, 1);
-	color: white;
+	margin-top: 2px;
+	margin-left: -.8em;
+	content: "\25e6";
+	color: rgba(176, 176, 176, .8);
 	font-weight: bold;
-	font-size: 11px;
-	z-index: 99;
-	white-space: nowrap;
-	overflow: hidden;
-	padding: 2px;
-	padding-left: 4px;
-	-webkit-border-top-left-radius: 5px;
-	-webkit-border-top-right-radius: 5px;
 }
 
-.firstFocus.status .x-wrap:before,
-.firstFocus.event .x-wrap:before
+.focus.status .x-wrap:before,
+.focus.event .x-wrap:before
 {
-	padding-right: 4px;
-	margin-top: -17px;
+	position: absolute;
+	margin-top: 1px;
+	margin-left: -.8em;
+	content: "\25e6";
+	color: rgba(176, 176, 176, .8);
+	font-weight: bold;
 }
 
-.firstFocus.message .x-text,
-.firstFocus.status .x-wrap,
-.firstFocus.event .x-wrap
+.mention.focus .x-message:before
 {
-	border-top: 4px solid rgba(184, 184, 184, 1);
+	position: absolute;
+	margin-top: 3px;
+	margin-left: -.8em;
+	content: "\25e6";
+	font-weight: bold;
 }
 
-.firstFocus.message .x-text
-{
-	margin-top: 15px;
-	margin-right: 2px;
-}
-
-.firstFocus.message .x-time
-{
-	margin-top: 19px;
-}
-
-.firstFocus.status .x-wrap,
-.firstFocus.event .x-wrap
-{
-	margin-top: 18px;
-	/*margin-top: 20px;*/
-	/*padding-top: 2px;*/
-}
-
-.mention .x-text:before
+.mention .x-message:before
 {
 	position: absolute;
-	margin-top: -19px;
-	margin-left: -2px;
-	content: "mentioned here";
-	background: rgba(184, 184, 184, 1);
-	color: white;
-	font-weight: bold;
-	font-size: 11px;
-	z-index: 99;
-	white-space: nowrap;
-	overflow: hidden;
-	padding: 2px;
-	padding-right: 4px;
-	-webkit-border-top-left-radius: 5px;
-	-webkit-border-top-right-radius: 5px;
-}
-
-.mention .x-text
-{
-	border-top: 4px solid rgba(184, 184, 184, 1);
-	padding-left: 2px;
-	padding-right: 4px;
-	margin-bottom: 2px;
-	margin-left: 2px;
-	margin-top: 15px;
-}
-
-.mention .x-time
-{
-	margin-top: 19px;
-}
-
-.mention.firstFocus .x-text:before
-{
-	content: "mentioned here + focus lost here";
-	padding-left: 4px;
-}
-
-.mention.firstFocus .x-text
-{
-	margin-left: 0px;
-}
-
-.history + :not(.history):before
-{
-	position: absolute;
-	margin-top: -22px;
-	margin-left: 0px;
-	content: "message history ends here";
-	background: rgba(184, 184, 184, 1);
-	color: white;
-	font-weight: bold;
-	font-size: 11px;
-	z-index: 99;
-	white-space: nowrap;
-	overflow: hidden;
-	padding: 4px;
-	padding-top: 2px;
-	padding-bottom: 2px;
-	-webkit-border-bottom-left-radius: 5px;
-	-webkit-border-bottom-right-radius: 5px;
+	margin-top: 2px;
+	margin-left: -.8em;
+	content: "\2022";
 }
 
 .history + :not(.history)
 {
-	margin-top: 5px;
-	padding-top: 18px;
-	border-top: 4px solid rgba(184, 184, 184, 1);
-}
-
-.history + :not(.history).status.firstFocus:before,
-.history + :not(.history).event.firstFocus:before
-{
-	margin-top: -14px;
-}
-
-.history + :not(.history).status.firstFocus,
-.history + :not(.history).event.firstFocus
-{
-	padding-top: 10px;
+	border-top: .2em solid rgba(184, 184, 184, 1);
+	margin-top: .4em;
+	padding-top: .4em;
 }
 
 .message.consecutive:not(.firstFocus) .x-buddyicon,
@@ -336,11 +239,3 @@
 {
 	-webkit-border-radius: 3px;
 }
-
-.status.firstFocus .x-wrap,
-.event.firstFocus .x-wrap
-{
-	-webkit-border-top-left-radius: 0px;
-	-webkit-border-top-right-radius: 0px;
-}
-
diff -r 2cb58ee83c27 -r 678ffc1ba53c Resources/Message Styles/Mockie.AdiumMessageStyle/Contents/Resources/Styles/colors_brown_olive.css
--- a/Resources/Message Styles/Mockie.AdiumMessageStyle/Contents/Resources/Styles/colors_brown_olive.css	Tue Jan 25 18:58:45 2011 -0600
+++ b/Resources/Message Styles/Mockie.AdiumMessageStyle/Contents/Resources/Styles/colors_brown_olive.css	Sun Feb 13 19:47:25 2011 +0100
@@ -27,6 +27,8 @@
 	background: rgba(209, 184, 156, 1);
 }
 
+.focus.mention .x-message:before,
+.mention .x-message:before,
 .incoming .x-time,
 .incoming a
 {
@@ -45,7 +47,7 @@
 }
 
 .incoming.history .x-message,
-.incoming.consecutive .x-message
+.incoming.consecutive:not(.firstFocus) .x-message
 {
 	border-top: 1px solid rgba(209, 184, 156, 1);
 }
@@ -85,7 +87,7 @@
 }
 
 .outgoing.history .x-message,
-.outgoing.consecutive .x-message
+.outgoing.consecutive:not(.firstFocus) .x-message
 {
 	border-top: 1px solid rgba(178, 200, 166, 1);
 }
diff -r 2cb58ee83c27 -r 678ffc1ba53c Resources/Message Styles/Mockie.AdiumMessageStyle/Contents/Resources/Styles/colors_indigo_maroon.css
--- a/Resources/Message Styles/Mockie.AdiumMessageStyle/Contents/Resources/Styles/colors_indigo_maroon.css	Tue Jan 25 18:58:45 2011 -0600
+++ b/Resources/Message Styles/Mockie.AdiumMessageStyle/Contents/Resources/Styles/colors_indigo_maroon.css	Sun Feb 13 19:47:25 2011 +0100
@@ -27,6 +27,8 @@
 	background: rgba(161, 168, 211, 1);
 }
 
+.focus.mention .x-message:before,
+.mention .x-message:before,
 .incoming .x-time,
 .incoming a
 {
@@ -45,7 +47,7 @@
 }
 
 .incoming.history .x-message,
-.incoming.consecutive .x-message
+.incoming.consecutive:not(.firstFocus) .x-message
 {
 	border-top: 1px solid rgba(161, 168, 211, 1);
 }
@@ -85,7 +87,7 @@
 }
 
 .outgoing.history .x-message,
-.outgoing.consecutive .x-message
+.outgoing.consecutive:not(.firstFocus) .x-message
 {
 	border-top: 1px solid rgba(212, 159, 159, 1);
 }
diff -r 2cb58ee83c27 -r 678ffc1ba53c Resources/Message Styles/Mockie.AdiumMessageStyle/Contents/Resources/Styles/colors_orange_green.css
--- a/Resources/Message Styles/Mockie.AdiumMessageStyle/Contents/Resources/Styles/colors_orange_green.css	Tue Jan 25 18:58:45 2011 -0600
+++ b/Resources/Message Styles/Mockie.AdiumMessageStyle/Contents/Resources/Styles/colors_orange_green.css	Sun Feb 13 19:47:25 2011 +0100
@@ -27,6 +27,8 @@
 	background: rgba(249, 188, 120, 1);
 }
 
+.focus.mention .x-message:before,
+.mention .x-message:before,
 .incoming .x-time,
 .incoming a
 {
@@ -45,7 +47,7 @@
 }
 
 .incoming.history .x-message,
-.incoming.consecutive .x-message
+.incoming.consecutive:not(.firstFocus) .x-message
 {
 	border-top: 1px solid rgba(249, 188, 120, 1);
 }
@@ -85,7 +87,7 @@
 }
 
 .outgoing.history .x-message,
-.outgoing.consecutive .x-message
+.outgoing.consecutive:not(.firstFocus) .x-message
 {
 	border-top: 1px solid rgba(172, 228, 145, 1);
 }
diff -r 2cb58ee83c27 -r 678ffc1ba53c Resources/Message Styles/Mockie.AdiumMessageStyle/Contents/Resources/Styles/colors_red_blue.css
--- a/Resources/Message Styles/Mockie.AdiumMessageStyle/Contents/Resources/Styles/colors_red_blue.css	Tue Jan 25 18:58:45 2011 -0600
+++ b/Resources/Message Styles/Mockie.AdiumMessageStyle/Contents/Resources/Styles/colors_red_blue.css	Sun Feb 13 19:47:25 2011 +0100
@@ -27,6 +27,8 @@
 	background: rgba(127, 145, 250, 1);
 }
 
+.focus.mention .x-message:before,
+.mention .x-message:before,
 .incoming .x-time,
 .incoming a
 {
@@ -45,7 +47,7 @@
 }
 
 .incoming.history .x-message,
-.incoming.consecutive .x-message
+.incoming.consecutive:not(.firstFocus) .x-message
 {
 	border-top: 1px solid rgba(127, 145, 250, 1);
 }
@@ -85,7 +87,7 @@
 }
 
 .outgoing.history .x-message,
-.outgoing.consecutive .x-message
+.outgoing.consecutive:not(.firstFocus) .x-message
 {
 	border-top: 1px solid rgba(254, 123, 123, 1);
 }
diff -r 2cb58ee83c27 -r 678ffc1ba53c Resources/Message Styles/Mockie.AdiumMessageStyle/Contents/Resources/Styles/icon_alternate.css
--- a/Resources/Message Styles/Mockie.AdiumMessageStyle/Contents/Resources/Styles/icon_alternate.css	Tue Jan 25 18:58:45 2011 -0600
+++ b/Resources/Message Styles/Mockie.AdiumMessageStyle/Contents/Resources/Styles/icon_alternate.css	Sun Feb 13 19:47:25 2011 +0100
@@ -17,16 +17,5 @@
 .outgoing .x-buddyicon
 {
 	position: absolute;
-	left: 10px;
+	margin-left: -37px;
 }
-
-.firstFocus.message .x-text:before
-{
-	right: 49px;
-}
-
-.firstFocus.status .x-text:before,
-.firstFocus.event .x-text:before
-{
-	right: 10px;
-}
diff -r 2cb58ee83c27 -r 678ffc1ba53c Resources/Message Styles/Mockie.AdiumMessageStyle/Contents/Resources/Styles/icon_hidden.css
--- a/Resources/Message Styles/Mockie.AdiumMessageStyle/Contents/Resources/Styles/icon_hidden.css	Tue Jan 25 18:58:45 2011 -0600
+++ b/Resources/Message Styles/Mockie.AdiumMessageStyle/Contents/Resources/Styles/icon_hidden.css	Sun Feb 13 19:47:25 2011 +0100
@@ -7,14 +7,3 @@
 {
 	padding-right: 41px;
 }
-
-.firstFocus.message .x-text:before
-{
-	right: 12px;
-}
-
-.firstFocus.status .x-text:before,
-.firstFocus.event .x-text:before
-{
-	right: 10px;
-}
diff -r 2cb58ee83c27 -r 678ffc1ba53c Resources/Message Styles/Mockie.AdiumMessageStyle/Contents/Resources/Styles/icon_left.css
--- a/Resources/Message Styles/Mockie.AdiumMessageStyle/Contents/Resources/Styles/icon_left.css	Tue Jan 25 18:58:45 2011 -0600
+++ b/Resources/Message Styles/Mockie.AdiumMessageStyle/Contents/Resources/Styles/icon_left.css	Sun Feb 13 19:47:25 2011 +0100
@@ -1,3 +1,8 @@
+#Chat
+{
+	padding: 5px 1em 5px 10px;
+}
+
 .message .x-wrap
 {
 	margin-left: 37px;
@@ -9,13 +14,24 @@
 	left: 10px;
 }
 
-.firstFocus.message .x-text:before
+.focus .x-message:before
 {
-	right: 12px;
+	right: .2em;
 }
 
-.firstFocus.status .x-text:before,
-.firstFocus.event .x-text:before
+.focus.status .x-wrap:before,
+.focus.event .x-wrap:before
 {
-	right: 10px;
+	right: .2em;
 }
+
+.mention .x-message:before
+{
+	right: .2em;
+}
+
+.mention.focus .x-message:before
+{
+	right: .2em;
+}
+
diff -r 2cb58ee83c27 -r 678ffc1ba53c Resources/Message Styles/Mockie.AdiumMessageStyle/Contents/Resources/Styles/icon_right.css
--- a/Resources/Message Styles/Mockie.AdiumMessageStyle/Contents/Resources/Styles/icon_right.css	Tue Jan 25 18:58:45 2011 -0600
+++ b/Resources/Message Styles/Mockie.AdiumMessageStyle/Contents/Resources/Styles/icon_right.css	Sun Feb 13 19:47:25 2011 +0100
@@ -8,11 +8,3 @@
 	position: absolute;
 	right: 10px;
 }
-
-.firstFocus.message .x-text:before,
-.firstFocus.status .x-text:before,
-.firstFocus.event .x-text:before
-{
-	right: 49px;
-}
-
diff -r 2cb58ee83c27 -r 678ffc1ba53c Resources/Message Styles/Mockie.AdiumMessageStyle/Contents/Resources/mockup.html
--- a/Resources/Message Styles/Mockie.AdiumMessageStyle/Contents/Resources/mockup.html	Tue Jan 25 18:58:45 2011 -0600
+++ b/Resources/Message Styles/Mockie.AdiumMessageStyle/Contents/Resources/mockup.html	Sun Feb 13 19:47:25 2011 +0100
@@ -6,7 +6,7 @@
 	</title>
 
 	<style type="text/css" media="screen,print">
-		@import url( "./Variants/Red - Icon Alternate.css" );
+		@import url( "./Variants/Indigo - Icon left.css" );
 
 		body
 		{
@@ -19,6 +19,14 @@
 
 <body>
 
+<div id="topic" title="1.3.6 http://adium.im || Adium VV? See http://adium.im/blog/2009/08/pidgin-2-6-0-and-adium-vv/ || #adium-devl for development talk || Paste into http://paste.lisp.org/new/adium">
+	<style type="text/css">
+		@import url(./Styles/Topic.css);
+	</style>
+
+	<span id="topicEdit" ondblclick="this.setAttribute('contentEditable', true); this.focus();">1.3.6 http://adium.im || Adium VV? See http://adium.im/blog/2009/08/pidgin-2-6-0-and-adium-vv/ || #adium-devl for development talk || Paste into http://paste.lisp.org/new/adium"</span>
+</div>
+
 <div id="Chat" style="top: 248px; position: static; " class="">
 
 <div class="history date_separator event">
@@ -31,11 +39,12 @@
 <div class="outgoing message history">
 	<div class="x-wrap">
 		<div class="x-buddyicon">
-			<img src="file:///Users/mneedham/Library/Caches/Adium/Default/TEMP-155YTHE.png">		</div>
+			<img src="Outgoing/buddy_icon.png">
+		</div>
 		<div class="x-sender">mthrkndm</div>
 		<div class="x-service">IRC</div>
 		<div class="x-message" style="background-color:;">
-			<div class="x-time" title="11 May 2010">20:48:05 </div>
+			<div class="x-time" title="11 May 2010">20:48:05</div>
 			<div class="x-text">Yessir.</div>
 		</div>
 	</div>
@@ -44,11 +53,12 @@
 <div class="incoming message autoreply history">
 	<div class="x-wrap">
 		<div class="x-buddyicon">
-			<img src="Incoming/buddy_icon.png">		</div>
+			<img src="Incoming/buddy_icon.png">
+		</div>
 		<div class="x-sender">vnds (Autoreply)</div>
 		<div class="x-service">IRC</div>
 		<div class="x-message" style="background-color:;">
-			<div class="x-time" title="11 May 2010">20:48:05 </div>
+			<div class="x-time" title="11 May 2010">20:48:05</div>
 			<div class="x-text">Dinner</div>
 		</div>
 	</div>
@@ -57,16 +67,100 @@
 <div class="consecutive incoming message history">
 	<div class="x-wrap">
 		<div class="x-buddyicon">
-			<img src="Incoming/buddy_icon.png">		</div>
+			<img src="Incoming/buddy_icon.png">
+		</div>
 		<div class="x-sender">vnds</div>
 		<div class="x-service">IRC</div>
 		<div class="x-message" style="background-color:;">
-			<div class="x-time" title="11 May 2010">20:49:40 </div>
+			<div class="x-time" title="11 May 2010">20:49:40</div>
 			<div class="x-text">oops, nm</div>
 		</div>
 	</div>
 </div>
 
+<div class="outgoing message">
+	<div class="x-wrap">
+		<div class="x-buddyicon">
+			<img src="Outgoing/buddy_icon.png">		</div>
+		<div class="x-sender">mthrkndm</div>
+		<div class="x-service">IRC</div>
+		<div class="x-message" style="background-color:;">
+			<div class="x-time" title="11 May 2010">20:48:05</div>
+			<div class="x-text">Yessir.</div>
+		</div>
+	</div>
+</div>
+
+<div class="status">
+	<div class="x-wrap">
+		<span class="x-time" title="11 May 2010">20:48:05 </span>
+		<span class="x-text">vnds went away!</span>
+	</div>
+</div>
+
+<div class="event firstFocus focus">
+	<div class="x-wrap">
+		<span class="x-time" title="11 May 2010">20:48:05 </span>
+		<span class="x-text">vnds wants your attention!</span>
+	</div>
+</div>
+
+<div class="incoming focus message">
+	<div class="x-wrap">
+		<div class="x-buddyicon">
+			<img src="Incoming/buddy_icon.png">
+		</div>
+		<div class="x-sender">vnds</div>
+		<div class="x-service">IRC</div>
+		<div class="x-message" style="background-color:;">
+			<div class="x-time" title="11 May 2010">20:48:05</div>
+			<div class="x-text">BUZZ!</div>
+		</div>
+	</div>
+</div>
+
+<div class="consecutive incoming focus message">
+	<div class="x-wrap">
+		<div class="x-buddyicon">
+			<img src="Incoming/buddy_icon.png">
+		</div>
+		<div class="x-sender">vnds</div>
+		<div class="x-service">IRC</div>
+		<div class="x-message" style="background-color:;">
+			<div class="x-time" title="11 May 2010">20:48:05</div>
+			<div class="x-text">oops, nvm</div>
+		</div>
+	</div>
+</div>
+
+<div class="consecutive incoming firstFocus focus message mention">
+	<div class="x-wrap">
+		<div class="x-buddyicon">
+			<img src="Incoming/buddy_icon.png">
+		</div>
+		<div class="x-sender">vnds</div>
+		<div class="x-service">IRC</div>
+		<div class="x-message" style="background-color:;">
+			<div class="x-time" title="11 May 2010">20:48:05</div>
+			<div class="x-text">Mentioning you</div>
+		</div>
+	</div>
+</div>
+
+<div class="incoming message mention">
+	<div class="x-wrap">
+		<div class="x-buddyicon">
+			<img src="Incoming/buddy_icon.png">
+		</div>
+		<div class="x-sender">ctfsh_mn</div>
+		<div class="x-service">IRC</div>
+		<div class="x-message" style="background-color:;">
+			<div class="x-time" title="11 May 2010">20:48:05</div>
+			<div class="x-text">also mentioning you</div>
+		</div>
+	</div>
+</div>
+
 <div id="insert"></div>
 </div>
 
diff -r 2cb58ee83c27 -r 678ffc1ba53c Resources/Message Styles/Mockie.AdiumMessageStyle/Contents/Resources/sample.html
--- a/Resources/Message Styles/Mockie.AdiumMessageStyle/Contents/Resources/sample.html	Tue Jan 25 18:58:45 2011 -0600
+++ /dev/null	Thu Jan 01 00:00:00 1970 +0000
@@ -1,198 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-	<meta http-equiv="content-type" content="text/html; charset=utf-8" />
-	<meta name="generator" content="Colloquy 2.0" />
-	<meta name="formatter" content="libxslt 1.0.30" />
-	<link rel="stylesheet" href="main.css" type="text/css" />
-
-	<script type="text/ecmascript" defer="defer">
-		var scrollToBottomIsNeeded = false;
-
-		function appendMessage(html) {
-			//Remove any existing insertion point
-			insert = document.getElementById("insert");
-			if(insert) insert.parentNode.removeChild(insert);
-
-			//Append the new message to the bottom of our chat block
-			chat = document.getElementById("Chat");
-			range = document.createRange();
-			range.selectNode(chat);
-			documentFragment = range.createContextualFragment(html);
-			chat.appendChild(documentFragment);
-			alignChat();
-		}
-		
-		function appendNextMessage(html){
-			//
-			insert = document.getElementById("insert");
-		
-			//make new node
-			range = document.createRange();
-			range.selectNode(insert.parentNode);
-			newNode = range.createContextualFragment(html);
-
-			//swap
-			insert.parentNode.replaceChild(newNode,insert);
-			alignChat();
-		}
-		
-		function scrollToBottom() {
-			document.body.scrollTop = document.body.offsetHeight;
-		}
-
-		function checkIfScrollToBottomIsNeeded() {
-			scrollToBottomIsNeeded = ( document.body.scrollTop >= ( document.body.offsetHeight - ( window.innerHeight * 1.2 ) ) );
-		}
-
-		function scrollToBottomIfNeeded() {
-			if( scrollToBottomIsNeeded )
-				document.body.scrollTop = document.body.offsetHeight;
-		}
-
-		function setStylesheet( id, url ) {
-			code = "<style id=\"" + id + "\" type=\"text/css\" media=\"screen,print\">";
-			if( url.length ) code += "@import url( \"" + url + "\" );";
-			code += "</style>";
-			range = document.createRange();
-			head = document.getElementsByTagName( "head" ).item(0);
-			range.selectNode( head );
-			documentFragment = range.createContextualFragment( code );
-			head.removeChild( document.getElementById( id ) );
-			head.appendChild( documentFragment );
-		}
-		document.onclick = imageCheck;
-		function imageCheck() {
-			node = event.target;
-			if(node.tagName == 'IMG' && node.alt) {
-				a = document.createElement('a');
-				a.setAttribute('onclick', 'imageSwap(this)');
-				a.setAttribute('src', node.src);
-				text = document.createTextNode(node.alt);
-				a.appendChild(text);
-				node.parentNode.replaceChild(a, node);
-			}
-		}
-		function imageSwap(node) {
-			img = document.createElement('img');
-			img.setAttribute('src', node.src);
-			img.setAttribute('alt', node.firstChild.nodeValue);
-			node.parentNode.replaceChild(img, node);
-		}
-		function alignChat() {
-			var windowHeight = window.innerHeight;
-			if (windowHeight > 0) {
-				var contentElement = document.getElementById('Chat');
-				var contentHeight = contentElement.offsetHeight;
-				if (windowHeight - contentHeight > 0) {
-					contentElement.style.position = 'relative';
-					contentElement.style.top = (windowHeight - contentHeight) + 'px';
-				}
-				else {
-					contentElement.style.position = 'static';
-				}
-			}
-			scrollToBottom();
-		}
-		window.onresize = alignChat;
-
-	</script>
-</head>
-<!--
-<body onload="alignChat();" style="background: url(josie2.jpg); font: 11px 'Lucida Grande';">
--->
-<body onload="alignChat();" style="background: url(); font: 11px 'Lucida Grande';">
-<div id="Chat">
-<div class="x-incoming context">
-	<div class="x-buddyicon">
-		<img src="Incoming/buddy_icon.png" width="32" height="32" />
-	</div>
-	<div class="x-mask"></div>
-	<div class="x-topleft"></div>
-	<div class="x-sender">
-		<span alt="ramoth4">Colin the Great</span>
-	</div>
-	<div class="x-protocol">AIM</div>
-	<div class="x-message">
-		<div class="x-time_initial">10:24:14</div><p>Testing context messages!</p>
-		<div class="x-time_consecutive">10:24:14</div><p>Not much</p>
-		<div id="insert"></div>
-	</div>
-</div>
-<div class="x-outgoing context">
-	<div class="x-buddyicon">
-		<img src="Incoming/buddy_icon.png" width="32" height="32" />
-	</div>
-	<div class="x-mask"></div>
-	<div class="x-topleft"></div>
-	<div class="x-sender">
-		Jorge Salvador Caffarena (eevyl at mac.com) testing very long wassup
-	</div>
-	<div class="x-protocol">AIM</div>
-	<div class="x-message">
-		<div class="x-time_initial">10:24:14</div><p>more test</p>
-	</div>
-</div>
-<div class="x-incoming actual">
-	<div class="x-buddyicon">
-		<img src="Incoming/buddy_icon.png" width="32" height="32" />
-	</div>
-	<div class="x-topleft"></div>
-	<div class="x-sender">
-		Colin the Great
-	</div>
-	<div class="x-protocol">AIM</div>
-	<div class="x-message">
-		<div class="x-time_initial">10:24:14</div><p>Ahoy!</p>
-	</div>
-</div>
-<div class="x-status_container">
-  <div class="x-status_message">
-	Pepito has gone offline
-	<span class="x-status_time">		
-	10:23	
-	</span>
-  </div>	
-</div>
-<div class="x-status_container">
-	<div class="x-status_message">
-	Colin has returned from idle
-	<span class="x-status_time">		
-	10:23	
-	</span>
-	</div>	
-</div>
-<div class="x-outgoing actual">
-	<div class="x-buddyicon">
-		<img src="Incoming/buddy_icon.png" width="32" height="32" />
-	</div>
-	<div class="x-topleft"></div>
-	<div class="x-sender">
-		Jorge Salvador Caffarena (eevyl at mac.com) testing very long wassup
-	</div>
-	<div class="x-protocol">AIM</div>




More information about the commits mailing list