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