Example #1
0
gboolean
actions_changed_cb(GSignalInvocationHint *hint,
                   guint n_param_values,
                   const GValue *param_values,
                   gpointer data)
{
    ParasiteActionList *actionlist = PARASITE_ACTIONLIST(data);
    GtkUIManager *uimanager;
    GSList *i;

    uimanager = GTK_UI_MANAGER(g_value_get_object(&param_values[0]));

    i = g_slist_find(actionlist->priv->uimanagers, uimanager);
    if (i == NULL) {
        actionlist->priv->uimanagers =
            g_slist_prepend(actionlist->priv->uimanagers, uimanager);
        g_object_weak_ref(G_OBJECT(uimanager), uimanager_dispose_cb, data);
    }

    if (actionlist->priv->update_timeout == 0) {
        actionlist->priv->update_timeout =
            g_timeout_add(20, (GSourceFunc) update, actionlist);
    }

    return TRUE;
}
Example #2
0
void
uimanager_dispose_cb(gpointer data,
                     GObject *object)
{
    ParasiteActionList *actionlist = PARASITE_ACTIONLIST(data);
    actionlist->priv->uimanagers =
        g_slist_remove(actionlist->priv->uimanagers, object);

    if (actionlist->priv->update_timeout == 0) {
        actionlist->priv->update_timeout =
            g_timeout_add(20, (GSourceFunc) update, actionlist);
    }
}
Example #3
0
static void
on_send_action_to_shell_activate(GtkWidget *menuitem,
                                 ParasiteWindow *parasite)
{
    gpointer selection = parasite_actionlist_get_selected_object(
        PARASITE_ACTIONLIST(parasite->action_list));
    if (selection != NULL) {
        char *str = g_strdup_printf("parasite.gobj(%p)", selection);

        parasite_python_shell_append_text(
            PARASITE_PYTHON_SHELL(parasite->python_shell),
            str, NULL);

        g_free(str);

        parasite_python_shell_focus(PARASITE_PYTHON_SHELL(parasite->python_shell));
    }
}