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

Reply via email to