Пример #1
0
static gboolean
load_module (const gchar * name, GtkWidget * menu)
{
    g_debug("Looking at Module: %s", name);
    g_return_val_if_fail(name != NULL, FALSE);

    if (!g_str_has_suffix(name, G_MODULE_SUFFIX)) {
        return FALSE;
    }

    g_debug("Loading Module: %s", name);

    /* Build the object for the module */
    IndicatorObject * io = indicator_object_new_from_file(name);

    /* Connect to its signals */
    g_signal_connect(G_OBJECT(io), INDICATOR_OBJECT_SIGNAL_ENTRY_ADDED,   G_CALLBACK(entry_added),    menu);
    g_signal_connect(G_OBJECT(io), INDICATOR_OBJECT_SIGNAL_ENTRY_REMOVED, G_CALLBACK(entry_removed),  menu);
    /* Work on the entries */
    GList * entries = indicator_object_get_entries(io);
    GList * entry = NULL;

    for (entry = entries; entry != NULL; entry = g_list_next(entry)) {
        IndicatorObjectEntry * entrydata = (IndicatorObjectEntry *)entry->data;
        entry_added(io, entrydata, menu);
    }

    g_list_free(entries);

    return TRUE;
}
Пример #2
0
static gboolean
load_indicator (IndicatorObject *io, GtkWidget * menu)
{
    g_return_val_if_fail(io != NULL, FALSE);

    /* Connect to its signals */
    g_signal_connect(G_OBJECT(io), INDICATOR_OBJECT_SIGNAL_ENTRY_ADDED,   G_CALLBACK(entry_added),    menu);
    g_signal_connect(G_OBJECT(io), INDICATOR_OBJECT_SIGNAL_ENTRY_REMOVED, G_CALLBACK(entry_removed),  menu);
    /* Work on the entries */
    GList * entries = indicator_object_get_entries(io);
    GList * entry = NULL;

    for (entry = entries; entry != NULL; entry = g_list_next(entry)) {
        IndicatorObjectEntry * entrydata = (IndicatorObjectEntry *)entry->data;
        entry_added(io, entrydata, menu);
    }

    g_list_free(entries);

    return TRUE;
}
Пример #3
0
static void pp_load_indicator_module(PPPanel *panel, const gchar *name)
{
    fprintf(stderr, "loading %s\n", name);

    gchar *path = g_build_filename(PP_INDICATOR_DIR, name, NULL);
    IndicatorObject *obj = indicator_object_new_from_file(path);
    g_free(path);

    /* TODO: Removal handler */
	g_signal_connect(G_OBJECT(obj), INDICATOR_OBJECT_SIGNAL_ENTRY_ADDED,
        G_CALLBACK(pp_on_entry_added), panel);

    GList *entries = indicator_object_get_entries(obj);
    GList *entry = entries;
    while (entry != NULL) {
        IndicatorObjectEntry *entry_data = (IndicatorObjectEntry *)
            entry->data;
        pp_on_entry_added(obj, entry_data, panel);
        entry = g_list_next(entry);
    }
    g_list_free(entries);
}