mirror of
				https://github.com/rad4day/Waybar.git
				synced 2025-10-31 16:02:43 +01:00 
			
		
		
		
	Merge branch 'master' into YearCalendar
Signed-off-by: Viktar Lukashonak <myxabeer@gmail.com>
This commit is contained in:
		| @@ -1,19 +1,25 @@ | ||||
| #pragma once | ||||
|  | ||||
| #include <date/tz.h> | ||||
|  | ||||
| #include "ALabel.hpp" | ||||
| #include "util/date.hpp" | ||||
| #include "util/sleeper_thread.hpp" | ||||
|  | ||||
| namespace waybar { | ||||
|  | ||||
| struct waybar_time; | ||||
|  | ||||
| namespace modules { | ||||
| namespace waybar::modules { | ||||
|  | ||||
| const std::string kCalendarPlaceholder = "calendar"; | ||||
| const std::string KTimezonedTimeListPlaceholder = "timezoned_time_list"; | ||||
|  | ||||
| enum class WeeksSide { | ||||
|   LEFT, | ||||
|   RIGHT, | ||||
|   HIDDEN, | ||||
| }; | ||||
|  | ||||
| enum class CldMode { | ||||
|   MONTH, | ||||
|   YEAR | ||||
| }; | ||||
|  | ||||
| class Clock : public ALabel { | ||||
|  public: | ||||
|   Clock(const std::string&, const Json::Value&); | ||||
| @@ -22,26 +28,37 @@ class Clock : public ALabel { | ||||
|  | ||||
|  private: | ||||
|   util::SleeperThread thread_; | ||||
|   std::map<std::pair<uint, GdkEventType>, void (waybar::modules::Clock::*)()> eventMap_; | ||||
|   std::locale locale_; | ||||
|   std::vector<const date::time_zone*> time_zones_; | ||||
|   int current_time_zone_idx_; | ||||
|   date::year_month_day calendar_cached_ymd_{date::January / 1 / 0}; | ||||
|   date::months calendar_shift_{0}, calendar_shift_init_{0}; | ||||
|   std::string calendar_cached_text_; | ||||
|   bool is_calendar_in_tooltip_; | ||||
|   bool is_timezoned_list_in_tooltip_; | ||||
|  | ||||
|   bool handleScroll(GdkEventScroll* e); | ||||
|   bool handleToggle(GdkEventButton* const& e); | ||||
|  | ||||
|   std::string fmt_str_weeks_; | ||||
|   std::string fmt_str_calendar_; | ||||
|   int fmt_weeks_left_pad_{0}; | ||||
|   auto calendar_text(const waybar_time& wtime) -> std::string; | ||||
|   auto weekdays_header(const date::weekday& first_dow, std::ostream& os) -> void; | ||||
|   auto first_day_of_week() -> date::weekday; | ||||
|   const date::time_zone* current_timezone(); | ||||
|   bool is_timezone_fixed(); | ||||
|   auto timezones_text(std::chrono::system_clock::time_point* now) -> std::string; | ||||
|  | ||||
|   /*Calendar properties*/ | ||||
|   WeeksSide cldWPos_{WeeksSide::HIDDEN}; | ||||
|   std::map<int, std::string const> fmtMap_; | ||||
|   CldMode cldMode_{CldMode::MONTH}; | ||||
|   uint cldMonCols_{3}; // Count of the month in the row | ||||
|   int cldMonColLen_{20}; // Length of the month column | ||||
|   int cldWnLen_{2}; // Length of the week number | ||||
|   date::year_month_day cldYearShift_; | ||||
|   date::year_month cldMonShift_; | ||||
|   date::months cldCurrShift_{0}; | ||||
|   date::months cldShift_{0}; | ||||
|   std::string cldYearCached_{}; | ||||
|   std::string cldMonCached_{}; | ||||
|   /*Calendar functions*/ | ||||
|   auto get_calendar(const date::zoned_seconds& now, | ||||
|                     const date::zoned_seconds& wtime) -> std::string; | ||||
|   void cldModeSwitch(); | ||||
| }; | ||||
| }  // namespace modules | ||||
| }  // namespace waybar | ||||
| }  // namespace waybar::modules | ||||
|   | ||||
| @@ -8,6 +8,7 @@ | ||||
| #include <cstring> | ||||
| #include <memory> | ||||
| #include <mutex> | ||||
| #include <string> | ||||
|  | ||||
| #include "ipc.hpp" | ||||
| #include "util/sleeper_thread.hpp" | ||||
|   | ||||
| @@ -4,6 +4,7 @@ | ||||
| #include <gtkmm/button.h> | ||||
| #include <gtkmm/label.h> | ||||
|  | ||||
| #include <string_view> | ||||
| #include <unordered_map> | ||||
|  | ||||
| #include "AModule.hpp" | ||||
| @@ -21,7 +22,9 @@ class Workspaces : public AModule, public sigc::trackable { | ||||
|   auto update() -> void; | ||||
|  | ||||
|  private: | ||||
|   static inline const std::string workspace_switch_cmd_ = "workspace {} \"{}\""; | ||||
|   static constexpr std::string_view workspace_switch_cmd_ = "workspace {} \"{}\""; | ||||
|   static constexpr std::string_view persistent_workspace_switch_cmd_ = | ||||
|       R"(workspace {} "{}"; move workspace to output "{}"; workspace {} "{}")"; | ||||
|  | ||||
|   static int convertWorkspaceNameToNum(std::string name); | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user
	 Viktar Lukashonak
					Viktar Lukashonak