Back to index

unity  6.0.0
UnitySettings.h
Go to the documentation of this file.
00001 // -*- Mode: C++; indent-tabs-mode: nil; tab-width: 2 -*-
00002 /*
00003 * Copyright (C) 2010, 2011 Canonical Ltd
00004 *
00005 * This program is free software: you can redistribute it and/or modify
00006 * it under the terms of the GNU General Public License version 3 as
00007 * published by the Free Software Foundation.
00008 *
00009 * This program is distributed in the hope that it will be useful,
00010 * but WITHOUT ANY WARRANTY; without even the implied warranty of
00011 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012 * GNU General Public License for more details.
00013 *
00014 * You should have received a copy of the GNU General Public License
00015 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
00016 *
00017 * Authored by: Neil Jagdish Patel <neil.patel@canonical.com>
00018 */
00019 
00020 #ifndef UNITY_SETTINGS_H
00021 #define UNITY_SETTINGS_H
00022 
00023 #include <sigc++/signal.h>
00024 #include <Nux/Nux.h>
00025 
00026 namespace unity
00027 {
00028 
00029 enum class FormFactor
00030 {
00031   DESKTOP = 1,
00032   NETBOOK = 2,
00033   TV
00034 };
00035 
00036 class Settings
00037 {
00038 public:
00039   Settings();
00040   ~Settings();
00041 
00042   static Settings& Instance();
00043 
00044   // NOTE: could potentially refactor this into a nux::Property
00045   FormFactor GetFormFactor() const;
00046   void SetFormFactor(FormFactor factor);
00047 
00048   nux::Property<bool> is_standalone;
00049   sigc::signal<void> changed;
00050 
00051 private:
00052   class Impl;
00053   Impl* pimpl;
00054 };
00055 
00056 }
00057 
00058 #endif // UNITY_SETTINGS_H