DeletedUser
Howdy und frohe Ostern,
hier also das im Contestthread angekündigte Greasemonkey-Skript "The West Window Manager". Seit geraumer Zeit haben mich die The West Fenster gestört, die beim Öffnen alle übereinander liegen und man so schnell den Überblick verliert was alles offen ist. Dieses Skript mächte abhilfe schaffen in dem es alle offenen Fenster auflistet und mit einem einfachen Klick nach vorne bringt.
Schaut es euch doch am besten selber an. Hier der Download-Link: (automatische Updates)The West Window Manager
Screenshot:
Das Skript ist noch im Betastatus, da ich vorhabe noch einige Sachen zu ändern und neue Features einzubauen. Andere Entwickler sind natürlich herzlich eingeladen dabei zu helfen . Den Quelltext dazu gibt es hier:
Geplante Änderungen und Features:
Fehler und Anregungen wie immer hier im Thread.
aktuelle Version 1.2
History:
- Links ersetzt durch Buttons!
- Alte Linknamen können über den Tooltip angesehn werden
- Kompabilität mit Motivation-Skript
- In der rechten Leiste wird nun der WindowManager angezeigt. Die Premium Workbar wurde entfernt.
- Mouseover-effekt der Buttons im Menü: Hebt das Fenster solange hervor
- kleine Performancevorteile
Gruss, forest
hier also das im Contestthread angekündigte Greasemonkey-Skript "The West Window Manager". Seit geraumer Zeit haben mich die The West Fenster gestört, die beim Öffnen alle übereinander liegen und man so schnell den Überblick verliert was alles offen ist. Dieses Skript mächte abhilfe schaffen in dem es alle offenen Fenster auflistet und mit einem einfachen Klick nach vorne bringt.
Schaut es euch doch am besten selber an. Hier der Download-Link: (automatische Updates)The West Window Manager
Screenshot:
Das Skript ist noch im Betastatus, da ich vorhabe noch einige Sachen zu ändern und neue Features einzubauen. Andere Entwickler sind natürlich herzlich eingeladen dabei zu helfen . Den Quelltext dazu gibt es hier:
Code:
// ==UserScript==
// @name TheWestWindowManager
// @description Lists all "The West"-windows which are currently opened and brings one to top by clicking on the link.
// @namespace forestking
// @include http://*.the-west.*
// @exclude http://*.the-west.de/forum*
// @exclude http://forum.the-west.*
// ==/UserScript==
function WindowObj(style, name, id){
this.style = style;
this.name = name;
this.id = id;
}
function openMenu(e){
var theTarget = e.target ? e.target : e.srcElement;
if (theTarget.className == "window") {
resetMenu();
var windows = getWindows();
for (var i = 0; i < windows.length; i++) {
var link = document.createElement("a");
link.href = "#";
link.addEventListener('click', bringToTop, false);
link.title = windows[i].name;
var text = document.createTextNode(".");
var tr = document.createElement("tr");
var td = document.createElement("td");
var td = document.createElement("td");
var div2 = document.createElement("div");
div2.style.position = "absolute";
div2.style.left = "-16px";
div2.style.clip = "rect(0px, 142px, 100px, 18px)";
var img = document.createElement("img");
img.id = windows[i].id + "-Link";
var strArray = windows[i].name.split("_");
var imgValue = strArray[0];
if (imgValue == "motivation")
imgValue = "work";
else {
if (strArray.length > 1 && imgValue != "reports") {
for (var j = 1; j < strArray.length; j++) {
if (strArray[j] == "employer")
break;
if (isNaN((strArray[j]))) {
imgValue = imgValue + "_" + strArray[j];
}
}
}
}
img.src = "/img.php?type=window_title&value=" + imgValue;
img.style.marginLeft = '1px';
img.addEventListener('mouseover', setWindowsTransparent, false);
img.addEventListener('mouseout', setVisible, false);
link.appendChild(img);
div2.appendChild(link);
td.appendChild(div2);
td.appendChild(text);
tr.appendChild(td);
document.getElementById("table").appendChild(tr);
}
}
}
function resetMenu(){
var table = document.getElementById('table');
while (table.childNodes[0]) {
table.removeChild(table.childNodes[0]);
}
}
function getWindows(){
var windows = new Array();
for (var i=0; i<document.getElementById('windows').childNodes.length; i++) {
var style = document.getElementById('windows').childNodes[i].style;
var name = document.getElementById('windows').childNodes[i].id.substr(7);
var id = document.getElementById('windows').childNodes[i].id;
var win = new WindowObj(style, name, id);
windows.push(win);
}
return windows;
}
// ### Link-Functions ###
function bringToTop(e){
var e = e ? e : window.event;
var windowToTop = e.target ? e.target : e.srcElement;
var windowId = windowToTop.id.substring(0, windowToTop.id.lastIndexOf("-"));
// Window is minimized
if (document.getElementById(windowId).style.display == "none") {
document.location.href = "javascript:AjaxWindow.maximize(\'" + windowId.substring(7) + "\');";
}
else {
document.location.href = "javascript:AjaxWindow.bringToTop(document.getElementById(\'" + windowId + "\'));";
}
}
function minimizeAll(){
var windows = getWindows();
for (var i=0; i<windows.length; i++){
if (windows[i].style.display != "none") {
document.getElementById(windows[i].id).style.opacity = "1";
document.location.href = "javascript:AjaxWindow.toggleSize(\'" + windows[i].name + "\', \'"+ windows[i].name+ "\');"
}
}
}
function setTransparent(){
var windows = getWindows();
for (var i=0; i<windows.length; i++){
if (windows[i].style.display != "none") {
document.getElementById(windows[i].id).style.opacity = "0.1";
}
}
}
function setVisible(){
var windows = getWindows();
for (var i=0; i<windows.length; i++){
if (windows[i].style.display != "none") {
document.getElementById(windows[i].id).style.opacity = "1";
}
}
}
function setWindowsTransparent(e){
var e = e ? e : window.event;
var windowMouseover = e.target ? e.target : e.srcElement;
var windowId = windowMouseover.id.substring(0, windowMouseover.id.lastIndexOf("-"));
var windows = getWindows();
for (var i=0; i<windows.length; i++){
if (windows[i].style.display != "none") {
document.getElementById(windows[i].id).style.opacity = "0.1";
}
}
document.getElementById(windowId).style.opacity = '1';
}
function removeNode(e){
var theTarget = e.target ? e.target : e.srcElement;
if (theTarget.className == "window") {
var nodeId = theTarget.id + "-Link";
var node = document.getElementById(nodeId);
var menu = document.getElementById("table");
menu.removeChild(node.parentNode.parentNode.parentNode.parentNode);
}
}
// ### Initialize ###
function init(){
document.getElementById('workbar_right').style.display = "none";
var div = document.createElement("div");
div.id = "contextmenu";
div.style.display = "block";
div.style.backgroundColor = "#BEA771";
div.style.opacity = "0.9";
div.style.border = "2px solid";
var img = document.createElement("img");
img.src = "http://forestking5.fo.ohost.de/sonstiges/tw/skripte/WindowManager.jpg";
img.addEventListener('click', minimizeAll, false);
img.addEventListener('mouseover', setTransparent, false);
img.addEventListener('mouseout', setVisible, false);
var table = document.createElement("table");
table.id = "table";
table.style.width = "150px";
table.style.display = "block";
table.style.borderSpacing = "10px";
div.appendChild(img);
div.appendChild(table);
var container = document.getElementById("right_menu")
container.appendChild(div);
document.getElementById("windows").addEventListener('DOMNodeInserted', openMenu, false);
document.getElementById("windows").addEventListener('DOMNodeRemoved', removeNode, false);
}
init();
Geplante Änderungen und Features:
- Mouseover-effekt der Links im Menü: Hebt das Fenster solange hervor
- Close-Button zu jedem Link im Menü
- Neuer Button um Fenster zu stapeln
Fehler und Anregungen wie immer hier im Thread.
aktuelle Version 1.2
History:
- Links ersetzt durch Buttons!
- Alte Linknamen können über den Tooltip angesehn werden
- Kompabilität mit Motivation-Skript
- In der rechten Leiste wird nun der WindowManager angezeigt. Die Premium Workbar wurde entfernt.
- Mouseover-effekt der Buttons im Menü: Hebt das Fenster solange hervor
- kleine Performancevorteile
Gruss, forest
Zuletzt bearbeitet von einem Moderator: