Warning: session_start(): open(/var/lib/php/sessions/sess_34gjie5gurfb9b76v711hjov8k, O_RDWR) failed: No space left on device (28) in /var/www/tb-usercake/models/config.php on line 51
Warning: session_start(): Failed to read session data: files (path: /var/lib/php/sessions) in /var/www/tb-usercake/models/config.php on line 51
static Map makeNiceButtons_map = weakIdentityHashMap();
// params = text, image, action, text, image, action, ...
// or TextImageAction...
// or a list of above stuff
static A makeNiceButtons_usingStack(A stack, O... params) {
params = flattenArray2(params);
for (int i = 0; i < l(params); ) {
TextImageAction tia = null;
if (params[i] instanceof TextImageAction) {
tia = (TextImageAction) params[i];
i++;
} else {
tia = TextImageAction(
str(get(params, i)),
str(get(params, i+1)),
get(params, i+2));
i += 3;
}
final TextImageAction _tia = tia;
O action = tia.action;
fS buttonDesc = action == null
? "actionless button " + sfu(_tia)
: "button " + sfu(cloneWithoutField(_tia, 'action))
+ " with action " + trim(simpleSpaces(newLinesToSpaces(shorten(str(tia.action), 40))));
action = r {
appendToLocalMechLog("User actions", "User clicked on " + buttonDesc);
callF(_tia.action);
};
JButton b = jImageAndTextButton(tia.imageID, tia.text, action);
if (nempty(tia.toolTip)) setToolTip(b, tia.toolTip);
componentPopupMenu(b, tia.popupMenuMaker);
resizeImageButtonToMax(b, niceButtons_maxImageSize());
setVerticalTextPosition(JButton.TOP, setFontSize(15, makeBold(b)));
setVerticalAlignment(JButton.TOP, b);
setMargin(10, b);
onMouseEnter(b, r {
appendToLocalMechLog("Mouse hovers", "Mouse hovered over " + buttonDesc)
});
onMouseExit(b, r {
appendToLocalMechLog("Mouse hovers", "Mouse no longer hovers over " + buttonDesc)
});
makeNiceButtons_map.put(b, tia);
stack.addComponent(b);
}
ret stack;
}
static DynamicHStack makeNiceButtons(O... params) {
ret makeNiceButtons_usingStack((DynamicHStack) dynamicHStack().spacing(20), params);
}