Esempio n. 1
0
void runMenuEvent(WORD id, uiWindow *w)
{
	uiMenu *m;
	uiMenuItem *item;
	size_t i, j;

	// this isn't optimal, but it works, and it should be just fine for most cases
	for (i = 0; i < len; i++) {
		m = menus[i];
		for (j = 0; j < m->len; j++) {
			item = m->items[j];
			if (item->id == id)
				goto found;
		}
	}
	// no match
	implbug("unknown menu ID %hu in runMenuEvent()", id);

found:
	// first toggle checkboxes, if any
	if (item->type == typeCheckbox)
		uiMenuItemSetChecked(item, !uiMenuItemChecked(item));

	// then run the event
	(*(item->onClicked))(item, w, item->onClickedData);
}
Esempio n. 2
0
static Janet janet_ui_menu_item_checked(int32_t argc, Janet *argv) {
    janet_arity(argc, 1, 2);
    uiMenuItem *mi = janet_getuitype(argv, 0, &menu_item_td);
    if (argc == 2) {
        int checked = janet_getboolean(argv, 1);
        uiMenuItemSetChecked(mi, checked);
        return argv[0];
    }
    return janet_wrap_boolean(uiMenuItemChecked(mi));
}