2010-03-12 14:00:14 -08:00
|
|
|
#include "e_mod_main.h"
|
|
|
|
|
|
|
|
static int _log_dom = -1;
|
|
|
|
#define DBG(...) EINA_LOG_DOM_DBG(_log_dom, __VA_ARGS__)
|
|
|
|
#define WARN(...) EINA_LOG_DOM_WARN(_log_dom, __VA_ARGS__)
|
|
|
|
#define INF(...) EINA_LOG_DOM_INFO(_log_dom, __VA_ARGS__)
|
|
|
|
#define ERR(...) EINA_LOG_DOM_ERR(_log_dom, __VA_ARGS__)
|
2007-09-25 07:26:36 -07:00
|
|
|
|
2010-03-06 23:13:28 -08:00
|
|
|
static DBusMessage *
|
2010-03-12 14:00:14 -08:00
|
|
|
cb_langs(E_DBus_Object *obj __UNUSED__, DBusMessage *message)
|
2007-09-25 07:26:36 -07:00
|
|
|
{
|
|
|
|
DBusMessage *reply;
|
|
|
|
DBusMessageIter iter;
|
|
|
|
DBusMessageIter arr;
|
2010-03-12 14:00:14 -08:00
|
|
|
const Eina_List *l;
|
|
|
|
const char *str;
|
2007-09-25 07:26:36 -07:00
|
|
|
|
|
|
|
reply = dbus_message_new_method_return(message);
|
|
|
|
dbus_message_iter_init_append(reply, &iter);
|
|
|
|
dbus_message_iter_open_container(&iter, DBUS_TYPE_ARRAY, "s", &arr);
|
|
|
|
|
2010-03-12 14:00:14 -08:00
|
|
|
EINA_LIST_FOREACH(e_intl_language_list(), l, str)
|
2010-03-06 23:13:28 -08:00
|
|
|
{
|
2010-03-12 14:00:14 -08:00
|
|
|
DBG("language: %s", str);
|
2007-09-25 07:26:36 -07:00
|
|
|
dbus_message_iter_append_basic(&arr, DBUS_TYPE_STRING, &str);
|
2010-03-06 23:13:28 -08:00
|
|
|
}
|
2007-09-25 07:26:36 -07:00
|
|
|
|
|
|
|
dbus_message_iter_close_container(&iter, &arr);
|
|
|
|
|
|
|
|
return reply;
|
|
|
|
}
|
|
|
|
|
2010-03-06 23:13:28 -08:00
|
|
|
void msgbus_lang_init(Eina_Array *ifaces)
|
2007-09-25 07:26:36 -07:00
|
|
|
{
|
2010-03-06 23:13:28 -08:00
|
|
|
E_DBus_Interface* iface;
|
2007-09-25 07:26:36 -07:00
|
|
|
|
2010-03-12 14:00:14 -08:00
|
|
|
if (_log_dom == -1)
|
|
|
|
{
|
|
|
|
_log_dom = eina_log_domain_register("msgbus_lang", EINA_COLOR_BLUE);
|
|
|
|
if (_log_dom < 0)
|
|
|
|
EINA_LOG_ERR("could not register msgbus_lang log domain!");
|
|
|
|
}
|
|
|
|
|
2007-09-25 07:26:36 -07:00
|
|
|
iface = e_dbus_interface_new("org.enlightenment.wm.Language");
|
2010-03-06 23:13:28 -08:00
|
|
|
if (iface)
|
|
|
|
{
|
|
|
|
e_dbus_interface_method_add(iface, "List", "", "as", cb_langs);
|
|
|
|
e_msgbus_interface_attach(iface);
|
|
|
|
eina_array_push(ifaces, iface);
|
|
|
|
}
|
2007-09-25 07:26:36 -07:00
|
|
|
}
|