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