packages feed

wxcore-0.10.3: wxc/src/eljpalette.cpp

#include "wrapper.h"

extern "C"
{

EWXWEXPORT(void*, wxPalette_CreateDefault) ()
{
	return (void*) new wxPalette();
}

EWXWEXPORT(void*, wxPalette_CreateRGB) (int n, void* red, void* green, void* blue)
{
	return (void*) new wxPalette(n, (unsigned char*)red, (unsigned char*)green, (unsigned char*)blue);
}

EWXWEXPORT(void, wxPalette_Delete) (void* _obj)
{
	delete (wxPalette*)_obj;
}

EWXWEXPORT(int, wxPalette_GetPixel)(void* _obj, char red, char green, char blue)
{
	return ((wxPalette*)_obj)->GetPixel((unsigned char)red, (unsigned char)green, (unsigned char)blue);
}
	
EWXWEXPORT(int, wxPalette_GetRGB)(void* _obj, int pixel, void* red, void* green, void* blue)
{
	return (int)((wxPalette*)_obj)->GetRGB(pixel, (unsigned char*)red, (unsigned char*)green, (unsigned char*)blue);
}
	
EWXWEXPORT(int, wxPalette_Ok)(void* _obj)
{
	return (int)((wxPalette*)_obj)->Ok();
}
	
EWXWEXPORT(void, wxPalette_Assign)(void* _obj, void* palette)
{
	*((wxPalette*)_obj) = *((wxPalette*)palette);
}

EWXWEXPORT(int, wxPalette_IsEqual)(void* _obj, void* palette)
{
#if (wxVERSION_NUMBER <= 2800)
	return (int)(*((wxPalette*)_obj) == *((wxPalette*)palette));
#else
	wxPalette* pal1 = (wxPalette *)_obj;
	wxPalette* pal2 = (wxPalette *)palette;
	if (pal1->GetColoursCount() == pal2->GetColoursCount()){
		bool equal = true;
		unsigned char red1 = 0;
		unsigned char red2 = 0;
		unsigned char green1 = 0;
		unsigned char green2 = 0;
		unsigned char blue1 = 0;
		unsigned char blue2 = 0;
		for(int x = 0; x<(pal1->GetColoursCount()); x++){
			pal1->GetRGB(x, &red1, &green1, &blue1);
			pal2->GetRGB(x, &red2, &green2, &blue2);
			equal = equal && (red1==red2 && green1==green2 && blue1==blue2); 
		}
		return (int)equal;
	} else {
		return 0;
	}
#endif
}

}