⛏️ index : haiku.git

/*
 * Copyright 2009, Ingo Weinhold, ingo_weinhold@gmx.de.
 * Distributed under the terms of the MIT License.
 */


#include "SettingsDescription.h"

#include "Setting.h"


SettingsDescription::SettingsDescription()
{
}


SettingsDescription::~SettingsDescription()
{
	for (int32 i = 0; Setting* setting = SettingAt(i); i++)
		setting->ReleaseReference();
}


int32
SettingsDescription::CountSettings() const
{
	return fSettings.CountItems();
}


Setting*
SettingsDescription::SettingAt(int32 index) const
{
	return fSettings.ItemAt(index);
}


Setting*
SettingsDescription::SettingByID(const char* id) const
{
	for (int32 i = 0; Setting* setting = fSettings.ItemAt(i); i++) {
		if (strcmp(setting->ID(), id) == 0)
			return setting;
	}

	return NULL;
}


bool
SettingsDescription::AddSetting(Setting* setting)
{
	if (!fSettings.AddItem(setting))
		return false;

	setting->AcquireReference();
	return true;
}