Exemplo n.º 1
0
LOCAL TBOOL
fb_getimsg(WINDISPLAY *mod, WINWINDOW *win, TIMSG **msgptr, TUINT type)
{
	struct TExecBase *TExecBase = TGetExecBase(mod);
	TIMSG *msg;
	TBOOL res = TFALSE;

	TLock(mod->fbd_Lock);
	msg = (TIMSG *) TRemHead(&mod->fbd_IMsgPool);
	if (msg == TNULL)
		msg = TAllocMsg0(sizeof(TIMSG));
	if (msg)
	{
		msg->timsg_Instance = win;
		msg->timsg_UserData = win->fbv_UserData;
		msg->timsg_Type = type;
		msg->timsg_Qualifier = win->fbv_KeyQual;
		msg->timsg_MouseX = win->fbv_MouseX;
		msg->timsg_MouseY = win->fbv_MouseY;
		TGetSystemTime(&msg->timsg_TimeStamp);
		*msgptr = msg;
		res = TTRUE;
	}
	else
		*msgptr = TNULL;
	TUnlock(mod->fbd_Lock);
	return res;
}
Exemplo n.º 2
0
static TBOOL x11_getimsg(struct X11Display *mod, struct X11Window *v,
	TIMSG ** msgptr, TUINT type)
{
	TAPTR TExecBase = TGetExecBase(mod);
	TIMSG *msg = (TIMSG *) TRemHead(&mod->x11_imsgpool);

	if (msg == TNULL)
		msg = TAllocMsg0(sizeof(TIMSG));
	if (msg)
	{
		msg->timsg_Instance = v;
		msg->timsg_UserData = v->userdata;
		msg->timsg_Type = type;
		msg->timsg_Qualifier = mod->x11_KeyQual;
		msg->timsg_ScreenMouseX = mod->x11_ScreenMouseX;
		msg->timsg_ScreenMouseY = mod->x11_ScreenMouseY;
		msg->timsg_MouseX = v->mousex;
		msg->timsg_MouseY = v->mousey;
		TGetSystemTime(&msg->timsg_TimeStamp);
		*msgptr = msg;
		return TTRUE;
	}
	*msgptr = TNULL;
	return TFALSE;
}
Exemplo n.º 3
0
static TBOOL tek_lib_exec_sendtaskport(struct TTask *task,
	const char *portname, const char *buf, size_t len)
{
	struct TExecBase *TExecBase = TGetExecBase(task);
	char atomname[256];
	TAPTR atom;
	TBOOL success = TFALSE;
	sprintf(atomname, "msgport.%s.%p", portname, task);
	atom = TLockAtom(atomname, TATOMF_SHARED | TATOMF_NAME);
	if (atom)
	{
		TAPTR imsgport = (TAPTR) TGetAtomData(atom);
		if (imsgport)
		{
			TAPTR msg = TAllocMsg0(len);
			if (msg)
			{
				memcpy(msg, buf, len);
				TPutMsg(imsgport, TNULL, msg);
				success = TTRUE;
			}
		}
		TUnlockAtom(atom, TATOMF_KEEP);
	}
	return success;
}
Exemplo n.º 4
0
static TBOOL 
getusermsg(TEKVisual *vis, TIMSG **msgptr, TUINT type, TSIZE size)
{
	TAPTR TExecBase = vis->vis_ExecBase;
	TIMSG *msg = TAllocMsg0(sizeof(TIMSG) + size);
	if (msg)
	{
		msg->timsg_ExtraSize = size;
		msg->timsg_Type = type;
		msg->timsg_Qualifier = 0;
		msg->timsg_MouseX = -1;
		msg->timsg_MouseY = -1;
		TGetSystemTime(&msg->timsg_TimeStamp);
		*msgptr = msg;
		return TTRUE;
	}
	*msgptr = TNULL;
	return TFALSE;
}