summaryrefslogtreecommitdiff
path: root/src/deamon.vala
diff options
context:
space:
mode:
Diffstat (limited to 'src/deamon.vala')
-rw-r--r--src/deamon.vala260
1 files changed, 0 insertions, 260 deletions
diff --git a/src/deamon.vala b/src/deamon.vala
deleted file mode 100644
index 5430a09..0000000
--- a/src/deamon.vala
+++ /dev/null
@@ -1,260 +0,0 @@
-/////////////////////////////////////////////////////////////////////////
-// Copyright (c) 2011-2015 by Simon Schneegans
-//
-// This program is free software: you can redistribute it and/or modify
-// it under the terms of the GNU General Public License as published by
-// the Free Software Foundation, either version 3 of the License, or (at
-// your option) any later version.
-//
-// This program is distributed in the hope that it will be useful, but
-// WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
-// General Public License for more details.
-//
-// You should have received a copy of the GNU General Public License
-// along with this program. If not, see <http://www.gnu.org/licenses/>.
-/////////////////////////////////////////////////////////////////////////
-
-namespace GnomePie {
-
-/////////////////////////////////////////////////////////////////////////
-/// This class runs in the background. It has an Indicator sitting in the
-/// user's panel. It initializes everything and guarantees that there is
-/// only one instance of Gnome-Pie running.
-/////////////////////////////////////////////////////////////////////////
-
-public class Deamon : GLib.Application {
-
- /////////////////////////////////////////////////////////////////////
- /// The current version of Gnome-Pie
- /////////////////////////////////////////////////////////////////////
-
- public static string version;
-
- /////////////////////////////////////////////////////////////////////
- /// Varaibles set by the commend line parser.
- /////////////////////////////////////////////////////////////////////
-
- public static bool disable_header_bar = false;
- public static bool disable_stack_switcher = false;
-
-
- /////////////////////////////////////////////////////////////////////
- /// true if init_pies() has been called already
- /////////////////////////////////////////////////////////////////////
- private bool initialized = false;
-
- /////////////////////////////////////////////////////////////////////
- /// The beginning of everything.
- /////////////////////////////////////////////////////////////////////
-
- public static int main(string[] args) {
- version = "0.6.7";
-
- // disable overlay scrollbar --- hacky workaround for black /
- // transparent background
- GLib.Environment.set_variable("LIBOVERLAY_SCROLLBAR", "0", true);
-
- Logger.init();
- Gtk.init(ref args);
- Paths.init();
-
- // create the Deamon and run it
- var deamon = new GnomePie.Deamon();
- deamon.run(args);
-
- return 0;
- }
-
- /////////////////////////////////////////////////////////////////////
- /// The AppIndicator of Gnome-Pie.
- /////////////////////////////////////////////////////////////////////
-
- private Indicator indicator = null;
-
- /////////////////////////////////////////////////////////////////////
- /// Varaibles set by the commend line parser.
- /////////////////////////////////////////////////////////////////////
-
- private static string open_pie = null;
- private static bool reset = false;
- private static bool print_ids = false;
-
- private static bool handled_local_args = false;
-
- /////////////////////////////////////////////////////////////////////
- /// Available command line options.
- /////////////////////////////////////////////////////////////////////
-
- private const GLib.OptionEntry[] options = {
- { "open", 'o', 0, GLib.OptionArg.STRING,
- out open_pie,
- "Open the Pie with the given ID", "ID" },
- { "reset", 'r', 0, GLib.OptionArg.NONE,
- out reset,
- "Reset all options to default values" },
- { "no-header-bar", 'b', 0, GLib.OptionArg.NONE,
- out disable_header_bar,
- "Disables the usage of GTK.HeaderBar" },
- { "no-stack-switcher", 's', 0, GLib.OptionArg.NONE,
- out disable_stack_switcher,
- "Disables the usage of GTK.StackSwitcher" },
- { "print-ids", 'p', 0, GLib.OptionArg.NONE,
- out print_ids,
- "Prints all Pie names with their according IDs" },
- { null }
- };
-
- /////////////////////////////////////////////////////////////////////
- /// C'tor of the Deamon. It checks whether it's the first running
- /// instance of Gnome-Pie.
- /////////////////////////////////////////////////////////////////////
-
- public Deamon() {
- Object(application_id: "org.gnome.gnomepie",
- flags: GLib.ApplicationFlags.HANDLES_COMMAND_LINE);
-
- // init locale support
- Intl.bindtextdomain("gnomepie", Paths.locales);
- Intl.textdomain("gnomepie");
-
- // connect SigHandlers
- Posix.signal(Posix.SIGINT, sig_handler);
- Posix.signal(Posix.SIGTERM, sig_handler);
-
- this.startup.connect(()=>{
-
- message("Welcome to Gnome-Pie " + version + "!");
-
- this.init_pies();
-
- // launch the indicator
- this.indicator = new Indicator();
-
- if (open_pie != null && open_pie != "") {
- PieManager.open_pie(open_pie);
- }
-
- // finished loading... so run the prog!
- message("Started happily...");
- hold();
- });
- }
-
- /////////////////////////////////////////////////////////////////////
- /// Call handle_command_line on program launch.
- /////////////////////////////////////////////////////////////////////
-
- protected override bool local_command_line(
- ref unowned string[] args, out int exit_status) {
-
- exit_status = 0;
-
- // copy command line
- string*[] _args = new string[args.length];
- for (int i = 0; i < args.length; i++) {
- _args[i] = args[i];
- }
- return handle_command_line(_args, false);
- }
-
- /////////////////////////////////////////////////////////////////////
- /// Call handle_command_line when a remote instance was launched.
- /////////////////////////////////////////////////////////////////////
-
- protected override int command_line(GLib.ApplicationCommandLine cmd) {
- if (handled_local_args) {
- string[] tmp = cmd.get_arguments();
- unowned string[] remote_args = tmp;
- handle_command_line(remote_args, true);
- }
- handled_local_args = true;
- return 0;
- }
-
- /////////////////////////////////////////////////////////////////////
- /// Print a nifty message when the prog is killed.
- /////////////////////////////////////////////////////////////////////
-
- private static void sig_handler(int sig) {
- stdout.printf("\n");
- message("Caught signal (%d), bye!".printf(sig));
- GLib.Application.get_default().release();
- }
-
- /////////////////////////////////////////////////////////////////////
- /// Print a nifty message when the prog is killed.
- /////////////////////////////////////////////////////////////////////
-
- private void init_pies() {
- if (!this.initialized) {
-
- // init static stuff
- ActionRegistry.init();
- GroupRegistry.init();
-
- // load all pies
- PieManager.init();
-
- // initialize icon cache
- Icon.init();
-
- this.initialized = true;
- }
- }
-
- /////////////////////////////////////////////////////////////////////
- /// Handles command line parameters.
- /////////////////////////////////////////////////////////////////////
-
- private bool handle_command_line(string[] args, bool called_from_remote) {
-
- var context = new GLib.OptionContext(" - Launches the pie menu for linux.");
- context.add_main_entries(options, null);
- context.add_group(Gtk.get_option_group(false));
-
- try {
- context.parse(ref args);
- } catch(GLib.OptionError error) {
- warning(error.message);
- message("Run '%s' to launch Gnome-Pie or run '%s --help' to" +
- " see a full list of available command line options.\n",
- args[0], args[0]);
- }
-
- if (reset) {
- if (GLib.FileUtils.remove(Paths.pie_config) == 0) {
- message("Removed file \"%s\"", Paths.pie_config);
- }
- if (GLib.FileUtils.remove(Paths.settings) == 0) {
- message("Removed file \"%s\"", Paths.settings);
- }
-
- // do not notify the already running instance (if any)
- return true;
- }
-
- if (print_ids) {
- this.init_pies();
- PieManager.print_ids();
- print_ids = false;
-
- // do not notify the already running instance (if any)
- return true;
- }
-
-
- if (called_from_remote) {
- if (open_pie != null && open_pie != "") {
- PieManager.open_pie(open_pie);
- } else {
- this.indicator.show_preferences();
- }
- }
-
- // notify the already running instance (if any)
- return false;
- }
-}
-
-}