#include "WimpLib:Caret.h"
#include "WimpLib:Exception.h"
#include "kernel.h"
#include "swis.h"

void Caret_Get(CCaret* pcaret)
{
	throw_runtimeos(_swix(Wimp_GetCaretPosition, _IN(1), pcaret));
}

void Caret_Set(const CCaret* pcaret) throws(os)
{
	_kernel_swi_regs regs;

	regs = * ((_kernel_swi_regs*) pcaret);
	throw_runtimeos(_kernel_swi(XOS_Bit | Wimp_SetCaretPosition, &regs, &regs));
}

void Caret_SetInvisible(HWind id) throws(os)
{
	CCaret new_caret;

	new_caret.pos.w = id;
	new_caret.pos.i = HIcon_None;
	new_caret.pos.pt.x = 0;
	new_caret.pos.pt.y = 0;
	new_caret.height = -1;
	new_caret.index = 0;
	Caret_Set(&new_caret);
}

