Update of /cvsroot/dynapi/dynapi/src/lib/dynapi/gui In directory usw-pr-cvs1:/tmp/cvs-serv22771 Modified Files: list.js label.js Log Message: Speed improvement fixes for button widget. The events should now work correctly (no 2 list items should be highlighted at the same time) Index: list.js =================================================================== RCS file: /cvsroot/dynapi/dynapi/src/lib/dynapi/gui/list.js,v retrieving revision 1.2 retrieving revision 1.3 diff -C2 -r1.2 -r1.3 *** list.js 2001/01/08 22:45:43 1.2 --- list.js 2001/01/17 22:28:46 1.3 *************** *** 32,38 **** ListItem.listevents.onmouseover = function (e) { var o = e.getSource(); ! if (!o.selected) { o.setBgColor(o.itemStyle.bgColorRoll); o.setFontColor(o.itemStyle.textRoll); } o.isMouseOver = true; --- 32,45 ---- ListItem.listevents.onmouseover = function (e) { var o = e.getSource(); ! if (!o.selected && !o.isMouseOver) { o.setBgColor(o.itemStyle.bgColorRoll); o.setFontColor(o.itemStyle.textRoll); + for (var i=0;i<o.list.items.length;i++) { + if (o.list.items[i]!=o && !o.list.items[i].selected && +o.list.items[i].isMouseOver) { + +o.list.items[i].setBgColor(o.list.items[i].itemStyle.bgcolor); + +o.list.items[i].setFontColor(o.list.items[i].itemStyle.textNormal); + o.list.items[i].isMouseOver = false; + } + } } o.isMouseOver = true; *************** *** 40,44 **** ListItem.listevents.onmouseout = function (e) { var o = e.getSource(); ! if (!o.selected) { o.setBgColor(o.itemStyle.bgcolor); o.setFontColor(o.itemStyle.textNormal); --- 47,51 ---- ListItem.listevents.onmouseout = function (e) { var o = e.getSource(); ! if (!o.selected && o.isMouseOver) { o.setBgColor(o.itemStyle.bgcolor); o.setFontColor(o.itemStyle.textNormal); *************** *** 64,78 **** ListItem.prototype.setSelected = function(b) { if (this.selected=b) { this.setBgColor(this.itemStyle.bgColorSelect); this.setFontColor(this.itemStyle.textSelect); - if (this.itemStyle.bos) this.setFontBold(true); - if (this.itemStyle.ios) this.setFontItalic(true); this.invokeEvent("select"); } else if (this.deselectable) { this.setBgColor(this.isMouseOver?this.itemStyle.bgColorRoll:this.itemStyle.bgcolor) this.setFontColor(this.itemStyle.textNormal); - if (this.itemStyle.bos) this.setFontBold(false); - if (this.itemStyle.ios) this.setFontItalic(false); this.invokeEvent("deselect"); } --- 71,85 ---- ListItem.prototype.setSelected = function(b) { if (this.selected=b) { + if (this.itemStyle.bos) this.setFontBold(true,false); + if (this.itemStyle.ios) this.setFontItalic(true,false); this.setBgColor(this.itemStyle.bgColorSelect); this.setFontColor(this.itemStyle.textSelect); this.invokeEvent("select"); } else if (this.deselectable) { + if (this.itemStyle.bos) this.setFontBold(false,false); + if (this.itemStyle.ios) this.setFontItalic(false,false); this.setBgColor(this.isMouseOver?this.itemStyle.bgColorRoll:this.itemStyle.bgcolor) this.setFontColor(this.itemStyle.textNormal); this.invokeEvent("deselect"); } *************** *** 115,123 **** List.prototype.add = function(text,value){ var i = new ListItem(text,value); var ls = this.listStyle; i.setColors(ls.bg,ls.bgRoll,ls.bgSelect,ls.textNormal,ls.textRoll,ls.textSelect); i.setPadding(ls.padding); - if (ls.bos) i.boldOnSelect(true); - if (ls.ios) i.italicOnSelect(true); i.addEventListener(this.ievents); this.addChild(i); --- 122,131 ---- List.prototype.add = function(text,value){ var i = new ListItem(text,value); + i.list = this; var ls = this.listStyle; i.setColors(ls.bg,ls.bgRoll,ls.bgSelect,ls.textNormal,ls.textRoll,ls.textSelect); + if (ls.bos) i.boldOnSelect(true,false); + if (ls.ios) i.italicOnSelect(true,false); i.setPadding(ls.padding); i.addEventListener(this.ievents); this.addChild(i); *************** *** 190,194 **** List.prototype.setColors = function(bg,bgRoll,bgSelect,textNormal,textRoll,textSelect){ var ls = this.listStyle; ! ls.listStyle.bg = bg||ls.bg; ls.bgRoll = bgRoll||ls.bgRoll; ls.bgSelect = bgSelect||ls.bgSelect; --- 198,202 ---- List.prototype.setColors = function(bg,bgRoll,bgSelect,textNormal,textRoll,textSelect){ var ls = this.listStyle; ! ls.bg = bg||ls.bg; ls.bgRoll = bgRoll||ls.bgRoll; ls.bgSelect = bgSelect||ls.bgSelect; Index: label.js =================================================================== RCS file: /cvsroot/dynapi/dynapi/src/lib/dynapi/gui/label.js,v retrieving revision 1.8 retrieving revision 1.9 diff -C2 -r1.8 -r1.9 *** label.js 2001/01/08 22:45:07 1.8 --- label.js 2001/01/17 22:28:47 1.9 *************** *** 71,104 **** this.setHTML(this.textFull); }; ! Label.prototype.setFontFamily = function(f) { this.font.family = f; ! this.setText(this.text); }; ! Label.prototype.setFontSize = function(s) { this.font.size = s; ! this.setText(this.text); }; ! Label.prototype.setFontBold = function(b) { this.font.bold = b; ! this.setText(this.text); }; ! Label.prototype.setFontItalic = function(b) { this.font.italic = b; ! this.setText(this.text); }; ! Label.prototype.setFontColor = function(b) { this.font.color = b; ! this.setText(this.text); }; Label.prototype.getText = function() { return this.text; }; ! Label.prototype.setWrap = function(wrap) { this.wrap = wrap; ! this.setText(this.text); }; ! Label.prototype.setPadding = function(p) { this.padding = p; ! this.setText(this.text); }; Label.prototype.setAlignment = function(a) { --- 71,104 ---- this.setHTML(this.textFull); }; ! Label.prototype.setFontFamily = function(f,noevt) { this.font.family = f; ! if (noevt!=false) this.setText(this.text); }; ! Label.prototype.setFontSize = function(s,noevt) { this.font.size = s; ! if (noevt!=false) this.setText(this.text); }; ! Label.prototype.setFontBold = function(b,noevt) { this.font.bold = b; ! if (noevt!=false) this.setText(this.text); }; ! Label.prototype.setFontItalic = function(b,noevt) { this.font.italic = b; ! if (noevt!=false) this.setText(this.text); }; ! Label.prototype.setFontColor = function(b,noevt) { this.font.color = b; ! if (noevt!=false) this.setText(this.text); }; Label.prototype.getText = function() { return this.text; }; ! Label.prototype.setWrap = function(wrap,noevt) { this.wrap = wrap; ! if (noevt!=false) this.setText(this.text); }; ! Label.prototype.setPadding = function(p,noevt) { this.padding = p; ! if (noevt!=false) this.setText(this.text); }; Label.prototype.setAlignment = function(a) { _______________________________________________ Dynapi-CVS mailing list [EMAIL PROTECTED] http://lists.sourceforge.net/lists/listinfo/dynapi-cvs