]> jfr.im git - irc/quakenet/qwebirc.git/blobdiff - js/ui/swmui.js
Dos2Unix
[irc/quakenet/qwebirc.git] / js / ui / swmui.js
index e29d975f7401f7fadbd3ff7acb3826170e1d2728..2d37e569aa68c104f1876e286bd9a2975e4fa0ed 100644 (file)
-var SWMUIWindow = new Class({\r
-  Extends: UIWindow,\r
-  \r
-  initialize: function(parentObject, client, type, name) {\r
-    this.parent(parentObject, client, type, name);\r
-    this.contentPanel = new SWMPanel(parentObject.mainPanel.element, true);\r
-    this.contentPanel.element.addClass("content");\r
-    this.contentPanel.element.setStyle("overflow", "auto");\r
-\r
-    if(type == WINDOW_CHANNEL) {\r
-      this.nickList = new SWMPanel(this.contentPanel.element);\r
-      this.nickList.anchor = SWM_ANCHOR_RIGHT;\r
-      this.nickList.element.setStyle("overflow", "auto");\r
-      this.nickList.element.addClass("nicklist");\r
-    }\r
-\r
-    if(type == WINDOW_CHANNEL) {\r
-      this.topic = new SWMPanel(this.contentPanel.element);\r
-      this.topic.anchor = SWM_ANCHOR_TOP;\r
-      this.topic.element.addClass("topic");\r
-    }\r
-    \r
-    this.lines = new SWMPanel(this.contentPanel.element);\r
-    this.lines.element.setStyle("overflow", "auto");\r
-    \r
-    this.tab = new Element("span");\r
-    this.tab.addClass("tab");\r
-    \r
-    this.tab.appendText(name);\r
-    this.tab.addEvent("click", function() {\r
-      parentObject.selectWindow(this);\r
-    }.bind(this));\r
-\r
-    parentObject.tabPanel.element.appendChild(this.tab);\r
-    parentObject.resize();\r
-    \r
-    if(type != WINDOW_STATUS) {\r
-      tabclose = new Element("span");\r
-      tabclose.addClass("tabclose");\r
-      tabclose.addEvent("click", function(e) {\r
-        new Event(e).stop();\r
-        \r
-        if(type == WINDOW_CHANNEL)\r
-          this.client.exec("/PART " + name);\r
-\r
-        this.close();\r
-      }.bind(this));\r
-      tabclose.set("text", "X");\r
-      this.tab.appendChild(tabclose);\r
-    }\r
-  },\r
-  updateNickList: function(nicks) {\r
-    this.parent(nicks);\r
-\r
-    var n = this.nickList.element;\r
-    while(n.firstChild)\r
-      n.removeChild(n.firstChild);\r
-\r
-    nicks.each(function(nick) {\r
-      var e = new Element("div");\r
-      n.appendChild(e);\r
-      e.appendChild(document.createTextNode(nick));\r
-    });\r
-    \r
-    this.parentObject.resize();\r
-  },\r
-  updateTopic: function(topic) {\r
-    this.parent(topic);\r
-    var t = this.topic.element;\r
-    \r
-    while(t.firstChild)\r
-      t.removeChild(t.firstChild);\r
-\r
-    Colourise(topic, t);\r
-\r
-    this.parentObject.resize();\r
-  },\r
-  select: function() {\r
-    this.parent();\r
-\r
-    this.contentPanel.setHidden(false);\r
-    this.parentObject.resize();\r
-    this.tab.removeClass("tab-highlighted");\r
-    this.tab.removeClass("tab-unselected");\r
-    this.tab.addClass("tab-selected");\r
-  },\r
-  deselect: function() {\r
-    this.parent();\r
-\r
-    this.contentPanel.setHidden(true);\r
-    this.parentObject.resize();\r
-    this.tab.removeClass("tab-selected");\r
-    this.tab.addClass("tab-unselected");\r
-  },\r
-  close: function() {\r
-    this.parent();\r
-\r
-    this.parentObject.mainPanel.element.removeChild(this.contentPanel.element);\r
-    this.parentObject.tabPanel.element.removeChild(this.tab);\r
-  },\r
-  addLine: function(type, line, colour) {\r
-    this.parent(type, line, colour);\r
-    \r
-    var e = new Element("div");\r
-\r
-    if(colour) {\r
-      e.addStyle("background", colour);\r
-    } else if(this.lastcolour) {\r
-      e.addClass("linestyle1");\r
-    } else {\r
-      e.addClass("linestyle2");\r
-    }\r
-    \r
-    if(type)\r
-      line = this.parentObject.theme.message(type, line);\r
-    \r
-    Colourise(IRCTimestamp(new Date()) + " " + line, e);\r
-    \r
-    this.lastcolour = !this.lastcolour;\r
-    \r
-    var prev = this.lines.element.getScroll();\r
-    var prevbottom = this.lines.element.getScrollSize().y;\r
-    var prevsize = this.lines.element.getSize();\r
-    this.lines.element.appendChild(e);\r
-    \r
-    if(prev.y + prevsize.y == prevbottom)\r
-      this.lines.element.scrollTo(prev.x, this.lines.element.getScrollSize().y);\r
-      \r
-    if(!this.active)\r
-      this.tab.addClass("tab-highlighted");\r
-  }\r
-});\r
-\r
-var SWMUI = new Class({\r
-  Extends: UI,\r
-  initialize: function(parentElement, theme) {\r
-    this.parent(parentElement, SWMUIWindow, "swmui");\r
-    this.theme = theme;\r
-    \r
-    this.tabPanel = new SWMPanel(parentElement);\r
-    this.tabPanel.anchor = SWM_ANCHOR_TOP;\r
-    this.tabPanel.element.addClass("tabs");\r
-    \r
-    this.mainPanel = new SWMPanel(parentElement);\r
-    this.mainPanel.element.addClass("main");\r
-    \r
-    this.entryPanel = new SWMPanel(parentElement);\r
-    this.entryPanel.anchor = SWM_ANCHOR_BOTTOM;\r
-    this.entryPanel.element.addClass("entry");\r
-\r
-    var form = new Element("form");\r
-    \r
-    var inputbox = new Element("input");\r
-    \r
-    window.addEvent("resize", function() {\r
-      var s = this.entryPanel.element.getSize().x - 4;\r
-      inputbox.setStyle("width", s + "px");\r
-    }.bind(this));\r
-\r
-    form.addEvent("submit", function(e) {\r
-      new Event(e).stop();\r
-    \r
-      this.getActiveWindow().client.exec(inputbox.value);\r
-      inputbox.value = "";\r
-    }.bind(this));\r
-\r
-    this.entryPanel.element.appendChild(form);\r
-    form.appendChild(inputbox);\r
-    inputbox.focus();\r
-\r
-    this.resize();\r
-  },\r
-  resize: function() {\r
-    window.fireEvent("resize");\r
-  }\r
-});\r
+var SWMUIWindow = new Class({
+  Extends: UIWindow,
+  
+  initialize: function(parentObject, client, type, name) {
+    this.parent(parentObject, client, type, name);
+    this.contentPanel = new SWMPanel(parentObject.mainPanel.element, true);
+    this.contentPanel.element.addClass("content");
+    this.contentPanel.element.setStyle("overflow", "auto");
+
+    if(type == WINDOW_CHANNEL) {
+      this.nickList = new SWMPanel(this.contentPanel.element);
+      this.nickList.anchor = SWM_ANCHOR_RIGHT;
+      this.nickList.element.setStyle("overflow", "auto");
+      this.nickList.element.addClass("nicklist");
+    }
+
+    if(type == WINDOW_CHANNEL) {
+      this.topic = new SWMPanel(this.contentPanel.element);
+      this.topic.anchor = SWM_ANCHOR_TOP;
+      this.topic.element.addClass("topic");
+    }
+    
+    this.lines = new SWMPanel(this.contentPanel.element);
+    this.lines.element.setStyle("overflow", "auto");
+    
+    this.tab = new Element("span");
+    this.tab.addClass("tab");
+    
+    this.tab.appendText(name);
+    this.tab.addEvent("click", function() {
+      parentObject.selectWindow(this);
+    }.bind(this));
+
+    parentObject.tabPanel.element.appendChild(this.tab);
+    parentObject.resize();
+    
+    if(type != WINDOW_STATUS) {
+      tabclose = new Element("span");
+      tabclose.addClass("tabclose");
+      tabclose.addEvent("click", function(e) {
+        new Event(e).stop();
+        
+        if(type == WINDOW_CHANNEL)
+          this.client.exec("/PART " + name);
+
+        this.close();
+      }.bind(this));
+      tabclose.set("text", "X");
+      this.tab.appendChild(tabclose);
+    }
+  },
+  updateNickList: function(nicks) {
+    this.parent(nicks);
+
+    var n = this.nickList.element;
+    while(n.firstChild)
+      n.removeChild(n.firstChild);
+
+    nicks.each(function(nick) {
+      var e = new Element("div");
+      n.appendChild(e);
+      e.appendChild(document.createTextNode(nick));
+    });
+    
+    this.parentObject.resize();
+  },
+  updateTopic: function(topic) {
+    this.parent(topic);
+    var t = this.topic.element;
+    
+    while(t.firstChild)
+      t.removeChild(t.firstChild);
+
+    Colourise(topic, t);
+
+    this.parentObject.resize();
+  },
+  select: function() {
+    this.parent();
+
+    this.contentPanel.setHidden(false);
+    this.parentObject.resize();
+    this.tab.removeClass("tab-highlighted");
+    this.tab.removeClass("tab-unselected");
+    this.tab.addClass("tab-selected");
+  },
+  deselect: function() {
+    this.parent();
+
+    this.contentPanel.setHidden(true);
+    this.parentObject.resize();
+    this.tab.removeClass("tab-selected");
+    this.tab.addClass("tab-unselected");
+  },
+  close: function() {
+    this.parent();
+
+    this.parentObject.mainPanel.element.removeChild(this.contentPanel.element);
+    this.parentObject.tabPanel.element.removeChild(this.tab);
+  },
+  addLine: function(type, line, colour) {
+    this.parent(type, line, colour);
+    
+    var e = new Element("div");
+
+    if(colour) {
+      e.addStyle("background", colour);
+    } else if(this.lastcolour) {
+      e.addClass("linestyle1");
+    } else {
+      e.addClass("linestyle2");
+    }
+    
+    if(type)
+      line = this.parentObject.theme.message(type, line);
+    
+    Colourise(IRCTimestamp(new Date()) + " " + line, e);
+    
+    this.lastcolour = !this.lastcolour;
+    
+    var prev = this.lines.element.getScroll();
+    var prevbottom = this.lines.element.getScrollSize().y;
+    var prevsize = this.lines.element.getSize();
+    this.lines.element.appendChild(e);
+    
+    if(prev.y + prevsize.y == prevbottom)
+      this.lines.element.scrollTo(prev.x, this.lines.element.getScrollSize().y);
+      
+    if(!this.active)
+      this.tab.addClass("tab-highlighted");
+  }
+});
+
+var SWMUI = new Class({
+  Extends: UI,
+  initialize: function(parentElement, theme) {
+    this.parent(parentElement, SWMUIWindow, "swmui");
+    this.theme = theme;
+    
+    this.tabPanel = new SWMPanel(parentElement);
+    this.tabPanel.anchor = SWM_ANCHOR_TOP;
+    this.tabPanel.element.addClass("tabs");
+    
+    this.mainPanel = new SWMPanel(parentElement);
+    this.mainPanel.element.addClass("main");
+    
+    this.entryPanel = new SWMPanel(parentElement);
+    this.entryPanel.anchor = SWM_ANCHOR_BOTTOM;
+    this.entryPanel.element.addClass("entry");
+
+    var form = new Element("form");
+    
+    var inputbox = new Element("input");
+    
+    window.addEvent("resize", function() {
+      var s = this.entryPanel.element.getSize().x - 4;
+      inputbox.setStyle("width", s + "px");
+    }.bind(this));
+
+    form.addEvent("submit", function(e) {
+      new Event(e).stop();
+    
+      this.getActiveWindow().client.exec(inputbox.value);
+      inputbox.value = "";
+    }.bind(this));
+
+    this.entryPanel.element.appendChild(form);
+    form.appendChild(inputbox);
+    inputbox.focus();
+
+    this.resize();
+  },
+  resize: function() {
+    window.fireEvent("resize");
+  }
+});