packages feed

wxcore-0.10.4: wxc/src/eljvalidator.cpp

#include "wrapper.h"

extern "C"
{

EWXWEXPORT(void*, wxValidator_Create)()
{
	return (void*) new wxValidator();
}

EWXWEXPORT(void, wxValidator_Delete)(void* _obj)
{
	delete (wxValidator*)_obj;
}

EWXWEXPORT(int, wxValidator_Validate)(void* _obj, void* parent)
{
	return (int)((wxValidator*)_obj)->Validate((wxWindow*)parent);
}
	
EWXWEXPORT(int, wxValidator_TransferToWindow)(void* _obj)
{
	return (int)((wxValidator*)_obj)->TransferToWindow();
}
	
EWXWEXPORT(int, wxValidator_TransferFromWindow)(void* _obj)
{
	return (int)((wxValidator*)_obj)->TransferFromWindow();
}
	
EWXWEXPORT(void*, wxValidator_GetWindow)(void* _obj)
{
	return (void*)((wxValidator*)_obj)->GetWindow();
}
	
EWXWEXPORT(void, wxValidator_SetWindow)(void* _obj, void* win)
{
	((wxValidator*)_obj)->SetWindow((wxWindowBase*)win);
}
	
#if (wxVERSION_NUMBER < 2800)	
EWXWEXPORT(int, wxValidator_IsSilent)()
{
	return (int)wxValidator::IsSilent();
}
#endif
	
EWXWEXPORT(void, wxValidator_SetBellOnError)(int doIt)
{
	wxValidator::SetBellOnError(doIt != 0);
}
	
EWXWEXPORT(void*, wxTextValidator_Create)(int style, void* val)
{
	return (void*) new wxTextValidator((long)style, new wxString);
}

EWXWEXPORT(int, wxTextValidator_GetStyle)(void* _obj)
{
	return (int)((wxTextValidator*)_obj)->GetStyle();
}
	
EWXWEXPORT(void, wxTextValidator_SetStyle)(void* _obj, int style)
{
	((wxTextValidator*)_obj)->SetStyle((long) style);
}
	
#if (wxVERSION_NUMBER < 2800)	
EWXWEXPORT(void, wxTextValidator_SetIncludeList)(void* _obj, void* list, int count)
{
#if (wxVERSION_NUMBER <= 2600)
	wxStringList str;
	
	for (int i = 0; i < count; i++)
		str.Add(((wxChar**)list)[i]);
		
	((wxTextValidator*)_obj)->SetIncludeList(str);
#else
	((wxTextValidator*)_obj)->SetIncludes((const wxArrayString&)list);
#endif
}
	
EWXWEXPORT(int, wxTextValidator_GetIncludeList)(void* _obj, void* _ref)
{
#if (wxVERSION_NUMBER <= 2600)
	if (_ref)
	{
		for (unsigned int i = 0; i < ((wxTextValidator*)_obj)->GetIncludeList().GetCount(); i++)
			((const wxChar**)_ref)[i] = wxStrdup(((wxTextValidator*)_obj)->GetIncludeList().Item(i)->GetData());
	}
	return ((wxTextValidator*)_obj)->GetIncludeList().GetCount();
#else
	wxArrayString arr = ((wxTextValidator*)_obj)->GetIncludes();
	if (_ref)
	{
		for (unsigned int i = 0; i < arr.GetCount(); i++)
			((const wxChar**)_ref)[i] = wxStrdup (arr.Item(i).c_str());
	}
	return arr.GetCount();
#endif
}
	
EWXWEXPORT(void, wxTextValidator_SetExcludeList)(void* _obj, void* list, int count)
{
#if (wxVERSION_NUMBER <= 2600)
	wxStringList str;
	
	for (int i = 0; i < count; i++)
		str.Add(((wxChar**)list)[i]);
		
	((wxTextValidator*)_obj)->SetExcludeList(str);
#else
	((wxTextValidator*)_obj)->SetExcludes((const wxArrayString&)list);
#endif
}
	
EWXWEXPORT(int, wxTextValidator_GetExcludeList)(void* _obj, void* _ref)
{
#if (wxVERSION_NUMBER <= 2600)
	if (_ref)
	{
		for (unsigned int i = 0; i < ((wxTextValidator*)_obj)->GetExcludeList().GetCount(); i++)
			((const wxChar**)_ref)[i] = ((wxTextValidator*)_obj)->GetExcludeList().Item(i)->GetData();
	}
	return ((wxTextValidator*)_obj)->GetExcludeList().GetCount();
#else
	wxArrayString arr = ((wxTextValidator*)_obj)->GetExcludes();
	if (_ref)
	{
		for (unsigned int i = 0; i < arr.GetCount(); i++)
			((const wxChar**)_ref)[i] = wxStrdup (arr.Item(i).c_str());
	}
	return arr.GetCount();
#endif
}
#else
EWXWEXPORT(void, wxTextValidator_SetIncludes)(void* _obj, void* list, int count)
{
  wxArrayString str;
  
  for (int i = 0; i < count; i++)
    str.Add(((wxChar**)list)[i]);
  
  ((wxTextValidator*)_obj)->SetIncludes(str);
}

EWXWEXPORT(void *, wxTextValidator_GetIncludes)(void* _obj, int *_nitems)
{
  void *retval = NULL;

  if (_nitems != NULL)
  {
    wxArrayString items = ((wxTextValidator*)_obj)->GetIncludes();
    wxChar **items_copy = (wxChar **) malloc(sizeof(wxChar *) * items.GetCount());

    for (unsigned int i = 0; i < items.GetCount(); i++)
    {
      items_copy[i] = wxStrdup(items.Item(i).GetData());
    }
    retval = (void *) items_copy;
    *_nitems = items.GetCount();
  }
  return retval;
}
	
EWXWEXPORT(void, wxTextValidator_SetExcludes)(void* _obj, void* list, int count)
{
	wxArrayString str;
	
	for (int i = 0; i < count; i++)
		str.Add(((wxChar**)list)[i]);
		
	((wxTextValidator*)_obj)->SetExcludes(str);
}
	
EWXWEXPORT(void *, wxTextValidator_GetExcludes)(void* _obj, int* _nitems)
{
  void *retval = NULL;

  if (_nitems != NULL)
  {
    wxArrayString items = ((wxTextValidator*)_obj)->GetExcludes();
    wxChar **items_copy = (wxChar **) malloc(sizeof(wxChar *) * items.GetCount());

    for (unsigned int i = 0; i < items.GetCount(); i++)
    {
      items_copy[i] = wxStrdup(items.Item(i).GetData());
    }
    retval = (void *) items_copy;
    *_nitems = items.GetCount();
  }
  return retval;
}

EWXWEXPORT(void *, wxTextValidator_Clone)(void *_obj)
{
  return (void *)((wxTextValidator*)_obj)->Clone();
}

EWXWEXPORT(int, wxTextValidator_TransferToWindow)(void* _obj)
{
	return (int)((wxTextValidator*)_obj)->TransferToWindow();
}
	
EWXWEXPORT(int, wxTextValidator_TransferFromWindow)(void* _obj)
{
	return (int)((wxTextValidator*)_obj)->TransferFromWindow();
}
	
#endif

EWXWEXPORT(void, wxTextValidator_OnChar)(void* _obj, void* event)
{
	((wxTextValidator*)_obj)->OnChar(*((wxKeyEvent*)event));
}

EWXWEXPORT(void*, ELJTextValidator_Create) (void* _obj, void* _fnc, void* _txt, long _stl)
{
	return new ELJTextValidator(_obj, _fnc, _txt, _stl);
}

}

bool ELJTextValidator::Validate(wxWindow* _prt)
{
	if (obj && fnc)
		return fnc(obj) != 0;
	else
		return wxTextValidator::Validate(_prt);
}