]> ToastFreeware Gitweb - gregoa/zavai.git/blobdiff - src/app_main.vala
Show the number of unacknowledged log entries
[gregoa/zavai.git] / src / app_main.vala
index eb8a72c3abb6782c728b5e91939745a36f794d3e..5eb37fa5fb43f1278e5d5c8fb43cabcf3dfe7d2d 100644 (file)
@@ -43,6 +43,7 @@ public class Clock : Gtk.VBox
     protected zavai.clock.SourceType last_time_type;
     protected time_t last_deadline;
     protected string last_deadline_label;
+    protected Log log;
 
     construct
     {
@@ -53,10 +54,10 @@ public class Clock : Gtk.VBox
 
         l_date = new Gtk.Label("--");
         l_date.modify_font(Pango.FontDescription.from_string("Sans 40"));
-       l_date_button = new Gtk.Button();
-       l_date_button.set_image(l_date);
-       l_date_button.relief = Gtk.ReliefStyle.NONE;
-       l_date_button.clicked += on_date_clicked;
+        l_date_button = new Gtk.Button();
+        l_date_button.set_image(l_date);
+        l_date_button.relief = Gtk.ReliefStyle.NONE;
+        l_date_button.clicked += on_date_clicked;
         pack_start(l_date_button, false, false, 0);
         l_time = new Gtk.Label("--:--");
         l_time.modify_font(Pango.FontDescription.from_string("Sans 60"));
@@ -66,29 +67,32 @@ public class Clock : Gtk.VBox
         l_deadline.set_justify(Gtk.Justification.CENTER);
         pack_start(l_deadline, false, false, 0);
 
+        log = new Log();
+        pack_start(log, false, false, 0);
+
         zavai.clock.clock.minute_changed += on_minute_changed;
         zavai.clock.clock.schedule_changed += on_schedule_changed;
-       on_schedule_changed(zavai.clock.clock.next_alarm());
+        on_schedule_changed(zavai.clock.clock.next_alarm());
 
         zavai.clock.clock.request("ui.main.clock");
     }
 
     private void on_date_clicked(Gtk.Button b)
     {
-           zavai.app.push_applet("ui.calendar");
+        zavai.app.push_applet(zavai.ui.calendar.calendar);
     }
 
     private void on_schedule_changed(zavai.clock.Alarm? next)
     {
-           if (next == null)
-           {
-                   last_deadline = 0;
-                   last_deadline_label = "";
-           } else {
-                   last_deadline = next.ev.deadline;
-                   last_deadline_label = next.label;
-           }
-           on_minute_changed((long)last_time, last_time_type);
+        if (next == null)
+        {
+            last_deadline = 0;
+            last_deadline_label = "";
+        } else {
+            last_deadline = next.ev.deadline;
+            last_deadline_label = next.label;
+        }
+        on_minute_changed((long)last_time, last_time_type);
     }
 
     private void on_minute_changed(long ts, zavai.clock.SourceType type)
@@ -106,7 +110,7 @@ public class Clock : Gtk.VBox
                 typetag = "sys";
                 break;
         }
-                
+
         var t = Time.local((time_t)ts);
         l_date.set_text(t.format("%a %d %b"));
         l_time.set_text("%2d:%02d (%s)".printf(t.hour, t.minute, typetag));
@@ -130,19 +134,35 @@ public class Status : Applet
 {
     public Gtk.HBox status_icons;
     public Clock clock;
+    public Gtk.Label gsm_status;
+    public Gtk.Label gsm_info;
     public AppletPushLink menu;
 
-       public Status(string label)
-       {
-               _label = label;
+    public Status(string label)
+    {
+        _label = label;
         status_icons = new Gtk.HBox(false, 0);
         clock = new Clock();
-        menu = new AppletPushLink("menu.main");
-
-               pack_start(status_icons, false, false, 0);
-               pack_start(clock, false, false, 0);
-               pack_end(menu, false, false, 0);
-       }
+        gsm_status = new Gtk.Label("");
+        gsm_info = new Gtk.Label("");
+        menu = new AppletPushLink(zavai.menu_main);
+
+        pack_start(status_icons, false, false, 0);
+        pack_start(clock, false, false, 0);
+        pack_start(gsm_status, false, false, 0);
+        pack_start(gsm_info, false, false, 0);
+        // pack_start(music.player, false, false, 0);
+        pack_end(menu, false, false, 0);
+
+        zavai.gsm.gsm.status_changed += (msg) => { gsm_status.set_text(msg); };
+        zavai.gsm.gsm.info_changed += () => {
+stderr.printf("NEW INFO %s %s %d\n", zavai.gsm.gsm.info_provider, zavai.gsm.gsm.info_registration, zavai.gsm.gsm.info_signal_strength);
+            string text = "%s (%s)".printf(zavai.gsm.gsm.info_provider, zavai.gsm.gsm.info_registration);
+            if (zavai.gsm.gsm.info_signal_strength != -1)
+                text = "%s %d%%".printf(text, zavai.gsm.gsm.info_signal_strength);
+            gsm_info.set_text(text);
+        };
+    }
 }
 
 public class IncDec : Gtk.HBox
@@ -160,13 +180,13 @@ public class IncDec : Gtk.HBox
     {
         homogeneous = true;
         b_decmore = new Gtk.Button.with_label("«");
-               b_decmore.set_size_request(BW, BH);
+        b_decmore.set_size_request(BW, BH);
         b_dec = new Gtk.Button.with_label("<");
-               b_dec.set_size_request(BW, BH);
+        b_dec.set_size_request(BW, BH);
         b_inc = new Gtk.Button.with_label(">");
-               b_inc.set_size_request(BW, BH);
+        b_inc.set_size_request(BW, BH);
         b_incmore = new Gtk.Button.with_label("»");
-               b_incmore.set_size_request(BW, BH);
+        b_incmore.set_size_request(BW, BH);
         pack_start(b_decmore, false, true, 0);
         pack_start(b_dec, false, true, 0);
         pack_start(b_inc, false, true, 0);
@@ -214,7 +234,7 @@ public abstract class AddDeadline : Applet
         button_box.pack_start(dl_submit, true, true, 0);
     }
 
-       public override void start()
+    public override void start()
     {
         ((Gtk.Entry)dl_label.get_child()).set_text("");
         update();
@@ -235,11 +255,11 @@ public abstract class AddDeadline : Applet
     protected void on_submit(Gtk.Button b)
     {
         string label = ((Gtk.Entry)dl_label.get_child()).get_text();
-       time_t deadlinets = get_deadline();
-       Time deadline = Time.local(deadlinets);
-       string timespec = deadline.format("%H:%M %m/%d/%Y");
+        time_t deadlinets = get_deadline();
+        Time deadline = Time.local(deadlinets);
+        string timespec = deadline.format("%H:%M %m/%d/%Y");
         zavai.log.info("Scheduling deadline " + label + " at " + timespec);
-       zavai.clock.clock.schedule(timespec, label);
+        zavai.clock.clock.schedule(timespec, label);
         back();
     }
 }
@@ -290,7 +310,7 @@ public class AddAbsoluteDeadline : AddDeadline
         pack_start(hbox, false, false, 0);
     }
 
-       public override void start()
+    public override void start()
     {
         dl_time = time_t();
         base.start();
@@ -360,7 +380,7 @@ public class AddRelativeDeadline : AddDeadline
         pack_start(hbox, false, false, 0);
     }
 
-       public override void start()
+    public override void start()
     {
         dl_time = 0;
         base.start();
@@ -391,6 +411,44 @@ public class AddRelativeDeadline : AddDeadline
     }
 }
 
+public class Log : Gtk.VBox
+{
+    protected Gtk.Label l_info;
+    protected Gtk.Button l_info_button;
+
+    construct
+    {
+        l_info = new Gtk.Label("");
+        // l_info.modify_font(Pango.FontDescription.from_string("Sans 60"));
+        pack_start(l_info, false, false, 0);
+
+        l_info_button = new Gtk.Button();
+        l_info_button.set_image(l_info);
+        l_info_button.relief = Gtk.ReliefStyle.NONE;
+        // l_info_button.clicked += on_date_clicked;
+        pack_start(l_info_button, false, false, 0);
+
+        //zavai.clock.clock.minute_changed += on_minute_changed;
+        //zavai.clock.clock.schedule_changed += on_schedule_changed;
+        //on_schedule_changed(zavai.clock.clock.next_alarm());
+
+        //zavai.clock.clock.request("ui.main.clock");
+        refresh();
+    }
+
+    public void refresh()
+    {
+        int count = 0;
+        zavai.log.log.list_entries((d, f) => {
+            ++count;
+            return true;
+        });
+        l_info.set_text("%d log entries".printf(count));
+        l_info_button.set_sensitive(count != 0);
+        //zavai.log.Log l = zavai.log.log.load(args[2]);
+    }
+}
+
 /*
 public class AddDailyDeadline : Applet
 {
@@ -401,29 +459,24 @@ public class AddDailyDeadline : Applet
 }
 */
 
-Status status;
-AddAbsoluteDeadline aad;
-AddRelativeDeadline ard;
+public Status status;
+public AddAbsoluteDeadline aad;
+public AddRelativeDeadline ard;
 //AddDailyDeadline add;
 
 public void init()
 {
     status = new Status("Zavai");
-    zavai.registry.register_applet("zavai.status", status);
-
     aad = new AddAbsoluteDeadline();
-    zavai.registry.register_applet("clock.addabsolute", aad);
     ard = new AddRelativeDeadline();
-    zavai.registry.register_applet("clock.addrelative", ard);
     /*
     add = new AddDailyDeadline();
     zavai.registry.register_applet("clock.adddaily", add);
     */
 
-    var menu_misc = zavai.registry.getmenu("menu.misc");
-       menu_misc.add_applet("clock.addabsolute");
-       menu_misc.add_applet("clock.addrelative");
-       //menu_misc.add_applet("clock.adddaily");
+    zavai.menu_misc.add_applet(aad);
+    zavai.menu_misc.add_applet(ard);
+    //menu_misc.add_applet("clock.adddaily");
 }
 
 }