1 #ifndef WF_PANEL_HPP 2 #define WF_PANEL_HPP 3 4 #include <memory> 5 #include <wayland-client.h> 6 #include <gtkmm/window.h> 7 8 #include "wf-shell-app.hpp" 9 10 class WayfirePanel 11 { 12 public: 13 WayfirePanel(WayfireOutput *output); 14 15 wl_surface *get_wl_surface(); 16 Gtk::Window& get_window(); 17 void handle_config_reload(); 18 19 private: 20 class impl; 21 std::unique_ptr<impl> pimpl; 22 }; 23 24 class WayfirePanelApp : public WayfireShellApp 25 { 26 public: 27 WayfirePanel* panel_for_wl_output(wl_output *output); 28 static WayfirePanelApp& get(); 29 30 /* Starts the program. get() is valid afterward the first (and the only) 31 * call to create() */ 32 static void create(int argc, char **argv); 33 ~WayfirePanelApp(); 34 35 void handle_new_output(WayfireOutput *output) override; 36 void handle_output_removed(WayfireOutput *output) override; 37 void on_config_reload() override; 38 39 private: 40 WayfirePanelApp(int argc, char **argv); 41 42 class impl; 43 std::unique_ptr<impl> priv; 44 }; 45 46 #endif /* end of include guard: WF_PANEL_HPP */ 47 48