moebius-web

web based ansi art editor

moebius-web

public/index.html


<!DOCTYPE html>
<html>
<head>
	<meta http-equiv="Content-type" content="text/html; charset=utf-8">
	<meta name="apple-mobile-web-app-capable" content="yes">
	<link rel="apple-touch-icon" sizes="180x180" href="img/apple-touch-icon.png">
	<link rel="icon" type="image/png" sizes="32x32" href="img/favicon-32x32.png">
	<link rel="icon" type="image/png" sizes="16x16" href="img/favicon-16x16.png">
	<link rel="icon" type="image/png" sizes="192x192" href="img/favicon_192.png">
	<link rel="manifest" href="img/site.webmanifest">
	<link rel="mask-icon" href="img/safari-pinned-tab.svg" color="#3f3f3f">
	<link rel="shortcut icon" href="img/favicon.ico">
	<meta name="apple-mobile-web-app-title" content="moebius">
	<meta name="application-name" content="moebius">
	<meta name="msapplication-TileColor" content="#3f3f3f">
	<meta name="msapplication-config" content="img/browserconfig.xml">
	<meta name="theme-color" content="#3f3f3f">
	<title>moebius</title>
	<script src="js/network.js" type="text/javascript" charset="utf-8"></script>
	<script src="js/core.js" type="text/javascript" charset="utf-8"></script>
	<script src="js/freehand_tools.js" type="text/javascript" charset="utf-8"></script>
	<script src="js/keyboard.js" type="text/javascript" charset="utf-8"></script>
	<script src="js/ui.js" type="text/javascript" charset="utf-8"></script>
	<script src="js/file.js" type="text/javascript" charset="utf-8"></script>
	<script src="js/document_onload.js" type="text/javascript" charset="utf-8"></script>
	<link rel="stylesheet" href="css/style.css" type="text/css" media="screen">
</head>
<body>
	<div id="body-container">
		<div id="top-toolbar">
			<div id="file-menu" class="menu-title">File
				<div class="menu-list">
					<div id="new" class="menu-item excluded-for-websocket">New</div>
					<div id="open" class="menu-item excluded-for-websocket">Open</div>
					<div class="seperator excluded-for-websocket"></div>
					<div id="edit-sauce" class="menu-item">Sauce Info</div>
					<div id="save-ansi" class="menu-item">Save as ANSi</div>
					<div id="save-bin" class="menu-item">Save as Binary Text</div>
					<div id="save-xbin" class="menu-item">Save as XBin</div>
					<div class="seperator"></div>
					<div id="save-png" class="menu-item">Export as PNG</div>
					<div id="save-utf8" class="menu-item">Export as ANSi (UTF-8)</div>
				</div>
			</div>
			<div id="edit-menu" class="menu-title">Edit
				<div class="menu-list">
					<div id="cut" class="menu-item disabled">Cut (Ctrl-X)</div>
					<div id="copy" class="menu-item disabled">Copy (Ctrl-C)</div>
					<div id="paste" class="menu-item disabled">Paste (Ctrl-V)</div>
					<div id="delete" class="menu-item disabled">Delete (Ctrl-Delete)</div>
					<div class="seperator"></div>
					<div id="undo" class="menu-item">Undo (Ctrl-Z)</div>
					<div id="redo" class="menu-item">Redo (Ctrl-Y)</div>
					<div class="seperator"></div>
					<div id="resize" class="menu-item">Resize Canvas</div>
					<div class="seperator"></div>
					<div id="default-colour" class="menu-item">Default Color (Ctrl-D)</div>
					<div id="swap-colours" class="menu-item">Swap Colors (Ctrl-Q)</div>
				</div>
			</div>
			<div id="view-menu" class="menu-title">View
				<div class="menu-list">
					<div id="ice-colors-toggle" class="menu-item">Use iCE Colors</div>
					<div id="letter-spacing-toggle" class="menu-item">Use 9px Font</div>
					<div class="seperator"></div>
					<div id="fonts" class="menu-item">Change Font</div>
					<div class="seperator"></div>
					<div id="grid-toggle" class="menu-item">Show Grid (Ctrl-G)</div>
					<div class="seperator included-for-websocket"></div>
					<div id="chat-toggle" class="included-for-websocket menu-item">Show Chat (Escape)</div>
				</div>
			</div>
			<input id="artwork-title" class="" type="text" value="Untitled" spellcheck="false" autocomplete="off"
				maxlength="40">
			<div id="chat-button" class="included-for-websocket"><span id="chat-icon-text">Chat</span><span
					id="chat-icon-close-text">(Escape) X</span> <img src="img/chat.png" width="20" height="20" alt="Chat">
			</div>
			<div id="chat-window">
				<div>
					<div id="message-window"></div>
					<div id="user-list"></div>
					<div id="notification-setting"><label><input id="notification-checkbox" type="checkbox">Display
							Notifications</label></div>
				</div>
				<input id="handle-input" type="text" value="" spellcheck="false" autocomplete="off" maxlength="20">
				<input id="message-input" type="text" value="" spellcheck="false" autocomplete="off" maxlength="140">
			</div>
		</div>
		<div id="left-toolbar">
			<canvas id="palette-preview" width="40" height="40"></canvas>
			<canvas id="palette-picker" width="40" height="160"></canvas>
			<div id="keyboard"><img src="img/toolbar/keyboard.png" width="24" height="24" title="Keyboard (k)"
					alt="Keyboard"></div>
			<div id="freestyle"><img src="img/toolbar/freestyle.png" width="24" height="24" title="Freestyle (f)"
					alt="Freestyle"></div>
			<div id="character-brush"><img src="img/toolbar/character_brush.png" width="24" height="24"
					title="Character Brush (b)" alt="Character Brush"></div>
			<div id="fill" class=""><img src="img/toolbar/fill.png" width="24" height="24" title="Fill (n)" alt="Fill">
			</div>
			<div id="line"><img src="img/toolbar/line.png" width="24" height="24" title="Line" alt="Line"></div>
			<div id="square"><img src="img/toolbar/square.png" width="24" height="24" title="Square" alt="Square"></div>
			<div id="circle"><img src="img/toolbar/circle.png" width="24" height="24" title="Circle" alt="Circle"></div>
			<div class="seperator"></div>
			<div id="selection"><img src="img/toolbar/selection.png" width="24" height="24" title="Selection"
					alt="Selection"></div>
			<div id="sample"><img src="img/toolbar/sample.png" width="24" height="24" title="Sample (Alt)" alt="Sample">
			</div>
		</div>
		<div id="viewport">
			<div id="canvas-container">
				<div id="tool-preview" class="canvas-overlay"></div>
				<div id="grid" class="canvas-overlay"></div>
			</div>
		</div>
		<div id="bottom-toolbar">
			<div id="keyboard-toolbar">
				<span>F1:<canvas id="fkey0" class="fkey" width="8" height="16"></canvas></span>
				<span>F2:<canvas id="fkey1" class="fkey" width="8" height="16"></canvas></span>
				<span>F3:<canvas id="fkey2" class="fkey" width="8" height="16"></canvas></span>
				<span>F4:<canvas id="fkey3" class="fkey" width="8" height="16"></canvas></span>
				<span>F5:<canvas id="fkey4" class="fkey" width="8" height="16"></canvas></span>
				<span>F6:<canvas id="fkey5" class="fkey" width="8" height="16"></canvas></span>
				<span>F7:<canvas id="fkey6" class="fkey" width="8" height="16"></canvas></span>
				<span>F8:<canvas id="fkey7" class="fkey" width="8" height="16"></canvas></span>
				<span>F9:<canvas id="fkey8" class="fkey" width="8" height="16"></canvas></span>
				<span>F10:<canvas id="fkey9" class="fkey" width="8" height="16"></canvas></span>
				<span>F11:<canvas id="fkey10" class="fkey" width="8" height="16"></canvas></span>
				<span>F12:<canvas id="fkey11" class="fkey" width="8" height="16"></canvas></span>
			</div>
		</div>
		<div id="position-info"></div>
	</div>
	<div class="overlay" id="open-overlay">
		<div class="dialog">
			<input type="file" id="open-file">
			<div class="button" id="open-cancel">Cancel</div>
		</div>
	</div>
	<div class="overlay" id="resize-overlay">
		<div class="dialog">
			<div><label>Columns: <input type="number" id="columns-input" min="1"></label></div>
			<div><label>Rows: <input type="number" id="rows-input" min="1"></label></div>
			<div class="button" id="resize-apply">Resize</div>
			<div class="button" id="resize-cancel">Cancel</div>
		</div>
	</div>
	<div class="overlay" id="fonts-overlay">
		<div class="dialog">
			<select id="font-select">
				<optgroup label="Amiga">
					<option value="MicroKnight 8x16">MicroKnight (8x16)</option>
					<option value="MicroKnight+ 8x16">MicroKnight+ (8x16)</option>
					<option value="mO'sOul 8x16">mO'sOul (8x16)</option>
					<option value="P0t-NOoDLE 8x16">P0t-NOoDLE (8x16)</option>
					<option value="Topaz 1200 8x16">Topaz 1200 (8x16)</option>
					<option value="Topaz 500 8x16">Topaz 500 (8x16)</option>
					<option value="Topaz+ 1200 8x16">Topaz+ 1200 (8x16)</option>
					<option value="Topaz+ 500 8x16">Topaz+ 500 (8x16)</option>
				</optgroup>
				<optgroup label="Arabic">
					<option value="CP864 8x8">IBM PC Code page 864 (8x8)</option>
					<option value="CP864 8x14">IBM PC Code page 864 (8x14)</option>
					<option value="CP864 8x16">IBM PC Code page 864 (8x16)</option>
				</optgroup>
				<optgroup label="Baltic Rim">
					<option value="CP775 8x8">IBM PC Code page 775 (8x8)</option>
					<option value="CP775 8x14">IBM PC Code page 775 (8x14)</option>
					<option value="CP775 8x16">IBM PC Code page 775 (8x16)</option>
				</optgroup>
				<optgroup label="Cyrillic">
					<option value="CP855 8x8">IBM PC Code page 855 (8x8)</option>
					<option value="CP855 8x14">IBM PC Code page 855 (8x14)</option>
					<option value="CP855 8x16">IBM PC Code page 855 (8x16)</option>
					<option value="CP866 8x8">IBM PC Code page 866 (8x8)</option>
					<option value="CP866 8x14">IBM PC Code page 866 (8x14)</option>
					<option value="CP866 8x16">IBM PC Code page 866 (8x16)</option>
				</optgroup>
				<optgroup label="French Canadian">
					<option value="CP863 8x8">IBM PC Code page 863 (8x8)</option>
					<option value="CP863 8x14">IBM PC Code page 863 (8x14)</option>
					<option value="CP863 8x16">IBM PC Code page 863 (8x16)</option>
					<option value="CP863 8x19">IBM PC Code page 863 (8x19)</option>
				</optgroup>
				<optgroup label="Greek">
					<option value="CP737 8x8">IBM PC Code page 737 (8x8)</option>
					<option value="CP737 8x14">IBM PC Code page 737 (8x14)</option>
					<option value="CP737 8x16">IBM PC Code page 737 (8x16)</option>
					<option value="CP851 8x8">IBM PC Code page 851 (8x8)</option>
					<option value="CP851 8x14">IBM PC Code page 851 (8x14)</option>
					<option value="CP851 8x16">IBM PC Code page 851 (8x16)</option>
					<option value="CP851 8x19">IBM PC Code page 851 (8x19)</option>
					<option value="CP869 8x8">IBM PC Code page 869 (8x8)</option>
					<option value="CP869 8x14">IBM PC Code page 869 (8x14)</option>
					<option value="CP869 8x16">IBM PC Code page 869 (8x16)</option>
				</optgroup>
				<optgroup label="Hebrew">
					<option value="CP862 8x8">IBM PC Code page 862 (8x8)</option>
					<option value="CP862 8x14">IBM PC Code page 862 (8x14)</option>
					<option value="CP862 8x16">IBM PC Code page 862 (8x16)</option>
				</optgroup>
				<optgroup label="IBM PC">
					<option value="CP437 8x8">IBM PC Code page 437 (8x8)</option>
					<option value="CP437 8x14">IBM PC Code page 437 (8x14)</option>
					<option value="CP437 8x16" selected>IBM PC Code page 437 (8x16)</option>
					<option value="CP437 8x19">IBM PC Code page 437 (8x19)</option>
				</optgroup>
				<optgroup label="Icelandic">
					<option value="CP861 8x8">IBM PC Code page 861 (8x8)</option>
					<option value="CP861 8x14">IBM PC Code page 861 (8x14)</option>
					<option value="CP861 8x16">IBM PC Code page 861 (8x16)</option>
					<option value="CP861 8x19">IBM PC Code page 861 (8x19)</option>
				</optgroup>
				<optgroup label="Latin-1 Western European">
					<option value="CP850 8x8">IBM PC Code page 850 (8x8)</option>
					<option value="CP850 8x14">IBM PC Code page 850 (8x14)</option>
					<option value="CP850 8x16">IBM PC Code page 850 (8x16)</option>
					<option value="CP850 8x19">IBM PC Code page 850 (8x19)</option>
				</optgroup>
				<optgroup label="Latin-2 Central European">
					<option value="CP852 8x8">IBM PC Code page 852 (8x8)</option>
					<option value="CP852 8x14">IBM PC Code page 852 (8x14)</option>
					<option value="CP852 8x16">IBM PC Code page 852 (8x16)</option>
					<option value="CP852 8x19">IBM PC Code page 852 (8x19)</option>
				</optgroup>
				<optgroup label="Latin-3 Multilingual">
					<option value="CP853 8x8">IBM PC Code page 853 (8x8)</option>
					<option value="CP853 8x14">IBM PC Code page 853 (8x14)</option>
					<option value="CP853 8x16">IBM PC Code page 853 (8x16)</option>
					<option value="CP853 8x19">IBM PC Code page 853 (8x19)</option>
				</optgroup>
				<optgroup label="Nordic">
					<option value="CP865 8x8">IBM PC Code page 865 (8x8)</option>
					<option value="CP865 8x14">IBM PC Code page 865 (8x14)</option>
					<option value="CP865 8x16">IBM PC Code page 865 (8x16)</option>
					<option value="CP865 8x19">IBM PC Code page 865 (8x19)</option>
				</optgroup>
				<optgroup label="Portuguese">
					<option value="CP860 8x8">IBM PC Code page 860 (8x8)</option>
					<option value="CP860 8x14">IBM PC Code page 860 (8x14)</option>
					<option value="CP860 8x16">IBM PC Code page 860 (8x16)</option>
					<option value="CP860 8x19">IBM PC Code page 860 (8x19)</option>
				</optgroup>
				<optgroup label="Turkish">
					<option value="CP857 8x8">IBM PC Code page 857 (8x8)</option>
					<option value="CP857 8x14">IBM PC Code page 857 (8x14)</option>
					<option value="CP857 8x16">IBM PC Code page 857 (8x16)</option>
				</optgroup>
			</select>
			<div class="button" id="fonts-cancel">Cancel</div>
		</div>
	</div>
	<div class="overlay" id="sauce-overlay">
		<div class="dialog">
			<div><label>Title: <input id="sauce-title" type="text" value="" spellcheck="false" autocomplete="off"
						maxlength="35"></label></div>
			<div><label>Group: <input id="sauce-group" type="text" value="" spellcheck="false" autocomplete="off"
						maxlength="20"></label></div>
			<div><label>Author: <input id="sauce-author" type="text" value="" spellcheck="false" autocomplete="off"
						maxlength="20"></label></div>
			<div class="button" id="sauce-done">Done</div>
		</div>
	</div>
	<div class="overlay" id="websocket-overlay">
		<div class="dialog">
			<p>Please wait... Retrieving data from server.</p>
		</div>
	</div>
	<div id="shading-panel" class="floating-panel"></div>
	<div id="character-brush-panel" class="floating-panel"></div>
</body>

</html>

Download

raw zip tar