The Battle for Wesnoth 1.21.0-dev
 
Loading...
Searching...
No Matches
notifications.cpp
Go to the documentation of this file.
1/*
2 Copyright (C) 2003 - 2025
3 by David White <dave@whitevine.net>
4 Part of the Battle for Wesnoth Project https://www.wesnoth.org/
5
6 This program is free software; you can redistribute it and/or modify
7 it under the terms of the GNU General Public License as published by
8 the Free Software Foundation; either version 2 of the License, or
9 (at your option) any later version.
10 This program is distributed in the hope that it will be useful,
11 but WITHOUT ANY WARRANTY.
12
13 See the COPYING file for more details.
14*/
15
17
18#include "gettext.hpp"
19
20#include "video.hpp" // window_has_flags()
21
22#ifdef HAVE_LIBDBUS
24#endif
25
26#ifdef __APPLE__
28#endif
29
30#ifdef _WIN32
32#endif
33
34namespace desktop {
35
36namespace notifications {
37
38#if !(defined(HAVE_LIBDBUS) || defined(__APPLE__) || defined(_WIN32))
39
40bool available() { return false; }
41
42void send(const std::string& /*owner*/, const std::string& /*message*/, type /*t*/)
43{}
44
45#else
46
47bool available()
48{
49#ifdef __APPLE__
51#else
52 return true;
53#endif
54}
55
56void send(const std::string& owner, const std::string& message, type t)
57{
58 // Do not show notifications when the window is visible and has focus
60 return;
61 }
62
63#ifdef HAVE_LIBDBUS
64 dbus::send_notification(owner, message, t == CHAT);
65#endif
66
67#ifdef __APPLE__
69#endif
70
71#ifdef _WIN32
72 std::string notification_title;
73 std::string notification_message;
74
75 switch (t) {
76 case CHAT:
77 notification_title = _("Chat message");
78 notification_message = owner + ": " + message;
79 break;
80 case TURN_CHANGED:
81 case OTHER:
82 notification_title = owner;
83 notification_message = message;
84 break;
85 }
86
87 windows_tray_notification::show(notification_title, notification_message);
88#endif
89}
90#endif //end #else (defined(HAVE_LIBDBUS) || defined(_WIN32))
91
92} //end namespace notifications
93
94} //end namespace desktop
double t
static std::string _(const char *str)
Definition gettext.hpp:100
void send_notification(const std::string &owner, const std::string &message, const desktop::notifications::type note_type)
void send_notification(const std::string &owner, const std::string &message, bool with_history)
bool available()
Returns whether we were compiled with support for desktop notifications.
void send(const std::string &, const std::string &, type)
Displays a desktop notification message, from owner, of type t.
bool window_is_visible()
True iff the window is not hidden.
Definition video.cpp:750
bool window_has_focus()
True iff the window has mouse or input focus.
Definition video.cpp:755
bool show(std::string title, std::string message)
Displays a tray notification.