Ejemplo n.º 1
0
MenuItem*
Menu::FindMarked()
{
	MenuItemIterator iterator = ItemIterator();
	while (MenuItem* item = iterator.Next()) {
		if (item->IsMarked())
			return item;
	}

	return NULL;
}
Ejemplo n.º 2
0
MenuItem*
Menu::FindItem(const char* label)
{
	MenuItemIterator iterator = ItemIterator();
	while (MenuItem* item = iterator.Next()) {
		if (item->Label() != NULL && !strcmp(item->Label(), label))
			return item;
	}

	return NULL;
}
Ejemplo n.º 3
0
int32
Menu::IndexOf(MenuItem* searchedItem)
{
	int32 index = 0;

	MenuItemIterator iterator = ItemIterator();
	while (MenuItem* item = iterator.Next()) {
		if (item == searchedItem)
			return index;

		index++;
	}

	return -1;
}
Ejemplo n.º 4
0
MenuItem *
Menu::ItemAt(int32 index)
{
    if (index < 0 || index >= fCount)
        return NULL;

    MenuItemIterator iterator = ItemIterator();
    MenuItem *item;

    while ((item = iterator.Next()) != NULL) {
        if (index-- == 0)
            return item;
    }

    return NULL;
}
Ejemplo n.º 5
0
MenuItem*
Menu::RemoveItemAt(int32 index)
{
	if (index < 0 || index >= fCount)
		return NULL;

	MenuItemIterator iterator = ItemIterator();
	while (MenuItem* item = iterator.Next()) {
		if (index-- == 0) {
			RemoveItem(item);
			return item;
		}
	}

	return NULL;
}
Ejemplo n.º 6
0
MenuItem*
Menu::FindSelected(int32* _index)
{
	int32 index = 0;

	MenuItemIterator iterator = ItemIterator();
	while (MenuItem* item = iterator.Next()) {
		if (item->IsSelected()) {
			if (_index != NULL)
				*_index = index;
			return item;
		}

		index++;
	}

	return NULL;
}
Ejemplo n.º 7
0
static void
apply_safe_mode_options(Menu* menu)
{
	MenuItemIterator iterator = menu->ItemIterator();
	while (MenuItem* item = iterator.Next()) {
		if (item->Type() == MENU_ITEM_SEPARATOR || !item->IsMarked()
			|| item->Data() == NULL) {
			continue;
		}

		char buffer[256];
		if (snprintf(buffer, sizeof(buffer), "%s true\n",
				(const char*)item->Data()) >= (int)sizeof(buffer)
			|| !sSafeModeOptionsBuffer.Append(buffer)) {
			dprintf("apply_safe_mode_options(): failed to append option to "
				"buffer\n");
		}
	}
}
Ejemplo n.º 8
0
static void
apply_safe_mode_options(Menu* menu)
{
	char buffer[2048];
	int32 pos = 0;

	buffer[0] = '\0';

	MenuItemIterator iterator = menu->ItemIterator();
	while (MenuItem* item = iterator.Next()) {
		if (item->Type() == MENU_ITEM_SEPARATOR || !item->IsMarked()
			|| item->Data() == NULL || (uint32)pos > sizeof(buffer))
			continue;

		size_t totalBytes = snprintf(buffer + pos, sizeof(buffer) - pos,
			"%s true\n", (const char*)item->Data());
		pos += std::min(totalBytes, sizeof(buffer) - pos - 1);
	}

	add_safe_mode_settings(buffer);
}