From 83de6725a2b0deb0df0eac90b38e43318a55bdd5 Mon Sep 17 00:00:00 2001 From: Stefan Sauer Date: Sun, 17 Oct 2010 22:16:27 +0300 Subject: [PATCH] app: add basic widget and do basic preview Add a menu bar and a file browser. Set up a preview callback. --- mediainfo/src/mi-app.vala | 61 +++++++++++++++++++++++++++++++++++++-- mediainfo/src/mi.vala | 2 +- 2 files changed, 60 insertions(+), 3 deletions(-) diff --git a/mediainfo/src/mi-app.vala b/mediainfo/src/mi-app.vala index b4981dec63..a869bd617a 100644 --- a/mediainfo/src/mi-app.vala +++ b/mediainfo/src/mi-app.vala @@ -21,11 +21,68 @@ using Gtk; public class MediaInfo.App : Window { + private FileChooserWidget chooser; + private Label info; + public App() { + // configure the window set_title (_("GStreamer Media Info")); - set_default_size (300, 200); - this.destroy.connect (Gtk.main_quit); + set_default_size (400, 300); + destroy.connect (Gtk.main_quit); + + VBox vbox = new VBox(false, 0); + add (vbox); + + // add a menubar + vbox.pack_start (create_menu(), false, false, 0); + + // add a file-chooser with info pane as preview widget + chooser = new FileChooserWidget (FileChooserAction.OPEN); + vbox.pack_start (chooser, true, true, 3); + + // FIXME: use proper widget + info = new Label (""); + chooser.set_preview_widget (info); + chooser.use_preview_label = false; + chooser.update_preview.connect (on_update_preview); + } + + // helper + + private MenuBar create_menu () + { + MenuBar menu_bar = new MenuBar (); + MenuItem item; + Menu sub_menu; + AccelGroup accel_group; + + accel_group = new AccelGroup (); + this.add_accel_group (accel_group); + + item = new MenuItem.with_label (_("File")); + menu_bar.append (item); + + sub_menu = new Menu (); + item.set_submenu (sub_menu); + + item = new ImageMenuItem.from_stock (STOCK_QUIT, accel_group); + sub_menu.append (item); + item.activate.connect (Gtk.main_quit); + + return (menu_bar); + } + + // signal handler + + private void on_update_preview () + { + string uri = chooser.get_preview_uri(); + + // FIXME: do real preview + info.set_text (uri); + + chooser.set_preview_widget_active (true); } } diff --git a/mediainfo/src/mi.vala b/mediainfo/src/mi.vala index 1f8987cb17..3e70a66ebe 100644 --- a/mediainfo/src/mi.vala +++ b/mediainfo/src/mi.vala @@ -29,7 +29,7 @@ main(string[] args) Gtk.init (ref args); var app = new App (); - app.show (); + app.show_all (); Gtk.main ();