Christian Kaula avatar Christian Kaula committed cb7a246

added Squader and chatastic message styles

Comments (0)

Files changed (16)

Squader.AdiumMessageStyle/Contents/Info.plist

+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>English</string>
+	<key>CFBundleGetInfoString</key>
+	<string>Squader 1.0</string>
+	<key>CFBundleIdentifier</key>
+	<string>com.adiumx.squader.style</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>1.0</string>
+	<key>CFBundleName</key>
+	<string>Squader</string>
+	<key>CFBundlePackageType</key>
+	<string>AdIM</string>
+	<key>DefaultFontFamily</key>
+	<string>Helvetica Neue</string>
+	<key>DefaultFontSize</key>
+	<integer>13</integer>
+	<key>MessageViewVersion</key>
+	<integer>4</integer>
+	<key>ShowsUserIcons</key>
+	<true/>
+</dict>
+</plist>

Squader.AdiumMessageStyle/Contents/Resources/Context_Mockup.html

+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+	<head>
+		<title>Message Style Mockup (2torial)</title>
+		<link rel="stylesheet" type="text/css" href="main.css">
+	</head>
+	<body>
+		<div id="Chat">
+			<div class="incoming message history">
+				<span class="time">23:04:12</span>
+				<span class="sender">SomeoneElse:</span>
+				<span class="content">Well, I'd better be going; <a href="http://www.geocities.com/thejavawocky/">Javawocky</a> tonight. Check out <a href="http://example.com">Nowhere</a> while I'm gone.</span>
+			</div>
+
+			<div class="outgoing message history">
+				<span class="time">23:04:12</span>
+				<span class="sender">Me:</span>
+				<span class="content"><a href="example.com">http://nowhere.anywhere.at</a></span>
+			</div>
+
+			<div class="incoming message">
+				<span class="time">23:04:59</span>
+				<span class="sender">SomeoneElse:</span>
+				<span class="content">Have a good time!</span>
+			</div>
+
+			<div class="incoming message consecutive">
+				<span class="time">00:00:02</span>
+				<span class="sender">SomeoneElse:</span>
+				<span class="content">'Bye!</span>
+			</div>
+
+			<div class="outgoing message">
+				<span class="time">00:00:12</span>
+				<span class="sender">Me:</span>
+				<span class="content">Thanks. I intend to.</span>
+			</div>
+
+			<div class="outgoing message consecutive">
+				<span class="time">00:00:13</span>
+				<span class="sender">Me:</span>
+				<span class="content">Bye bye.</span>
+			</div>
+
+			<div class="status date_separator">
+				<span class="time">14:22:53</span>
+				<span class="content">2004, May 04</span>
+			</div>
+
+			<div class="status online">
+				<span class="time">14:23:06</span>
+				<span class="content">SomeoneElse signed on.</span>
+			</div>
+
+			<div class="incoming message">
+			    <span class="time">14:23:08</span>
+			    <span class="sender">SomeoneElse:</span>
+			    <span class="content">Good moooorning!</span>
+			</div>
+
+			<div class="incoming message consecutive mention">
+			    <span class="time">14:25:39</span>
+				<span class="sender">SomeoneElse:</span>
+			    <span class="content">Hello? Are you there Me? You should check out <a href="http://adium.sourceforge.net">Adium X</a> if you haven't. It's way cool. <a href="http://nowhere.anywhere.atall/that/you/can/not/getto.xyz">Nowhere</a>, too, since you can never visit it.</span>
+			</div>
+
+			<div class="outgoing message">
+			    <span class="time">14:25:50</span>
+			    <span class="sender">Me:</span>
+			    <span class="content">Sorry!</span>
+			</div>
+
+			<div class="outgoing message consecutive">
+			    <span class="time">14:25:55</span>
+				<span class="sender">Me:</span>
+			    <span class="content">Me here now.</span>
+			</div>
+
+			<div class="incoming message">
+			    <span class="time">14:26:02</span>
+			    <span class="sender">SomeoneElse:</span>
+			    <span class="content">Okay. Sorry - brb.</span>
+			</div>
+
+			<div class="status away">
+			    <span class="time">14:26:23</span>
+			    <span class="content">SomeoneElse has gone away.</span>
+			</div>
+
+			<div class="event">
+			    <span class="time">14:26:24</span>
+			    <span class="content">wabu [wabu@10tok.net/Laptop] entered the room.</span>
+			</div>
+
+			<div class="event consecutive">
+			    <span class="time">14:26:24</span>
+			    <span class="content">forti left the room.</span>
+			</div>
+
+			<div class="event status error consecutive">
+			    <span class="time">14:26:24</span>
+			    <span class="content">some error occured</span>
+			</div>
+
+			<div class="status away_message consecutive">
+			    <span class="time">14:26:24</span>
+			    <span class="content">Away Message: /me is listening to U Lied by Crea 01:02</span>
+			</div>
+
+			<div class="outgoing message">
+				<span class="time">14:26:33</span>
+				<span class="sender">Me:</span>
+				<span class="content">Okay.</span>
+			</div>
+
+			<div class="incoming message">
+				<span class="time">14:26:33</span>
+				<span class="sender">SomeoneElse (Autoreply):</span>
+				<span class="content">/me is listening to U Lied by Crea  01:11</span>
+			</div>
+
+			<div class="status return_away">
+				<span class="time">14:29:45</span>
+				<span class="content">SomeoneElse came back.</span>
+			</div>
+
+			<div class="incoming message">
+				<span class="time">14:30:08</span>
+				<span class="sender">SomeoneElse:</span>
+				<span class="content">Back, but must go. 'Bye!</span>
+			</div>
+
+			<div class="status idle">
+				<span class="time">14:40:08</span>
+				<span class="content">SomeoneElse went idle.</span>
+			</div>
+
+			<div class="status return_idle consecutive">
+				<span class="time">14:45:12</span>
+				<span class="content">SomeoneElse is no longer idle.</span>
+			</div>
+
+			<div class="status offline consecutive">
+				<span class="time">14:48:45</span>
+				<span class="content">SomeoneElse signed off.</span>
+			</div>
+		</div>
+		<!--
+		<div class="container status return_away">
+			<span class="time">
+				1:04 AM
+			</span>
+			<span class="content">
+				Joel Watson came back
+			</span>
+			<span class="clear"></span>
+		</div>
+		<span id="insert"></span>
+		<div class="container outgoing initial context">
+			<span class="sender greyed">
+				Joel Watson
+			</span>
+			<span class="content greyed_link">
+				<span class="time">1:48 AM</span> This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text.
+			</span>
+			<span class="clear"></span>
+		</div>
+		<span id="insert"></span>
+		<div class="container outgoing next context">
+			<span class="sender next greyed"></span>
+			<span class="content next greyed_link">
+				<span class="time next">1:48 AM</span> Some more text. Some more text. Some more text. Some more text. Some more text. Some more text. Some more text. Some more text. Some more text. Some more text. Some more text. Some more text. Some more text. Some more text. Some more text. Some more text. Some more text. Some more text.
+			</span>
+			<span class="clear"></span>
+		</div>
+		<span id="insert"></span>
+		<div class="container incoming initial context">
+			<span class="sender greyed">
+				Andre Arko
+			</span>
+			<span class="content greyed_link">
+				<span class="time">1:48 AM</span> lol!
+			</span>
+			<span class="clear"></span>
+		</div>
+		<span id="insert"></span>
+		<div class="container incoming next context">
+			<span class="sender next greyed"></span>
+			<span class="content next greyed_link">
+				<span class="time next">1:48 AM</span> yes, it is.
+			</span>
+			<span class="clear"></span>
+		</div>
+		<span id="insert"></span>
+		<div class="container outgoing initial context">
+			<span class="sender greyed">
+				Joel Watson
+			</span>
+			<span class="content greyed_link">
+				<span class="time">1:48 AM</span> here's some interesting banter.
+			</span>
+			<span class="clear"></span>
+		</div>
+		<span id="insert"></span>
+		<div class="container incoming initial">
+			<span class="sender">
+				Andre Arko
+			</span>
+			<span class="content outgoing_link">
+				<span class="time">1:48 AM</span> if you say so.
+			</span>
+			<span class="clear"></span>
+		</div>
+		<span id="insert"></span>
+		<div class="container incoming">
+			<span class="sender">
+				Andre Arko
+			</span>
+			<span class="content outgoing_link">
+				<span class="time">1:48 AM</span> if you say so.
+			</span>
+			<span class="clear"></span>
+		</div>
+		<span id="insert"></span>
+		<div class="container status away_message">
+			<span class="time">
+				1:49 AM
+			</span>
+			<span class="content">
+				Away Message: yep
+			</span>
+			<span class="clear"></span>
+		</div>
+		-->
+	</body>
+</html>

Squader.AdiumMessageStyle/Contents/Resources/Header.html

+<div id="header">
+    Conversation started at %timeOpened%
+</div>

Squader.AdiumMessageStyle/Contents/Resources/Incoming/Content.html

+<div class="%messageClasses%">
+	<span class="time">%time%</span>
+	<span class="sender">%sender%</span>
+	<span class="content">%message%</span>
+</div>

Squader.AdiumMessageStyle/Contents/Resources/Mockup.html

+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+	<head>
+		<title>Message Style Mockup (2torial)</title>
+		<link rel="stylesheet" type="text/css" href="Main.css">
+	</head>
+	<body>
+		<div class="container status return_away">
+			<span class="time">
+				1:04 AM
+			</span>
+			<span class="message">
+				RailsPimpin came back
+			</span>
+			<span class="clear"></span>
+		</div>
+		<span id="insert"></span>
+		<div class="container outgoing initial">
+			<span class="sender">
+				RailsPimpin			</span>
+			<span class="message outgoing_link">
+				<span class="time">1:48 AM</span> This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text. This is some text.
+			</span>
+			<span class="clear"></span>
+		</div>
+		<span id="insert"></span>
+		<div class="container outgoing next">
+			<span class="sender next"></span>
+			<span class="message next outgoing_link">
+				<span class="time next">1:48 AM</span> Some more text. Some more text. Some more text. Some more text. Some more text. Some more text. Some more text. Some more text. Some more text. Some more text. Some more text. Some more text. Some more text. Some more text. Some more text. Some more text. Some more text. Some more text.
+			</span>
+			<span class="clear"></span>
+		</div>
+		<span id="insert"></span>
+		<div class="container incoming initial">
+			<span class="sender">
+				Kyle H.
+			</span>
+			<span class="message incoming_link">
+				<span class="time">1:48 AM</span> lol!
+			</span>
+			<span class="clear"></span>
+		</div>
+		<span id="insert"></span>
+		<div class="container incoming next">
+			<span class="sender next"></span>
+			<span class="message next incoming_link">
+				<span class="time next">1:48 AM</span> yes, it is.
+			</span>
+			<span class="clear"></span>
+		</div>
+		<span id="insert"></span>
+		<div class="container outgoing initial">
+			<span class="sender">
+				RailsPimpin
+			</span>
+			<span class="message outgoing_link">
+				<span class="time">1:48 AM</span> here's some interesting banter.
+			</span>
+			<span class="clear"></span>
+		</div>
+		<div class="container incoming initial">
+			<span class="sender">
+				Kyle H.
+			</span>
+			<span class="message outgoing_link">
+				<span class="time">1:48 AM</span> if you say so.
+			</span>
+			<span class="clear"></span>
+		</div>
+		<div class="container incoming initial">
+			<span class="sender">
+				Someone Reallylonglastname
+			</span>
+			<span class="message outgoing_link">
+				<span class="time">1:48 AM</span> I have a really long last name!
+			</span>
+			<span class="clear"></span>
+		</div>
+		<div class="container status away_message">
+			<span class="time">
+				1:49 AM
+			</span>
+			<span class="message">
+				Away Message: yep
+			</span>
+			<span class="clear"></span>
+		</div>
+	</body>
+</html>

Squader.AdiumMessageStyle/Contents/Resources/Status.html

+<div class="%messageClasses%">
+	<span class="time">%time%</span>
+	<span class="content">%message%</span>
+</div>

Squader.AdiumMessageStyle/Contents/Resources/main.css

+body {
+  margin: 4px 0 5px 0;
+  color: #393a39;
+  background-color: white;
+  font-family: "Helvetica Neue", Helvetica, arial, sans-serif;
+  font-size: 13px;
+  padding: 0px 1px 1px 1px; }
+
+.content {
+  display: block;
+  padding-top: 1px;
+  margin: -1em 0 0 115px; }
+
+.event,
+.message,
+.status {
+  overflow: hidden;
+  zoom: 1;
+  padding: 5px 0; }
+
+.history {
+  opacity: 0.75; }
+
+.message {
+  position: relative;
+  border-top: 1px solid #e6e6e6; }
+  .message .time {
+    position: absolute;
+    right: 0;
+    bottom: 0;
+    font-weight: bold;
+    font-size: 1.2em;
+    color: rgba(50, 50, 50, 0.05); }
+  .message:hover .time {
+    color: #e6e6e6;
+    -webkit-transition: color 0.1s linear; }
+  .message.consecutive .sender {
+    visibility: hidden; }
+  .message.incoming a:link, .message.incoming a:hover, .message.incoming a:visited {
+    color: #c44d55; }
+  .message.incoming .sender {
+    color: #c44d55; }
+  .message.outgoing {
+    background: rgba(50, 50, 50, 0.05); }
+    .message.outgoing a:link, .message.outgoing a:hover, .message.outgoing a:visited {
+      color: #4c6d84; }
+
+.event,
+.status {
+  font-weight: bold; }
+  .event.away,
+  .status.away {
+    background: #ffe5e0;
+    color: #e8745e; }
+  .event.date_separator,
+  .status.date_separator {
+    background: #d8eaf7;
+    color: #4c6d84; }
+  .event.error,
+  .status.error {
+    background: #fff0d9;
+    color: #d98200; }
+  .event.offline,
+  .status.offline {
+    background: #e8ccf4;
+    color: #6a4a77; }
+  .event.online,
+  .status.online {
+    background: #d8f4cc;
+    color: #57774a; }
+
+.sender,
+.event .time,
+.status .time {
+  width: 92px;
+  padding-left: 8px;
+  margin-right: 15px;
+  height: 1em;
+  display: block;
+  overflow: hidden;
+  font-weight: bold;
+  text-align: right; }
+
+.sender {
+  color: #4c6d84; }

Squader.AdiumMessageStyle/Contents/Resources/main.sass

+$width-nick: 92px
+
+$color: rgba(57, 58, 57, 1.0)
+$color-light: rgba(230, 230, 230, 1.0)
+$color-lighter: rgba(50, 50, 50, 0.05)
+$color-history: fade_out($color, 0.1)
+
+$color-blue: rgba(76, 109, 132, 1.0)
+// $color-blue-light: rgba(212, 233, 248, 1.0)
+$color-green: rgba(87, 119, 74, 1.0)
+// $color-green-light: rgba(222, 248, 212, 1.0)
+$color-purple: rgba(155, 81, 155, 1.0)
+$color-red: rgba(196, 77, 85, 1.0)
+// $color-red-light: rgba(255, 219, 214, 1.0)
+$color-redish: rgba(232, 116, 94, 1.0)
+$color-yellow: rgba(217, 130, 0, 1.0)
+
+$color-in: $color-red
+$color-out: $color-blue
+
+$color-away: $color-redish
+$color-date: $color-blue
+$color-error: $color-yellow
+$color-event: $color-blue
+$color-online: $color-green
+
+
+
+
+=clearfix
+	overflow: hidden
+	zoom: 1
+
+
+=col-left
+	width: 92px
+	padding-left: 8px
+	margin-right: 15px
+
+
+=setup-event($clr, $lighten=50, $saturate=40)
+	background: saturate(lighten($clr, $lighten), $saturate)
+	color: $clr
+
+
+
+body
+	margin: 4px 0 5px 0
+	color: $color
+	background-color: white
+	font-family: "Helvetica Neue", Helvetica, arial, sans-serif
+	font-size: 13px
+	padding: 0px 1px 1px 1px
+
+
+.content
+	display: block
+	padding-top: 1px
+	margin: -1em 0 0 115px
+
+
+
+.event,
+.message,
+.status
+	+clearfix
+	padding: 5px 0
+
+
+
+.history
+	opacity: 0.75
+
+
+
+.message
+	position: relative
+	border-top: 1px solid $color-light
+
+	.time
+		position: absolute
+		right: 0
+		bottom: 0
+		font-weight: bold
+		font-size: 1.2em
+		color: $color-lighter
+
+	&:hover
+		.time
+			color: $color-light
+			-webkit-transition: color .1s linear
+
+	&.consecutive
+		.sender
+			visibility: hidden
+
+	&.incoming
+
+		a
+			&:link,
+			&:hover,
+			&:visited
+				color: $color-in
+
+		.sender
+			color: $color-in
+
+
+	&.outgoing
+		background: $color-lighter
+
+		a
+			&:link,
+			&:hover,
+			&:visited
+				color: $color-out
+
+
+
+.event,
+.status
+	font-weight: bold
+
+	&.away
+		+setup-event($color-away, 30)
+
+	&.date_separator
+		+setup-event($color-date)
+
+	&.error
+		+setup-event($color-error)
+
+	&.idle
+		// +setup-event($color-)
+
+	&.offline
+		+setup-event(complement($color-online))
+
+	&.online
+		+setup-event($color-online)
+
+	&.return_idle
+
+
+
+.sender,
+.event .time,
+.status .time
+	+col-left
+	height: 1em
+	display: block
+	overflow: hidden
+	font-weight: bold
+	text-align: right
+
+
+
+.sender
+	color: $color-out

chatastic.AdiumMessageStyle/Contents/Info.plist

+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
+<plist version="1.0">
+<dict>
+	<key>CFBundleDevelopmentRegion</key>
+	<string>German</string>
+	<key>CFBundleGetInfoString</key>
+	<string>Colloquy Adium Message Style</string>
+	<key>CFBundleIdentifier</key>
+	<string>net.10tok.chatastic.style</string>
+	<key>CFBundleInfoDictionaryVersion</key>
+	<string>1.0</string>
+	<key>CFBundleName</key>
+	<string>Chatastic</string>
+	<key>CFBundlePackageType</key>
+	<string>AdIM</string>
+	<key>DefaultBackgroundColor</key>
+	<string>FFFFFF</string>
+	<key>DefaultFontFamily</key>
+	<string>Lucida Grande</string>
+	<key>DefaultFontSize</key>
+	<integer>11</integer>
+	<key>DisableCustomBackground</key>
+	<false/>
+	<key>DisplayNameForNoVariant</key>
+	<string>No Background</string>
+	<key>ShowsUserIcons</key>
+	<false/>
+</dict>
+</plist>

chatastic.AdiumMessageStyle/Contents/Resources/Incoming/Content.html

+<div class="%messageClasses%" title="%messageClasses%">
+	<span class="time">%time%</span>
+	<span class="sender" style="color: %senderColor%;">%sender%:</span>
+	<span class="message">%message%</span>
+</div>
+<div id="insert"></div>

chatastic.AdiumMessageStyle/Contents/Resources/Incoming/SenderColors.txt

+#FFCC00,#CC00FF,#FF7700,#FF00CC,#C8FF00,#00FF9D,#0037FF,#FF0062,#00FF0D,#A100FF

chatastic.AdiumMessageStyle/Contents/Resources/Status.html

+<div class="%messageClasses%" title="%messageClasses%">
+	<span class="time">%time%</span>
+	<span class="message">%message%</span>
+</div>

chatastic.AdiumMessageStyle/Contents/Resources/Topic.html

+<div id="topic-wrapper">
+	%topic%
+</div>
Add a comment to this file

chatastic.AdiumMessageStyle/Contents/Resources/main.css

Binary file added.

chatastic.AdiumMessageStyle/Contents/Resources/mockup.html

+<HTML>
+<HEAD>
+<TITLE>ArniText AdiumMessageStyle Mockup</TITLE>
+<!-- change what's linked to to try out variants -->
+<link rel="stylesheet" type="text/css" href="main.css" />
+<style type="text/css">
+	body {
+		font-family: "lucida grande";
+		font-size: 11px;
+	}
+</style>
+</HEAD>
+<body>
+	
+<div id="topic">
+	<div id="topic-wrapper">
+		some topic		
+	</div>
+</div>
+
+
+<div id="Chat">
+
+
+<div class="incoming message history">
+	<span class="time">23:04:12</span>
+	<span class="sender">SomeoneElse:</span>
+	<span class="message">Well, I'd better be going; <a href="http://www.geocities.com/thejavawocky/">Javawocky</a> tonight. Check out <a href="http://example.com">Nowhere</a> while I'm gone.</span>
+</div>
+
+<div class="outgoing message history">
+	<span class="time">23:04:12</span>
+	<span class="sender">Me:</span>
+	<span class="message"><a href="example.com">http://nowhere.anywhere.at</a></span>
+</div>
+
+<div class="incoming message">
+	<span class="time">23:04:59</span>
+	<span class="sender">SomeoneElse:</span>
+	<span class="message">Have a good time!</span>
+</div>
+
+<div class="incoming message consecutive">
+	<span class="time">00:00:02</span>
+	<span class="sender">SomeoneElse:</span>
+	<span class="message">'Bye!</span>
+</div>
+
+<div class="outgoing message">
+	<span class="time">00:00:12</span>
+	<span class="sender">Me:</span>
+	<span class="message">Thanks. I intend to.</span>
+</div>
+
+<div class="outgoing message consecutive">
+	<span class="time">00:00:13</span>
+	<span class="sender">Me:</span>
+	<span class="message">Bye bye.</span>
+</div>
+
+<div class="status date_separator">
+	<span class="time">14:22:53</span>
+	<span class="message">2004, May 04</span>
+</div>
+
+<div class="status online">
+	<span class="time">14:23:06</span>
+	<span class="message">SomeoneElse signed on.</span>
+</div>
+
+<div class="incoming message">
+    <span class="time">14:23:08</span>
+    <span class="sender">SomeoneElse:</span>
+    <span class="message">Good moooorning!</span>
+</div>
+
+<div class="incoming message consecutive mention">
+    <span class="time">14:25:39</span>
+	<span class="sender">SomeoneElse:</span>
+    <span class="message">Hello? Are you there Me? You should check out <a href="http://adium.sourceforge.net">Adium X</a> if you haven't. It's way cool. <a href="http://nowhere.anywhere.atall/that/you/can/not/getto.xyz">Nowhere</a>, too, since you can never visit it.</span>
+</div>
+
+<div class="outgoing message">
+    <span class="time">14:25:50</span>
+    <span class="sender">Me:</span>
+    <span class="message">Sorry!</span>
+</div>
+
+<div class="outgoing message consecutive">
+    <span class="time">14:25:55</span>
+	<span class="sender">Me:</span>
+    <span class="message">Me here now.</span>
+</div>
+
+<div class="incoming message">
+    <span class="time">14:26:02</span>
+    <span class="sender">SomeoneElse:</span>
+    <span class="message">Okay. Sorry - brb.</span>
+</div>
+
+<div class="status away">
+    <span class="time">14:26:23</span>
+    <span class="message">SomeoneElse has gone away.</span>
+</div>
+
+<div class="event">
+    <span class="time">14:26:24</span>
+    <span class="message">wabu [wabu@10tok.net/Laptop] entered the room.</span>
+</div>
+
+<div class="event consecutive">
+    <span class="time">14:26:24</span>
+    <span class="message">forti left the room.</span>
+</div>
+
+<div class="event status error consecutive">
+    <span class="time">14:26:24</span>
+    <span class="message">some error occured</span>
+</div>
+
+<div class="status away_message consecutive">
+    <span class="time">14:26:24</span>
+    <span class="message">Away Message: /me is listening to U Lied by Crea 01:02</span>
+</div>
+
+<div class="outgoing message">
+	<span class="time">14:26:33</span>
+	<span class="sender">Me:</span>
+	<span class="message">Okay.</span>
+</div>
+
+<div class="incoming message">
+	<span class="time">14:26:33</span>
+	<span class="sender">SomeoneElse (Autoreply):</span>
+	<span class="message">/me is listening to U Lied by Crea  01:11</span>
+</div>
+
+<div class="status return_away">
+	<span class="time">14:29:45</span>
+	<span class="message">SomeoneElse came back.</span>
+</div>
+
+<div class="incoming message">
+	<span class="time">14:30:08</span>
+	<span class="sender">SomeoneElse:</span>
+	<span class="message">Back, but must go. 'Bye!</span>
+</div>
+
+<div class="status idle">
+	<span class="time">14:40:08</span>
+	<span class="message">SomeoneElse went idle.</span>
+</div>
+
+<div class="status return_idle consecutive">
+	<span class="time">14:45:12</span>
+	<span class="message">SomeoneElse is no longer idle.</span>
+</div>
+
+<div class="status offline consecutive">
+	<span class="time">14:48:45</span>
+	<span class="message">SomeoneElse signed off.</span>
+</div>
+
+</div>
+</body>
+</html>

chatastic.AdiumMessageStyle/Contents/Resources/template.html

+<?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" />
+	<base href="%@">
+	<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 - 10 ) + 'px';
+				}
+				else {
+					contentElement.style.position = 'static';
+				}
+			}
+			scrollToBottom();
+		}
+		window.onresize = alignChat;
+
+	</script>
+	
+	<style id="mainStyle" type="text/css" media="screen,print">	@import url( "%@" ); </style>
+	
+</head>
+<body onload="alignChat();">
+%@
+<div id="Chat">
+</div>
+%@
+</body>
+</html>
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.