Ejemplo n.º 1
0
void PopupContainer::getPopupMenuInfo(WebPopupMenuInfo* info)
{
    const Vector<PopupItem*>& inputItems = popupData();

    WebVector<WebMenuItemInfo> outputItems(inputItems.size());

    for (size_t i = 0; i < inputItems.size(); ++i) {
        const PopupItem& inputItem = *inputItems[i];
        WebMenuItemInfo& outputItem = outputItems[i];

        outputItem.label = inputItem.label;
        outputItem.enabled = inputItem.enabled;
        outputItem.textDirection = toWebTextDirection(inputItem.textDirection);
        outputItem.hasTextDirectionOverride = inputItem.hasTextDirectionOverride;

        switch (inputItem.type) {
        case PopupItem::TypeOption:
            outputItem.type = WebMenuItemInfo::Option;
            break;
        case PopupItem::TypeGroup:
            outputItem.type = WebMenuItemInfo::Group;
            break;
        case PopupItem::TypeSeparator:
            outputItem.type = WebMenuItemInfo::Separator;
            break;
        }
    }

    info->itemHeight = menuItemHeight();
    info->itemFontSize = menuItemFontSize();
    info->selectedIndex = selectedIndex();
    info->items.swap(outputItems);
    info->rightAligned = menuStyle().textDirection() == RTL;
}
Ejemplo n.º 2
0
void ZLApplication::doAction(const std::string &actionId, std::size_t index) {
	if (index != (std::size_t)-1) {
		shared_ptr<ZLPopupData> data = popupData(actionId);
		if (!data.isNull()) {
			data->run(index);
			return;
		}
	}

	shared_ptr<Action> a = action(actionId);
	if (!a.isNull()) {
		a->checkAndRun();
	}
}