Index: uspace/lib/ui/src/fixed.c
===================================================================
--- uspace/lib/ui/src/fixed.c	(revision c6f00b40609fb2466fea3e6ae6e2a0cb88de98ef)
+++ uspace/lib/ui/src/fixed.c	(revision 8c772c4652b43b3ca58c297c04ff5b6fab69691a)
@@ -44,4 +44,15 @@
 #include "../private/fixed.h"
 
+static void ui_fixed_ctl_destroy(void *);
+static errno_t ui_fixed_ctl_paint(void *);
+static ui_evclaim_t ui_fixed_ctl_pos_event(void *, pos_event_t *);
+
+/** Push button control ops */
+ui_control_ops_t ui_fixed_ops = {
+	.destroy = ui_fixed_ctl_destroy,
+	.paint = ui_fixed_ctl_paint,
+	.pos_event = ui_fixed_ctl_pos_event
+};
+
 /** Create new fixed layout.
  *
@@ -52,8 +63,15 @@
 {
 	ui_fixed_t *fixed;
+	errno_t rc;
 
 	fixed = calloc(1, sizeof(ui_fixed_t));
 	if (fixed == NULL)
 		return ENOMEM;
+
+	rc = ui_control_new(&ui_fixed_ops, (void *) fixed, &fixed->control);
+	if (rc != EOK) {
+		free(fixed);
+		return rc;
+	}
 
 	list_initialize(&fixed->elem);
@@ -83,5 +101,16 @@
 	}
 
+	ui_control_delete(fixed->control);
 	free(fixed);
+}
+
+/** Get base control from fixed layout.
+ *
+ * @param fixed Fixed layout
+ * @return Control
+ */
+ui_control_t *ui_fixed_ctl(ui_fixed_t *fixed)
+{
+	return fixed->control;
 }
 
@@ -203,4 +232,40 @@
 }
 
+/** Destroy fixed layout control.
+ *
+ * @param arg Argument (ui_fixed_t *)
+ */
+void ui_fixed_ctl_destroy(void *arg)
+{
+	ui_fixed_t *fixed = (ui_fixed_t *) arg;
+
+	ui_fixed_destroy(fixed);
+}
+
+/** Paint fixed layout control.
+ *
+ * @param arg Argument (ui_fixed_t *)
+ * @return EOK on success or an error code
+ */
+errno_t ui_fixed_ctl_paint(void *arg)
+{
+	ui_fixed_t *fixed = (ui_fixed_t *) arg;
+
+	return ui_fixed_paint(fixed);
+}
+
+/** Handle fixed layout control position event.
+ *
+ * @param arg Argument (ui_fixed_t *)
+ * @param pos_event Position event
+ * @return @c ui_claimed iff the event is claimed
+ */
+ui_evclaim_t ui_fixed_ctl_pos_event(void *arg, pos_event_t *event)
+{
+	ui_fixed_t *fixed = (ui_fixed_t *) arg;
+
+	return ui_fixed_pos_event(fixed, event);
+}
+
 /** @}
  */
