Added PodcasWidget and prototype stack switch on flowbox_child activation.
This commit is contained in:
parent
648ac9f63f
commit
430b8c3995
@ -29,7 +29,7 @@
|
|||||||
<property name="default_width">1000</property>
|
<property name="default_width">1000</property>
|
||||||
<property name="default_height">600</property>
|
<property name="default_height">600</property>
|
||||||
<child>
|
<child>
|
||||||
<object class="GtkStack">
|
<object class="GtkStack" id="stack1">
|
||||||
<property name="visible">True</property>
|
<property name="visible">True</property>
|
||||||
<property name="can_focus">False</property>
|
<property name="can_focus">False</property>
|
||||||
<child>
|
<child>
|
||||||
@ -86,6 +86,9 @@
|
|||||||
<property name="title" translatable="yes">page0</property>
|
<property name="title" translatable="yes">page0</property>
|
||||||
</packing>
|
</packing>
|
||||||
</child>
|
</child>
|
||||||
|
<child>
|
||||||
|
<placeholder/>
|
||||||
|
</child>
|
||||||
</object>
|
</object>
|
||||||
</child>
|
</child>
|
||||||
<child type="titlebar">
|
<child type="titlebar">
|
||||||
|
|||||||
@ -45,8 +45,6 @@ fn create_flowbox_child(title: &str, image_uri: Option<&str>) -> gtk::FlowBoxChi
|
|||||||
};
|
};
|
||||||
|
|
||||||
let fbc = gtk::FlowBoxChild::new();
|
let fbc = gtk::FlowBoxChild::new();
|
||||||
fbc.connect_activate(|_| println!("Hello World!, child activated"));
|
|
||||||
|
|
||||||
fbc.add(&box_);
|
fbc.add(&box_);
|
||||||
fbc
|
fbc
|
||||||
}
|
}
|
||||||
@ -101,12 +99,19 @@ fn main() {
|
|||||||
hammond_data::init().unwrap();
|
hammond_data::init().unwrap();
|
||||||
|
|
||||||
let glade_src = include_str!("../gtk/foo.ui");
|
let glade_src = include_str!("../gtk/foo.ui");
|
||||||
|
// Adapted from gnome-music AlbumWidget
|
||||||
|
let pd_widget = include_str!("../gtk/podcast_widget.ui");
|
||||||
let header_src = include_str!("../gtk/headerbar.ui");
|
let header_src = include_str!("../gtk/headerbar.ui");
|
||||||
let builder = gtk::Builder::new_from_string(glade_src);
|
let builder = gtk::Builder::new_from_string(glade_src);
|
||||||
let header_build = gtk::Builder::new_from_string(header_src);
|
let header_build = gtk::Builder::new_from_string(header_src);
|
||||||
|
let pd_widget = gtk::Builder::new_from_string(pd_widget);
|
||||||
|
|
||||||
// Get the main window
|
// Get the main window
|
||||||
let window: gtk::Window = builder.get_object("window1").unwrap();
|
let window: gtk::Window = builder.get_object("window1").unwrap();
|
||||||
|
// Get the Stack
|
||||||
|
let stack: gtk::Stack = builder.get_object("stack1").unwrap();
|
||||||
|
let pd_widget: gtk::Box = pd_widget.get_object("podcast_widget").unwrap();
|
||||||
|
stack.add(&pd_widget);
|
||||||
// Get the headerbar
|
// Get the headerbar
|
||||||
let header: gtk::HeaderBar = header_build.get_object("headerbar1").unwrap();
|
let header: gtk::HeaderBar = header_build.get_object("headerbar1").unwrap();
|
||||||
window.set_titlebar(&header);
|
window.set_titlebar(&header);
|
||||||
@ -143,6 +148,12 @@ fn main() {
|
|||||||
let image_uri = pd_model.get_value(&iter, 5).get::<String>();
|
let image_uri = pd_model.get_value(&iter, 5).get::<String>();
|
||||||
|
|
||||||
let f = create_flowbox_child(&title, image_uri.as_ref().map(|s| s.as_str()));
|
let f = create_flowbox_child(&title, image_uri.as_ref().map(|s| s.as_str()));
|
||||||
|
let stack_clone = stack.clone();
|
||||||
|
let pd_widget_clone = pd_widget.clone();
|
||||||
|
f.connect_activate(move |_| {
|
||||||
|
stack_clone.set_visible_child(&pd_widget_clone);
|
||||||
|
println!("Hello World!, child activated");
|
||||||
|
});
|
||||||
flowbox.add(&f);
|
flowbox.add(&f);
|
||||||
|
|
||||||
if !pd_model.iter_next(&iter) {
|
if !pd_model.iter_next(&iter) {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user