diff options
Diffstat (limited to 'timerapplet')
-rw-r--r-- | timerapplet/Makefile.am | 72 | ||||
-rw-r--r-- | timerapplet/data/Makefile.am | 54 | ||||
-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.am | 50 | ||||
-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) |