PieDock 1.6.0

src/Application.h

00001 /*
00002  *   O         ,-
00003  *  ° o    . -´  '     ,-
00004  *   °  .´        ` . ´,´
00005  *     ( °   ))     . (
00006  *      `-;_    . -´ `.`.
00007  *          `._'       ´
00008  *
00009  * Copyright (c) 2007-2010 Markus Fisch <mf@markusfisch.de>
00010  *
00011  * Licensed under the MIT license:
00012  * http://www.opensource.org/licenses/mit-license.php
00013  */
00014 #ifndef _PieDock_Application_
00015 #define _PieDock_Application_
00016 
00017 #include <X11/Xlib.h>
00018 #include <string>
00019 
00020 #include "Settings.h"
00021 
00022 namespace PieDock
00023 {
00029     class Application
00030     {
00031         public:
00032             Application( Settings & );
00033             virtual ~Application();
00034             inline Display *getDisplay() const { return display; }
00035             inline Settings *getSettings() { return settings; }
00036 
00037             bool remote( const char * = 0 ) const;
00038             int run( bool * );
00039 
00040         private:
00041             static const char StopMarker;
00042             static const char *Show;
00043 
00044             enum PulseBeats
00045             {
00046                 StandBy = 0,
00047                 Active = 10000
00048             };
00049 
00050             enum
00051             {
00052                 UnixPathMax = 108
00053             };
00054 
00055             Display *display;
00056             Window root;
00057             Settings *settings;
00058             int suspend;
00059             std::string socketFile;
00060 
00061             void grabTriggers();
00062             void ungrabTriggers();
00063     };
00064 }
00065 
00066 #endif