mirror of
				https://github.com/rad4day/Waybar.git
				synced 2025-10-24 22:52:32 +02:00 
			
		
		
		
	refactor: format tray && partial fix for #235
This commit is contained in:
		| @@ -1,42 +1,43 @@ | ||||
| #pragma once | ||||
|  | ||||
| #include <glibmm/refptr.h> | ||||
| #include <dbus-status-notifier-watcher.h> | ||||
| #include <giomm.h> | ||||
| #include <glibmm/refptr.h> | ||||
| #include <json/json.h> | ||||
| #include <tuple> | ||||
| #include <dbus-status-notifier-watcher.h> | ||||
| #include "modules/sni/item.hpp" | ||||
|  | ||||
| namespace waybar::modules::SNI { | ||||
|  | ||||
| class Host { | ||||
|   public: | ||||
|     Host(const std::size_t id, const Json::Value&, | ||||
|       const std::function<void(std::unique_ptr<Item>&)>&, | ||||
|       const std::function<void(std::unique_ptr<Item>&)>&); | ||||
|     ~Host(); | ||||
|   private: | ||||
|     void busAcquired(const Glib::RefPtr<Gio::DBus::Connection>&, Glib::ustring); | ||||
|     void nameAppeared(const Glib::RefPtr<Gio::DBus::Connection>&, Glib::ustring, const Glib::ustring&); | ||||
|     void nameVanished(const Glib::RefPtr<Gio::DBus::Connection>&, Glib::ustring); | ||||
|     static void proxyReady(GObject*, GAsyncResult*, gpointer); | ||||
|     static void registerHost(GObject*, GAsyncResult*, gpointer); | ||||
|     static void itemRegistered(SnWatcher*, const gchar*, gpointer); | ||||
|     static void itemUnregistered(SnWatcher*, const gchar*, gpointer); | ||||
|  public: | ||||
|   Host(const std::size_t id, const Json::Value&, const std::function<void(std::unique_ptr<Item>&)>&, | ||||
|        const std::function<void(std::unique_ptr<Item>&)>&); | ||||
|   ~Host(); | ||||
|  | ||||
|     std::tuple<std::string, std::string> getBusNameAndObjectPath(const std::string); | ||||
|     void addRegisteredItem(std::string service); | ||||
|  private: | ||||
|   void busAcquired(const Glib::RefPtr<Gio::DBus::Connection>&, Glib::ustring); | ||||
|   void nameAppeared(const Glib::RefPtr<Gio::DBus::Connection>&, Glib::ustring, | ||||
|                     const Glib::ustring&); | ||||
|   void nameVanished(const Glib::RefPtr<Gio::DBus::Connection>&, Glib::ustring); | ||||
|   static void proxyReady(GObject*, GAsyncResult*, gpointer); | ||||
|   static void registerHost(GObject*, GAsyncResult*, gpointer); | ||||
|   static void itemRegistered(SnWatcher*, const gchar*, gpointer); | ||||
|   static void itemUnregistered(SnWatcher*, const gchar*, gpointer); | ||||
|  | ||||
|     std::vector<std::unique_ptr<Item>> items_; | ||||
|     const std::string bus_name_; | ||||
|     const std::string object_path_; | ||||
|     std::size_t bus_name_id_; | ||||
|     std::size_t watcher_id_; | ||||
|     GCancellable* cancellable_ = nullptr; | ||||
|     SnWatcher* watcher_ = nullptr; | ||||
|     const Json::Value &config_; | ||||
|     const std::function<void(std::unique_ptr<Item>&)> on_add_; | ||||
|     const std::function<void(std::unique_ptr<Item>&)> on_remove_; | ||||
|   std::tuple<std::string, std::string> getBusNameAndObjectPath(const std::string); | ||||
|   void addRegisteredItem(std::string service); | ||||
|  | ||||
|   std::vector<std::unique_ptr<Item>> items_; | ||||
|   const std::string bus_name_; | ||||
|   const std::string object_path_; | ||||
|   std::size_t bus_name_id_; | ||||
|   std::size_t watcher_id_; | ||||
|   GCancellable* cancellable_ = nullptr; | ||||
|   SnWatcher* watcher_ = nullptr; | ||||
|   const Json::Value& config_; | ||||
|   const std::function<void(std::unique_ptr<Item>&)> on_add_; | ||||
|   const std::function<void(std::unique_ptr<Item>&)> on_remove_; | ||||
| }; | ||||
|  | ||||
| } | ||||
| }  // namespace waybar::modules::SNI | ||||
|   | ||||
| @@ -1,11 +1,11 @@ | ||||
| #pragma once | ||||
|  | ||||
| #include <dbus-status-notifier-item.h> | ||||
| #include <glibmm/refptr.h> | ||||
| #include <giomm/dbusproxy.h> | ||||
| #include <glibmm/refptr.h> | ||||
| #include <gtkmm/eventbox.h> | ||||
| #include <gtkmm/image.h> | ||||
| #include <gtkmm/icontheme.h> | ||||
| #include <gtkmm/image.h> | ||||
| #include <gtkmm/menu.h> | ||||
| #include <json/json.h> | ||||
| #include <libdbusmenu-gtk/dbusmenu-gtk.h> | ||||
| @@ -19,7 +19,7 @@ | ||||
| namespace waybar::modules::SNI { | ||||
|  | ||||
| class Item : public sigc::trackable { | ||||
| public: | ||||
|  public: | ||||
|   Item(std::string, std::string, const Json::Value&); | ||||
|   ~Item() = default; | ||||
|  | ||||
| @@ -44,24 +44,24 @@ public: | ||||
|   std::string attention_movie_name; | ||||
|   std::string icon_theme_path; | ||||
|   std::string menu; | ||||
|   DbusmenuGtkMenu *dbus_menu = nullptr; | ||||
|   Gtk::Menu *gtk_menu = nullptr; | ||||
|   DbusmenuGtkMenu* dbus_menu = nullptr; | ||||
|   Gtk::Menu* gtk_menu = nullptr; | ||||
|   bool item_is_menu; | ||||
|  | ||||
| private: | ||||
|  private: | ||||
|   void proxyReady(Glib::RefPtr<Gio::AsyncResult>& result); | ||||
|   void setProperty(const Glib::ustring& name, Glib::VariantBase& value); | ||||
|   void getUpdatedProperties(); | ||||
|   void processUpdatedProperties(Glib::RefPtr<Gio::AsyncResult>& result); | ||||
|   void onSignal(const Glib::ustring& sender_name, const Glib::ustring& signal_name, | ||||
|       const Glib::VariantContainerBase& arguments); | ||||
|                 const Glib::VariantContainerBase& arguments); | ||||
|  | ||||
|   void updateImage(); | ||||
|   Glib::RefPtr<Gdk::Pixbuf> extractPixBuf(GVariant *variant); | ||||
|   Glib::RefPtr<Gdk::Pixbuf> extractPixBuf(GVariant* variant); | ||||
|   Glib::RefPtr<Gdk::Pixbuf> getIconByName(std::string name, int size); | ||||
|   static void onMenuDestroyed(Item *self); | ||||
|   bool makeMenu(GdkEventButton *const &ev); | ||||
|   bool handleClick(GdkEventButton *const & /*ev*/); | ||||
|   static void onMenuDestroyed(Item* self); | ||||
|   bool makeMenu(GdkEventButton* const& ev); | ||||
|   bool handleClick(GdkEventButton* const& /*ev*/); | ||||
|  | ||||
|   Glib::RefPtr<Gio::Cancellable> cancellable_; | ||||
|   Glib::RefPtr<Gio::DBus::Proxy> proxy_; | ||||
| @@ -69,4 +69,4 @@ private: | ||||
|   bool update_pending_; | ||||
| }; | ||||
|  | ||||
| } // namespace waybar::modules::SNI | ||||
| }  // namespace waybar::modules::SNI | ||||
|   | ||||
| @@ -1,29 +1,30 @@ | ||||
| #pragma once | ||||
|  | ||||
| #include <fmt/format.h> | ||||
| #include "bar.hpp" | ||||
| #include "util/json.hpp" | ||||
| #include "IModule.hpp" | ||||
| #include "modules/sni/watcher.hpp" | ||||
| #include "bar.hpp" | ||||
| #include "modules/sni/host.hpp" | ||||
| #include "modules/sni/watcher.hpp" | ||||
| #include "util/json.hpp" | ||||
|  | ||||
| namespace waybar::modules::SNI { | ||||
|  | ||||
| class Tray : public IModule { | ||||
|   public: | ||||
|     Tray(const std::string&, const Bar&, const Json::Value&); | ||||
|     ~Tray() = default; | ||||
|     auto update() -> void; | ||||
|     operator Gtk::Widget &(); | ||||
|   private: | ||||
|     void onAdd(std::unique_ptr<Item>& item); | ||||
|     void onRemove(std::unique_ptr<Item>& item); | ||||
|  public: | ||||
|   Tray(const std::string&, const Bar&, const Json::Value&); | ||||
|   ~Tray() = default; | ||||
|   auto update() -> void; | ||||
|   operator Gtk::Widget&(); | ||||
|  | ||||
|     static inline std::size_t nb_hosts_ = 0; | ||||
|     const Json::Value& config_; | ||||
|     Gtk::Box box_; | ||||
|     SNI::Watcher watcher_ ; | ||||
|     SNI::Host host_; | ||||
|  private: | ||||
|   void onAdd(std::unique_ptr<Item>& item); | ||||
|   void onRemove(std::unique_ptr<Item>& item); | ||||
|  | ||||
|   static inline std::size_t nb_hosts_ = 0; | ||||
|   const Json::Value& config_; | ||||
|   Gtk::Box box_; | ||||
|   SNI::Watcher watcher_; | ||||
|   SNI::Host host_; | ||||
| }; | ||||
|  | ||||
| } | ||||
| }  // namespace waybar::modules::SNI | ||||
|   | ||||
| @@ -1,17 +1,17 @@ | ||||
| #pragma once | ||||
|  | ||||
| #include <dbus-status-notifier-watcher.h> | ||||
| #include <giomm.h> | ||||
| #include <glibmm/refptr.h> | ||||
| #include <dbus-status-notifier-watcher.h> | ||||
|  | ||||
| namespace waybar::modules::SNI { | ||||
|  | ||||
| class Watcher { | ||||
| public: | ||||
|  public: | ||||
|   Watcher(); | ||||
|   ~Watcher() = default; | ||||
|   ~Watcher(); | ||||
|  | ||||
| private: | ||||
|  private: | ||||
|   typedef enum { GF_WATCH_TYPE_HOST, GF_WATCH_TYPE_ITEM } GfWatchType; | ||||
|  | ||||
|   typedef struct { | ||||
| @@ -23,17 +23,13 @@ private: | ||||
|     guint watch_id; | ||||
|   } GfWatch; | ||||
|  | ||||
|   void busAcquired(const Glib::RefPtr<Gio::DBus::Connection>&, Glib::ustring); | ||||
|   static gboolean handleRegisterHost(Watcher *, GDBusMethodInvocation *, | ||||
|                                      const gchar *); | ||||
|   static gboolean handleRegisterItem(Watcher *, GDBusMethodInvocation *, | ||||
|                                      const gchar *); | ||||
|   static GfWatch *gfWatchFind(GSList *list, const gchar *bus_name, | ||||
|                               const gchar *object_path); | ||||
|   static GfWatch *gfWatchNew(GfWatchType, const gchar *, const gchar *, | ||||
|                              const gchar *, Watcher *); | ||||
|   static void nameVanished(GDBusConnection *connection, const char *name, | ||||
|                            gpointer data); | ||||
|   void busAcquired(const Glib::RefPtr<Gio::DBus::Connection> &, Glib::ustring); | ||||
|   static gboolean handleRegisterHost(Watcher *, GDBusMethodInvocation *, const gchar *); | ||||
|   static gboolean handleRegisterItem(Watcher *, GDBusMethodInvocation *, const gchar *); | ||||
|   static GfWatch *gfWatchFind(GSList *list, const gchar *bus_name, const gchar *object_path); | ||||
|   static GfWatch *gfWatchNew(GfWatchType, const gchar *, const gchar *, const gchar *, Watcher *); | ||||
|   static void nameVanished(GDBusConnection *connection, const char *name, gpointer data); | ||||
|   static void gfWatchFree(gpointer data); | ||||
|  | ||||
|   void updateRegisteredItems(SnWatcher *obj); | ||||
|  | ||||
| @@ -42,7 +38,8 @@ private: | ||||
|   GSList *hosts_ = nullptr; | ||||
|   GSList *items_ = nullptr; | ||||
|   SnWatcher *watcher_ = nullptr; | ||||
|   gulong handler_item_id_; | ||||
|   gulong handler_host_id_; | ||||
| }; | ||||
|  | ||||
| } // namespace waybar::modules::SNI | ||||
|  | ||||
| }  // namespace waybar::modules::SNI | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Alex
					Alex