#include "common.h"
#include "icons.h"

typedef struct
{
	char* szDescr;
	char* szName;
	int   defIconID;
} IconStruct;

static const IconStruct iconList[] =
{
	{ "Check for Plugin Updates",	"updater_check",      IDI_MAINMENU       },
	{ "Restart",					"updater_restart",    IDI_RESTART        },
	{ "Update and Exit",			"updater_checkexit",  IDI_UPDATEANDEXIT  },
};

HANDLE hIcolibIcon[SIZEOF(iconList)];


HICON LoadIconEx(IconIndex i, bool big)
{
	return (HICON)CallService(MS_SKIN2_GETICONBYHANDLE, big, (LPARAM)hIcolibIcon[(int)i]);
} 

HANDLE GetIconHandle(IconIndex i)
{
	return hIcolibIcon[(int)i];
}

void ReleaseIconEx(HICON hIcon)
{
	CallService(MS_SKIN2_RELEASEICON, (WPARAM)hIcon, 0);
}


void InitIcons(void) 
{
	SKINICONDESC sid = {0};
	TCHAR path[MAX_PATH];
	int i;
	
	sid.cbSize = sizeof(SKINICONDESC);
	sid.pszSection = MODULE;
	sid.flags = SIDF_PATH_TCHAR;
	sid.ptszDefaultFile = path;
	GetModuleFileName(hInst, path, sizeof(path));

	for (i = 0; i < SIZEOF(iconList); ++i)
	{
		sid.pszDescription = iconList[i].szDescr;
		sid.pszName = iconList[i].szName;
		sid.iDefaultIndex = -iconList[i].defIconID;
		hIcolibIcon[i] = Skin_AddIcon(&sid);
	}
}