Annotation of ECHO_content/js/hl_lib.js, revision 1.1

1.1     ! casties     1: /* Copyright (C) 2004 itgroup MPIWG
        !             2:  
        !             3: This program is free software; you can redistribute it and/or
        !             4: modify it under the terms of the GNU General Public License
        !             5: as published by the Free Software Foundation; either version 2
        !             6: of the License, or (at your option) any later version.
        !             7:  
        !             8: This program is distributed in the hope that it will be useful,
        !             9: but WITHOUT ANY WARRANTY; without even the implied warranty of
        !            10: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
        !            11: GNU General Public License for more details.
        !            12:  
        !            13: You should have received a copy of the GNU General Public License
        !            14: along with this program; if not, write to the Free Software
        !            15: Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA
        !            16:  
        !            17: Authors: ROC 6.5.2004
        !            18: */
        !            19: 
        !            20: var hlAreas = new Object();
        !            21: var hlTrafos = new Object();
        !            22: 
        !            23: // Area class
        !            24: function Area(id, target_id, a_x, a_y, a_w, a_h, type) {
        !            25:     this.id = id;
        !            26:     this.target_id = target_id;
        !            27:     this.rect = new Rectangle(a_x, a_y, a_w, a_h);
        !            28:     this.type = type;
        !            29:     this.pxarea = 0;
        !            30:     return this;
        !            31: }
        !            32: 
        !            33: function addArea(id, target_id, a_x, a_y, a_w, a_h, type) {
        !            34:     hlAreas[id] = new Area(id, target_id, a_x, a_y, a_w, a_h, type);
        !            35: }
        !            36: 
        !            37: function parseTrafo(target_id) {
        !            38:     // returns Transform for given target picsize
        !            39:     var picsize = getElementSize(target_id);
        !            40:     var trafo = new Transform();
        !            41:     // subtract area offset and size
        !            42:     //trafo.concat(getTranslation(new Position(-dlArea.x, -dlArea.y)));
        !            43:     //trafo.concat(getScale(new Size(1/dlArea.width, 1/dlArea.height)));
        !            44:     // scale to screen size
        !            45:     trafo.concat(getScale(picsize));
        !            46:     trafo.concat(getTranslation(picsize));
        !            47:     return trafo;
        !            48: }
        !            49: 
        !            50: function placeAreas() {
        !            51:     // positions all area-images
        !            52:     var maxsize = 0;
        !            53:     for (var a in hlAreas) {
        !            54:    var area = hlAreas[a];
        !            55:    var trafo = hlTrafos[area.target_id];
        !            56:    if (trafo) {
        !            57:        var rect = trafo.transform(area.rect);
        !            58:        area.pxarea = rect.getArea();
        !            59:        maxsize = Math.max(maxsize, area.pxarea);
        !            60:        if (area.type == "area") {
        !            61:        moveElement("i."+area.id, rect);
        !            62:        } else {
        !            63:        moveElement("i."+area.id, rect.getPosition());
        !            64:        }
        !            65:    }
        !            66:     }
        !            67:     // add z-index (largest value for smallest area)
        !            68:     for (a in hlAreas) {
        !            69:    area = hlAreas[a];
        !            70:    var elem = getElement("i."+area.id);
        !            71:    if (elem.style) {
        !            72:        elem.style.zIndex = Math.round(maxsize - area.pxarea);
        !            73:    }
        !            74:     }
        !            75: }
        !            76: 
        !            77: function highlightPair(id, highlight) {
        !            78:     // hightlights or unhighlights the link and image of id
        !            79:     var area = hlAreas[id];
        !            80:     var img = getElement("i."+id);
        !            81:     var link = getElement("a."+id);
        !            82:     if (highlight) {
        !            83:    link.style.backgroundColor = "#f08080";
        !            84:    if (area.type == "arrow") {
        !            85:        img.style.borderStyle = "solid";
        !            86:    } else if (area.type == "area") {
        !            87:        img.style.background = "url(area_img)";
        !            88:    }
        !            89:     } else {
        !            90:    link.style.backgroundColor = "";
        !            91:    if (area.type == "arrow") {
        !            92:        img.style.borderStyle = "none";
        !            93:    } else if (area.type == "area") {
        !            94:        img.style.background = "none";
        !            95:    }
        !            96:     }
        !            97: }
        !            98: 
        !            99: function init() {
        !           100:     hlTrafos["overview"] = parseTrafo("overview");
        !           101:     placeAreas();
        !           102:     return null;
        !           103: }

FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>