From f06c34e179d31ab1a623c65962cd9f183f66c310 Mon Sep 17 00:00:00 2001 From: iiiGerardoiii Date: Sun, 19 Oct 2014 04:14:30 -0500 Subject: [PATCH 1/2] made it compatible for Textual 5.0.0 also fixed some bugs, including the no scrolling bug on private messages; did a few text color retouches, added cool stuff, etc. --- Data/Settings/styleSettings.plist | 28 ++ design.css | 642 +++++++++++++++++++++--------- scripts.js | 94 ++++- userInterface.plist | 10 - 4 files changed, 556 insertions(+), 218 deletions(-) create mode 100755 Data/Settings/styleSettings.plist mode change 100644 => 100755 scripts.js delete mode 100644 userInterface.plist diff --git a/Data/Settings/styleSettings.plist b/Data/Settings/styleSettings.plist new file mode 100755 index 0000000..e59c7b9 --- /dev/null +++ b/Data/Settings/styleSettings.plist @@ -0,0 +1,28 @@ + + + + + Nickname Format + + Timestamp Format + + Override Channel Font + + Font Name + + Font Size + 0 + + Indentation Offset + 6 + Underlying Window Color + #dee4ea + Force Invert Sidebars + + Template Engine Versions + + default + 3 + + + diff --git a/design.css b/design.css index 8693b80..c88c25f 100755 --- a/design.css +++ b/design.css @@ -1,107 +1,99 @@ -/* http://modularscale.com/scale/?px1=16&px2=50&ra1=1.618&ra2=0 */ +/* Basic Body Structure - Sapientia 1.3 */ * { - font-size: 100%; margin: 0; padding: 0; + font-size: 100%; word-wrap: break-word; + text-shadow: 1px 1px rgba(255, 255, 255, 0.5); } body { - background-color: #d8d8d8; - background: url(Data/Resources/bg.png); - font-family: "Lucida Grande"; + color: #000; + height: 100%; + z-index: 100; font-size: 1em; - overflow: hidden; + overflow: hidden; overflow-y: visible; - width: 100%; - height: 100%; + background-color: #d8d8d8; + background: url(Data/Resources/bg.png); + color: #000000; + font-family: "Lucida Grande"; } -/* Topic Bar */ - -#topic_bar { - -webkit-box-sizing: border-box; - -webkit-box-shadow: inset 0 -1px 0px #777; - background-image: -webkit-linear-gradient(top, #5C636C, #474C53); - border-bottom: 1px solid #505050; - color: #ddd; - line-height: 1.5em; - opacity: 0.90; - padding: 0.618em; - text-shadow: 0px -1px #444; +body div#body_home { + left: 0; + right: 0; + bottom: 0; width: 100%; - z-index: 10; - position: fixed; - top: 0; - left: 0; - right: 0; + z-index: 100; + max-height: 99.99%; + position: absolute; + opacity: 0; /* Set by JavaScript */ + -webkit-transition: opacity 0.8s linear; } -#topic_bar a { - color: #fff; - border-color: #fff; - text-shadow: 0px -1px #444; +body[viewtype=channel] div#body_home { + max-height: 96.5%; } -#topic_bar a:hover { - color: #FFF; - border-color: #fff; - text-shadow: 0px 0px 4px rgba(255, 255, 255, 0.3); +body .line { + margin-top: -1px; } -/* Main Content */ - -body div#body_home { - padding-top: 19.099px; - left: 0; - right: 0; - bottom: 0; - position: absolute; +body[dir=rtl] .sender { + display: inline-block; } -body[type=channel] div#body_home { - max-height: 96.5%; -} +/* Loading Screen */ -p { +body div#loading_screen { + position:absolute; + top: 50%; + left: 50%; + margin-top: -11px; + margin-left: -150px; + width: 300px; + height: 21px; + font-size: 18px; color: #444; - clear: both; - line-height: 1.618em; - position: relative; - text-shadow: 0px 1px 0px white; - text-rendering: optimizeLegibility; + background: -webkit-linear-gradient(top, #e3e3e3 0%, #d8d8d8 100%); + border: 1px solid #999; + border-radius: 5px; + padding: 5px; + padding-left: 10px; + opacity: 1; /* Set by JavaScript */ + -webkit-transition: opacity 0.8s linear; } -::selection { - background-color: #f357a1; - color: white; - text-shadow: 0px -1px 0px #DA3579; -} +/* Time */ -#body_home div { - margin: 0 25.888px; +body[dir=ltr] .time { + color: #888; + white-space: nowrap; } -/* Time */ - -.time { - -webkit-transition: all 0.2s linear; - color: #999; - text-indent: 0; - word-wrap: normal; - white-space: nowrap +body[dir=rtl] .time { + color: #888; + white-space: nowrap; + padding-left: 0.4em; display: inline-block; } -.line:hover .time { - color: #444; +/* Encryption Lock */ + +.encryptionLock img { + float: right; + margin: 0; + padding: 0; + height: 11px; + margin-top: 2px; + padding-left: 10px; } /* Links */ a { - -webkit-transition: all 0.2s linear; color: #0080FF; border-color: #0080FF; text-decoration: none; @@ -111,273 +103,537 @@ a { a:hover { color: #40A0FF; border-color: #40A0FF; - text-shadow: 0px 0px 6px rgba(196, 228, 255, 0.4); } -/* Images */ +/* Topic Bar */ -img { - border: 0; +#topic_bar { + top: 0; + left: 0; + right: 0; + z-index: 400; + opacity: 0; /* Set by JavaScript */ + color: #ddd; + position: fixed; + padding: 2px 0.5em 3px; + box-shadow: 0 1px 5px #777; + border-bottom: 1px solid #000; + text-shadow: 0px -1px #444; + background: -webkit-linear-gradient(top, #5C636C, #474C53); + -webkit-transition: opacity 0.8s linear; + overflow: hidden; + white-space: nowrap; + text-overflow: ellipsis; +} + +/* Topic bar hover additions contributed with permission from the project: + */ + +#topic_bar:hover { + overflow: visible; + white-space: normal; +} + +#topic_bar a, +#topic_bar span.channel { + color: #ddd; + border-color: #ddd; + text-shadow: 0px -1px #444; } -img { - -webkit-background-clip: padding-box; - -webkit-border-radius: 7px; - -webkit-box-shadow: 0px -1px #ddd; - border: 1px solid #bbb; +/* Images */ + +.inlineImageCell { + overflow: auto; display: block; - margin: 20px 0; - max-width: 95%; + margin-top: 15px; + margin-bottom: 12px; +} + +.inlineImageCell .image { + display: inline-block; + float: left; + margin-right: 12px; + margin-left: 10px; + min-width: 40px; + max-width: 90%; +} + +.inlineImageCell .closeButton { + cursor: pointer; + border-radius: 5px; + border: 2px solid #444; + color: #444; + display: inline-block; + line-height: 14px; + font-size: 15px; + font-family: "Helvetica Neue" !important; + text-indent: 7px; + width: 16px; + height: 16px; + float: left; + padding-right: 7px; + padding-left: 0px; +} + +html[systemversion^="10.9"] .inlineImageCell .closeButton, +html[systemversion^="10.8"] .inlineImageCell .closeButton { + line-height: 13px; } /* Remember Line */ -#body_home div[id="mark"] { +div[id=mark] { -webkit-transition: 0.2s linear; -webkit-box-shadow: 0px 1px 0px #fff; border-bottom: 1px solid #b5b5b5; margin: 5px 0; } -#body_home div[type="join"] p, -#body_home div[type="quit"] p, -#body_home div[type="part"] p, -div.event p -{ +/* Historic Line */ + +.historic { + opacity: 0.6; +} + +html[systemversion^="10.9"] .historic, +html[systemversion^="10.8"] .historic { + opacity: 0.6; + font-weight: normal; + -webkit-filter: none; +} + +/* NOTICE/CTCP/WALLOPS */ + +body div.line[ltype*=ctcp], +body div.line[ltype*=notice], +body div.line[ltype*=wallops] { + color: #f00; + z-index: 191; + background: #FFCCCD; + position: relative; + padding: 2px 5px 2px 5px; + border-bottom: 1px solid rgba(255, 0, 0, 0.3); +} + +body div[ltype*=notice] .sender { + color: #f00; + font-weight: 700; +} + +/* Selected User Messages */ + +.sender { + cursor: pointer; +} + +body div.line[ltype*=privmsg]:not(.selectedUser), +body div.line[ltype*=action]:not(.selectedUser) { + transition-property: border-top, border-bottom, background-color; + transition-duration: 0.5s, 0.5s, 0.5s; +} + +body div.line[ltype*=privmsg] .time:not(.selectedUser), +body div.line[ltype*=action] .time:not(.selectedUser) { + transition: color 0.5s; +} + +body div.line.selectedUser[highlight=false] .time { + transition: color 0.5s ease-in; color: #888; + line-height: 1.3em; } -/* Colors */ +body div.line.selectedUser[highlight=false] { + transition-property: border-top, border-bottom, background-color; + transition-duration: 0.5s, 0.5s, 0.5s; + + z-index: 190; + position: relative; + border-top: 1px solid rgb(122, 156, 177) !important; + border-bottom: 1px solid rgb(122, 156, 177) !important; + background-color: rgba(123, 150, 194, 0.3) !important; +} + +/* PRIVMSG */ + +body div.line[ltype*=privmsg][highlight=false] { + padding: 2px 5px 2px 5px; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + background-color: none; +} + +body div.line[ltype*=privmsg][highlight=true], +body div.line[ltype*=action][highlight=true] { + z-index: 191; + position: relative; + font-weight: normal; + padding: 2px 5px 2px 5px; + border-top: 1px solid #FFDB99; + border-bottom: 1px solid #FFDB99; + background-color: #FFE5B5 !important; +} + +body div[ltype="privmsg"] .message { + color: #444; + clear: both; + position: relative; + text-shadow: 0px 1px 0px white; + text-rendering: optimizeLegibility; + line-height: 1.3em; +} + +body div[ltype*=privmsg][mtype*=myself] .message { + color: #444; + line-height: 1.3em; +} + +body div[ltype*=privmsg] .sender { + font-weight: 700; + white-space: pre-wrap; +} + +/* ACTION */ + +body div.line[ltype*=action] { + padding: 2px 5px 2px 5px; + border-top: 1px solid transparent; + border-bottom: 1px solid transparent; + background-color: none; +} + +body div[ltype="action"] .message { + color: #000; +} + +body div[ltype*=action] .sender { + font-weight: 700; +} + +body div[ltype*=action][mtype*=myself] .sender, +body div[ltype*=action][mtype*=myself] .message { + color: #B52CF6; +} + +body[dir=ltr] div[ltype*=action] .sender:before { + content: "\2022"; + margin-right: 0.4em; +} + +body[dir=ltr] div[ltype*=action] .sender:after { + content: ""; + /* margin-right: 0.4em; */ +} + +body[dir=rtl] div[ltype*=action] .sender:before { + content: "\2022"; + margin-left: 0.4em; +} + +body[dir=rtl] div[ltype*=action] .sender:after { + content: ""; + /* margin-left: 0.4em; */ +} + +/* DEBUG/INVITE */ + +body div.line[ltype*=invite], +body div.line[ltype*=debug], +body div.line[ltype*=rawhtml], +body div.line[ltype*=dccfiletransfer] { + color: #777; + z-index: 190; + background: #eee; + position: relative; + padding: 2px 5px 2px 5px; + border-top: 1px solid #ddd; + border-bottom: 1px solid #ddd; +} + +/* Message of the Day (MOTD) */ +/* 720, 721, 722 are used by ShadowIRCd for Oper MOTD. */ +/* 372, 375, 376 are normal MOTD shared by several IRCds. */ + +body div.line[command="372"], +body div.line[command="721"] { + border: none; + padding-top: 3px; + padding-bottom: 3px; +} + +body div.line[command="375"], +body div.line[command="720"] { /* Start. */ + border-bottom: none; + padding-top: 2px; + padding-bottom: 3px; +} + +body div.line[command="376"], +body div.line[command="722"] { /* End. */ + border-top: none; + padding-top: 3px; + padding-bottom: 3px; +} + +body div.line[command="372"] .message, +body div.line[command="375"] .message, +body div.line[command="376"] .message +body div.line[command="720"] .message, +body div.line[command="721"] .message, +body div.line[command="722"] .message { + font-family: "Menlo" !important; +} + +/* GENERAL EVENT */ + +body div.line[ltype*=join], +body div.line[ltype*=part], +body div.line[ltype*=kick], +body div.line[ltype*=quit], +body div.line[ltype*=kill], +body div.line[ltype*=nick], +body div.line[ltype*=mode], +body div.line[ltype*=topic], +body div.line[ltype*=website] { + padding: 3px 5px 3px 5px; + color: #888; + line-height: 1.3em; +} + +body[dir=ltr] div[ltype*=join] .message:before { + content: "→"; + color: #0c0; + /* margin-right: 0.4em; */ +} + +body[dir=ltr] div[ltype*=kick] .message:before, +body[dir=ltr] div[ltype*=part] .message:before, +body[dir=ltr] div[ltype*=quit] .message:before { + content: "←"; + color: #e00; + /* margin-right: 0.4em; */ +} + +body[dir=ltr] div[ltype*=nick] .message:before { + content: "•"; + color: #0c0; + /* margin-right: 0.4em; */ +} + +body[dir=rtl] div[ltype*=join] .message:before { + content: "→"; + color: #0c0; + /* margin-left: 0.4em; */ +} + +body[dir=rtl] div[ltype*=kick] .message:before, +body[dir=rtl] div[ltype*=part] .message:before, +body[dir=rtl] div[ltype*=quit] .message:before { + content: "←"; + color: #e00; + /* margin-left: 0.4em; */ +} + +body[dir=rtl] div[ltype*=nick] .message:before { + content: "•"; + color: #0c0; + /* margin-left: 0.4em; */ +} /* Nickname Colors */ -.sender, .inline_nickname { +body .inline_nickname { font-weight: 700; } -body div[type*=privmsg] .sender[type*=myself] { +body div[ltype*=privmsg] .sender[mtype*=myself] { color: #ea0d68; text-shadow: 0px 1px #FFDEEC; } -.sender[type*=normal][colornumber='0'], -.inline_nickname[colornumber='0'] { +body .sender[mtype*=normal][colornumber='0'], +body .inline_nickname[colornumber='0'] { color: #0080ff; text-shadow: 0px 1px #CDE8FF; } -.sender[type*=normal][colornumber='1'], -.inline_nickname[colornumber='1'] { +body .sender[mtype*=normal][colornumber='1'], +body .inline_nickname[colornumber='1'] { color: #059005; text-shadow: 0px 1px #CFFFD0; } -.sender[type*=normal][colornumber='2'], -.inline_nickname[colornumber='2'] { +body .sender[mtype*=normal][colornumber='2'], +body .inline_nickname[colornumber='2'] { color: #a80054; text-shadow: 0px 1px #FFDFEF; } -.sender[type*=normal][colornumber='3'], -.inline_nickname[colornumber='3'] { +body .sender[mtype*=normal][colornumber='3'], +body .inline_nickname[colornumber='3'] { color: #9b0db1; text-shadow: 0px 1px #F9CFFF; } -.sender[type*=normal][colornumber='4'], -.inline_nickname[colornumber='4'] { +body .sender[mtype*=normal][colornumber='4'], +body .inline_nickname[colornumber='4'] { color: #108860; text-shadow: 0px 1px #CEFFEF; } -.sender[type*=normal][colornumber='5'], -.inline_nickname[colornumber='5'] { +body .sender[mtype*=normal][colornumber='5'], +body .inline_nickname[colornumber='5'] { color: #7F4FFF; text-shadow: 0px 1px #DAD0FF; } -.sender[type*=normal][colornumber='6'], -.inline_nickname[colornumber='6'] { +body .sender[mtype*=normal][colornumber='6'], +body .inline_nickname[colornumber='6'] { color: #58701a; text-shadow: 0px 1px #F3FFCF; } -.sender[type*=normal][colornumber='7'], -.inline_nickname[colornumber='7'] { +body .sender[mtype*=normal][colornumber='7'], +body .inline_nickname[colornumber='7'] { color: #620a8e; text-shadow: 0px 1px #EED0FF; } -.sender[type*=normal][colornumber='8'], -.inline_nickname[colornumber='8'] { +body .sender[mtype*=normal][colornumber='8'], +body .inline_nickname[colornumber='8'] { color: #BB0008; text-shadow: 0px 1px #FFCFD1; } -.sender[type*=normal][colornumber='9'], -.inline_nickname[colornumber='9'] { +body .sender[mtype*=normal][colornumber='9'], +body .inline_nickname[colornumber='9'] { color: #44345f; text-shadow: 0px 1px #DFD0FF; } -.sender[type*=normal][colornumber='10'], -.inline_nickname[colornumber='10'] { +body .sender[mtype*=normal][colornumber='10'], +body .inline_nickname[colornumber='10'] { color: #2f5353; text-shadow: 0px 1px #CDFFFF; } -.sender[type*=normal][colornumber='11'], -.inline_nickname[colornumber='11'] { +body .sender[mtype*=normal][colornumber='11'], +body .inline_nickname[colornumber='11'] { color: #904000; text-shadow: 0px 1px #FFE4CF; } -.sender[type*=normal][colornumber='12'], -.inline_nickname[colornumber='12'] { +body .sender[mtype*=normal][colornumber='12'], +body .inline_nickname[colornumber='12'] { color: #808000; text-shadow: 0px 1px #FFFFCF; } -.sender[type*=normal][colornumber='13'], -.inline_nickname[colornumber='13'] { +body .sender[mtype*=normal][colornumber='13'], +body .inline_nickname[colornumber='13'] { color: #57797e; text-shadow: 0px 1px #CDF9FF; } -.sender[type*=normal][colornumber='14'], -.inline_nickname[colornumber='14'] { +body .sender[mtype*=normal][colornumber='14'], +body .inline_nickname[colornumber='14'] { color: #3333dd; text-shadow: 0px 1px #CDD0FF; } -.sender[type*=normal][colornumber='15'], -.inline_nickname[colornumber='15'] { +body .sender[mtype*=normal][colornumber='15'], +body .inline_nickname[colornumber='15'] { color: #5f4d22; text-shadow: 0px 1px #FFF0CF; } -.sender[type*=normal][colornumber='16'], -.inline_nickname[colornumber='16'] { +body .sender[mtype*=normal][colornumber='16'], +body .inline_nickname[colornumber='16'] { color: #706616; text-shadow: 0px 1px #FFF9CF; } -.sender[type*=normal][colornumber='17'], -.inline_nickname[colornumber='17'] { +body .sender[mtype*=normal][colornumber='17'], +body .inline_nickname[colornumber='17'] { color: #46799c; text-shadow: 0px 1px #CDEDFF; } -.sender[type*=normal][colornumber='18'], -.inline_nickname[colornumber='18'] { +body .sender[mtype*=normal][colornumber='18'], +body .inline_nickname[colornumber='18'] { color: #80372e; text-shadow: 0px 1px #FFD4CF; } -.sender[type*=normal][colornumber='19'], -.inline_nickname[colornumber='19'] { +body .sender[mtype*=normal][colornumber='19'], +body .inline_nickname[colornumber='19'] { color: #8F478E; text-shadow: 0px 1px #FFCFFE; } -.sender[type*=normal][colornumber='20'], -.inline_nickname[colornumber='20'] { +body .sender[mtype*=normal][colornumber='20'], +body .inline_nickname[colornumber='20'] { color: #5b9e4c; text-shadow: 0px 1px #D8FFD0; } -.sender[type*=normal][colornumber='21'], -.inline_nickname[colornumber='21'] { +body .sender[mtype*=normal][colornumber='21'], +body .inline_nickname[colornumber='21'] { color: #13826c; text-shadow: 0px 1px #CDFFF6; } -.sender[type*=normal][colornumber='22'], -.inline_nickname[colornumber='22'] { +body .sender[mtype*=normal][colornumber='22'], +body .inline_nickname[colornumber='22'] { color: #b13637; text-shadow: 0px 1px #FFCFD0; } -.sender[type*=normal][colornumber='23'], -.inline_nickname[colornumber='23'] { +body .sender[mtype*=normal][colornumber='23'], +body .inline_nickname[colornumber='23'] { color: #e45d59; text-shadow: 0px 1px #FFD0CF; } -.sender[type*=normal][colornumber='24'], -.inline_nickname[colornumber='24'] { +body .sender[mtype*=normal][colornumber='24'], +body .inline_nickname[colornumber='24'] { color: #1b51ae; text-shadow: 0px 1px #CDE2FF; } -.sender[type*=normal][colornumber='25'], -.inline_nickname[colornumber='25'] { +body .sender[mtype*=normal][colornumber='25'], +body .inline_nickname[colornumber='25'] { color: #4855ac; - text-shadow: 0px 1px #CDD7FF; + text-shadow: 0px 1px #FCCFFF; } -.sender[type*=normal][colornumber='26'], -.inline_nickname[colornumber='26'] { +body .sender[mtype*=normal][colornumber='26'], +body .inline_nickname[colornumber='26'] { color: #7f1d86; - text-shadow: 0px 1px #FCCFFF; + text-shadow: 0px 1px #FCCFFF; } -.sender[type*=normal][colornumber='27'], -.inline_nickname[colornumber='27'] { +body .sender[mtype*=normal][colornumber='27'], +body .inline_nickname[colornumber='27'] { color: #73643f; - text-shadow: 0px 1px #FFF1CF; + text-shadow: 0px 1px #FCCFFF; } -.sender[type*=normal][colornumber='28'], -.inline_nickname[colornumber='28'] { +body .sender[mtype*=normal][colornumber='28'], +body .inline_nickname[colornumber='28'] { color: #0b9578; - text-shadow: 0px 1px #CDFFF5; + text-shadow: 0px 1px #FCCFFF; } -.sender[type*=normal][colornumber='29'], -.inline_nickname[colornumber='29'] { +body .sender[mtype*=normal][colornumber='29'], +body .inline_nickname[colornumber='29'] { color: #569c96; - text-shadow: 0px 1px #CDFFFB; + text-shadow: 0px 1px #FCCFFF; } -.sender[type*=normal][colornumber='30'], -.inline_nickname[colornumber='30'] { +body .sender[mtype*=normal][colornumber='30'], +body .inline_nickname[colornumber='30'] { color: #08465f; - text-shadow: 0px 1px #CDF2FF; -} - -/* mIRC Color Codes */ - -.effect[color-number='0'] { color: #ffffff; } -.effect[color-number='1'] { color: #000000; } -.effect[color-number='2'] { color: #000088; } -.effect[color-number='3'] { color: #008800; } -.effect[color-number='4'] { color: #ff0000; } -.effect[color-number='5'] { color: #880000; } -.effect[color-number='6'] { color: #880088; } -.effect[color-number='7'] { color: #ff8800; } -.effect[color-number='8'] { color: #ffff00; } -.effect[color-number='9'] { color: #00ff00; } -.effect[color-number='10'] { color: #008888; } -.effect[color-number='11'] { color: #00ffff; } -.effect[color-number='12'] { color: #0000ff; } -.effect[color-number='13'] { color: #ff00ff; } -.effect[color-number='14'] { color: #888888; } -.effect[color-number='15'] { color: #cccccc; } - -.effect[bgcolor-number='0'] { background-color: #ffffff; } -.effect[bgcolor-number='1'] { background-color: #000000; } -.effect[bgcolor-number='2'] { background-color: #000088; } -.effect[bgcolor-number='3'] { background-color: #008800; } -.effect[bgcolor-number='4'] { background-color: #ff0000; } -.effect[bgcolor-number='5'] { background-color: #880000; } -.effect[bgcolor-number='6'] { background-color: #880088; } -.effect[bgcolor-number='7'] { background-color: #ff8800; } -.effect[bgcolor-number='8'] { background-color: #ffff00; } -.effect[bgcolor-number='9'] { background-color: #00ff00; } -.effect[bgcolor-number='10'] { background-color: #008888; } -.effect[bgcolor-number='11'] { background-color: #00ffff; } -.effect[bgcolor-number='12'] { background-color: #0000ff; } -.effect[bgcolor-number='13'] { background-color: #ff00ff; } -.effect[bgcolor-number='14'] { background-color: #888888; } -.effect[bgcolor-number='15'] { background-color: #cccccc; } \ No newline at end of file + text-shadow: 0px 1px #FCCFFF; +} diff --git a/scripts.js b/scripts.js old mode 100644 new mode 100755 index a8e81c3..e99eeec --- a/scripts.js +++ b/scripts.js @@ -1,21 +1,85 @@ -// Mechanism to pull in additional CSS or JavaScript files +/* Defined in: "Textual 5.app -> Contents -> Resources -> JavaScript -> API -> core.js" */ -// Textual.include_css("more_theme.css"); +var mappedSelectedUsers = new Array(); -// Function called when new message from IRC has been posted to display +Textual.viewBodyDidLoad = function() +{ + Textual.fadeOutLoadingScreen(1.00, 0.95); -// Textual.newMessagePostedToDisplay = function(lineNumber) -// { -// var newLine = document.getElementById("line" + lineNumber); -// } + setTimeout(function() { + Textual.scrollToBottomOfView() + }, 500); +} +Textual.newMessagePostedToView = function(line) +{ + var element = document.getElementById("line-" + line); -// Functions called for contextual menus used within WebView -// DO NOT change without knowledge of what to do. -// Safe to remove from source code if not needed. + updateNicknameAssociatedWithNewMessage(element); +} -// Textual.on_url = function() { app.setUrl(event.target.innerHTML); } -// Textual.on_addr = function() { app.setAddr(event.target.innerHTML); } -// Textual.on_chname = function() { app.setChan(event.target.innerHTML); } -// Textual.on_ct_nick: function() { app.setNick(event.target.innerHTML); } -// Textual.on_nick = function() { app.setNick(event.target.parentNode.parentNode.getAttribute('nick')); } \ No newline at end of file +Textual.nicknameSingleClicked = function(e) +{ + userNicknameSingleClickEvent(e); +} + +function updateNicknameAssociatedWithNewMessage(e) +{ + /* We only want to target plain text messages. */ + var elementType = e.getAttribute("ltype"); + + if (elementType == "privmsg" || elementType == "action") { + /* Get the nickname information. */ + var senderSelector = e.querySelector(".sender"); + + if (senderSelector) { + /* Is this a mapped user? */ + var nickname = senderSelector.getAttribute("nickname"); + + /* If mapped, toggle status on for new message. */ + if (mappedSelectedUsers.indexOf(nickname) > -1) { + toggleSelectionStatusForNicknameInsideElement(senderSelector); + } + } + } +} + +function toggleSelectionStatusForNicknameInsideElement(e) +{ + /* e is nested as the .sender so we have to go three parents + up in order to reach the parent div that owns it. */ + var parentSelector = e.parentNode.parentNode.parentNode.parentNode; + + parentSelector.classList.toggle("selectedUser"); +} + +function userNicknameSingleClickEvent(e) +{ + /* This is called when the .sender is clicked. */ + var nickname = e.getAttribute("nickname"); + + /* Toggle mapped status for nickname. */ + var mappedIndex = mappedSelectedUsers.indexOf(nickname); + + if (mappedIndex == -1) { + mappedSelectedUsers.push(nickname); + } else { + mappedSelectedUsers.splice(mappedIndex, 1); + } + + /* Gather basic information. */ + var documentBody = document.getElementById("body_home"); + + var allLines = documentBody.querySelectorAll('div[ltype="privmsg"], div[ltype="action"]'); + + /* Update all elements of the DOM matching conditions. */ + for (var i = 0, len = allLines.length; i < len; i++) { + var sender = allLines[i].querySelectorAll(".sender"); + + if (sender.length > 0) { + if (sender[0].getAttribute("nickname") === nickname) { + toggleSelectionStatusForNicknameInsideElement(sender[0]); + } + } + } +} diff --git a/userInterface.plist b/userInterface.plist deleted file mode 100644 index dacf1ee..0000000 --- a/userInterface.plist +++ /dev/null @@ -1,10 +0,0 @@ - - - - - Underlying Window Color - #32373D - Rendering Engine Version - 1.1 - - From 2eabbaea7e403aaf19e38f94c23a5b88ecdbf138 Mon Sep 17 00:00:00 2001 From: iiiGerardoiii Date: Sun, 19 Oct 2014 04:18:54 -0500 Subject: [PATCH 2/2] updated screenshot --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7a814d7..8574522 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ I was not satisfied with existing themes for my IRC client of choice, [Textual][ If you happen to like it too, that's great! This is what it looks like in action: -![Poised theme screenshot](http://f.cl.ly/items/1O1J0X1x2n111k181U2n/Schermata%2009-2455816%20alle%2013.48.53.png) +![Poised theme screenshot](http://i.imgur.com/70fIF0q.png) Licensing and boring stuff is in copyright.txt.