Exemple #1
0
GRECT * gemtk_obj_screen_rect(OBJECT * tree, short obj)
{
    static GRECT obj_screen;

    get_objframe(tree, obj, &obj_screen);

    return(&obj_screen);
}
Exemple #2
0
void redraw_aktion(void)
{
	if (akt_handle > 0)
	{
		GRECT	r;
		
		get_objframe(aktion, 0, &r);
		redraw(ROOT, MAX_DEPTH, r.g_x, r.g_y, r.g_w, r.g_h);
	}
}
Exemple #3
0
bool do_aktion(char *str, long value)
{
	int	msg[8], kreturn, d, event;
	long 	max_len, help;
	GRECT	r;
	bool	ret = TRUE;
	
	/* zun�chst Box updaten */
	if (str[0] != EOS)
	{
		set_string(aktion, ATEXT, str);
		get_objframe(aktion, ATEXT, &r);
		redraw(ROOT, MAX_DEPTH, r.g_x, r.g_y, r.g_w, r.g_h);
	}
	
	max_len = aktion[ABOX1].ob_width;
	help = max((max_len * value) / max_value,1);
	help = min(max_len, help);
	if (aktion[ABOX2].ob_width != help)
	{
		aktion[ABOX2].ob_width = (int) help;
		get_objframe(aktion, ABOX2, &r);
		redraw(ABOX2, 0, r.g_x, r.g_y, r.g_w, r.g_h);
	}

	/* nachschauen, ob es irgendwelche GEM-Events gibt */
	do
	{
		event = evnt_multi(MU_MESAG|MU_KEYBD|MU_TIMER, 1, 1, 1, 
								0, 0, 0, 0, 0, 0, 0, 0, 0, 0,
								msg, 1, &d, &d, &d, &d, &kreturn, &d);
		if (event & MU_MESAG)
		{
			switch (msg[0])
			{
				case WM_REDRAW :
					if (msg[3] == akt_handle)
						redraw(ROOT, MAX_DEPTH, msg[4], msg[5], msg[6], msg[7]);
					else
						handle_msg(msg);
					break;
					
				case WM_MOVED :
					if (msg[3] == akt_handle)
						move(msg[4], msg[5]);
					else
						handle_msg(msg);
					break;
	
				case WM_TOPPED :
				case WM_NEWTOP :
				case WM_ONTOP :		
					wind_set(akt_handle, WF_TOP, 0, 0, 0, 0);
					break;
	
				case WM_SIZED:
				case WM_BOTTOMED:
					/* ignore */
					break;
	
				case AP_TERM :
					ret = FALSE;
					break;
			}
		}
		if (event & MU_KEYBD)
		{
			if (interupt && kreturn == 0x011B)		/* ESC */
				ret = FALSE;
		}
	}
	while (event & MU_MESAG);	/* alle Messages auswerten */
	return ret;
}