[gnome-applets/wip/muktupavels/accessx-status] accessx-status: port to libgnome-panel



commit 3d0ffd5b99b328fa485fd71407d829bcbb1480da
Author: Alberts Muktupāvels <alberts muktupavels gmail com>
Date:   Mon Mar 30 18:20:42 2020 +0300

    accessx-status: port to libgnome-panel

 Makefile.am                                        |   2 -
 accessx-status/Makefile.am                         |  29 --
 accessx-status/accessx-status-applet-menu.xml      |  14 -
 ....applets.AccessxStatusApplet.panel-applet.in.in |  15 -
 accessx-status/pixmaps/Makefile.am                 |  43 --
 accessx-status/pixmaps/accessx-status-applet.png   | Bin 3688 -> 0 bytes
 accessx-status/src/applet.h                        |  91 -----
 configure.ac                                       |   5 +-
 gnome-applets/Makefile.am                          |  39 ++
 .../accessx-status}/Makefile.am                    |  17 +-
 .../accessx-status/accessx-status-applet-menu.xml  |  18 +
 .../accessx-status/accessx-status-applet.c         | 450 +++++++++++----------
 .../accessx-status/accessx-status-applet.h         |  31 ++
 .../accessx-status/icons}/ax-applet.png            | Bin
 .../accessx-status/icons}/ax-bouncekeys.png        | Bin
 .../accessx-status/icons}/ax-key-base.png          | Bin
 .../accessx-status/icons}/ax-key-inverse.png       | Bin
 .../accessx-status/icons}/ax-key-no.png            | Bin
 .../accessx-status/icons}/ax-key-none.png          | Bin
 .../accessx-status/icons}/ax-key-yes.png           | Bin
 .../accessx-status/icons}/ax-slowkeys-no.png       | Bin
 .../accessx-status/icons}/ax-slowkeys-pending.png  | Bin
 .../accessx-status/icons}/ax-slowkeys-yes.png      | Bin
 .../accessx-status/icons}/ax-slowkeys.png          | Bin
 .../accessx-status/icons}/mousekeys-base.png       | Bin
 .../icons}/mousekeys-default-left.png              | Bin
 .../icons}/mousekeys-default-middle.png            | Bin
 .../icons}/mousekeys-default-right.png             | Bin
 .../icons}/mousekeys-pressed-left.png              | Bin
 .../icons}/mousekeys-pressed-middle.png            | Bin
 .../icons}/mousekeys-pressed-right.png             | Bin
 .../accessx-status/icons}/sticky-alt-latched.png   | Bin
 .../accessx-status/icons}/sticky-alt-locked.png    | Bin
 .../accessx-status/icons}/sticky-alt-none.png      | Bin
 .../accessx-status/icons}/sticky-ctrl-latched.png  | Bin
 .../accessx-status/icons}/sticky-ctrl-locked.png   | Bin
 .../accessx-status/icons}/sticky-ctrl-none.png     | Bin
 .../accessx-status/icons}/sticky-hyper-latched.png | Bin
 .../accessx-status/icons}/sticky-hyper-locked.png  | Bin
 .../accessx-status/icons}/sticky-hyper-none.png    | Bin
 .../accessx-status/icons}/sticky-meta-latched.png  | Bin
 .../accessx-status/icons}/sticky-meta-locked.png   | Bin
 .../accessx-status/icons}/sticky-meta-none.png     | Bin
 .../accessx-status/icons}/sticky-shift-latched.png | Bin
 .../accessx-status/icons}/sticky-shift-locked.png  | Bin
 .../accessx-status/icons}/sticky-shift-none.png    | Bin
 .../accessx-status/icons}/sticky-super-latched.png | Bin
 .../accessx-status/icons}/sticky-super-locked.png  | Bin
 .../accessx-status/icons}/sticky-super-none.png    | Bin
 gnome-applets/ga-module.c                          |  15 +-
 po/POTFILES.in                                     |   5 +-
 po/POTFILES.skip                                   |   1 -
 52 files changed, 351 insertions(+), 424 deletions(-)
---
diff --git a/Makefile.am b/Makefile.am
index a3756d980..879f6c2bf 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -5,7 +5,6 @@ tracker_search_bar_SUBDIR = tracker-search-bar
 endif
 
 always_built_SUBDIRS =  \
-       accessx-status \
        drivemount      \
        geyes           \
        mini-commander \
@@ -33,7 +32,6 @@ DIST_SUBDIRS = \
        geyes           \
        mini-commander  \
        multiload       \
-       accessx-status  \
        sticky-notes    \
        window-buttons  \
        window-title    \
diff --git a/configure.ac b/configure.ac
index 896bace12..1f206cd7d 100644
--- a/configure.ac
+++ b/configure.ac
@@ -339,6 +339,7 @@ AC_CONFIG_FILES([
   data/schemas/Makefile
 
   gnome-applets/Makefile
+  gnome-applets/accessx-status/Makefile
   gnome-applets/battstat/Makefile
   gnome-applets/brightness/Makefile
   gnome-applets/charpick/Makefile
@@ -368,10 +369,6 @@ AC_CONFIG_FILES([
 
   po/Makefile.in
 
-  accessx-status/Makefile
-  accessx-status/pixmaps/Makefile
-  accessx-status/src/Makefile
-
   drivemount/Makefile
   drivemount/src/Makefile
 
diff --git a/gnome-applets/Makefile.am b/gnome-applets/Makefile.am
index fddced2c8..a63b74f21 100644
--- a/gnome-applets/Makefile.am
+++ b/gnome-applets/Makefile.am
@@ -1,6 +1,7 @@
 NULL =
 
 SUBDIRS = \
+       accessx-status \
        battstat \
        brightness \
        charpick \
@@ -36,6 +37,7 @@ org_gnome_gnome_applets_la_SOURCES = \
        $(NULL)
 
 org_gnome_gnome_applets_la_LIBADD = \
+       $(top_builddir)/gnome-applets/accessx-status/libaccessx-status-applet.la \
        $(top_builddir)/gnome-applets/battstat/libbattery-status-applet.la \
        $(top_builddir)/gnome-applets/brightness/libbrightness-applet.la \
        $(top_builddir)/gnome-applets/charpick/libcharacter-picker-applet.la \
@@ -74,10 +76,47 @@ cpufreq_ui_files = \
        $(NULL)
 
 icon_files = \
+       accessx-status/icons/ax-applet.png \
+       accessx-status/icons/ax-key-base.png \
+       accessx-status/icons/ax-key-inverse.png \
+       accessx-status/icons/ax-key-none.png \
+       accessx-status/icons/ax-key-yes.png \
+       accessx-status/icons/ax-key-no.png \
+       accessx-status/icons/mousekeys-base.png \
+       accessx-status/icons/mousekeys-pressed-left.png \
+       accessx-status/icons/mousekeys-pressed-middle.png \
+       accessx-status/icons/mousekeys-pressed-right.png \
+       accessx-status/icons/mousekeys-default-left.png \
+       accessx-status/icons/mousekeys-default-middle.png \
+       accessx-status/icons/mousekeys-default-right.png \
+       accessx-status/icons/sticky-shift-none.png \
+       accessx-status/icons/sticky-shift-latched.png \
+       accessx-status/icons/sticky-shift-locked.png \
+       accessx-status/icons/sticky-ctrl-none.png \
+       accessx-status/icons/sticky-ctrl-latched.png \
+       accessx-status/icons/sticky-ctrl-locked.png \
+       accessx-status/icons/sticky-alt-none.png \
+       accessx-status/icons/sticky-alt-latched.png \
+       accessx-status/icons/sticky-alt-locked.png \
+       accessx-status/icons/sticky-meta-latched.png \
+       accessx-status/icons/sticky-meta-locked.png \
+       accessx-status/icons/sticky-meta-none.png \
+       accessx-status/icons/sticky-hyper-latched.png \
+       accessx-status/icons/sticky-hyper-locked.png \
+       accessx-status/icons/sticky-hyper-none.png \
+       accessx-status/icons/sticky-super-latched.png \
+       accessx-status/icons/sticky-super-locked.png \
+       accessx-status/icons/sticky-super-none.png \
+       accessx-status/icons/ax-slowkeys.png \
+       accessx-status/icons/ax-slowkeys-pending.png \
+       accessx-status/icons/ax-slowkeys-yes.png \
+       accessx-status/icons/ax-slowkeys-no.png \
+       accessx-status/icons/ax-bouncekeys.png \
        window-picker/wp-about-logo.png \
        $(NULL)
 
 ui_files = \
+       accessx-status/accessx-status-applet-menu.xml \
        battstat/battstat-applet.ui \
        battstat/battstat-applet-menu.xml \
        brightness/brightness-applet-menu.xml \
diff --git a/accessx-status/src/Makefile.am b/gnome-applets/accessx-status/Makefile.am
similarity index 60%
rename from accessx-status/src/Makefile.am
rename to gnome-applets/accessx-status/Makefile.am
index 2a1392bd5..e7102e465 100644
--- a/accessx-status/src/Makefile.am
+++ b/gnome-applets/accessx-status/Makefile.am
@@ -1,20 +1,14 @@
 NULL =
 
-uidir   = $(pkgdatadir)/ui
-
-accessx_status_applet_libdir = $(pkglibdir)
-accessx_status_applet_lib_LTLIBRARIES = libaccessx-status-applet.la
+noinst_LTLIBRARIES = libaccessx-status-applet.la
 
 libaccessx_status_applet_la_CPPFLAGS = \
-       -DACCESSX_PIXMAPS_DIR=\""$(pkgdatadir)/accessx-status-applet/pixmaps"\" \
-       -DACCESSX_MENU_UI_DIR=\""$(uidir)"\" \
-       -DGNOMELOCALEDIR=\""$(localedir)"\" \
        -DG_LOG_DOMAIN=\"org.gnome.gnome-applets.accessx-status\" \
        -DG_LOG_USE_STRUCTURED=1 \
        $(NULL)
 
 libaccessx_status_applet_la_CFLAGS = \
-       $(GNOME_APPLETS_CFLAGS) \
+       $(GNOME_PANEL_CFLAGS) \
        $(ACCESSX_STATUS_CFLAGS) \
        $(GIO_CFLAGS) \
        $(GIO_UNIX_CFLAGS) \
@@ -23,18 +17,17 @@ libaccessx_status_applet_la_CFLAGS = \
        $(NULL)
 
 libaccessx_status_applet_la_SOURCES = \
-       applet.c \
-       applet.h \
+       accessx-status-applet.c \
+       accessx-status-applet.h \
        $(NULL)
 
 libaccessx_status_applet_la_LDFLAGS = \
-       -avoid-version \
        $(WARN_LDFLAGS) \
        $(AM_LDFLAGS) \
        $(NULL)
 
 libaccessx_status_applet_la_LIBADD = \
-       $(GNOME_APPLETS_LIBS) \
+       $(GNOME_PANEL_LIBS) \
        $(ACCESSX_STATUS_LIBS) \
        $(GIO_LIBS) \
        $(GIO_UNIX_LIBS) \
diff --git a/gnome-applets/accessx-status/accessx-status-applet-menu.xml 
b/gnome-applets/accessx-status/accessx-status-applet-menu.xml
new file mode 100644
index 000000000..43e4c1ac4
--- /dev/null
+++ b/gnome-applets/accessx-status/accessx-status-applet-menu.xml
@@ -0,0 +1,18 @@
+<interface>
+  <menu id="accessx-status-menu">
+    <section>
+      <item>
+        <attribute name="label" translatable="yes">_Keyboard Accessibility Preferences</attribute>
+        <attribute name="action">accessx-status.dialog</attribute>
+      </item>
+      <item>
+        <attribute name="label" translatable="yes">_Help</attribute>
+        <attribute name="action">accessx-status.help</attribute>
+      </item>
+      <item>
+        <attribute name="label" translatable="yes">_About</attribute>
+        <attribute name="action">accessx-status.about</attribute>
+      </item>
+    </section>
+  </menu>
+</interface>
diff --git a/accessx-status/src/applet.c b/gnome-applets/accessx-status/accessx-status-applet.c
similarity index 80%
rename from accessx-status/src/applet.c
rename to gnome-applets/accessx-status/accessx-status-applet.c
index dfd125591..bd1386015 100644
--- a/accessx-status/src/applet.c
+++ b/gnome-applets/accessx-status/accessx-status-applet.c
@@ -1,4 +1,4 @@
-/* Keyboard Accessibility Status Applet
+/*
  * Copyright 2003, 2004 Sun Microsystems Inc.
  *
  * This program is free software; you can redistribute it and/or
@@ -15,12 +15,13 @@
  * along with this program; if not, see <http://www.gnu.org/licenses/>.
  */
 
-#include <config.h>
+#include "config.h"
+#include "accessx-status-applet.h"
 
 #include <stdlib.h>
 #include <string.h>
 
-#include <glib/gi18n.h>
+#include <glib/gi18n-lib.h>
 #include <glib-object.h>
 #include <gdk/gdkkeysyms.h>
 #include <gdk/gdkx.h>
@@ -31,7 +32,6 @@
 #define XK_MISCELLANY
 #define XK_XKB_KEYS
 #include <X11/keysymdef.h>
-#include "applet.h"
 
 static int xkb_base_event_type = 0;
 
@@ -39,6 +39,30 @@ static GtkIconSize icon_size_spec;
 
 #define ALT_GRAPH_LED_MASK (0x10)
 
+#define ACCESSX_APPLET "ax-applet"
+#define ACCESSX_BASE_ICON "ax-base"
+#define ACCESSX_ACCEPT_BASE "ax-accept"
+#define ACCESSX_REJECT_BASE "ax-reject"
+#define MOUSEKEYS_BASE_ICON "ax-mouse-base"
+#define MOUSEKEYS_BUTTON_LEFT "ax-button-left"
+#define MOUSEKEYS_BUTTON_MIDDLE "ax-button-middle"
+#define MOUSEKEYS_BUTTON_RIGHT "ax-button-right"
+#define MOUSEKEYS_DOT_LEFT "ax-dot-left"
+#define MOUSEKEYS_DOT_MIDDLE "ax-dot-middle"
+#define MOUSEKEYS_DOT_RIGHT "ax-dot-right"
+#define SHIFT_KEY_ICON "ax-shift-key"
+#define CONTROL_KEY_ICON "ax-control-key"
+#define ALT_KEY_ICON "ax-alt-key"
+#define META_KEY_ICON "ax-meta-key"
+#define SUPER_KEY_ICON "ax-super-key"
+#define HYPER_KEY_ICON "ax-hyper-key"
+#define ALTGRAPH_KEY_ICON "ax-altgraph-key"
+#define SLOWKEYS_IDLE_ICON "ax-sk-idle"
+#define SLOWKEYS_PENDING_ICON "ax-sk-pending"
+#define SLOWKEYS_ACCEPT_ICON "ax-sk-accept"
+#define SLOWKEYS_REJECT_ICON "ax-sk-reject"
+#define BOUNCEKEYS_ICON "ax-bouncekeys"
+
 typedef struct
 {
        const char *stock_id;
@@ -47,6 +71,48 @@ typedef struct
        gboolean     wildcarded;
 } AppletStockIcon;
 
+typedef enum
+{
+  ACCESSX_STATUS_ERROR_NONE = 0,
+  ACCESSX_STATUS_ERROR_XKB_DISABLED
+} AccessxStatusErrorType;
+
+typedef enum
+{
+  ACCESSX_STATUS_MODIFIERS = 1 << 0,
+  ACCESSX_STATUS_SLOWKEYS = 1 << 1,
+  ACCESSX_STATUS_BOUNCEKEYS = 1 << 2,
+  ACCESSX_STATUS_MOUSEKEYS = 1 << 3,
+  ACCESSX_STATUS_ENABLED = 1 << 4,
+  ACCESSX_STATUS_ALL = 0xFFFF
+} AccessxStatusNotifyType;
+
+struct _AccessxStatusApplet
+{
+  GpApplet                parent;
+
+  GtkWidget              *box;
+  GtkWidget              *idlefoo;
+  GtkWidget              *mousefoo;
+  GtkWidget              *stickyfoo;
+  GtkWidget              *slowfoo;
+  GtkWidget              *bouncefoo;
+  GtkWidget              *shift_indicator;
+  GtkWidget              *ctrl_indicator;
+  GtkWidget              *alt_indicator;
+  GtkWidget              *meta_indicator;
+  GtkWidget              *hyper_indicator;
+  GtkWidget              *super_indicator;
+  GtkWidget              *alt_graph_indicator;
+  GtkIconFactory         *icon_factory;
+  XkbDescRec             *xkb;
+  Display                *xkb_display;
+  AccessxStatusErrorType  error_type;
+  gint                    size;
+};
+
+G_DEFINE_TYPE (AccessxStatusApplet, accessx_status_applet, GP_TYPE_APPLET)
+
 static AppletStockIcon stock_icons [] = {
         { ACCESSX_APPLET, "ax-applet.png", GTK_STATE_NORMAL, True },
         { ACCESSX_BASE_ICON, "ax-key-base.png", GTK_STATE_NORMAL, True },
@@ -152,14 +218,14 @@ help_cb (GSimpleAction *action,
        AccessxStatusApplet *sapplet = (AccessxStatusApplet *) user_data;
        GError *error = NULL;
 
-       gtk_show_uri (gtk_widget_get_screen (GTK_WIDGET (sapplet->applet)),
+       gtk_show_uri (gtk_widget_get_screen (GTK_WIDGET (sapplet)),
                        "help:accessx-status",
                        gtk_get_current_event_time (),
                        &error);
 
        if (error) { 
                GtkWidget *parent =
-                       gtk_widget_get_parent (GTK_WIDGET (sapplet->applet));
+                       gtk_widget_get_parent (GTK_WIDGET (sapplet));
 
                GtkWidget *dialog = 
                        gtk_message_dialog_new (GTK_WINDOW (parent),
@@ -174,7 +240,7 @@ help_cb (GSimpleAction *action,
                                  G_CALLBACK (gtk_widget_destroy), NULL);
 
                gtk_window_set_screen (GTK_WINDOW (dialog),
-                                      gtk_widget_get_screen (GTK_WIDGET (sapplet->applet)));
+                                      gtk_widget_get_screen (GTK_WIDGET (sapplet)));
                gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE);
                
                gtk_widget_show (dialog);
@@ -198,7 +264,7 @@ dialog_cb (GSimpleAction *action,
                return;
        }
 
-       screen = gtk_widget_get_screen (GTK_WIDGET (sapplet->applet));
+       screen = gtk_widget_get_screen (GTK_WIDGET (sapplet));
        appinfo = g_app_info_create_from_commandline ("gnome-control-center universal-access",
                                                      _("Open the universal access preferences dialog"),
                                                      G_APP_INFO_CREATE_NONE,
@@ -226,7 +292,7 @@ dialog_cb (GSimpleAction *action,
                                  G_CALLBACK (gtk_widget_destroy), NULL);
 
                gtk_window_set_screen (GTK_WINDOW (dialog),
-                                      gtk_widget_get_screen (GTK_WIDGET (sapplet->applet)));
+                                      gtk_widget_get_screen (GTK_WIDGET (sapplet)));
                gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE);
 
                gtk_widget_show (dialog);
@@ -270,29 +336,39 @@ accessx_status_applet_get_xkb_desc (AccessxStatusApplet *sapplet)
 }
 
 static gboolean
-accessx_status_applet_xkb_select (AccessxStatusApplet *sapplet)
+accessx_status_applet_xkb_select (AccessxStatusApplet *self)
 {
-       int opcode_rtn, error_rtn;
-       gboolean retval = FALSE;
-       Display *display = NULL;
-        GdkWindow *window;
-
-        window = gtk_widget_get_window (GTK_WIDGET (sapplet->applet));
-       g_assert (sapplet && sapplet->applet && window);
-       display = GDK_WINDOW_XDISPLAY (window);
-       g_assert (display);
-       retval = XkbQueryExtension (display, &opcode_rtn, &xkb_base_event_type, 
-                                   &error_rtn, NULL, NULL);
-       if (retval) {
-               retval = XkbSelectEvents (display, XkbUseCoreKbd, 
-                                         XkbAllEventsMask, 
-                                         XkbAllEventsMask);
-               sapplet->xkb = accessx_status_applet_get_xkb_desc (sapplet);
-       } else {
-               sapplet->error_type = ACCESSX_STATUS_ERROR_XKB_DISABLED;
-       }
-
-       return retval;
+  GdkDisplay *display;
+  Display *xdisplay;
+  int opcode_rtn;
+  int error_rtn;
+  gboolean retval;
+
+  display = gtk_widget_get_display (GTK_WIDGET (self));
+  xdisplay = gdk_x11_display_get_xdisplay (display);
+
+  retval = XkbQueryExtension (xdisplay,
+                              &opcode_rtn,
+                              &xkb_base_event_type,
+                              &error_rtn,
+                              NULL,
+                              NULL);
+
+  if (retval)
+    {
+      retval = XkbSelectEvents (xdisplay,
+                                XkbUseCoreKbd,
+                                XkbAllEventsMask,
+                                XkbAllEventsMask);
+
+      self->xkb = accessx_status_applet_get_xkb_desc (self);
+    }
+  else
+    {
+      self->error_type = ACCESSX_STATUS_ERROR_XKB_DISABLED;
+    }
+
+  return retval;
 }
 
 static void
@@ -426,7 +502,7 @@ accessx_status_applet_slowkeys_image (AccessxStatusApplet *sapplet,
        GdkWindow *window;
        gboolean is_idle = TRUE;
        const char *stock_id = SLOWKEYS_IDLE_ICON;
-       GtkStyle *style = gtk_widget_get_style (GTK_WIDGET (sapplet->applet));
+       GtkStyle *style = gtk_widget_get_style (GTK_WIDGET (sapplet));
        GdkColor bg = style->bg[GTK_STATE_NORMAL];
 
        if (event != NULL) {
@@ -458,7 +534,7 @@ accessx_status_applet_slowkeys_image (AccessxStatusApplet *sapplet,
                        break;
                }
        }
-       ret_pixbuf = gtk_widget_render_icon (GTK_WIDGET (sapplet->applet),
+       ret_pixbuf = gtk_widget_render_icon (GTK_WIDGET (sapplet),
                                             stock_id,
                                             icon_size_spec,
                                             NULL);
@@ -470,7 +546,7 @@ accessx_status_applet_slowkeys_image (AccessxStatusApplet *sapplet,
                ret_pixbuf = gdk_pixbuf_copy (tmp_pixbuf);
                g_object_unref (tmp_pixbuf);
 
-               window = gtk_widget_get_window (GTK_WIDGET (sapplet->applet));
+               window = gtk_widget_get_window (GTK_WIDGET (sapplet));
 
                if (event && window) {
                        KeySym keysym = XKeycodeToKeysym (
@@ -482,9 +558,9 @@ accessx_status_applet_slowkeys_image (AccessxStatusApplet *sapplet,
                            (g_utf8_strlen (glyphstring, -1) > 1))
                                glyphstring = "";
                }
-               fg = style->fg[gtk_widget_get_state (GTK_WIDGET (sapplet->applet))];
+               fg = style->fg[gtk_widget_get_state (GTK_WIDGET (sapplet))];
                glyph_pixbuf = accessx_status_applet_get_glyph_pixbuf (sapplet, 
-                                                                      GTK_WIDGET (sapplet->applet),
+                                                                      GTK_WIDGET (sapplet),
                                                                       ret_pixbuf, 
                                                                       &fg,
                                                                       &bg,
@@ -508,9 +584,8 @@ accessx_status_applet_bouncekeys_image (AccessxStatusApplet *sapplet, XkbAccessX
        const char *glyphstring = N_("a");
        const char *stock_id = ACCESSX_BASE_ICON;
 
-       g_assert (sapplet->applet);
-       style = gtk_widget_get_style (GTK_WIDGET (sapplet->applet));
-       fg = style->text[gtk_widget_get_state (GTK_WIDGET (sapplet->applet))];
+       style = gtk_widget_get_style (GTK_WIDGET (sapplet));
+       fg = style->text[gtk_widget_get_state (GTK_WIDGET (sapplet))];
        bg = style->base[GTK_STATE_NORMAL];
 
        if (event != NULL) {
@@ -527,7 +602,7 @@ accessx_status_applet_bouncekeys_image (AccessxStatusApplet *sapplet, XkbAccessX
                        break;
                }
        }
-       tmp_pixbuf = gtk_widget_render_icon (GTK_WIDGET (sapplet->applet),
+       tmp_pixbuf = gtk_widget_render_icon (GTK_WIDGET (sapplet),
                                             stock_id,
                                             icon_size_spec,
                                             NULL);
@@ -536,7 +611,7 @@ accessx_status_applet_bouncekeys_image (AccessxStatusApplet *sapplet, XkbAccessX
                icon_base = gdk_pixbuf_copy (tmp_pixbuf);
                g_object_unref (tmp_pixbuf);
                glyph_pixbuf = accessx_status_applet_get_glyph_pixbuf (sapplet, 
-                                                                      GTK_WIDGET (sapplet->applet),
+                                                                      GTK_WIDGET (sapplet),
                                                                       icon_base, 
                                                                       &fg,
                                                                       &bg,
@@ -560,7 +635,7 @@ accessx_status_applet_mousekeys_image (AccessxStatusApplet *sapplet, XkbStateNot
 {
        GdkPixbuf  *mouse_pixbuf = NULL, *button_pixbuf, *dot_pixbuf, *tmp_pixbuf;
        const char *which_dot = MOUSEKEYS_DOT_LEFT;
-       tmp_pixbuf = gtk_widget_render_icon (GTK_WIDGET (sapplet->applet),
+       tmp_pixbuf = gtk_widget_render_icon (GTK_WIDGET (sapplet),
                                               MOUSEKEYS_BASE_ICON,
                                               icon_size_spec, 
                                               NULL);
@@ -571,7 +646,7 @@ accessx_status_applet_mousekeys_image (AccessxStatusApplet *sapplet, XkbStateNot
                gint i;
                for (i = 0; i < G_N_ELEMENTS (button_icons); ++i) {
                        if (event->ptr_buttons & button_icons[i].mask) {
-                               button_pixbuf = gtk_widget_render_icon (GTK_WIDGET (sapplet->applet),
+                               button_pixbuf = gtk_widget_render_icon (GTK_WIDGET (sapplet),
                                                                        button_icons[i].stock_id,
                                                                        icon_size_spec,
                                                                        NULL);
@@ -596,7 +671,7 @@ accessx_status_applet_mousekeys_image (AccessxStatusApplet *sapplet, XkbStateNot
                        break;
                }
        }
-       dot_pixbuf = gtk_widget_render_icon (GTK_WIDGET (sapplet->applet),
+       dot_pixbuf = gtk_widget_render_icon (GTK_WIDGET (sapplet),
                                             which_dot,
                                             icon_size_spec,
                                             NULL);
@@ -617,7 +692,7 @@ accessx_status_applet_update (AccessxStatusApplet *sapplet,
        GdkWindow * window;
        gint i;
 
-       window = gtk_widget_get_window (GTK_WIDGET (sapplet->applet));
+       window = gtk_widget_get_window (GTK_WIDGET (sapplet));
 
        if (notify_type & ACCESSX_STATUS_MODIFIERS) {
                unsigned int locked_mods = 0, latched_mods = 0;
@@ -625,7 +700,7 @@ accessx_status_applet_update (AccessxStatusApplet *sapplet,
                        locked_mods = event->state.locked_mods;
                        latched_mods = event->state.latched_mods;
                }
-               else if (sapplet->applet && window) {
+               else if (window != NULL) {
                        XkbStateRec state;                      
                        XkbGetState (GDK_WINDOW_XDISPLAY (window), 
                                     XkbUseCoreKbd, &state); 
@@ -696,7 +771,6 @@ accessx_status_applet_update (AccessxStatusApplet *sapplet,
                else
                        gtk_widget_hide (sapplet->bouncefoo);
        }
-       return;
 }
 
 static void
@@ -892,33 +966,27 @@ accessx_applet_add_stock_icons (AccessxStatusApplet *sapplet, GtkWidget *widget)
         GtkIconSet     *icon_set;
                                                                                 
        gtk_icon_factory_add_default (factory);
-       
+
         while (i <  G_N_ELEMENTS (stock_icons)) {
                const char *set_name = stock_icons[i].stock_id;
                 icon_set = gtk_icon_set_new ();
                do {
-                       char *filename;
-                       GtkIconSource *source = gtk_icon_source_new ();
-                       filename = g_build_filename (ACCESSX_PIXMAPS_DIR,
-                                                    stock_icons[i].name,
-                                                    NULL);
-                       if (g_file_test (filename, G_FILE_TEST_EXISTS) &&
-                           g_file_test (filename, G_FILE_TEST_IS_REGULAR)) {
-                               gtk_icon_source_set_filename (source, filename);
-                       } else {
-                               GtkIconSet *default_set = 
-                                       gtk_icon_factory_lookup_default (GTK_STOCK_MISSING_IMAGE);
-                               gtk_icon_source_set_pixbuf (source,
-                                                           gtk_icon_set_render_icon (
-                                                                   default_set, 
-                                                                   gtk_widget_get_style (widget),
-                                                                   GTK_TEXT_DIR_NONE,
-                                                                   GTK_STATE_NORMAL,
-                                                                   icon_size_spec,
-                                                                   widget,
-                                                                   NULL));
-                       }
-                       g_free (filename);
+                       GtkIconSource *source;
+                       char *resource_path;
+                       GdkPixbuf *pixbuf;
+
+                       source = gtk_icon_source_new ();
+
+                       resource_path = g_build_filename (GRESOURCE_PREFIX "/icons/",
+                                                         stock_icons[i].name,
+                                                         NULL);
+
+                       pixbuf = gdk_pixbuf_new_from_resource (resource_path, NULL);
+                       g_free (resource_path);
+
+                       gtk_icon_source_set_pixbuf (source, pixbuf);
+                       g_object_unref (pixbuf);
+
                        gtk_icon_source_set_state (source, stock_icons[i].state);
                        gtk_icon_source_set_state_wildcarded (source, stock_icons[i].wildcarded);
                        gtk_icon_set_add_source (icon_set, source);
@@ -963,8 +1031,6 @@ popup_error_dialog (AccessxStatusApplet* sapplet)
                        error_txt = g_strdup (_("XKB Extension is not enabled"));
                        break;
 
-               case ACCESSX_STATUS_ERROR_UNKNOWN :
-
                default : error_txt = g_strdup (_("Unknown error"));
                          break;                                
        }
@@ -981,7 +1047,7 @@ popup_error_dialog (AccessxStatusApplet* sapplet)
                          G_CALLBACK (gtk_widget_destroy), NULL);
 
        gtk_window_set_screen (GTK_WINDOW (dialog),
-       gtk_widget_get_screen (GTK_WIDGET (sapplet->applet)));
+       gtk_widget_get_screen (GTK_WIDGET (sapplet)));
 
        gtk_window_set_resizable (GTK_WINDOW (dialog), FALSE);
 
@@ -989,22 +1055,17 @@ popup_error_dialog (AccessxStatusApplet* sapplet)
        g_free (error_txt);
 }
 
-static AccessxStatusApplet *
-create_applet (PanelApplet *applet)
+static void
+create_applet (AccessxStatusApplet *sapplet)
 {
-       AccessxStatusApplet *sapplet = g_new0 (AccessxStatusApplet, 1);
        AtkObject           *atko;
        GdkPixbuf           *pixbuf;
 
        sapplet->xkb = NULL;
        sapplet->xkb_display = NULL;
-       sapplet->initialized = False; /* there must be a better way */
        sapplet->error_type = ACCESSX_STATUS_ERROR_NONE;
-       sapplet->applet = applet;
-       panel_applet_set_flags (applet, PANEL_APPLET_EXPAND_MINOR);
-       sapplet->orient = panel_applet_get_orient (applet);
-       if (sapplet->orient == PANEL_APPLET_ORIENT_LEFT || 
-           sapplet->orient == PANEL_APPLET_ORIENT_RIGHT) {
+
+       if (gp_applet_get_orientation (GP_APPLET (sapplet)) == GTK_ORIENTATION_VERTICAL) {
                sapplet->box = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
                sapplet->stickyfoo = gtk_box_new (GTK_ORIENTATION_VERTICAL, 0);
        }
@@ -1058,7 +1119,7 @@ create_applet (PanelApplet *applet)
        sapplet->idlefoo = gtk_image_new_from_stock (ACCESSX_APPLET, icon_size_spec);
        gtk_widget_show (sapplet->slowfoo);
 
-       gtk_container_add (GTK_CONTAINER (sapplet->applet), sapplet->box);
+       gtk_container_add (GTK_CONTAINER (sapplet), sapplet->box);
        gtk_widget_show (sapplet->box);
 
        gtk_container_add (GTK_CONTAINER (sapplet->box), sapplet->idlefoo);
@@ -1078,45 +1139,24 @@ create_applet (PanelApplet *applet)
        gtk_box_set_homogeneous (GTK_BOX (sapplet->stickyfoo), TRUE);
        gtk_widget_show (sapplet->stickyfoo);
 
-       gtk_widget_show (GTK_WIDGET (sapplet->applet));
+       gtk_widget_show (GTK_WIDGET (sapplet));
 
-       if (gtk_widget_get_realized (sapplet->box) && sapplet->initialized)
-               accessx_status_applet_update (sapplet, ACCESSX_STATUS_ALL, NULL);
-
-       atko = gtk_widget_get_accessible (GTK_WIDGET (sapplet->applet));
+       atko = gtk_widget_get_accessible (GTK_WIDGET (sapplet));
        atk_object_set_name (atko, _("AccessX Status"));
        atk_object_set_description (atko, _("Shows keyboard status when accessibility features are used."));
 
        atko = gtk_widget_get_accessible (sapplet->box);
        atk_object_set_name (atko, _("AccessX Status"));
        atk_object_set_description (atko, _("Shows keyboard status when accessibility features are used."));
-
-       return sapplet;
-}
-
-static void
-accessx_status_applet_destroy (GtkWidget *widget, gpointer user_data)
-{
-       AccessxStatusApplet *sapplet = user_data;
-       /* do we need to free the icon factory ? */
-
-       gdk_window_remove_filter (NULL, accessx_status_xkb_filter, sapplet);
-
-       if (sapplet->xkb)
-               XkbFreeKeyboard (sapplet->xkb, 0, True);
-       if (sapplet->xkb_display) 
-               XCloseDisplay (sapplet->xkb_display);
 }
 
 static void
-accessx_status_applet_reorient (GtkWidget *widget, PanelAppletOrient o, gpointer user_data)
+placement_changed_cb (GpApplet            *applet,
+                      GtkOrientation       orientation,
+                      GtkPositionType      position,
+                      AccessxStatusApplet *sapplet)
 {
-       AccessxStatusApplet *sapplet = user_data;
-
-       sapplet->orient = o;
-
-       if (o == PANEL_APPLET_ORIENT_LEFT || 
-           o == PANEL_APPLET_ORIENT_RIGHT) {
+       if (orientation == GTK_ORIENTATION_VERTICAL) {
                gtk_orientable_set_orientation (GTK_ORIENTABLE (sapplet->box),
                                                GTK_ORIENTATION_VERTICAL);
                gtk_orientable_set_orientation (GTK_ORIENTABLE (sapplet->stickyfoo),
@@ -1129,17 +1169,18 @@ accessx_status_applet_reorient (GtkWidget *widget, PanelAppletOrient o, gpointer
                                                                GTK_ORIENTATION_HORIZONTAL);
        }
 
-       if (gtk_widget_get_realized (sapplet->box) && sapplet->initialized)
+       if (gtk_widget_get_realized (GTK_WIDGET (sapplet)))
                accessx_status_applet_update (sapplet, ACCESSX_STATUS_ALL, NULL);
 }
 
 static void
-accessx_status_applet_resize (GtkWidget *widget, GtkAllocation *allocation, gpointer user_data)
+accessx_status_applet_resize (GtkWidget           *widget,
+                              GtkAllocation       *allocation,
+                              AccessxStatusApplet *sapplet)
 {
-       AccessxStatusApplet *sapplet = (AccessxStatusApplet *) user_data;
        gint old_size = sapplet->size;
 
-       if (sapplet->orient == PANEL_APPLET_ORIENT_LEFT || sapplet->orient == PANEL_APPLET_ORIENT_RIGHT) {
+       if (gp_applet_get_orientation (GP_APPLET (sapplet)) == GTK_ORIENTATION_VERTICAL) {
                sapplet->size = allocation->width;
        } else {
                sapplet->size = allocation->height;
@@ -1179,122 +1220,115 @@ key_press_cb (GtkWidget *widget, GdkEventKey *event, AccessxStatusApplet *sapple
        return FALSE;
 }
 
-static gboolean
-accessx_status_applet_reset (gpointer user_data)
-{
-       AccessxStatusApplet *sapplet = user_data;
-       g_assert (sapplet->applet);
-       accessx_status_applet_reorient (GTK_WIDGET (sapplet->applet), 
-                                       panel_applet_get_orient (sapplet->applet), sapplet);
-       return FALSE;
-}
-
-static gboolean 
-accessx_status_applet_initialize (AccessxStatusApplet *sapplet)
-{
-       if (!sapplet->initialized) {
-               sapplet->initialized = True;
-               if (!accessx_status_applet_xkb_select (sapplet)) {
-                       disable_applet (sapplet);
-                       popup_error_dialog (sapplet);
-                       return FALSE ;
-               }
-               gdk_window_add_filter (NULL, accessx_status_xkb_filter, sapplet);
-       }
-       accessx_status_applet_init_modifiers (sapplet);
-       accessx_status_applet_update (sapplet, ACCESSX_STATUS_ALL, NULL);
-
-       return TRUE;
-}
-
 static void
-accessx_status_applet_realize (GtkWidget *widget, gpointer user_data)
+accessx_status_applet_realize (GtkWidget           *widget,
+                               AccessxStatusApplet *self)
 {
-       AccessxStatusApplet *sapplet = user_data;
-
-       if (!accessx_status_applet_initialize (sapplet))
-               return;
-
-       g_idle_add (accessx_status_applet_reset, sapplet);
-       return;
+  if (!accessx_status_applet_xkb_select (self))
+    {
+      disable_applet (self);
+      popup_error_dialog (self);
+      return;
+    }
+
+  accessx_status_applet_init_modifiers (self);
+  accessx_status_applet_update (self, ACCESSX_STATUS_ALL, NULL);
 }
 
-static gboolean
-accessx_status_applet_fill (PanelApplet *applet)
+static void
+accessx_status_applet_fill (AccessxStatusApplet *sapplet)
 {
-       AccessxStatusApplet *sapplet;
        AtkObject           *atk_object;
-       GSimpleActionGroup  *action_group;
+       const char          *menu_resource;
        GAction             *action;
-       gchar               *ui_path;
-       gboolean was_realized = FALSE;
 
-       sapplet = create_applet (applet);
+       create_applet (sapplet);
 
-       if (!gtk_widget_get_realized (sapplet->box)) {
-               g_signal_connect_after (G_OBJECT (sapplet->box), 
-                                       "realize", G_CALLBACK (accessx_status_applet_realize), 
-                                       sapplet);
-       } else {
-               accessx_status_applet_initialize (sapplet);
-               was_realized = TRUE;
-       }
+       g_signal_connect_after (sapplet,
+                               "realize",
+                               G_CALLBACK (accessx_status_applet_realize),
+                               sapplet);
+
+       g_signal_connect (sapplet,
+                         "placement-changed",
+                         G_CALLBACK (placement_changed_cb),
+                         sapplet);
 
-       g_object_connect (sapplet->applet,
-                         "signal::destroy", accessx_status_applet_destroy, sapplet,
-                         "signal::change_orient", accessx_status_applet_reorient, sapplet,
-                         "signal::size-allocate", accessx_status_applet_resize, sapplet,
-                         NULL);
-                         
-       g_signal_connect (sapplet->applet, "button_press_event",
+       g_signal_connect (sapplet,
+                         "size-allocate",
+                         G_CALLBACK (accessx_status_applet_resize),
+                         sapplet);
+
+       g_signal_connect (sapplet, "button_press_event",
                                   G_CALLBACK (button_press_cb), sapplet);
-       g_signal_connect (sapplet->applet, "key_press_event",
+       g_signal_connect (sapplet, "key_press_event",
                                   G_CALLBACK (key_press_cb), sapplet);                            
 
-       action_group = g_simple_action_group_new ();
-       g_action_map_add_action_entries (G_ACTION_MAP (action_group),
-                                        accessx_status_applet_menu_actions,
-                                        G_N_ELEMENTS (accessx_status_applet_menu_actions),
-                                        sapplet);
-       ui_path = g_build_filename (ACCESSX_MENU_UI_DIR, "accessx-status-applet-menu.xml", NULL);
-       panel_applet_setup_menu_from_file (sapplet->applet, ui_path, action_group, GETTEXT_PACKAGE);
-       g_free (ui_path);
-
-       gtk_widget_insert_action_group (GTK_WIDGET (applet), "accessx",
-                                       G_ACTION_GROUP (action_group));
+       menu_resource = GRESOURCE_PREFIX "/ui/accessx-status-applet-menu.xml";
+       gp_applet_setup_menu_from_resource (GP_APPLET (sapplet),
+                                           menu_resource,
+                                           accessx_status_applet_menu_actions);
 
-       action = g_action_map_lookup_action (G_ACTION_MAP (action_group), "dialog");
-       g_object_bind_property (applet, "locked-down", action, "enabled",
+       action = gp_applet_menu_lookup_action (GP_APPLET (sapplet), "dialog");
+       g_object_bind_property (sapplet, "locked-down", action, "enabled",
                             G_BINDING_DEFAULT|G_BINDING_INVERT_BOOLEAN|G_BINDING_SYNC_CREATE);
 
-       g_object_unref (action_group);
-
-       gtk_widget_set_tooltip_text (GTK_WIDGET (sapplet->applet), _("Keyboard Accessibility Status"));
+       gtk_widget_set_tooltip_text (GTK_WIDGET (sapplet), _("Keyboard Accessibility Status"));
 
-       atk_object = gtk_widget_get_accessible (GTK_WIDGET (sapplet->applet));
+       atk_object = gtk_widget_get_accessible (GTK_WIDGET (sapplet));
        atk_object_set_name (atk_object, _("AccessX Status"));
        atk_object_set_description (atk_object,
                                    _("Displays current state of keyboard accessibility features"));
-       gtk_widget_show_all (GTK_WIDGET (sapplet->applet));
-       if (was_realized) {
-               accessx_status_applet_reset (sapplet);
-       }
 
-       return TRUE;
+       gtk_widget_show_all (GTK_WIDGET (sapplet));
 }
 
-static gboolean
-accessx_status_applet_factory (PanelApplet *applet,
-                              const gchar *iid,
-                              gpointer     data)
+static void
+accessx_status_applet_constructed (GObject *object)
+{
+  G_OBJECT_CLASS (accessx_status_applet_parent_class)->constructed (object);
+  accessx_status_applet_fill (ACCESSX_STATUS_APPLET (object));
+}
+
+static void
+accessx_status_applet_finalize (GObject *object)
+{
+  AccessxStatusApplet *self;
+
+  self = ACCESSX_STATUS_APPLET (object);
+
+  gdk_window_remove_filter (NULL, accessx_status_xkb_filter, self);
+
+  if (self->xkb != NULL)
+    {
+      XkbFreeKeyboard (self->xkb, 0, True);
+      self->xkb = NULL;
+    }
+
+  if (self->xkb_display)
+    {
+      XCloseDisplay (self->xkb_display);
+      self->xkb_display = NULL;
+    }
+
+  G_OBJECT_CLASS (accessx_status_applet_parent_class)->finalize (object);
+}
+
+static void
+accessx_status_applet_class_init (AccessxStatusAppletClass *self_class)
 {
-       gboolean retval = FALSE;
-       if (!strcmp (iid, "AccessxStatusApplet"))
-               retval = accessx_status_applet_fill (applet);
-       return retval;
+  GObjectClass *object_class;
+
+  object_class = G_OBJECT_CLASS (self_class);
+
+  object_class->constructed = accessx_status_applet_constructed;
+  object_class->finalize = accessx_status_applet_finalize;
 }
 
-PANEL_APPLET_IN_PROCESS_FACTORY ("AccessxStatusAppletFactory",
-                                 PANEL_TYPE_APPLET,
-                                 accessx_status_applet_factory,
-                                 NULL)
+static void
+accessx_status_applet_init (AccessxStatusApplet *self)
+{
+  gp_applet_set_flags (GP_APPLET (self), GP_APPLET_FLAGS_EXPAND_MINOR);
+
+  gdk_window_add_filter (NULL, accessx_status_xkb_filter, self);
+}
diff --git a/gnome-applets/accessx-status/accessx-status-applet.h 
b/gnome-applets/accessx-status/accessx-status-applet.h
new file mode 100644
index 000000000..949a9b930
--- /dev/null
+++ b/gnome-applets/accessx-status/accessx-status-applet.h
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2020 Alberts Muktupāvels
+ *
+ * This program is free software: you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License as published by
+ * the Free Software Foundation, either version 2 of the License, or
+ * (at your option) any later version.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef ACCESSX_STATUS_APPLET_H
+#define ACCESSX_STATUS_APPLET_H
+
+#include <libgnome-panel/gp-applet.h>
+
+G_BEGIN_DECLS
+
+#define ACCESSX_STATUS_TYPE_APPLET (accessx_status_applet_get_type ())
+G_DECLARE_FINAL_TYPE (AccessxStatusApplet, accessx_status_applet,
+                      ACCESSX_STATUS, APPLET, GpApplet)
+
+G_END_DECLS
+
+#endif
diff --git a/accessx-status/pixmaps/ax-applet.png b/gnome-applets/accessx-status/icons/ax-applet.png
similarity index 100%
rename from accessx-status/pixmaps/ax-applet.png
rename to gnome-applets/accessx-status/icons/ax-applet.png
diff --git a/accessx-status/pixmaps/ax-bouncekeys.png b/gnome-applets/accessx-status/icons/ax-bouncekeys.png
similarity index 100%
rename from accessx-status/pixmaps/ax-bouncekeys.png
rename to gnome-applets/accessx-status/icons/ax-bouncekeys.png
diff --git a/accessx-status/pixmaps/ax-key-base.png b/gnome-applets/accessx-status/icons/ax-key-base.png
similarity index 100%
rename from accessx-status/pixmaps/ax-key-base.png
rename to gnome-applets/accessx-status/icons/ax-key-base.png
diff --git a/accessx-status/pixmaps/ax-key-inverse.png b/gnome-applets/accessx-status/icons/ax-key-inverse.png
similarity index 100%
rename from accessx-status/pixmaps/ax-key-inverse.png
rename to gnome-applets/accessx-status/icons/ax-key-inverse.png
diff --git a/accessx-status/pixmaps/ax-key-no.png b/gnome-applets/accessx-status/icons/ax-key-no.png
similarity index 100%
rename from accessx-status/pixmaps/ax-key-no.png
rename to gnome-applets/accessx-status/icons/ax-key-no.png
diff --git a/accessx-status/pixmaps/ax-key-none.png b/gnome-applets/accessx-status/icons/ax-key-none.png
similarity index 100%
rename from accessx-status/pixmaps/ax-key-none.png
rename to gnome-applets/accessx-status/icons/ax-key-none.png
diff --git a/accessx-status/pixmaps/ax-key-yes.png b/gnome-applets/accessx-status/icons/ax-key-yes.png
similarity index 100%
rename from accessx-status/pixmaps/ax-key-yes.png
rename to gnome-applets/accessx-status/icons/ax-key-yes.png
diff --git a/accessx-status/pixmaps/ax-slowkeys-no.png b/gnome-applets/accessx-status/icons/ax-slowkeys-no.png
similarity index 100%
rename from accessx-status/pixmaps/ax-slowkeys-no.png
rename to gnome-applets/accessx-status/icons/ax-slowkeys-no.png
diff --git a/accessx-status/pixmaps/ax-slowkeys-pending.png 
b/gnome-applets/accessx-status/icons/ax-slowkeys-pending.png
similarity index 100%
rename from accessx-status/pixmaps/ax-slowkeys-pending.png
rename to gnome-applets/accessx-status/icons/ax-slowkeys-pending.png
diff --git a/accessx-status/pixmaps/ax-slowkeys-yes.png 
b/gnome-applets/accessx-status/icons/ax-slowkeys-yes.png
similarity index 100%
rename from accessx-status/pixmaps/ax-slowkeys-yes.png
rename to gnome-applets/accessx-status/icons/ax-slowkeys-yes.png
diff --git a/accessx-status/pixmaps/ax-slowkeys.png b/gnome-applets/accessx-status/icons/ax-slowkeys.png
similarity index 100%
rename from accessx-status/pixmaps/ax-slowkeys.png
rename to gnome-applets/accessx-status/icons/ax-slowkeys.png
diff --git a/accessx-status/pixmaps/mousekeys-base.png b/gnome-applets/accessx-status/icons/mousekeys-base.png
similarity index 100%
rename from accessx-status/pixmaps/mousekeys-base.png
rename to gnome-applets/accessx-status/icons/mousekeys-base.png
diff --git a/accessx-status/pixmaps/mousekeys-default-left.png 
b/gnome-applets/accessx-status/icons/mousekeys-default-left.png
similarity index 100%
rename from accessx-status/pixmaps/mousekeys-default-left.png
rename to gnome-applets/accessx-status/icons/mousekeys-default-left.png
diff --git a/accessx-status/pixmaps/mousekeys-default-middle.png 
b/gnome-applets/accessx-status/icons/mousekeys-default-middle.png
similarity index 100%
rename from accessx-status/pixmaps/mousekeys-default-middle.png
rename to gnome-applets/accessx-status/icons/mousekeys-default-middle.png
diff --git a/accessx-status/pixmaps/mousekeys-default-right.png 
b/gnome-applets/accessx-status/icons/mousekeys-default-right.png
similarity index 100%
rename from accessx-status/pixmaps/mousekeys-default-right.png
rename to gnome-applets/accessx-status/icons/mousekeys-default-right.png
diff --git a/accessx-status/pixmaps/mousekeys-pressed-left.png 
b/gnome-applets/accessx-status/icons/mousekeys-pressed-left.png
similarity index 100%
rename from accessx-status/pixmaps/mousekeys-pressed-left.png
rename to gnome-applets/accessx-status/icons/mousekeys-pressed-left.png
diff --git a/accessx-status/pixmaps/mousekeys-pressed-middle.png 
b/gnome-applets/accessx-status/icons/mousekeys-pressed-middle.png
similarity index 100%
rename from accessx-status/pixmaps/mousekeys-pressed-middle.png
rename to gnome-applets/accessx-status/icons/mousekeys-pressed-middle.png
diff --git a/accessx-status/pixmaps/mousekeys-pressed-right.png 
b/gnome-applets/accessx-status/icons/mousekeys-pressed-right.png
similarity index 100%
rename from accessx-status/pixmaps/mousekeys-pressed-right.png
rename to gnome-applets/accessx-status/icons/mousekeys-pressed-right.png
diff --git a/accessx-status/pixmaps/sticky-alt-latched.png 
b/gnome-applets/accessx-status/icons/sticky-alt-latched.png
similarity index 100%
rename from accessx-status/pixmaps/sticky-alt-latched.png
rename to gnome-applets/accessx-status/icons/sticky-alt-latched.png
diff --git a/accessx-status/pixmaps/sticky-alt-locked.png 
b/gnome-applets/accessx-status/icons/sticky-alt-locked.png
similarity index 100%
rename from accessx-status/pixmaps/sticky-alt-locked.png
rename to gnome-applets/accessx-status/icons/sticky-alt-locked.png
diff --git a/accessx-status/pixmaps/sticky-alt-none.png 
b/gnome-applets/accessx-status/icons/sticky-alt-none.png
similarity index 100%
rename from accessx-status/pixmaps/sticky-alt-none.png
rename to gnome-applets/accessx-status/icons/sticky-alt-none.png
diff --git a/accessx-status/pixmaps/sticky-ctrl-latched.png 
b/gnome-applets/accessx-status/icons/sticky-ctrl-latched.png
similarity index 100%
rename from accessx-status/pixmaps/sticky-ctrl-latched.png
rename to gnome-applets/accessx-status/icons/sticky-ctrl-latched.png
diff --git a/accessx-status/pixmaps/sticky-ctrl-locked.png 
b/gnome-applets/accessx-status/icons/sticky-ctrl-locked.png
similarity index 100%
rename from accessx-status/pixmaps/sticky-ctrl-locked.png
rename to gnome-applets/accessx-status/icons/sticky-ctrl-locked.png
diff --git a/accessx-status/pixmaps/sticky-ctrl-none.png 
b/gnome-applets/accessx-status/icons/sticky-ctrl-none.png
similarity index 100%
rename from accessx-status/pixmaps/sticky-ctrl-none.png
rename to gnome-applets/accessx-status/icons/sticky-ctrl-none.png
diff --git a/accessx-status/pixmaps/sticky-hyper-latched.png 
b/gnome-applets/accessx-status/icons/sticky-hyper-latched.png
similarity index 100%
rename from accessx-status/pixmaps/sticky-hyper-latched.png
rename to gnome-applets/accessx-status/icons/sticky-hyper-latched.png
diff --git a/accessx-status/pixmaps/sticky-hyper-locked.png 
b/gnome-applets/accessx-status/icons/sticky-hyper-locked.png
similarity index 100%
rename from accessx-status/pixmaps/sticky-hyper-locked.png
rename to gnome-applets/accessx-status/icons/sticky-hyper-locked.png
diff --git a/accessx-status/pixmaps/sticky-hyper-none.png 
b/gnome-applets/accessx-status/icons/sticky-hyper-none.png
similarity index 100%
rename from accessx-status/pixmaps/sticky-hyper-none.png
rename to gnome-applets/accessx-status/icons/sticky-hyper-none.png
diff --git a/accessx-status/pixmaps/sticky-meta-latched.png 
b/gnome-applets/accessx-status/icons/sticky-meta-latched.png
similarity index 100%
rename from accessx-status/pixmaps/sticky-meta-latched.png
rename to gnome-applets/accessx-status/icons/sticky-meta-latched.png
diff --git a/accessx-status/pixmaps/sticky-meta-locked.png 
b/gnome-applets/accessx-status/icons/sticky-meta-locked.png
similarity index 100%
rename from accessx-status/pixmaps/sticky-meta-locked.png
rename to gnome-applets/accessx-status/icons/sticky-meta-locked.png
diff --git a/accessx-status/pixmaps/sticky-meta-none.png 
b/gnome-applets/accessx-status/icons/sticky-meta-none.png
similarity index 100%
rename from accessx-status/pixmaps/sticky-meta-none.png
rename to gnome-applets/accessx-status/icons/sticky-meta-none.png
diff --git a/accessx-status/pixmaps/sticky-shift-latched.png 
b/gnome-applets/accessx-status/icons/sticky-shift-latched.png
similarity index 100%
rename from accessx-status/pixmaps/sticky-shift-latched.png
rename to gnome-applets/accessx-status/icons/sticky-shift-latched.png
diff --git a/accessx-status/pixmaps/sticky-shift-locked.png 
b/gnome-applets/accessx-status/icons/sticky-shift-locked.png
similarity index 100%
rename from accessx-status/pixmaps/sticky-shift-locked.png
rename to gnome-applets/accessx-status/icons/sticky-shift-locked.png
diff --git a/accessx-status/pixmaps/sticky-shift-none.png 
b/gnome-applets/accessx-status/icons/sticky-shift-none.png
similarity index 100%
rename from accessx-status/pixmaps/sticky-shift-none.png
rename to gnome-applets/accessx-status/icons/sticky-shift-none.png
diff --git a/accessx-status/pixmaps/sticky-super-latched.png 
b/gnome-applets/accessx-status/icons/sticky-super-latched.png
similarity index 100%
rename from accessx-status/pixmaps/sticky-super-latched.png
rename to gnome-applets/accessx-status/icons/sticky-super-latched.png
diff --git a/accessx-status/pixmaps/sticky-super-locked.png 
b/gnome-applets/accessx-status/icons/sticky-super-locked.png
similarity index 100%
rename from accessx-status/pixmaps/sticky-super-locked.png
rename to gnome-applets/accessx-status/icons/sticky-super-locked.png
diff --git a/accessx-status/pixmaps/sticky-super-none.png 
b/gnome-applets/accessx-status/icons/sticky-super-none.png
similarity index 100%
rename from accessx-status/pixmaps/sticky-super-none.png
rename to gnome-applets/accessx-status/icons/sticky-super-none.png
diff --git a/gnome-applets/ga-module.c b/gnome-applets/ga-module.c
index 4a77be826..b58c6da54 100644
--- a/gnome-applets/ga-module.c
+++ b/gnome-applets/ga-module.c
@@ -21,6 +21,7 @@
 #include <glib/gi18n-lib.h>
 #include <libgnome-panel/gp-module.h>
 
+#include "accessx-status/accessx-status-applet.h"
 #include "battstat/battstat-applet.h"
 #include "brightness/brightness-applet.h"
 #include "charpick/charpick-applet.h"
@@ -44,7 +45,14 @@ ga_get_applet_info (const char *id)
   const char *icon_name;
   GpAppletInfo *info;
 
-  if (g_strcmp0 (id, "battstat") == 0)
+  if (g_strcmp0 (id, "accessx-status") == 0)
+    {
+      type_func = accessx_status_applet_get_type;
+      name = _("Keyboard Accessibility Status");
+      description = _("Shows the status of keyboard accessibility features");
+      icon_name = "ax-applet";
+    }
+  else if (g_strcmp0 (id, "battstat") == 0)
     {
       type_func = battstat_applet_get_type;
       name = _("Battery Charge Monitor");
@@ -137,7 +145,9 @@ ga_get_applet_info (const char *id)
 static const char *
 ga_get_applet_id_from_iid (const char *iid)
 {
-  if (g_strcmp0 (iid, "BattstatAppletFactory::BattstatApplet") == 0)
+  if (g_strcmp0 (iid, "AccessxStatusAppletFactory::AccessxStatusApplet") == 0)
+    return "accessx-status";
+  else if (g_strcmp0 (iid, "BattstatAppletFactory::BattstatApplet") == 0)
     return "battstat";
   else if (g_strcmp0 (iid, "BrightnessAppletFactory::BrightnessApplet") == 0)
     return "brightness";
@@ -179,6 +189,7 @@ gp_module_load (GpModule *module)
   gp_module_set_version (module, PACKAGE_VERSION);
 
   gp_module_set_applet_ids (module,
+                            "accessx-status",
                             "battstat",
                             "brightness",
                             "charpick",
diff --git a/po/POTFILES.in b/po/POTFILES.in
index 175c961dc..ed382c3a8 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -2,9 +2,6 @@
 # Please keep this file sorted alphabetically.
 #
 [encoding: UTF-8]
-[type: gettext/glade]accessx-status/accessx-status-applet-menu.xml
-[type: gettext/ini]accessx-status/org.gnome.applets.AccessxStatusApplet.panel-applet.in.in
-accessx-status/src/applet.c
 data/schemas/org.gnome.gnome-applets.battstat.gschema.xml.in.in
 data/schemas/org.gnome.gnome-applets.charpick.gschema.xml.in.in
 data/schemas/org.gnome.gnome-applets.command.gschema.xml.in.in
@@ -27,6 +24,8 @@ drivemount/src/drivemount.c
 [type: gettext/ini]geyes/org.gnome.applets.GeyesApplet.panel-applet.in.in
 geyes/src/geyes.c
 geyes/src/themes.c
+[type: gettext/glade]gnome-applets/accessx-status/accessx-status-applet-menu.xml
+gnome-applets/accessx-status/accessx-status-applet.c
 [type: gettext/glade]gnome-applets/battstat/battstat-applet-menu.xml
 [type: gettext/glade]gnome-applets/battstat/battstat-applet.ui
 gnome-applets/battstat/battstat-applet.c
diff --git a/po/POTFILES.skip b/po/POTFILES.skip
index 933686cbd..fba41b4cd 100644
--- a/po/POTFILES.skip
+++ b/po/POTFILES.skip
@@ -3,7 +3,6 @@
 # Please keep this file sorted alphabetically (in the ASCII sense:
 # upper-case before lower-case).
 #
-accessx-status/org.gnome.applets.AccessxStatusApplet.panel-applet.in
 data/schemas/org.gnome.gnome-applets.battstat.gschema.xml.in
 data/schemas/org.gnome.gnome-applets.charpick.gschema.xml.in
 data/schemas/org.gnome.gnome-applets.command.gschema.xml.in


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]