~elementary-pantheon/pantheon-plugs/pantheon-plugs

« back to all changes in this revision

Viewing changes to plug/SettingsPlug.vala

  • Committer: Avi Romanoff
  • Date: 2011-05-09 20:52:03 UTC
  • Revision ID: aviromanoff@gmail.com-20110509205203-tfa40tnvw2oe3ep6
Initial setup

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/***
 
2
BEGIN LICENSE
 
3
Copyright (C) 2011 Avi Romanoff <aviromanoff@gmail.com>
 
4
This program is free software: you can redistribute it and/or modify it 
 
5
under the terms of the GNU Lesser General Public License version 3, as 
 
6
published by the Free Software Foundation.
 
7
 
 
8
This program is distributed in the hope that it will be useful, but 
 
9
WITHOUT ANY WARRANTY; without even the implied warranties of 
 
10
MERCHANTABILITY, SATISFACTORY QUALITY, or FITNESS FOR A PARTICULAR 
 
11
PURPOSE.  See the GNU General Public License for more details.
 
12
 
 
13
You should have received a copy of the GNU General Public License along 
 
14
with this program.  If not, see <http://www.gnu.org/licenses/>.
 
15
END LICENSE
 
16
***/
 
17
 
 
18
using Gtk;
 
19
 
 
20
[DBus (name = "org.elementary.switchboard")]
 
21
public interface SwitchboardController : GLib.Object {
 
22
 
 
23
    public signal void plug_closed ();
 
24
    public abstract int get_socket_wid () throws IOError;
 
25
 
 
26
    public abstract void progress_bar_set_visible (bool visibility) throws IOError;
 
27
    public abstract void progress_bar_set_fraction (double fraction) throws IOError;
 
28
    public abstract void progress_bar_set_text (string text) throws IOError;
 
29
    public abstract void progress_bar_pulse () throws IOError;
 
30
 
 
31
    public signal void search_box_activated ();
 
32
    public abstract void search_box_set_sensitive (bool sensitivity) throws IOError;
 
33
    public abstract void search_box_set_text (string text) throws IOError;
 
34
 
 
35
}
 
36
 
 
37
public abstract class SwitchPlug : Gtk.Plug {
 
38
    
 
39
    public string plug_name;
 
40
    public SwitchboardController switchboard_controller;
 
41
 
 
42
    public SwitchPlug (string name) {
 
43
        this.plug_name = name;
 
44
        GLib.Log.set_default_handler(Log.log_handler);
 
45
        try {
 
46
            this.switchboard_controller = Bus.get_proxy_sync (BusType.SESSION, "org.elementary.switchboard",
 
47
                                                             "/org/elementary/switchboard");
 
48
        } catch (IOError e) {
 
49
            log ("SettingsPlug", GLib.LogLevelFlags.LEVEL_ERROR, "%s", e.message);
 
50
        }
 
51
        switchboard_controller.plug_closed.connect(() => exit_plug());
 
52
        base.construct ((Gdk.NativeWindow) switchboard_controller.get_socket_wid ());
 
53
    }
 
54
    
 
55
 
 
56
    public void exit_plug () {
 
57
    /* Clean up code for saving plug state, etc goes here.
 
58
    * method called when the plug is closed */
 
59
        stdout.printf("This is the %s plug, signing off gracefully!\n", this.plug_name);
 
60
        Gtk.main_quit();
 
61
    }
 
62
}
 
63