nserver 1.1.3 → 1.1.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/History.txt +7 -0
  2. data/bin/nclient +11 -3
  3. data/lib/nserver.rb +35 -2
  4. metadata +2 -2
data/History.txt CHANGED
@@ -1,3 +1,10 @@
1
+ == 1.1.4 / 2007-11-12
2
+
3
+ * Add a "Message History" dialog, available by activating the NServer tray
4
+ icon (left-click is default)
5
+ * This obviously means we now keep track of messages.
6
+ * Update nclient to accept title parameter, and to pass in priority properly
7
+
1
8
  == 1.1.3 / 2007-11-10
2
9
 
3
10
  * Minor updates
data/bin/nclient CHANGED
@@ -6,12 +6,14 @@ require 'getoptlong'
6
6
 
7
7
  opts = GetoptLong.new(
8
8
  [ '--priority', '-p', GetoptLong::REQUIRED_ARGUMENT ],
9
- [ '--host', GetoptLong::REQUIRED_ARGUMENT ]
9
+ [ '--host', GetoptLong::REQUIRED_ARGUMENT ],
10
+ [ '--title', GetoptLong::REQUIRED_ARGUMENT ]
10
11
  )
11
12
 
12
13
  priority = :normal
13
14
  host_ip = '127.0.0.1'
14
15
  msg = nil
16
+ title = nil
15
17
 
16
18
  opts.each do |opt,arg|
17
19
  case opt
@@ -24,6 +26,8 @@ opts.each do |opt,arg|
24
26
  priority = p
25
27
  when '--host'
26
28
  host_ip = arg
29
+ when '--title'
30
+ title = arg
27
31
  end
28
32
  end
29
33
 
@@ -32,11 +36,15 @@ if ARGV.length != 1
32
36
  exit 1
33
37
  end
34
38
 
35
- msg = ARGV[0]
39
+ text = ARGV[0]
36
40
 
37
41
  begin
38
42
  client = NServer::Client.new(:host => host_ip)
39
- client.notify(msg, priority )
43
+ msg = NServer::Message.new
44
+ msg.text = text
45
+ msg.priority = priority
46
+ msg.title = title
47
+ client.notify(msg)
40
48
  rescue NServer::NoServerAvailable
41
49
  STDERR.puts("No server available.")
42
50
  exit 1
data/lib/nserver.rb CHANGED
@@ -11,7 +11,7 @@ require 'ipaddr'
11
11
  require 'yaml'
12
12
 
13
13
  module NServer
14
- VERSION = '1.1.3'
14
+ VERSION = '1.1.4'
15
15
  class Server < GServer
16
16
  # Create a NServer::Server instance
17
17
  #
@@ -50,6 +50,7 @@ module NServer
50
50
  @check_interval = opts[:check_interval]
51
51
 
52
52
  @msg_list = [ Message.new("NServer Ready.") ]
53
+ @msg_history = []
53
54
  @allowed_clients = opts[:allow]
54
55
 
55
56
  Notify.init("Notification Server")
@@ -60,11 +61,36 @@ module NServer
60
61
 
61
62
  @notification = Notify::Notification::new("X", nil, nil, @tray_icon)
62
63
  @notification.timeout = opts[:msg_timeout]
64
+ #@notification.signal_connect('closed') do |s|
65
+ # puts "Closed!"
66
+ #end
63
67
 
64
68
  Thread.new { Gtk.main }
65
69
  sleep 5
66
70
  @tray_icon.embedded? || raise("Failed to setup tray icon.")
67
71
 
72
+ @tray_icon.signal_connect('activate') do |ti|
73
+ dialog = Gtk::Dialog.new(
74
+ "Message History",
75
+ nil,
76
+ Gtk::Dialog::DESTROY_WITH_PARENT,
77
+ [ Gtk::Stock::OK, Gtk::Dialog::RESPONSE_NONE ]
78
+ )
79
+ dialog.signal_connect('response') {|d,r| d.destroy }
80
+ dialog.vbox.add(Gtk::Label.new("Message history (most recent on top)"))
81
+ @msg_history.reverse.each do |m|
82
+ label = Gtk::Label.new(m.text)
83
+ label.set_alignment(0,0.5)
84
+
85
+ dialog.vbox.add(Gtk::HSeparator.new)
86
+ dialog.vbox.add(label)
87
+ end
88
+ dialog.default_response = -1
89
+ dialog.set_default_size(300, 0)
90
+ dialog.show_all
91
+ end
92
+
93
+
68
94
  ## Setup msg thread
69
95
  @msg_thread = Thread.new(self, @check_interval) do |server, intv|
70
96
  loop do
@@ -76,6 +102,9 @@ module NServer
76
102
 
77
103
  # Display the message
78
104
  def notify(msg)
105
+ @msg_history << msg
106
+ @msg_history.shift if @msg_history.size > 5
107
+
79
108
  @notification.update((msg.title or "Message Received"), msg.text, nil)
80
109
  @notification.urgency = msg.priority
81
110
  #@tray_icon.tooltip = msg.title
@@ -230,9 +259,13 @@ module NServer
230
259
 
231
260
  def initialize( text = "", priority = :normal, title = nil )
232
261
  @text = text
233
- @priority = ( PRIORITIES.index( priority ) or 1 )
262
+ self.priority = priority
234
263
  @title = title
235
264
  end
265
+
266
+ def priority=(p)
267
+ @priority = (PRIORITIES.index(p) or 1)
268
+ end
236
269
  end
237
270
 
238
271
  end
metadata CHANGED
@@ -3,8 +3,8 @@ rubygems_version: 0.9.4.5
3
3
  specification_version: 2
4
4
  name: nserver
5
5
  version: !ruby/object:Gem::Version
6
- version: 1.1.3
7
- date: 2007-11-10 00:00:00 -05:00
6
+ version: 1.1.4
7
+ date: 2007-11-12 00:00:00 -05:00
8
8
  summary: Notification server for ruby using libnotify
9
9
  require_paths:
10
10
  - lib