~ted/ubuntu/lucid/tomboy/with-patch

« back to all changes in this revision

Viewing changes to Tomboy/Addins/Tasks/TasksApplicationAddin.cs

  • Committer: Bazaar Package Importer
  • Author(s): Sebastian Dröge
  • Date: 2007-07-16 10:26:35 UTC
  • mfrom: (1.1.21 upstream)
  • mto: This revision was merged to the branch mainline in revision 4.
  • Revision ID: james.westby@ubuntu.com-20070716102635-0wzk26jo50csob7b
Tags: 0.7.2-0ubuntu1
New upstream release

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
 
 
2
using System;
 
3
using System.IO;
 
4
using Mono.Unix;
 
5
using Tomboy;
 
6
using Gtk;
 
7
 
 
8
using Mono.Addins;
 
9
 
 
10
namespace Tomboy.Tasks
 
11
{
 
12
        public class TasksApplicationAddin : ApplicationAddin
 
13
        {
 
14
                static TaskManager manager;
 
15
                static object locker = new object ();
 
16
                
 
17
                static Gtk.ActionGroup action_group;
 
18
                static uint tray_icon_ui = 0;
 
19
                static uint tools_menu_ui = 0;
 
20
                
 
21
                static TaskListWindow task_list_window = null;
 
22
                
 
23
                bool initialized;
 
24
 
 
25
                public static TaskManager DefaultTaskManager
 
26
                {
 
27
                        get { return manager; }
 
28
                }
 
29
                
 
30
                public TasksApplicationAddin ()
 
31
                {
 
32
                        initialized = false;
 
33
                }
 
34
 
 
35
                public override void Initialize ()
 
36
                {
 
37
                        Logger.Debug ("TasksApplicationAddin.Initialize ()");
 
38
 
 
39
                        if (manager == null) {
 
40
                                lock (locker) {
 
41
                                        if (manager == null) {
 
42
                                                manager = new TaskManager (
 
43
                                                        Path.Combine (Tomboy.DefaultNoteManager.NoteDirectoryPath, "Tasks"));
 
44
                                        }
 
45
                                }
 
46
                                
 
47
                                ///
 
48
                                /// Add a "To Do List" to Tomboy's Tray Icon Menu
 
49
                                ///
 
50
                                action_group = new Gtk.ActionGroup ("Tasks");
 
51
                                action_group.Add (new Gtk.ActionEntry [] {
 
52
                                        new Gtk.ActionEntry ("ToolsMenuAction", null,
 
53
                                                Catalog.GetString ("_Tools"), null, null, null),
 
54
                                        new Gtk.ActionEntry ("OpenToDoListAction", null,
 
55
                                                Catalog.GetString ("To Do List"), null, null,
 
56
                                                delegate { OnOpenToDoListAction (); })
 
57
                                });
 
58
                                
 
59
                                tray_icon_ui = Tomboy.ActionManager.UI.AddUiFromString (@"
 
60
                                        <ui>
 
61
                                                <popup name='TrayIconMenu' action='TrayIconMenuAction'>
 
62
                                                        <menuitem name='OpenToDoList' action='OpenToDoListAction' />
 
63
                                                </popup>
 
64
                                        </ui>
 
65
                                ");
 
66
                                
 
67
                                tools_menu_ui = Tomboy.ActionManager.UI.AddUiFromString (@"
 
68
                                        <ui>
 
69
                                            <menubar name='MainWindowMenubar'>
 
70
                                                <placeholder name='MainWindowMenuPlaceholder'>
 
71
                                                        <menu name='ToolsMenu' action='ToolsMenuAction'>
 
72
                                                                <menuitem name='OpenToDoList' action='OpenToDoListAction' />
 
73
                                                        </menu>
 
74
                                                    </placeholder>
 
75
                                            </menubar>
 
76
                                        </ui>
 
77
                                ");
 
78
                                
 
79
                                Tomboy.ActionManager.UI.InsertActionGroup (action_group, 0);
 
80
                                
 
81
                                initialized = true;
 
82
                        }
 
83
                }
 
84
 
 
85
                public override void Shutdown ()
 
86
                {
 
87
                        Logger.Debug ("TasksApplicationAddin.Shutdown ()");
 
88
                        manager.Shutdown ();
 
89
                        manager = null;
 
90
                        
 
91
                        try {
 
92
                                Tomboy.ActionManager.UI.RemoveActionGroup (action_group);
 
93
                        } catch {}
 
94
                        try {
 
95
                                Tomboy.ActionManager.UI.RemoveUi (tray_icon_ui);
 
96
                                Tomboy.ActionManager.UI.RemoveUi (tools_menu_ui);
 
97
                        } catch {}
 
98
                        
 
99
                        initialized = false;
 
100
                }
 
101
 
 
102
                private void OnOpenToDoListAction ()
 
103
                {
 
104
                        TaskListWindow task_list_window = TaskListWindow.GetInstance (manager);
 
105
                        if (task_list_window != null)
 
106
                                task_list_window.Present ();
 
107
                }
 
108
                
 
109
                public override bool Initialized
 
110
                {
 
111
                        get { return initialized; }
 
112
                }
 
113
        }
 
114
}