Index: uspace/app/uidemo/uidemo.c
===================================================================
--- uspace/app/uidemo/uidemo.c	(revision a1060379ce24b77cb1b63887c9375b876bc99a1f)
+++ uspace/app/uidemo/uidemo.c	(revision 5de71dfb3bf8ce93e00d0e42a832ab431913b610)
@@ -96,4 +96,11 @@
 };
 
+/** Horizontal alignment selected by each radio button */
+static const gfx_halign_t uidemo_halign[3] = {
+	gfx_halign_left,
+	gfx_halign_center,
+	gfx_halign_right
+};
+
 /** Window close button was clicked.
  *
@@ -139,17 +146,6 @@
 {
 	ui_demo_t *demo = (ui_demo_t *) arg;
-	errno_t rc;
-
-	if (enable) {
-		rc = ui_entry_set_text(demo->entry, "Checked");
-		if (rc != EOK)
-			printf("Error changing entry text.\n");
-		(void) ui_entry_paint(demo->entry);
-	} else {
-		rc = ui_entry_set_text(demo->entry, "Unchecked");
-		if (rc != EOK)
-			printf("Error changing entry text.\n");
-		(void) ui_entry_paint(demo->entry);
-	}
+
+	ui_entry_set_read_only(demo->entry, enable);
 }
 
@@ -163,10 +159,7 @@
 {
 	ui_demo_t *demo = (ui_demo_t *) garg;
-	const char *text = (const char *) barg;
-	errno_t rc;
-
-	rc = ui_entry_set_text(demo->entry, text);
-	if (rc != EOK)
-		printf("Error changing entry text.\n");
+	gfx_halign_t halign = *(gfx_halign_t *) barg;
+
+	ui_entry_set_halign(demo->entry, halign);
 	(void) ui_entry_paint(demo->entry);
 }
@@ -578,5 +571,5 @@
 	}
 
-	rc = ui_checkbox_create(ui_res, "Check me", &demo.checkbox);
+	rc = ui_checkbox_create(ui_res, "Read only", &demo.checkbox);
 	if (rc != EOK) {
 		printf("Error creating check box.\n");
@@ -604,6 +597,6 @@
 	}
 
-	rc = ui_rbutton_create(demo.rbgroup, "Option 1", (void *) "First",
-	    &demo.rb1);
+	rc = ui_rbutton_create(demo.rbgroup, "Left", (void *) &uidemo_halign[0],
+	    &demo.rbleft);
 	if (rc != EOK) {
 		printf("Error creating radio button.\n");
@@ -618,14 +611,14 @@
 	rect.p1.x = 140;
 	rect.p1.y = 240;
-	ui_rbutton_set_rect(demo.rb1, &rect);
-
-	rc = ui_fixed_add(demo.fixed, ui_rbutton_ctl(demo.rb1));
-	if (rc != EOK) {
-		printf("Error adding control to layout.\n");
-		return rc;
-	}
-
-	rc = ui_rbutton_create(demo.rbgroup, "Option 2", (void *) "Second",
-	    &demo.rb2);
+	ui_rbutton_set_rect(demo.rbleft, &rect);
+
+	rc = ui_fixed_add(demo.fixed, ui_rbutton_ctl(demo.rbleft));
+	if (rc != EOK) {
+		printf("Error adding control to layout.\n");
+		return rc;
+	}
+
+	rc = ui_rbutton_create(demo.rbgroup, "Center", (void *) &uidemo_halign[1],
+	    &demo.rbcenter);
 	if (rc != EOK) {
 		printf("Error creating radio button.\n");
@@ -637,14 +630,15 @@
 	rect.p1.x = 140;
 	rect.p1.y = 270;
-	ui_rbutton_set_rect(demo.rb2, &rect);
-
-	rc = ui_fixed_add(demo.fixed, ui_rbutton_ctl(demo.rb2));
-	if (rc != EOK) {
-		printf("Error adding control to layout.\n");
-		return rc;
-	}
-
-	rc = ui_rbutton_create(demo.rbgroup, "Option 3", (void *) "Third",
-	    &demo.rb3);
+	ui_rbutton_set_rect(demo.rbcenter, &rect);
+	ui_rbutton_select(demo.rbcenter);
+
+	rc = ui_fixed_add(demo.fixed, ui_rbutton_ctl(demo.rbcenter));
+	if (rc != EOK) {
+		printf("Error adding control to layout.\n");
+		return rc;
+	}
+
+	rc = ui_rbutton_create(demo.rbgroup, "Right", (void *) &uidemo_halign[2],
+	    &demo.rbright);
 	if (rc != EOK) {
 		printf("Error creating radio button.\n");
@@ -656,7 +650,7 @@
 	rect.p1.x = 140;
 	rect.p1.y = 300;
-	ui_rbutton_set_rect(demo.rb3, &rect);
-
-	rc = ui_fixed_add(demo.fixed, ui_rbutton_ctl(demo.rb3));
+	ui_rbutton_set_rect(demo.rbright, &rect);
+
+	rc = ui_fixed_add(demo.fixed, ui_rbutton_ctl(demo.rbright));
 	if (rc != EOK) {
 		printf("Error adding control to layout.\n");
Index: uspace/app/uidemo/uidemo.h
===================================================================
--- uspace/app/uidemo/uidemo.h	(revision a1060379ce24b77cb1b63887c9375b876bc99a1f)
+++ uspace/app/uidemo/uidemo.h	(revision 5de71dfb3bf8ce93e00d0e42a832ab431913b610)
@@ -67,7 +67,7 @@
 	ui_checkbox_t *checkbox;
 	ui_rbutton_group_t *rbgroup;
-	ui_rbutton_t *rb1;
-	ui_rbutton_t *rb2;
-	ui_rbutton_t *rb3;
+	ui_rbutton_t *rbleft;
+	ui_rbutton_t *rbcenter;
+	ui_rbutton_t *rbright;
 	ui_slider_t *slider;
 } ui_demo_t;
Index: uspace/lib/ui/include/ui/rbutton.h
===================================================================
--- uspace/lib/ui/include/ui/rbutton.h	(revision a1060379ce24b77cb1b63887c9375b876bc99a1f)
+++ uspace/lib/ui/include/ui/rbutton.h	(revision 5de71dfb3bf8ce93e00d0e42a832ab431913b610)
@@ -61,4 +61,5 @@
 extern void ui_rbutton_enter(ui_rbutton_t *);
 extern void ui_rbutton_leave(ui_rbutton_t *);
+extern void ui_rbutton_select(ui_rbutton_t *);
 extern void ui_rbutton_selected(ui_rbutton_t *);
 extern ui_evclaim_t ui_rbutton_pos_event(ui_rbutton_t *, pos_event_t *);
Index: uspace/lib/ui/src/rbutton.c
===================================================================
--- uspace/lib/ui/src/rbutton.c	(revision a1060379ce24b77cb1b63887c9375b876bc99a1f)
+++ uspace/lib/ui/src/rbutton.c	(revision 5de71dfb3bf8ce93e00d0e42a832ab431913b610)
@@ -316,6 +316,4 @@
 void ui_rbutton_release(ui_rbutton_t *rbutton)
 {
-	ui_rbutton_t *old_selected;
-
 	if (!rbutton->held)
 		return;
@@ -325,16 +323,5 @@
 	if (rbutton->inside) {
 		/* Activate radio button */
-		old_selected = rbutton->group->selected;
-
-		if (old_selected != rbutton) {
-			rbutton->group->selected = rbutton;
-			ui_rbutton_paint(old_selected);
-		}
-
-		/* Repaint and notify */
-		(void) ui_rbutton_paint(rbutton);
-
-		if (old_selected != rbutton)
-			ui_rbutton_selected(rbutton);
+		ui_rbutton_select(rbutton);
 	}
 }
@@ -368,5 +355,27 @@
 }
 
-/** Button was selected.
+/** Select radio button.
+ *
+ * @param rbutton Radio button
+ */
+void ui_rbutton_select(ui_rbutton_t *rbutton)
+{
+	ui_rbutton_t *old_selected;
+
+	old_selected = rbutton->group->selected;
+
+	if (old_selected != rbutton) {
+		rbutton->group->selected = rbutton;
+		ui_rbutton_paint(old_selected);
+	}
+
+	/* Repaint and notify */
+	(void) ui_rbutton_paint(rbutton);
+
+	if (old_selected != rbutton)
+		ui_rbutton_selected(rbutton);
+}
+
+/** Notify that button was selected.
  *
  * @param rbutton Radio button
