summaryrefslogtreecommitdiff
path: root/timerapplet
diff options
context:
space:
mode:
Diffstat (limited to 'timerapplet')
-rw-r--r--timerapplet/Makefile.am72
-rw-r--r--timerapplet/data/Makefile.am54
-rw-r--r--timerapplet/data/org.mate.applets.TimerApplet.mate-panel-applet.desktop.in.in (renamed from timerapplet/org.mate.applets.TimerApplet.mate-panel-applet.desktop.in.in)4
-rw-r--r--timerapplet/data/org.mate.panel.applet.TimerAppletFactory.service.in (renamed from timerapplet/org.mate.panel.applet.TimerAppletFactory.service.in)2
-rw-r--r--timerapplet/data/org.mate.panel.applet.timer.gschema.xml.in (renamed from timerapplet/org.mate.panel.applet.timer.gschema.xml.in)0
-rw-r--r--timerapplet/data/timerapplet-preferences.ui (renamed from timerapplet/timerapplet-preferences.ui)0
-rw-r--r--timerapplet/data/timerapplet-resources.gresource.xml (renamed from timerapplet/timerapplet-resources.gresource.xml)0
-rw-r--r--timerapplet/src/Makefile.am50
-rw-r--r--timerapplet/src/timerapplet.c (renamed from timerapplet/timerapplet.c)76
9 files changed, 161 insertions, 97 deletions
diff --git a/timerapplet/Makefile.am b/timerapplet/Makefile.am
index 520c9553..5d55ad08 100644
--- a/timerapplet/Makefile.am
+++ b/timerapplet/Makefile.am
@@ -1,73 +1,3 @@
-NULL =
-
-AM_CPPFLAGS = \
- $(MATE_APPLETS4_CFLAGS) \
- $(LIBNOTIFY_CFLAGS) \
- -I$(srcdir) \
- $(DISABLE_DEPRECATED_CFLAGS)
-
-APPLET_LOCATION = $(libexecdir)/timer-applet
-
-libexec_PROGRAMS = timer-applet
-
-BUILT_SOURCES = timerapplet-resources.c timerapplet-resources.h
-nodist_timer_applet_SOURCES = $(BUILT_SOURCES)
-timer_applet_SOURCES = \
- timerapplet.c \
- $(NULL)
-
-timer_applet_LDADD = \
- $(MATE_APPLETS4_LIBS) \
- $(LIBNOTIFY_LIBS) \
- $(NULL)
-
-timer_applet_CFLAGS = $(WARN_CFLAGS)
-
-timerapplet-resources.c: timerapplet-resources.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/timerapplet-resources.gresource.xml)
- $(AM_V_GEN)$(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate --c-name timerapplet $<
-
-timerapplet-resources.h: timerapplet-resources.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir) --generate-dependencies $(srcdir)/timerapplet-resources.gresource.xml)
- $(AM_V_GEN)$(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir) --generate --c-name timerapplet $<
-
-appletsdir = $(datadir)/mate-panel/applets
-applets_in_files = org.mate.applets.TimerApplet.mate-panel-applet.desktop.in
-applets_DATA = $(applets_in_files:.mate-panel-applet.desktop.in=.mate-panel-applet)
-
-$(applets_in_files): $(applets_in_files).in Makefile
- $(AM_V_GEN)sed \
- -e "s|\@LOCATION\@|$(APPLET_LOCATION)|" \
- $< > $@
-$(applets_DATA): $(applets_in_files) Makefile
- $(AM_V_GEN) $(MSGFMT) --desktop --keyword=Name --keyword=Description --template $< -d $(top_srcdir)/po -o $@
-
-servicedir = $(datadir)/dbus-1/services
-service_in_files = org.mate.panel.applet.TimerAppletFactory.service.in
-service_DATA = $(service_in_files:.service.in=.service)
-
-org.mate.panel.applet.TimerAppletFactory.service: $(service_in_files)
- $(AM_V_GEN)sed \
- -e "s|\@LOCATION\@|$(APPLET_LOCATION)|" \
- $< > $@
-
-timer_gschema_in_files = org.mate.panel.applet.timer.gschema.xml.in
-gsettings_SCHEMAS = $(timer_gschema_in_files:.xml.in=.xml)
-@GSETTINGS_RULES@
-
-EXTRA_DIST = \
- $(applets_in_files).in \
- $(service_in_files) \
- $(timer_gschema_in_files) \
- timerapplet-preferences.ui \
- timerapplet-resources.gresource.xml \
- $(NULL)
-
-CLEANFILES = \
- $(BUILT_SOURCES) \
- $(applets_DATA) \
- $(applets_in_files) \
- $(service_DATA) \
- $(gsettings_SCHEMAS) \
- *.gschema.valid \
- $(NULL)
+SUBDIRS = data src
-include $(top_srcdir)/git.mk
diff --git a/timerapplet/data/Makefile.am b/timerapplet/data/Makefile.am
new file mode 100644
index 00000000..ae0139b6
--- /dev/null
+++ b/timerapplet/data/Makefile.am
@@ -0,0 +1,54 @@
+NULL =
+
+applets_in_files = org.mate.applets.TimerApplet.mate-panel-applet.desktop.in
+service_in_files = org.mate.panel.applet.TimerAppletFactory.service.in
+gschema_in_files = org.mate.panel.applet.timer.gschema.xml.in
+
+if ENABLE_IN_PROCESS
+APPLET_LOCATION = $(pkglibdir)/libmate-timer-applet.so
+else !ENABLE_IN_PROCESS
+APPLET_LOCATION = $(libexecdir)/timer-applet
+endif !ENABLE_IN_PROCESS
+
+appletsdir = $(datadir)/mate-panel/applets
+applets_DATA = $(applets_in_files:.mate-panel-applet.desktop.in=.mate-panel-applet)
+
+$(applets_in_files): $(applets_in_files).in Makefile
+ $(AM_V_GEN)sed \
+ -e "s|\@APPLET_LOCATION\@|$(APPLET_LOCATION)|" \
+ -e "s|\@APPLET_IN_PROCESS\@|$(APPLET_IN_PROCESS)|" \
+ $< > $@
+
+$(applets_DATA): $(applets_in_files) Makefile
+ $(AM_V_GEN) $(MSGFMT) --desktop --keyword=Name --keyword=Description --template $< -d $(top_srcdir)/po -o $@
+
+if !ENABLE_IN_PROCESS
+servicedir = $(datadir)/dbus-1/services
+service_DATA = $(service_in_files:.service.in=.service)
+
+$(service_DATA): $(service_in_files) Makefile
+ $(AM_V_GEN)sed \
+ -e "s|\@APPLET_LOCATION\@|$(APPLET_LOCATION)|" \
+ $< > $@
+endif !ENABLE_IN_PROCESS
+
+gsettings_SCHEMAS = $(gschema_in_files:.xml.in=.xml)
+@GSETTINGS_RULES@
+
+EXTRA_DIST = \
+ $(applets_in_files).in \
+ $(service_in_files) \
+ $(gschema_in_files) \
+ timerapplet-preferences.ui \
+ timerapplet-resources.gresource.xml \
+ $(NULL)
+
+CLEANFILES = \
+ $(applets_DATA) \
+ $(applets_in_files) \
+ $(service_DATA) \
+ $(gsettings_SCHEMAS) \
+ *.gschema.valid \
+ $(NULL)
+
+-include $(top_srcdir)/git.mk
diff --git a/timerapplet/org.mate.applets.TimerApplet.mate-panel-applet.desktop.in.in b/timerapplet/data/org.mate.applets.TimerApplet.mate-panel-applet.desktop.in.in
index a111eb28..53fdd9ea 100644
--- a/timerapplet/org.mate.applets.TimerApplet.mate-panel-applet.desktop.in.in
+++ b/timerapplet/data/org.mate.applets.TimerApplet.mate-panel-applet.desktop.in.in
@@ -1,11 +1,13 @@
[Applet Factory]
Id=TimerAppletFactory
-Location=@LOCATION@
+Location=@APPLET_LOCATION@
+InProcess=@APPLET_IN_PROCESS@
Name=Timer Factory
Description=Timer Factory
[TimerApplet]
Name=Timer
Description=Start a timer and receive a notification when it is finished
+Platforms=X11;Wayland;
# Translators: Do NOT translate or transliterate this text (this is an icon file name)!
Icon=mate-panel-clock
diff --git a/timerapplet/org.mate.panel.applet.TimerAppletFactory.service.in b/timerapplet/data/org.mate.panel.applet.TimerAppletFactory.service.in
index b8cd68cc..6e9f0a84 100644
--- a/timerapplet/org.mate.panel.applet.TimerAppletFactory.service.in
+++ b/timerapplet/data/org.mate.panel.applet.TimerAppletFactory.service.in
@@ -1,3 +1,3 @@
[D-BUS Service]
Name=org.mate.panel.applet.TimerAppletFactory
-Exec=@LOCATION@
+Exec=@APPLET_LOCATION@
diff --git a/timerapplet/org.mate.panel.applet.timer.gschema.xml.in b/timerapplet/data/org.mate.panel.applet.timer.gschema.xml.in
index 1201c8a6..1201c8a6 100644
--- a/timerapplet/org.mate.panel.applet.timer.gschema.xml.in
+++ b/timerapplet/data/org.mate.panel.applet.timer.gschema.xml.in
diff --git a/timerapplet/timerapplet-preferences.ui b/timerapplet/data/timerapplet-preferences.ui
index 04e13e7d..04e13e7d 100644
--- a/timerapplet/timerapplet-preferences.ui
+++ b/timerapplet/data/timerapplet-preferences.ui
diff --git a/timerapplet/timerapplet-resources.gresource.xml b/timerapplet/data/timerapplet-resources.gresource.xml
index 71b7915a..71b7915a 100644
--- a/timerapplet/timerapplet-resources.gresource.xml
+++ b/timerapplet/data/timerapplet-resources.gresource.xml
diff --git a/timerapplet/src/Makefile.am b/timerapplet/src/Makefile.am
new file mode 100644
index 00000000..75688baa
--- /dev/null
+++ b/timerapplet/src/Makefile.am
@@ -0,0 +1,50 @@
+NULL =
+
+AM_CPPFLAGS = \
+ $(MATE_APPLETS4_CFLAGS) \
+ $(LIBNOTIFY_CFLAGS) \
+ -I$(srcdir) \
+ $(DISABLE_DEPRECATED_CFLAGS) \
+ $(NULL)
+
+AM_CFLAGS = $(WARN_CFLAGS)
+
+BUILT_SOURCES = \
+ timerapplet-resources.c \
+ timerapplet-resources.h \
+ $(NULL)
+APPLET_SOURCES = \
+ timerapplet.c \
+ $(NULL)
+
+APPLET_LIBS = \
+ $(MATE_APPLETS4_LIBS) \
+ $(LIBNOTIFY_LIBS) \
+ $(NULL)
+
+if ENABLE_IN_PROCESS
+pkglib_LTLIBRARIES = libmate-timer-applet.la
+nodist_libmate_timer_applet_la_SOURCES = $(BUILT_SOURCES)
+libmate_timer_applet_la_SOURCES = $(APPLET_SOURCES)
+libmate_timer_applet_la_CFLAGS = $(AM_CFLAGS)
+libmate_timer_applet_la_LDFLAGS = -module -avoid-version
+libmate_timer_applet_la_LIBADD = $(APPLET_LIBS)
+else !ENABLE_IN_PROCESS
+libexec_PROGRAMS = timer-applet
+nodist_timer_applet_SOURCES = $(BUILT_SOURCES)
+timer_applet_SOURCES = $(APPLET_SOURCES)
+timer_applet_CFLAGS = $(AM_CFLAGS)
+timer_applet_LDADD = $(APPLET_LIBS)
+endif !ENABLE_IN_PROCESS
+
+timerapplet-resources.c: $(srcdir)/../data/timerapplet-resources.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir)/../data --generate-dependencies $(srcdir)/../data/timerapplet-resources.gresource.xml)
+ $(AM_V_GEN)$(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir)/../data --generate --c-name timerapplet $<
+
+timerapplet-resources.h: $(srcdir)/../data/timerapplet-resources.gresource.xml $(shell $(GLIB_COMPILE_RESOURCES) --sourcedir=$(srcdir)/../data --generate-dependencies $(srcdir)/../data/timerapplet-resources.gresource.xml)
+ $(AM_V_GEN)$(GLIB_COMPILE_RESOURCES) --target=$@ --sourcedir=$(srcdir)/../data --generate --c-name timerapplet $<
+
+CLEANFILES = \
+ $(BUILT_SOURCES) \
+ $(NULL)
+
+-include $(top_srcdir)/git.mk
diff --git a/timerapplet/timerapplet.c b/timerapplet/src/timerapplet.c
index 0948be43..c5cb2107 100644
--- a/timerapplet/timerapplet.c
+++ b/timerapplet/src/timerapplet.c
@@ -27,6 +27,7 @@
#include <glib.h>
#include <glib/gi18n.h>
#include <gio/gio.h>
+#include <gdk/gdkx.h>
#include <gtk/gtk.h>
#include <libnotify/notify.h>
@@ -115,6 +116,7 @@ timer_applet_destroy (MatePanelApplet *applet_widget, TimerApplet *applet)
static gboolean
timer_callback (TimerApplet *applet)
{
+ AtkObject *atk_obj;
gboolean retval = TRUE;
gchar *label;
gchar *name;
@@ -124,7 +126,11 @@ timer_callback (TimerApplet *applet)
label = NULL;
tooltip = NULL;
+ if (!GTK_IS_WIDGET (applet->label))
+ return FALSE;
+
name = g_settings_get_string (applet->settings, NAME_KEY);
+ atk_obj = gtk_widget_get_accessible (GTK_WIDGET (applet->applet));
if (!applet->active)
{
@@ -134,6 +140,7 @@ timer_callback (TimerApplet *applet)
gtk_label_set_text (applet->label, name);
gtk_widget_set_tooltip_text (GTK_WIDGET (applet->label), "");
gtk_widget_hide (GTK_WIDGET (applet->pause_image));
+ atk_object_set_name (atk_obj, name);
}
else
{
@@ -149,10 +156,13 @@ timer_callback (TimerApplet *applet)
applet->active = FALSE;
applet->timeout_id = 0;
- label = g_strdup_printf ("Finished %s", name);
+ /* Translators: %s is a placeholder for the timer name, 'Timer' by default */
+ label = g_strdup_printf (_("Finished %s"), name);
gtk_label_set_text (applet->label, label);
gtk_widget_set_tooltip_text (GTK_WIDGET (applet->label), name);
gtk_widget_hide (GTK_WIDGET (applet->pause_image));
+ atk_object_set_name (atk_obj, label);
+ atk_object_set_description (atk_obj, "");
if (g_settings_get_boolean (applet->settings, SHOW_NOTIFICATION_KEY))
{
@@ -200,6 +210,7 @@ timer_callback (TimerApplet *applet)
gtk_label_set_text (applet->label, label);
gtk_widget_set_tooltip_text (GTK_WIDGET (applet->label), tooltip);
gtk_widget_set_visible (GTK_WIDGET (applet->pause_image), applet->pause);
+ atk_object_set_name (atk_obj, label);
}
g_free (label);
@@ -276,7 +287,7 @@ timer_about_callback (GtkAction *action, TimerApplet *applet)
"title", _("About Timer Applet"),
"version", VERSION,
"copyright", _("Copyright \xc2\xa9 2014 Stefano Karapetsas\n"
- "Copyright \xc2\xa9 2015-2020 MATE developers"),
+ "Copyright \xc2\xa9 2015-2021 MATE developers"),
"authors", authors,
"comments", _("Start a timer and receive a notification when it is finished"),
"translator-credits", _("translator-credits"),
@@ -332,7 +343,10 @@ timer_preferences_callback (GtkAction *action, TimerApplet *applet)
"on_seconds_spinbutton_value_changed", G_CALLBACK (timer_spin_button_value_changed),
NULL);
gtk_builder_connect_signals (builder, applet);
- g_signal_connect (dialog, "response", G_CALLBACK (gtk_widget_destroy), dialog);
+
+ g_signal_connect (dialog, "response",
+ G_CALLBACK (gtk_widget_destroy),
+ dialog);
g_object_unref (builder);
@@ -340,15 +354,20 @@ timer_preferences_callback (GtkAction *action, TimerApplet *applet)
}
static gboolean
-timer_applet_click (TimerApplet *applet)
+timer_applet_click (TimerApplet *applet, GdkEventButton *event)
{
- if (!applet->active && !applet->pause && applet->elapsed)
- timer_reset_callback (NULL, applet);
- else if (applet->active && !applet->pause)
- timer_pause_callback (NULL, applet);
- else if (!applet->active || applet->pause)
- timer_start_callback (NULL, applet);
- return FALSE;
+ if ( event->button == 1)
+ {
+ if (!applet->active && !applet->pause && applet->elapsed)
+ timer_reset_callback (NULL, applet);
+ else if (applet->active && !applet->pause)
+ timer_pause_callback (NULL, applet);
+ else if (!applet->active || applet->pause)
+ timer_start_callback (NULL, applet);
+ return TRUE;
+ }
+ else
+ return FALSE;
}
static void
@@ -361,15 +380,17 @@ static gboolean
timer_applet_fill (MatePanelApplet* applet_widget)
{
TimerApplet *applet;
+ AtkObject *atk_obj;
+#ifndef ENABLE_IN_PROCESS
g_set_application_name (_("Timer Applet"));
+#endif
gtk_window_set_default_icon_name (APPLET_ICON);
if (!notify_is_initted ())
notify_init ("timer-applet");
mate_panel_applet_set_flags (applet_widget, MATE_PANEL_APPLET_EXPAND_MINOR);
- mate_panel_applet_set_background_widget (MATE_PANEL_APPLET (applet_widget), GTK_WIDGET (applet_widget));
applet = g_malloc0(sizeof(TimerApplet));
applet->applet = applet_widget;
@@ -383,6 +404,11 @@ timer_applet_fill (MatePanelApplet* applet_widget)
applet->pause_image = GTK_IMAGE (gtk_image_new_from_icon_name ("media-playback-pause", GTK_ICON_SIZE_BUTTON));
applet->label = GTK_LABEL (gtk_label_new (""));
+ atk_obj = gtk_widget_get_accessible (GTK_WIDGET (applet->applet));
+ if (GTK_IS_ACCESSIBLE (atk_obj)) {
+ atk_object_set_name (atk_obj, _("Timer Applet"));
+ atk_object_set_description (atk_obj, _("Start a timer and receive a notification when it is finished"));
+ }
/* we add the Gtk label into the applet */
gtk_box_pack_start (applet->box,
GTK_WIDGET (applet->image),
@@ -400,12 +426,13 @@ timer_applet_fill (MatePanelApplet* applet_widget)
gtk_widget_show_all (GTK_WIDGET (applet->applet));
gtk_widget_hide (GTK_WIDGET (applet->pause_image));
- g_signal_connect(G_OBJECT (applet->applet), "destroy",
- G_CALLBACK (timer_applet_destroy),
- applet);
+ g_signal_connect (applet->applet, "destroy",
+ G_CALLBACK (timer_applet_destroy),
+ applet);
- g_signal_connect_swapped(GTK_WIDGET (applet->applet), "button-release-event",
- G_CALLBACK (timer_applet_click), applet);
+ g_signal_connect_swapped (applet->applet, "button-press-event",
+ G_CALLBACK (timer_applet_click),
+ applet);
/* set up context menu */
applet->action_group = gtk_action_group_new ("Timer Applet Actions");
@@ -418,8 +445,9 @@ timer_applet_fill (MatePanelApplet* applet_widget)
timer_callback (applet);
/* GSettings callback */
- g_signal_connect (G_OBJECT (applet->settings), "changed",
- G_CALLBACK (timer_settings_changed), applet);
+ g_signal_connect (applet->settings, "changed",
+ G_CALLBACK (timer_settings_changed),
+ applet);
return TRUE;
}
@@ -437,8 +465,8 @@ timer_factory (MatePanelApplet* applet, const char* iid, gpointer data)
}
/* needed by mate-panel applet library */
-MATE_PANEL_APPLET_OUT_PROCESS_FACTORY("TimerAppletFactory",
- PANEL_TYPE_APPLET,
- "Timer applet",
- timer_factory,
- NULL)
+PANEL_APPLET_FACTORY ("TimerAppletFactory",
+ PANEL_TYPE_APPLET,
+ "Timer applet",
+ timer_factory,
+ NULL)