Hi, I am having a problem setting the background colors of items in my layout. Please try this out if you can and see if the text items background color is set properly when iterating through the items.
Thanks Brian using Clutter; /* Gui: class called from main to define the ui before the clutter.main loop is called */ public class Gui : GLib.Object { private Stage stage; private BinLayout stageLayout; public MainMenu mainMenuScreen; public Gui() { stageLayout = new BinLayout(Clutter.BinAlignment.FILL, Clutter.BinAlignment.FILL); // All the worlds a stage stage = new Stage(); //stage.set_fullscreen(true); stage.color = Color () { alpha = 255 }; stage.set_reactive(true); stage.set_size(1280, 800); stage.hide.connect (Clutter.main_quit); stage.set_layout_manager(stageLayout); mainMenuScreen = new MainMenu(stage); stage.add(mainMenuScreen); stage.show(); } } public class MainMenu : Actor { private Actor listColumn; // 2nd column -- lists the result set of foodie items private Text mainMenuItem2; private Text mainMenuItem6; private Text mainMenuItem9; private Text play; private Text play2; private BoxLayout mainMenuLayout; private BoxLayout listColLayout; private Actor listColumnCurrentItem; private int listColumnCurrentItemIndex; private Color rowSelectionColor; public MainMenu(Stage stage) { this.set_margin_left(10); this.set_margin_right(20); this.set_margin_top(20); this.set_margin_bottom(20); rowSelectionColor = Color(); rowSelectionColor.red = 255; rowSelectionColor.green = 255; rowSelectionColor.blue = 255; rowSelectionColor.alpha = 60; listColumn = new Actor(); mainMenuLayout = new BoxLayout(); this.set_layout_manager(mainMenuLayout); listColLayout = new BoxLayout(); listColumn.set_layout_manager(listColLayout); listColLayout.set_vertical(true); listColLayout.set_spacing(15); listColumn.set_height(800); play = new Text(); play.set_font_name("Helvetica 25"); play.set_text("Click to highlight next row"); play.set_color(Color.from_string("white")); play.set_background_color(Color.from_string("blue")); play.set_opacity(255); play.set_reactive(true); play.button_press_event.connect(onPlayPress); play2 = new Text(); play2.set_font_name("Helvetica 25"); play2.set_text("Click to highlight previous row"); play2.set_color(Color.from_string("white")); play2.set_background_color(Color.from_string("blue")); play2.set_opacity(255); play2.set_reactive(true); play2.button_press_event.connect(onPlayPress2); mainMenuItem2 = new Text(); mainMenuItem2.set_width(800); mainMenuItem2.set_font_name("Helvetica 25"); mainMenuItem2.set_text(" LIST ITMES"); mainMenuItem2.set_color(Color.from_string("white")); mainMenuItem2.set_opacity(255); mainMenuItem2.set_name("header"); mainMenuItem6 = new Text(); mainMenuItem6.set_width(800); mainMenuItem6.set_markup("<span face='Helvetica' size='25000'> First LIST Item</span>\n<span face='Helvetica' size='20000'> A lengthy description for this</span> "); mainMenuItem6.set_color(Color.from_string("white")); mainMenuItem6.set_opacity(255); mainMenuItem9 = new Text(); mainMenuItem9.set_width(800); //mainMenuItem9.set_font_name("Helvetica 25"); mainMenuItem9.set_markup("<span face='Helvetica' size='25000'> List Item 2</span>\n<span face='Helvetica' size='20000'> A lengthy description for this</span> "); mainMenuItem9.set_color(Color.from_string("white")); mainMenuItem9.set_opacity(255); listColLayout.pack(play, false, false, false, Clutter.BoxAlignment.START, Clutter.BoxAlignment.START); listColLayout.pack(play2, false, false, false, Clutter.BoxAlignment.START, Clutter.BoxAlignment.START); listColLayout.pack(mainMenuItem2, false, false, false, Clutter.BoxAlignment.START, Clutter.BoxAlignment.START); listColLayout.pack(mainMenuItem6, false, false, false, Clutter.BoxAlignment.START, Clutter.BoxAlignment.START); listColLayout.pack(mainMenuItem9, false, false, false, Clutter.BoxAlignment.START, Clutter.BoxAlignment.START); listColumnCurrentItemIndex = 2; listColumnCurrentItem = listColumn.get_child_at_index(listColumnCurrentItemIndex); listColumnCurrentItem.set_background_color(rowSelectionColor); mainMenuLayout.pack(listColumn, true, false, false, Clutter.BoxAlignment.START, Clutter.BoxAlignment.START); } private bool onPlayPress (ButtonEvent event) { if (listColumnCurrentItemIndex == 4) { stdout.printf("%s", "out of bounds down"); return true; } listColumnCurrentItem.set_background_color(null); listColumnCurrentItemIndex++; listColumnCurrentItem = listColumn.get_child_at_index(listColumnCurrentItemIndex); listColumnCurrentItem.set_background_color(rowSelectionColor); stdout.printf("%d", listColumnCurrentItemIndex); return true; } private bool onPlayPress2 (ButtonEvent event) { if (listColumnCurrentItemIndex == 2) { stdout.printf("%s", "out of bounds up"); return true; } listColumnCurrentItem.set_background_color(null); listColumnCurrentItemIndex--; listColumnCurrentItem = listColumn.get_child_at_index(listColumnCurrentItemIndex); listColumnCurrentItem.set_background_color(rowSelectionColor); stdout.printf("%d", listColumnCurrentItemIndex); return true; } } int main (string[] args) { Clutter.init(ref args); var gui = new Gui(); Clutter.main(); return 0; } /* valac -X -O2 -g --pkg clutter-1.0 Test.vala */ // -X -O2 for optimizations // -g for debug -- Duff
_______________________________________________ clutter-app-devel-list mailing list clutter-app-devel-list@clutter-project.org http://lists.clutter-project.org/listinfo/clutter-app-devel-list