+++ /dev/null
-/*=====================================================================*\
-|| ################################################################### ||
-|| # RGB Converter Widget [#]version[#]
-|| # --------------------------------------------------------------- # ||
-|| # Copyright ©2002-[#]year[#] by Iris Studios, Inc. All Rights Reserved. # ||
-|| # This file may not be reproduced in any way without permission. # ||
-|| # --------------------------------------------------------------- # ||
-|| # User License Agreement at http://www.iris-studios.com/license/ # ||
-|| ################################################################### ||
-\*=====================================================================*/
-
-/* ################################################################### */
-/* Global */
-
-body
-{
- margin: 0px;
- font-family: "Lucida Grande";
- color: #FFFFFF;
-}
-
-a
-{
- color: #FFFFFF;
- text-decoration: underline;
-}
-
-/* ################################################################### */
-/* Front */
-
-#redinput
-{
- position: absolute;
- top: 64px;
- left: 35px;
- width: 50px;
-}
-
-#greeninput
-{
- position: absolute;
- top: 64px;
- left: 104px;
- width: 50px;
-}
-
-#blueinput
-{
- position: absolute;
- top: 64px;
- left: 173px;
- width: 50px;
-}
-
-#swatch
-{
- position: absolute;
- top: 18px;
- left: 148px;
- height: 30px;
- width: 30px;
-}
-
-#hexinput
-{
- position: absolute;
- top: 20px;
- left: 25px;
- width: 200px;
- font-size: 11px;
-}
-
-/* ################################################################### */
-/* Back */
-
-#backtext
-{
- position: absolute;
- top: 10px;
- left: 15px;
- font-size: 10px;
-}
-
-#backbutton
-{
- position: absolute;
- top: 45px;
- left: 13px;
- width: 500px;
-}
-
-/* ################################################################### */
-/* Flip insturments */
-
-.flip
-{
- position: absolute;
- top: 44px;
- left: 12px;
- width: 13px;
- height: 13px;
-}
-
-#flip
-{
- opacity: 0;
- background: url(file:///System/Library/WidgetResources/ibutton/white_i.png) no-repeat top left;
- z-index: 8000;
-}
-
-#fliprollie
-{
- display: none;
- opacity: 0.25;
- background: url(file:///System/Library/WidgetResources/ibutton/white_rollie.png) no-repeat top left;
- z-index: 7999;
-}
-
-#front
-{
- display: block;
-}
-
-#back
-{
- display: none;
-}
-
-.doneButton
-{
- position: absolute;
- bottom: 10px;
- left: 10px;
-}
-
-/*=====================================================================*\
-|| ###################################################################
-|| # $HeadURL$
-|| # $Id$
-|| ###################################################################
-\*=====================================================================*/
\ No newline at end of file
+++ /dev/null
-<!--
-/*=====================================================================*\
-|| ################################################################### ||
-|| # RGB Converter Widget [#]version[#]
-|| # --------------------------------------------------------------- # ||
-|| # Copyright ©2002-[#]year[#] by Iris Studios, Inc. All Rights Reserved. # ||
-|| # This file may not be reproduced in any way without permission. # ||
-|| # --------------------------------------------------------------- # ||
-|| # User License Agreement at http://www.iris-studios.com/license/ # ||
-|| ################################################################### ||
-\*=====================================================================*/
--->
-
-<!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>RGB Conveter $Revision$</title>
-</head>
-
-<style type="text/css">
- @import "Widget.css";
-</style>
-
-<script src="Widget.js" type="text/javascript" />
-<script src="file:///System/Library/WidgetResources/button/genericButton.js" type="text/javascript" />
-
-<body onload="setup()">
- <!-- front -->
- <div id="front" onmousemove="mousemove(event);" onmouseout="mouseexit(event);">
- <img src="Default.png" alt="" />
-
- <div id="hexinput">HEX Code <input type="text" name="hexinput" id="hexinputf" size="6" maxlength="6" onblur="hexwatcher()" value="000000" /></div>
-
- <div id="swatch"></div>
-
- <div id="redinput"><input type="text" name="redinput" id="redinputf" style="color: red" size="3" maxlength="3" onblur="rgbwatcher('red')" value="0" /></div>
- <div id="greeninput"><input type="text" name="greeninput" id="greeninputf" style="color: green" size="3" maxlength="3" onblur="rgbwatcher('green')" value="0" /></div>
- <div id="blueinput"><input type="text" name="blueinput" id="blueinputf" style="color: blue" size="3" maxlength="3" onblur="rgbwatcher('blue')" value="0" /></div>
-
- <div class="flip" id="fliprollie"></div>
- <div class="flip" id="flip" onclick="show_back(event);" onmouseover="enterflip(event);" onmouseout="exitflip(event)";></div>
- </div>
- <!-- / front -->
-
- <!-- back -->
- <div id="back">
- <img src="Alternate.png" alt="" />
-
- <div id="backtext">
- <strong style="font-size: 12px">RGB Converter</strong>
- <div>v[#]version[#] ($Revision$)</div>
- <div>©2002-[#]year[#] <a href="javascript:widget.openURL('http://www.iris-studios.com')">Iris Studios, Inc</a><div>
- </div>
-
- <div id="backbutton"></div>
- </div>
- <!-- / back -->
-</body>
-</html>
-
-<!--
-/*=====================================================================*\
-|| ###################################################################
-|| # $HeadURL$
-|| # $Id$
-|| ###################################################################
-\*=====================================================================*/
--->
\ No newline at end of file
+++ /dev/null
-/*=====================================================================*\
-|| ################################################################### ||
-|| # RGB Converter Widget [#]version[#]
-|| # --------------------------------------------------------------- # ||
-|| # Copyright ©2002-[#]year[#] by Iris Studios, Inc. All Rights Reserved. # ||
-|| # This file may not be reproduced in any way without permission. # ||
-|| # --------------------------------------------------------------- # ||
-|| # User License Agreement at http://www.iris-studios.com/license/ # ||
-|| ################################################################### ||
-\*=====================================================================*/
-
-var fields = {
- red : 0,
- green : 0,
- blue : 0,
- hex : ''
-};
-
-// ###################################################################
-// widget init
-function setup()
-{
- createGenericButton(document.getElementById("backbutton"), "Done", hide_back, 0);
-}
-
-// ###################################################################
-// watches the three RGB fields to make sure they don't go over the limites
-function rgbwatcher(colour)
-{
- field = document.getElementById(colour + "inputf");
-
- // sanitize the number
- var newval = field.value.replace(/[^0-9\-\.]*/g, "");
- newval = Math.floor(newval);
-
- // make sure we don't go over 255
- if (newval > 255)
- {
- newval = 255;
- }
- else if (newval < 0)
- {
- newval = 0;
- }
-
- // update the text field
- field.value = newval;
-
- // set fields[]
- fields[colour] = newval;
-
- // set hex
- update_hex();
-
- // redraw the swatch
- update_swatch();
-}
-
-// ###################################################################
-// watches the hex field for updates
-function hexwatcher()
-{
- field = document.getElementById("hexinputf");
-
- // sanitize the hex
- var newval = field.value.replace(/[^0-9a-f]*/gi, "");
-
- // get the length
- var length = newval.length;
-
- // make sure we're always 6
- if (length > 6)
- {
- newval = newval.substr(0, 6);
- }
- else if (length < 6)
- {
- for (var i = length; i <= 6; i++)
- {
- newval = "" + newval + "0";
- }
- }
-
- // update the field
- field.value = newval;
-
- // update fields[]
- fields['hex'] = newval;
-
- // set RGB
- update_rgb();
-
- // redraw the swatch
- update_swatch();
-}
-
-// ###################################################################
-// update the hex value
-function update_hex()
-{
- var hexstr = dec2hex(fields['red']) + dec2hex(fields['green']) + dec2hex(fields['blue']);
- fields['hex'] = hexstr;
- document.getElementById("hexinputf").value = hexstr;
-}
-
-// ###################################################################
-// update the RGB values
-function update_rgb()
-{
- // regex match the bits
- var bits = fields['hex'].match(/(..)(..)(..)/);
-
- fields['red'] = hex2dec(bits[1]);
- fields['green'] = hex2dec(bits[2]);
- fields['blue'] = hex2dec(bits[3]);
-
- // construct the hex values
- document.getElementById("redinputf").value = fields['red'];
- document.getElementById("greeninputf").value = fields['green'];
- document.getElementById("blueinputf").value = fields['blue'];
-}
-
-// ###################################################################
-// update the colour swatch
-function update_swatch()
-{
- document.getElementById("swatch").style.backgroundColor = "rgb(" + fields['red'] + ", " + fields['green'] + ", " + fields['blue'] + ")";
-}
-
-// ###################################################################
-// convert a decimal to a hexidecimal
-function dec2hex(dec)
-{
- var hexstr = "0123456789ABCDEF";
- var low = dec % 16;
- var high = (dec - low) / 16;
- hex = "" + hexstr.charAt(high) + hexstr.charAt(low);
-
- return hex.toString();
-}
-
-// ###################################################################
-// converts a hexidecimal to a decimal
-function hex2dec(hex)
-{
- return parseInt(hex, 16);
-}
-
-// ###################################################################
-// ###################################################################
-// ###################################################################
-
-// flip data
-
-function show_back()
-{
- var front = document.getElementById("front");
- var back = document.getElementById("back");
-
- if (window.widget)
- {
- widget.prepareForTransition("ToBack");
- }
-
- front.style.display = "none";
- back.style.display = "block";
-
- if (window.widget)
- {
- setTimeout("widget.performTransition();", 0);
- }
-
- document.getElementById("fliprollie").style.display = "none";
-}
-
-function hide_back()
-{
- var front = document.getElementById("front");
- var back = document.getElementById("back");
-
- if (window.widget)
- {
- widget.prepareForTransition("ToFront");
- }
-
- back.style.display = "none";
- front.style.display = "block";
-
- if (window.widget)
- {
- setTimeout("widget.performTransition();", 0);
- }
-}
-
-var flipShown = false;
-
-var animation = {
- duration : 0,
- starttime : 0,
- to : 1.0,
- now : 0.0,
- from : 0.0,
- firstElement : null,
- timer : null
-};
-
-function mousemove(event)
-{
- if (!flipShown)
- {
- if (animation.timer != null)
- {
- clearInterval(animation.timer);
- animation.timer = null;
- }
-
- var starttime = (new Date).getTime() - 13;
-
- animation.duration = 500;
- animation.starttime = starttime;
- animation.firstElement = document.getElementById("flip");
- animation.timer = setInterval("animate();", 13);
- animation.from = animation.now;
- animation.to = 1.0;
- animate();
- flipShown = true;
- }
-}
-
-function mouseexit(event)
-{
- if (flipShown)
- {
- // fade in the flip widget
- if (animation.timer != null)
- {
- clearInterval (animation.timer);
- animation.timer = null;
- }
-
- var starttime = (new Date).getTime() - 13;
-
- animation.duration = 500;
- animation.starttime = starttime;
- animation.firstElement = document.getElementById("flip");
- animation.timer = setInterval("animate();", 13);
- animation.from = animation.now;
- animation.to = 0.0;
- animate();
- flipShown = false;
- }
-}
-
-
-function animate()
-{
- var T;
- var ease;
- var time = (new Date).getTime();
-
- T = limit_3(time - animation.starttime, 0, animation.duration);
-
- if (T >= animation.duration)
- {
- clearInterval(animation.timer);
- animation.timer = null;
- animation.now = animation.to;
- }
- else
- {
- ease = 0.5 - (0.5 * Math.cos(Math.PI * T / animation.duration));
- animation.now = compute_next_float(animation.from, animation.to, ease);
- }
-
- animation.firstElement.style.opacity = animation.now;
-}
-
-function limit_3 (a, b, c)
-{
- return a < b ? b : (a > c ? c : a);
-}
-
-function compute_next_float(from, to, ease)
-{
- return from + (to - from) * ease;
-}
-
-function enterflip(event)
-{
- document.getElementById("fliprollie").style.display = "block";
-}
-
-function exitflip(event)
-{
- document.getElementById("fliprollie").style.display = "none";
-}
-
-/*=====================================================================*\
-|| ###################################################################
-|| # $HeadURL$
-|| # $Id$
-|| ###################################################################
-\*=====================================================================*/
\ No newline at end of file