* open jackpanel as jackpanel-applet slave window
[jackpanel.git] / jackpanel / JackpanelApplet.vala
blobbf06ec079700c871fdc75cab8e0e343f8c05e533
1 using GLib;
2 using Panel;
4 namespace Jackpanel {
6 public class JackpanelApplet : JackpanelBase {
7 private MiniDisplay display;
8 private Jackpanel panel;
9 private Gtk.Window window;
11 private bool show_state () {
12 if (client == null) {
13 return false;
16 if (display.xruns != no_xruns) display.xruns = no_xruns;
18 // this one redraws the panel
19 show_time (display);
21 return true;
24 protected override void on_transport_stopped () {}
26 protected override void on_transport_rolling () {}
28 construct {
29 display = new MiniDisplay ();
30 display.reset_xruns_requested += (display) => {
31 no_xruns = 0;
33 add (display);
35 client_name = "jackpanel-applet";
36 initialized = initialize_jack ();
37 if (initialized) {
38 Timeout.add (100, show_state);
41 window = new Gtk.Window (Gtk.WindowType.TOPLEVEL);
42 window.set_default_icon_name ("jackpanel");
43 panel = new Jackpanel ("jackpanel-applet");
44 window.add (panel);
45 window.set_deletable (false);
46 window.show_all ();
47 window.visible = false;
49 display.double_click += () => {
50 window.visible = !window.visible;
54 ~JackPanelApplet () {
55 stop_jack_client ();
56 stop_jack ();
60 } //namespace Jackpanel