Index: uspace/lib/memgfx/include/memgfx/memgc.h
===================================================================
--- uspace/lib/memgfx/include/memgfx/memgc.h	(revision 2ab8ab3c0a1e9771074c6e9d07ec1bf5e87ddafc)
+++ uspace/lib/memgfx/include/memgfx/memgc.h	(revision 61bf9dd9428e2f8c95a06cdc0f80d9af3071da4a)
@@ -46,5 +46,5 @@
 
 extern errno_t mem_gc_create(gfx_rect_t *, gfx_bitmap_alloc_t *,
-    mem_gc_invalidate_cb_t, mem_gc_update_cb_t, void *, mem_gc_t **);
+    mem_gc_cb_t *, void *, mem_gc_t **);
 extern errno_t mem_gc_delete(mem_gc_t *);
 extern void mem_gc_retarget(mem_gc_t *, gfx_rect_t *, gfx_bitmap_alloc_t *);
Index: uspace/lib/memgfx/include/types/memgfx/memgc.h
===================================================================
--- uspace/lib/memgfx/include/types/memgfx/memgc.h	(revision 2ab8ab3c0a1e9771074c6e9d07ec1bf5e87ddafc)
+++ uspace/lib/memgfx/include/types/memgfx/memgc.h	(revision 61bf9dd9428e2f8c95a06cdc0f80d9af3071da4a)
@@ -37,4 +37,6 @@
 #define _MEMGFX_TYPES_MEMGC_H
 
+#include <errno.h>
+#include <stdbool.h>
 #include <types/gfx/coord.h>
 
@@ -42,6 +44,16 @@
 typedef struct mem_gc mem_gc_t;
 
-typedef void (*mem_gc_invalidate_cb_t)(void *, gfx_rect_t *);
-typedef void (*mem_gc_update_cb_t)(void *);
+typedef struct {
+	/** Invalidate rectangle */
+	void (*invalidate)(void *, gfx_rect_t *);
+	/** Update display */
+	void (*update)(void *);
+	/** Get cursor position */
+	errno_t (*cursor_get_pos)(void *, gfx_coord2_t *);
+	/** Set cursor position */
+	errno_t (*cursor_set_pos)(void *, gfx_coord2_t *);
+	/** Set cursor visibility */
+	errno_t (*cursor_set_visible)(void *, bool);
+} mem_gc_cb_t;
 
 #endif
