Update of /cvsroot/dynapi/dynapi/src/lib/dynapi/gui
In directory usw-pr-cvs1:/tmp/cvs-serv9058/src/lib/dynapi/gui

Modified Files:
        list.js 
Log Message:
Minor list changes - problems with the label are preventing the events from working 
correctly though.

Index: list.js
===================================================================
RCS file: /cvsroot/dynapi/dynapi/src/lib/dynapi/gui/list.js,v
retrieving revision 1.1
retrieving revision 1.2
diff -C2 -r1.1 -r1.2
*** list.js     2000/12/08 22:15:50     1.1
--- list.js     2001/01/08 22:45:43     1.2
***************
*** 11,16 ****
  
  function ListItem(text,value){
!   this.superClass = Label;
!   this.superClass(text);
        this.value = value;
        this.setSelectable(false);
--- 11,16 ----
  
  function ListItem(text,value){
!       this.Label = Label;
!       this.Label(text);
        this.value = value;
        this.setSelectable(false);
***************
*** 27,209 ****
  ListItem.listevents = new EventListener();
  ListItem.listevents.onmousedown = function (e) {
!               var o = e.getSource();
!               o.setSelected(!o.selected);
  };
  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;
  };
  ListItem.listevents.onmouseout = function (e) {
!               var o = e.getSource();
!               if (!o.selected) {
!                   o.setBgColor(o.itemStyle.bgcolor);
!                   o.setFontColor(o.itemStyle.textNormal);
!               }
!               o.isMouseOver = false;
  };
  ListItem.prototype.setColors = function(bg,bgr,bgs,tn,tr,ts) {
!     var is = this.itemStyle;
!               is.bgcolor = bg||'#eeeeee';
!               is.bgColorRoll = bgr||'#cccccc';
!               is.bgColorSelect = bgs||'lightblue';
!               is.textNormal = tn||'#000000';
!               is.textRoll = tr||'#000000';
!               is.textSelect = ts||'#000000';
!               this.setBgColor(is.bgcolor);
  };
  ListItem.prototype.boldOnSelect = function(b) {
!   this.itemStyle.bos=b;
  };
  ListItem.prototype.italicOnSelect = function(b) {
!   this.itemStyle.ios=b;
  };
  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");
        }
  }
  ListItem.prototype.setValue = function(value) {
!   this.value=value;
  };
  ListItem.prototype.getValue = function() {
!   return this.value;
  };
  
  function List(){
!       this.superClass=DynLayer;
!       this.superClass();
        this.multiMode = false;
        this.items = [];
        this.addEventListener(List.listener);
        this.ievents = new EventListener(this);
!   this.ievents.onselect = function(e){
                e.getTarget().select(e.getSource());
!   };
!   this.ievents.ondeselect = function(e){
!       e.getTarget().deselect(e.getSource());
!   };
!   /*default style*/
!   this.listStyle = {};
!   var ls = this.listStyle;
!       ls.borders = 1;
!       ls.spacing = 1;
!       ls.padding = 4;
!       ls.bos = false;
!       ls.ios = false;
!   ls.bg = "#eeeeee";
!       ls.bgRoll = "#cccccc";
!       ls.bgSelect = "lightblue";
!       ls.textNormal = ls.textRoll = ls.textSelect = "#000000";
!       this.totalHeight = ls.borders;
  }
  List.prototype = new DynLayer();
  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);
!               this.items[this.items.length] = i;
!               if (this.created) this.arrangeItems();
  };
  List.prototype.arrangeItems = function(){
!               this.totalHeight = this.listStyle.borders;
!               for (var i=0;i<this.items.length;i++){
!                       this.items[i].moveTo(this.listStyle.borders,this.totalHeight);
!                       this.items[i].setWidth(this.w-this.listStyle.borders*2);
!                       this.totalHeight = 
this.totalHeight+this.items[i].h+this.listStyle.spacing;     
!               }
!               
this.setHeight(this.totalHeight-this.listStyle.spacing+this.listStyle.borders);
  };
  List.prototype.remove = function(item){
!               var i = this.getIndexOf(item);
!               if (i==-1) return;
!               this.items[i].deleteFromParent();
!               DynAPI.removeFromArray(this.items,item);
!               if (this.selectedIndex==i){
!                       this.selectedIndex=-1;
!                       this.selectedItem=null;
!               }
!               this.arrangeItems();
  };
  List.prototype.origSetWidth = DynLayer.prototype.setWidth;
  List.prototype.setWidth = function(w){
!               this.origSetWidth(w);
!               for (var i=0;i<this.items.length;i++){
!                       this.items[i].setWidth(w-this.listStyle.borders*2);
!               }
  };
  List.listener = new EventListener()
  List.listener.oncreate = function(e){
      var o = e.getSource();
!               o.arrangeItems();
  };
  List.prototype.getIndexOf = function(item){
!               for (var i=0;i<this.items.length;i++){
!                       if (this.items[i]==item) return i;
!               }
!               return -1;
  };
  List.prototype.select = function(item){
!               this.selectedIndex = this.getIndexOf(item);
!               this.selectedItem = item;
!               if (this.multiMode) return;
!               for (var i=0;i<this.items.length;i++){
!                       if (this.items[i] != item) this.items[i].setSelected(false);
!               }
!               this.invokeEvent("select");
  };
  List.prototype.deselect = function(item){
!               if (this.selectedItem == item){
!                       this.selectedItem = null;
!                       this.selectedIndex = -1;
!               }
  };
  List.prototype.deselectAll = function(){
!               for (var i=0;i<this.items.length;i++) {
!                       if (this.items[i].selected) this.items[i].setSelected(false);
!               }
  };
        
  List.prototype.setSelectionMode = function(mode) {
!               this.deselectAll();
!               this.multiMode = mode;
  };
  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;
!               ls.textNormal = textNormal||ls.textNormal;
!               ls.textRoll = textRoll||ls.textRoll;
!               ls.textSelect = textSelect||ls.textSelect;
!               if (this.items.length == 0) return;
!               for (var i=0;i<this.items.length;i++) {
!                       
this.items[i].setColors(bg,bgRoll,bgSelect,textNormal,textRoll,textSelect);
!               }
  };
  List.prototype.boldOnSelect = function(b) {
!               this.listStyle.bos = b;
  };
  List.prototype.italicOnSelect = function(b) {
!               this.listStyle.ios = b;
  };
  List.prototype.getSelectedIndex = function() {
--- 27,209 ----
  ListItem.listevents = new EventListener();
  ListItem.listevents.onmousedown = function (e) {
!       var o = e.getSource();
!       o.setSelected(!o.selected);
  };
  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;
  };
  ListItem.listevents.onmouseout = function (e) {
!       var o = e.getSource();
!       if (!o.selected) {
!               o.setBgColor(o.itemStyle.bgcolor);
!               o.setFontColor(o.itemStyle.textNormal);
!       }
!       o.isMouseOver = false;
  };
  ListItem.prototype.setColors = function(bg,bgr,bgs,tn,tr,ts) {
!     var s = this.itemStyle;
!       s.bgcolor = bg||'#eeeeee';
!       s.bgColorRoll = bgr||'#cccccc';
!       s.bgColorSelect = bgs||'lightblue';
!       s.textNormal = tn||'#000000';
!       s.textRoll = tr||'#000000';
!       s.textSelect = ts||'#000000';
!       this.setBgColor(s.bgcolor);
  };
  ListItem.prototype.boldOnSelect = function(b) {
!       this.itemStyle.bos=b;
  };
  ListItem.prototype.italicOnSelect = function(b) {
!       this.itemStyle.ios=b;
  };
  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");
        }
  }
  ListItem.prototype.setValue = function(value) {
!       this.value=value;
  };
  ListItem.prototype.getValue = function() {
!       return this.value;
  };
  
  function List(){
!       this.DynLayer=DynLayer;
!       this.DynLayer();
        this.multiMode = false;
        this.items = [];
        this.addEventListener(List.listener);
        this.ievents = new EventListener(this);
!       this.ievents.onselect = function(e){
                e.getTarget().select(e.getSource());
!       };
!       this.ievents.ondeselect = function(e){
!               e.getTarget().deselect(e.getSource());
!       };
!       /*default style*/
!       this.listStyle = {};
!       this.listStyle.borders = 1;
!       this.listStyle.spacing = 1;
!       this.listStyle.padding = 4;
!       this.listStyle.bos = false;
!       this.listStyle.ios = false;
!       this.listStyle.bg = "#eeeeee";
!       this.listStyle.bgRoll = "#cccccc";
!       this.listStyle.bgSelect = "lightblue";
!       this.listStyle.textNormal = this.listStyle.textRoll = 
this.listStyle.textSelect = "#000000";
!       this.totalHeight = this.listStyle.borders;
! 
  }
  List.prototype = new DynLayer();
  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);
!       this.items[this.items.length] = i;
!       if (this.created) this.arrangeItems();
  };
  List.prototype.arrangeItems = function(){
!       this.totalHeight = this.listStyle.borders;
!       for (var i=0;i<this.items.length;i++){
!               this.items[i].moveTo(this.listStyle.borders,this.totalHeight);
!               this.items[i].setWidth(this.w-this.listStyle.borders*2);
!               this.totalHeight = 
this.totalHeight+this.items[i].h+this.listStyle.spacing;     
!       }
!       this.setHeight(this.totalHeight-this.listStyle.spacing+this.listStyle.borders);
  };
  List.prototype.remove = function(item){
!       var i = this.getIndexOf(item);
!       if (i==-1) return;
!       this.items[i].deleteFromParent();
!       DynAPI.removeFromArray(this.items,item);
!       if (this.selectedIndex==i){
!               this.selectedIndex=-1;
!               this.selectedItem=null;
!       }
!       this.arrangeItems();
  };
  List.prototype.origSetWidth = DynLayer.prototype.setWidth;
  List.prototype.setWidth = function(w){
!       this.origSetWidth(w);
!       for (var i=0;i<this.items.length;i++){
!               this.items[i].setWidth(w-this.listStyle.borders*2);
!       }
  };
  List.listener = new EventListener()
  List.listener.oncreate = function(e){
      var o = e.getSource();
!       o.arrangeItems();
  };
  List.prototype.getIndexOf = function(item){
!       for (var i=0;i<this.items.length;i++){
!               if (this.items[i]==item) return i;
!       }
!       return -1;
  };
  List.prototype.select = function(item){
!       this.selectedIndex = this.getIndexOf(item);
!       this.selectedItem = item;
!       if (this.multiMode) return;
!       for (var i=0;i<this.items.length;i++){
!               if (this.items[i] != item) this.items[i].setSelected(false);
!       }
!       this.invokeEvent("select");
  };
  List.prototype.deselect = function(item){
!       if (this.selectedItem == item){
!               this.selectedItem = null;
!               this.selectedIndex = -1;
!       }
  };
  List.prototype.deselectAll = function(){
!       for (var i=0;i<this.items.length;i++) {
!               if (this.items[i].selected) this.items[i].setSelected(false);
!       }
  };
        
  List.prototype.setSelectionMode = function(mode) {
!       this.deselectAll();
!       this.multiMode = mode;
  };
  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;
!       ls.textNormal = textNormal||ls.textNormal;
!       ls.textRoll = textRoll||ls.textRoll;
!       ls.textSelect = textSelect||ls.textSelect;
!       if (this.items.length == 0) return;
!       for (var i=0;i<this.items.length;i++) {
!               
this.items[i].setColors(bg,bgRoll,bgSelect,textNormal,textRoll,textSelect);
!       }
  };
  List.prototype.boldOnSelect = function(b) {
!       this.listStyle.bos = b;
  };
  List.prototype.italicOnSelect = function(b) {
!       this.listStyle.ios = b;
  };
  List.prototype.getSelectedIndex = function() {
***************
*** 211,235 ****
  };
  List.prototype.getSelectedItem = function() {
!   return this.selectedItem;
  };
  List.prototype.getSelectedIndexes = function() {
!               var a = [];
!               for (var i=0;i<this.items.length;i++) {
!                       if (this.items[i].selected) {
!                           a[a.length] = i;
!                       }
!               }
!               return a;
  };
  List.prototype.setBorders = function(b){
!               this.listStyle.borders = b;
!               if (this.created){ 
!                       this.arrangeItems();
!               }
  };
  List.prototype.setSpacing = function(b){
!               this.listStyle.spacing = b;
!               if (this.created) {
!                  this.arrangeItems();
!   }
  };
--- 211,227 ----
  };
  List.prototype.getSelectedItem = function() {
!       return this.selectedItem;
  };
  List.prototype.getSelectedIndexes = function() {
!       var a = [];
!       for (var i=0;i<this.items.length;i++) if (this.items[i].selected) a[a.length] 
= i;
!       return a;
  };
  List.prototype.setBorders = function(b){
!       this.listStyle.borders = b;
!       if (this.created) this.arrangeItems();
  };
  List.prototype.setSpacing = function(b){
!       this.listStyle.spacing = b;
!       if (this.created) this.arrangeItems();
  };


_______________________________________________
Dynapi-CVS mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/dynapi-cvs

Reply via email to