diff options
| -rw-r--r-- | test/test_utils.h | 105 | 
1 files changed, 63 insertions, 42 deletions
diff --git a/test/test_utils.h b/test/test_utils.h index 904c9a4..4207576 100644 --- a/test/test_utils.h +++ b/test/test_utils.h @@ -182,75 +182,96 @@ printModifiers(const uint32_t mods)  static inline int  printEvent(const PuglEvent* event, const char* prefix, const bool verbose)  { -#define FFMT "%6.1f" -#define PFMT FFMT " " FFMT +#define FFMT            "%6.1f" +#define PFMT            FFMT " " FFMT +#define PRINT(fmt, ...) fprintf(stderr, fmt, __VA_ARGS__)  	switch (event->type) {  	case PUGL_KEY_PRESS: -		return fprintf(stderr, "%sKey press   code %3u key  U+%04X\n", -		               prefix, event->key.keycode, event->key.key); +		return PRINT("%sKey press   code %3u key  U+%04X\n", +		             prefix, +		             event->key.keycode, +		             event->key.key);  	case PUGL_KEY_RELEASE: -		return fprintf(stderr, "%sKey release code %3u key  U+%04X\n", -		               prefix, event->key.keycode, event->key.key); +		return PRINT("%sKey release code %3u key  U+%04X\n", +		             prefix, +		             event->key.keycode, +		             event->key.key);  	case PUGL_TEXT: -		return fprintf(stderr, "%sText entry  code %3u char U+%04X (%s)\n", -		               prefix, event->text.keycode, -		               event->text.character, event->text.string); +		return PRINT("%sText entry  code %3u char U+%04X (%s)\n", +		             prefix, +		             event->text.keycode, +		             event->text.character, +		             event->text.string);  	case PUGL_BUTTON_PRESS:  	case PUGL_BUTTON_RELEASE: -		return (fprintf(stderr, "%sMouse %d %s at " PFMT " ", -		                prefix, -		                event->button.button, -		                (event->type == PUGL_BUTTON_PRESS) ? "down" : "up  ", -		                event->button.x, -		                event->button.y) + +		return (PRINT("%sMouse %d %s at " PFMT " ", +		              prefix, +		              event->button.button, +		              (event->type == PUGL_BUTTON_PRESS) ? "down" : "up  ", +		              event->button.x, +		              event->button.y) +  		        printModifiers(event->scroll.state));  	case PUGL_SCROLL: -		return (fprintf(stderr, "%sScroll %5.1f %5.1f at " PFMT " ", -		                prefix, -		                event->scroll.dx, event->scroll.dy, -		                event->scroll.x, event->scroll.y) + +		return (PRINT("%sScroll %5.1f %5.1f at " PFMT " ", +		              prefix, +		              event->scroll.dx, +		              event->scroll.dy, +		              event->scroll.x, +		              event->scroll.y) +  		        printModifiers(event->scroll.state));  	case PUGL_ENTER_NOTIFY: -		return fprintf(stderr, "%sMouse enter  at " PFMT "\n", -		               prefix, event->crossing.x, event->crossing.y); +		return PRINT("%sMouse enter  at " PFMT "\n", +		             prefix, +		             event->crossing.x, +		             event->crossing.y);  	case PUGL_LEAVE_NOTIFY: -		return fprintf(stderr, "%sMouse leave  at " PFMT "\n", -		               prefix, event->crossing.x, event->crossing.y); +		return PRINT("%sMouse leave  at " PFMT "\n", +		             prefix, +		             event->crossing.x, +		             event->crossing.y);  	case PUGL_FOCUS_IN: -		return fprintf(stderr, "%sFocus in%s\n", -		               prefix, event->focus.grab ? " (grab)" : ""); +		return PRINT("%sFocus in%s\n", +		             prefix, +		             event->focus.grab ? " (grab)" : "");  	case PUGL_FOCUS_OUT: -		return fprintf(stderr, "%sFocus out%s\n", -		               prefix, event->focus.grab ? " (ungrab)" : ""); -	default: break; +		return PRINT("%sFocus out%s\n", +		             prefix, +		             event->focus.grab ? " (ungrab)" : ""); +	default: +		break;  	}  	if (verbose) {  		switch (event->type) {  		case PUGL_CONFIGURE: -			return fprintf(stderr, "%sConfigure " PFMT " " PFMT "\n", prefix, -			               event->configure.x, -			               event->configure.y, -			               event->configure.width, -			               event->configure.height); +			return PRINT("%sConfigure " PFMT " " PFMT "\n", +			             prefix, +			             event->configure.x, +			             event->configure.y, +			             event->configure.width, +			             event->configure.height);  		case PUGL_EXPOSE: -			return fprintf(stderr, -			               "%sExpose    " PFMT " " PFMT "\n", prefix, -			               event->expose.x, -			               event->expose.y, -			               event->expose.width, -			               event->expose.height); +			return PRINT("%sExpose    " PFMT " " PFMT "\n", +			             prefix, +			             event->expose.x, +			             event->expose.y, +			             event->expose.width, +			             event->expose.height);  		case PUGL_CLOSE: -			return fprintf(stderr, "%sClose\n", prefix); +			return PRINT("%sClose\n", prefix);  		case PUGL_MOTION_NOTIFY: -			return fprintf(stderr, "%sMouse motion at " PFMT "\n", -			               prefix, event->motion.x, event->motion.y); +			return PRINT("%sMouse motion at " PFMT "\n", +			             prefix, +			             event->motion.x, +			             event->motion.y);  		default:  			break;  		}  	} +#undef PRINT +#undef PFMT  #undef FFMT  	return 0;  | 
