1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50
|
EZPopUpMenu : EZLists{
initViews{ arg parentView, bounds, label, labelWidth,labelHeight,arglayout;
var labelBounds, listBounds;
labelWidth = labelWidth ? 80;
layout=arglayout ? \horz;
labelSize=labelWidth@labelHeight;
bounds.isNil.if{bounds= 160@20};
// if no parent, then pop up window
# view,bounds = this.prMakeView( parentView,bounds);
// calcualate bounds
# labelBounds,listBounds = this.prSubViewBounds(innerBounds, label.notNil);
// insert the views
label.notNil.if{ //only add a label if desired
if (layout==\vert){
labelView = StaticText.new(view, labelBounds).resize_(2);
labelView.align = \left;
}{
labelView = StaticText.new(view, labelBounds);
labelView.align = \right;
};
labelView.string = label;
};
widget = PopUpMenu.new(view, listBounds).resize_(5);
}
menu {^ widget}
setColors{arg stringBackground, stringColor, menuBackground, menuStringColor,background ;
stringBackground.notNil.if{
labelView.notNil.if{labelView.background_(stringBackground)};};
stringColor.notNil.if{
labelView.notNil.if{labelView.stringColor_(stringColor)};};
menuBackground.notNil.if{
this.menu.background_(menuBackground);};
menuStringColor.notNil.if{
this.menu.stringColor_(menuStringColor);};
background.notNil.if{
view.background=background;};
}
}
|