forked from Alexays/Waybar
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Signed-off-by: Viktar Lukashonak <myxabeer@gmail.com>
- Loading branch information
1 parent
29917fb
commit 2ead1bb
Showing
8 changed files
with
574 additions
and
699 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,92 @@ | ||
#pragma once | ||
|
||
#include <giomm/dbusconnection.h> | ||
#include <gtkmm/icontheme.h> | ||
#include <libupower-glib/upower.h> | ||
|
||
#include <unordered_map> | ||
|
||
#include "AIconLabel.hpp" | ||
|
||
namespace waybar::modules { | ||
|
||
class UPower final : public AIconLabel { | ||
public: | ||
UPower(const std::string &, const Json::Value &); | ||
virtual ~UPower(); | ||
auto update() -> void override; | ||
|
||
private: | ||
const std::string NO_BATTERY{"battery-missing-symbolic"}; | ||
|
||
// Config | ||
bool showIcon_{true}; | ||
bool hideIfEmpty_{true}; | ||
int iconSize_{20}; | ||
int tooltip_spacing_{4}; | ||
int tooltip_padding_{4}; | ||
Gtk::Box contentBox_; // tooltip box | ||
std::string tooltipFormat_; | ||
|
||
// UPower device info | ||
struct upDevice_output { | ||
UpDevice *upDevice{NULL}; | ||
double percentage{0.0}; | ||
double temperature{0.0}; | ||
guint64 time_full{0u}; | ||
guint64 time_empty{0u}; | ||
gchar *icon_name{(char *)'\0'}; | ||
bool upDeviceValid{false}; | ||
UpDeviceState state; | ||
UpDeviceKind kind; | ||
char *nativePath{(char *)'\0'}; | ||
char *model{(char *)'\0'}; | ||
}; | ||
|
||
// Technical variables | ||
std::string nativePath_; | ||
std::string lastStatus_; | ||
Glib::ustring label_markup_; | ||
std::mutex mutex_; | ||
Glib::RefPtr<Gtk::IconTheme> gtkTheme_; | ||
|
||
// Technical functions | ||
void addDevice(UpDevice *); | ||
void removeDevice(const gchar *); | ||
void removeDevices(); | ||
void resetDevices(); | ||
void setDisplayDevice(); | ||
const Glib::ustring getText(const upDevice_output &upDevice_, const std::string &format); | ||
bool queryTooltipCb(int, int, bool, const Glib::RefPtr<Gtk::Tooltip> &); | ||
|
||
// DBUS variables | ||
guint watcherID_; | ||
Glib::RefPtr<Gio::DBus::Connection> conn_; | ||
guint subscrID_{0u}; | ||
|
||
// UPower variables | ||
UpClient *upClient_; | ||
upDevice_output upDevice_; // Device to display | ||
typedef std::unordered_map<std::string, upDevice_output> Devices; | ||
Devices devices_; | ||
bool upRunning_{true}; | ||
|
||
// DBus callbacks | ||
void getConn_cb(Glib::RefPtr<Gio::AsyncResult> &result); | ||
void onAppear(const Glib::RefPtr<Gio::DBus::Connection> &, const Glib::ustring &, | ||
const Glib::ustring &); | ||
void onVanished(const Glib::RefPtr<Gio::DBus::Connection> &, const Glib::ustring &); | ||
void prepareForSleep_cb(const Glib::RefPtr<Gio::DBus::Connection> &connection, | ||
const Glib::ustring &sender_name, const Glib::ustring &object_path, | ||
const Glib::ustring &interface_name, const Glib::ustring &signal_name, | ||
const Glib::VariantContainerBase ¶meters); | ||
|
||
// UPower callbacks | ||
static void deviceAdded_cb(UpClient *client, UpDevice *device, gpointer data); | ||
static void deviceRemoved_cb(UpClient *client, const gchar *objectPath, gpointer data); | ||
static void deviceNotify_cb(UpDevice *device, GParamSpec *pspec, gpointer user_data); | ||
// UPower secondary functions | ||
void getUpDeviceInfo(upDevice_output &upDevice_); | ||
}; | ||
|
||
} // namespace waybar::modules |
This file was deleted.
Oops, something went wrong.
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.