Waybar/include/factory.hpp

123 lines
2.8 KiB
C++
Raw Normal View History

2018-08-09 10:05:48 +00:00
#pragma once
#include <json/json.h>
#if defined(HAVE_CHRONO_TIMEZONES) || defined(HAVE_LIBDATE)
2018-08-09 10:05:48 +00:00
#include "modules/clock.hpp"
#else
#include "modules/simpleclock.hpp"
#endif
2018-08-20 15:20:02 +00:00
#ifdef HAVE_SWAY
2022-04-06 06:37:19 +00:00
#include "modules/sway/language.hpp"
2018-10-30 12:39:30 +00:00
#include "modules/sway/mode.hpp"
#include "modules/sway/scratchpad.hpp"
2018-08-15 18:17:17 +00:00
#include "modules/sway/window.hpp"
2019-04-18 15:52:00 +00:00
#include "modules/sway/workspaces.hpp"
2018-08-20 15:20:02 +00:00
#endif
#ifdef HAVE_WLR_TASKBAR
#include "modules/wlr/taskbar.hpp"
#endif
#ifdef HAVE_WLR_WORKSPACES
2020-08-05 20:10:08 +00:00
#include "modules/wlr/workspace_manager.hpp"
#endif
2020-06-06 13:41:37 +00:00
#ifdef HAVE_RIVER
2023-04-03 07:41:24 +00:00
#include "modules/river/layout.hpp"
#include "modules/river/mode.hpp"
2020-06-06 13:41:37 +00:00
#include "modules/river/tags.hpp"
2022-05-19 19:20:04 +00:00
#include "modules/river/window.hpp"
2020-06-06 13:41:37 +00:00
#endif
2023-04-11 01:50:21 +00:00
#ifdef HAVE_DWL
#include "modules/dwl/tags.hpp"
#endif
2022-07-01 10:46:28 +00:00
#ifdef HAVE_HYPRLAND
#include "modules/hyprland/backend.hpp"
2022-08-18 16:00:27 +00:00
#include "modules/hyprland/language.hpp"
2022-12-21 00:45:57 +00:00
#include "modules/hyprland/submap.hpp"
2023-01-04 15:26:50 +00:00
#include "modules/hyprland/window.hpp"
2023-06-27 23:52:01 +00:00
#include "modules/hyprland/workspaces.hpp"
2022-07-01 10:46:28 +00:00
#endif
#if defined(__FreeBSD__) || defined(__linux__)
2018-08-09 10:05:48 +00:00
#include "modules/battery.hpp"
#endif
2019-08-11 13:10:37 +00:00
#if defined(HAVE_CPU_LINUX) || defined(HAVE_CPU_BSD)
2018-08-09 10:05:48 +00:00
#include "modules/cpu.hpp"
2022-12-21 16:45:53 +00:00
#include "modules/cpu_frequency.hpp"
2022-12-21 16:47:06 +00:00
#include "modules/cpu_usage.hpp"
#include "modules/load.hpp"
2019-08-11 13:10:37 +00:00
#endif
2019-04-18 15:52:00 +00:00
#include "modules/idle_inhibitor.hpp"
2019-08-09 10:40:33 +00:00
#if defined(HAVE_MEMORY_LINUX) || defined(HAVE_MEMORY_BSD)
2019-04-18 15:52:00 +00:00
#include "modules/memory.hpp"
2019-08-09 10:40:33 +00:00
#endif
2019-09-23 20:25:54 +00:00
#include "modules/disk.hpp"
2019-08-11 15:23:37 +00:00
#ifdef HAVE_DBUSMENU
#include "modules/sni/tray.hpp"
2018-10-25 17:12:28 +00:00
#endif
#ifdef HAVE_MPRIS
#include "modules/mpris/mpris.hpp"
#endif
2018-08-20 15:20:02 +00:00
#ifdef HAVE_LIBNL
2018-08-09 14:38:24 +00:00
#include "modules/network.hpp"
2018-08-20 15:20:02 +00:00
#endif
#ifdef HAVE_LIBUDEV
#include "modules/backlight.hpp"
#endif
2021-02-07 20:05:11 +00:00
#ifdef HAVE_LIBEVDEV
#include "modules/keyboard_state.hpp"
#endif
2022-05-13 19:30:45 +00:00
#ifdef HAVE_GAMEMODE
#include "modules/gamemode.hpp"
#endif
2022-03-15 16:54:06 +00:00
#ifdef HAVE_UPOWER
2022-03-19 10:34:34 +00:00
#include "modules/upower/upower.hpp"
2022-03-15 16:54:06 +00:00
#endif
2023-10-26 21:08:57 +00:00
#ifdef HAVE_PIPEWIRE
#include "modules/privacy/privacy.hpp"
#endif
2018-08-20 15:20:02 +00:00
#ifdef HAVE_LIBPULSE
2018-08-09 21:55:38 +00:00
#include "modules/pulseaudio.hpp"
2018-08-20 15:20:02 +00:00
#endif
2019-04-16 14:34:37 +00:00
#ifdef HAVE_LIBMPDCLIENT
#include "modules/mpd/mpd.hpp"
2019-04-16 14:34:37 +00:00
#endif
#ifdef HAVE_LIBSNDIO
#include "modules/sndio.hpp"
2019-04-16 14:34:37 +00:00
#endif
#if defined(__linux__)
2022-05-02 16:11:21 +00:00
#include "modules/bluetooth.hpp"
#endif
#ifdef HAVE_LOGIND_INHIBITOR
2022-05-06 15:01:43 +00:00
#include "modules/inhibitor.hpp"
#endif
#ifdef HAVE_LIBJACK
#include "modules/jack.hpp"
#endif
#ifdef HAVE_LIBWIREPLUMBER
#include "modules/wireplumber.hpp"
#endif
#ifdef HAVE_LIBCAVA
#include "modules/cava.hpp"
#endif
2024-01-09 10:05:17 +00:00
#ifdef HAVE_SYSTEMD_MONITOR
#include "modules/systemd_failed_units.hpp"
#endif
#include "bar.hpp"
#include "modules/cffi.hpp"
2019-04-18 15:52:00 +00:00
#include "modules/custom.hpp"
#include "modules/image.hpp"
2019-04-18 15:52:00 +00:00
#include "modules/temperature.hpp"
2022-10-18 07:01:45 +00:00
#include "modules/user.hpp"
2018-08-09 10:05:48 +00:00
namespace waybar {
2018-08-16 12:29:41 +00:00
class Factory {
2019-04-18 15:52:00 +00:00
public:
Factory(const Bar& bar, const Json::Value& config);
2023-10-26 21:08:57 +00:00
AModule* makeModule(const std::string& name, const std::string& pos) const;
2019-04-18 15:52:00 +00:00
private:
2022-04-06 06:37:19 +00:00
const Bar& bar_;
2019-04-18 15:52:00 +00:00
const Json::Value& config_;
2018-08-16 12:29:41 +00:00
};
2018-08-09 10:05:48 +00:00
2019-04-18 15:52:00 +00:00
} // namespace waybar