Untitled

 avatar
unknown
c_cpp
a year ago
14 kB
16
Indexable
#line 556 "/home/x1bncwn/pike/src/post_modules/GTK3/source/gtkapplication.pre"
/* Internal C callbacks */
void pgtk3_startup_callback(GtkApplication *app, gpointer user_data) {
    apply((struct object *)user_data, "startup", 0);
}

void pgtk3_shutdown_callback(GtkApplication *app, gpointer user_data) {
    apply((struct object *)user_data, "shutdown", 0);
}

void pgtk3_activate_callback(GtkApplication *app, gpointer user_data) {
    apply((struct object *)user_data, "activate", 0);
}

void pgtk3_open_callback(GtkApplication *app, GFile **files, gint n_files, const gchar *hint, gpointer user_data) {
    push_object((struct object *)user_data);
    struct array *a;
    files_to_pike_array(files, n_files, &a);
    push_array(a);
    apply((struct object *)user_data, "open", 1);
}

void pgtk3_window_added_callback(GtkApplication *app, GtkWindow *window, gpointer user_data) {
    push_object((struct object *)user_data);
    push_gobject(window);
    apply((struct object *)user_data, "window_added", 1);
}

void pgtk3_window_removed_callback(GtkApplication *app, GtkWindow *window, gpointer user_data) {
    push_object((struct object *)user_data);
    push_gobject(window);
    apply((struct object *)user_data, "window_removed", 1);
}

void pgtk3_application__sprintf( INT32 args )
#line 1 "/home/x1bncwn/pike/src/post_modules/GTK3/source/gtkapplication.pre"
{
  pgtk3_default__sprintf( args, 70,16 );
}

void pgtk3_application_activate( INT32 args )
#line 62 "/home/x1bncwn/pike/src/post_modules/GTK3/source/gtkapplication.pre"
{
    pgtk3_verify_inited();
    {
        if (!THIS->obj) {
            Pike_error("Application object not initialized in activate.\n");
        } else {
            GtkWidget *win = gtk_application_window_new((GtkApplication *)THIS->obj);
            if (win) {
                gtk_widget_set_visible(win, TRUE);
                fprintf(stderr, "ACTIVATE: Created and showed window at %p for app at %p\n", win, THIS->obj);
                g_object_ref(win);
            } else {
                fprintf(stderr, "ACTIVATE: Failed to create default window for app at %p\n", THIS->obj);
            }
        }
    }
    RETURN_THIS();
}

void pgtk3_application_add_window( INT32 args )
#line 137 "/home/x1bncwn/pike/src/post_modules/GTK3/source/gtkapplication.pre"
{
    pgtk3_verify_inited();
    {
        struct object *window_obj;
        get_all_args(NULL, args, "%O", &window_obj);
        if (!THIS->obj) {
            Pike_error("Application object not initialized.\n");
        }
        GObject *win = get_gobject(window_obj);
        if (!win || !GTK_IS_WINDOW(win)) {
            Pike_error("Invalid window object.\n");
        }
        gtk_application_add_window((GtkApplication *)THIS->obj, (GtkWindow *)win);
        fprintf(stderr, "ADD_WINDOW: Added window %p to app %p\n", win, THIS->obj);
    }
}

void pgtk3_application_new( INT32 args )
#line 12 "/home/x1bncwn/pike/src/post_modules/GTK3/source/gtkapplication.pre"
{
    pgtk3_verify_not_inited();
    {
        const char *app_id = "org.pike.gtk3.demo";
        GApplicationFlags f = G_APPLICATION_DEFAULT_FLAGS;
        if (args > 0 && TYPEOF(Pike_sp[-args]) == PIKE_T_STRING) {
            app_id = STR0(Pike_sp[-args].u.string);
        }
        if (args > 1 && TYPEOF(Pike_sp[-args+1]) == PIKE_T_INT) {
            f = Pike_sp[-args+1].u.integer;
        }
        THIS->obj = (GObject *)gtk_application_new(app_id, f);
        if (!THIS->obj) {
            Pike_error("Failed to create GtkApplication instance.\n");
        }
        fprintf(stderr, "CREATE: Application initialized at %p\n", THIS->obj);
        pgtk3__init_this_object();
    }
}

void pgtk3_application_get_accels_for_action( INT32 args )
#line 434 "/home/x1bncwn/pike/src/post_modules/GTK3/source/gtkapplication.pre"
{
    pgtk3_verify_inited();
    {
        if (!THIS->obj) {
            Pike_error("Application object not initialized.\n");
        }
        const char *name = STR0(Pike_sp[-args].u.string);
        gchar **accels = gtk_application_get_accels_for_action((GtkApplication *)THIS->obj, name);
        struct array *a;
        g_strv_to_pike_array(accels, &a);
        g_strfreev(accels);
        push_array(a);
    }
}

void pgtk3_application_get_actions_for_accel( INT32 args )
#line 288 "/home/x1bncwn/pike/src/post_modules/GTK3/source/gtkapplication.pre"
{
    pgtk3_verify_inited();
    {
        const char *accel_str;
        get_all_args(NULL, args, "%s", &accel_str);
        if (!THIS->obj) {
            Pike_error("Application object not initialized.\n");
        }
        gchar **actions = gtk_application_get_actions_for_accel((GtkApplication *)THIS->obj, accel_str);
        struct array *result;
        g_strv_to_pike_array(actions, &result);
        g_strfreev(actions);
        push_array(result);
    }
}
void pgtk3_application_get_active_window( INT32 args )
#line 345 "/home/x1bncwn/pike/src/post_modules/GTK3/source/gtkapplication.pre"
{
    pgtk3_verify_inited();
    {
        if (!THIS->obj) {
            Pike_error("Application object not initialized.\n");
        }
        GtkWindow *win = gtk_application_get_active_window((GtkApplication *)THIS->obj);
        push_gobject(win);
    }
}
void pgtk3_application_get_window_by_id( INT32 args )
#line 240 "/home/x1bncwn/pike/src/post_modules/GTK3/source/gtkapplication.pre"
{
    pgtk3_verify_inited();
    {
        int id;
        get_all_args(NULL, args, "%i", &id);
        if (!THIS->obj) {
            Pike_error("Application object not initialized.\n");
        }
        GtkWindow *win = gtk_application_get_window_by_id((GtkApplication *)THIS->obj, id);
        push_gobject(win);
    }
}
void pgtk3_application_get_windows( INT32 args )
#line 329 "/home/x1bncwn/pike/src/post_modules/GTK3/source/gtkapplication.pre"
{
    pgtk3_verify_inited();
    {
        if (!THIS->obj) {
            Pike_error("Application object not initialized.\n");
        }
        GList *list = gtk_application_get_windows((GtkApplication *)THIS->obj);
        struct array *a;
        glist_to_pike_array(list, GTK_TYPE_WINDOW, &a);
        push_array(a);
    }
}

void pgtk3_application_inhibit( INT32 args )
#line 176 "/home/x1bncwn/pike/src/post_modules/GTK3/source/gtkapplication.pre"
{
    pgtk3_verify_inited();
    {
        struct object *window_obj = NULL;
        int flags = 0;
        const char *reason = NULL;
        get_all_args(NULL, args, "%O%i.%s", &window_obj, &flags, &reason);
        if (!THIS->obj) {
            Pike_error("Application object not initialized.\n");
        }
        GtkWindow *win = NULL;
        if (window_obj) {
            win = (GtkWindow *)get_gobject(window_obj);
            if (win && !GTK_IS_WINDOW(win)) {
                Pike_error("Invalid window object.\n");
            }
        }
        guint cookie = gtk_application_inhibit((GtkApplication *)THIS->obj, win, flags, reason);
        push_int(cookie);
    }
}
void pgtk3_application_is_inhibited( INT32 args )
#line 528 "/home/x1bncwn/pike/src/post_modules/GTK3/source/gtkapplication.pre"
{
    pgtk3_verify_inited();
    {
        if (!THIS->obj) {
            Pike_error("Application object not initialized.\n");
        }
        gboolean inhibited = gtk_application_is_inhibited((GtkApplication *)THIS->obj, Pike_sp[-args].u.integer);
        push_int(inhibited);
    }
}
void pgtk3_application_list_action_descriptions( INT32 args )
#line 451 "/home/x1bncwn/pike/src/post_modules/GTK3/source/gtkapplication.pre"
{
    pgtk3_verify_inited();
    {
        if (!THIS->obj) {
            Pike_error("Application object not initialized.\n");
        }
        gchar **actions = gtk_application_list_action_descriptions((GtkApplication *)THIS->obj);
        struct array *a;
        g_strv_to_pike_array(actions, &a);
        g_strfreev(actions);
        push_array(a);
    }
}
void pgtk3_application_open( INT32 args )
#line 83 "/home/x1bncwn/pike/src/post_modules/GTK3/source/gtkapplication.pre"
{
    pgtk3_verify_inited();
    {
        if (THIS->obj) {
            struct array *a;
            get_all_args(NULL, args, "%A", &a);
            if (a && a->size > 0) {
                GtkWidget *win = gtk_application_window_new((GtkApplication *)THIS->obj);
                if (win) {
                    fprintf(stderr, "OPEN: Opened %d files in window at %p for app at %p\n", a->size, win, THIS->obj);
                    gtk_widget_set_visible(win, TRUE);
                    g_object_ref(win);
                }
            }
        } else {
            Pike_error("Application object not initialized in open.\n");
        }
    }
    RETURN_THIS();
}

void pgtk3_application_prefers_app_menu( INT32 args )
#line 543 "/home/x1bncwn/pike/src/post_modules/GTK3/source/gtkapplication.pre"
{
    pgtk3_verify_inited();
    {
        if (!THIS->obj) {
            Pike_error("Application object not initialized.\n");
        }
        gboolean prefers = gtk_application_prefers_app_menu((GtkApplication *)THIS->obj);
        push_int(prefers);
    }
}
void pgtk3_application_remove_window( INT32 args )
#line 156 "/home/x1bncwn/pike/src/post_modules/GTK3/source/gtkapplication.pre"
{
    pgtk3_verify_inited();
    {
        struct object *window_obj;
        get_all_args(NULL, args, "%O", &window_obj);
        if (!THIS->obj) {
            Pike_error("Application object not initialized.\n");
        }
        GObject *win = get_gobject(window_obj);
        if (!win || !GTK_IS_WINDOW(win)) {
            Pike_error("Invalid window object.\n");
        }
        gtk_application_remove_window((GtkApplication *)THIS->obj, (GtkWindow *)win);
        fprintf(stderr, "REMOVE_WINDOW: Removed window %p from app %p\n", win, THIS->obj);
    }
}

void pgtk3_application_run( INT32 args )
#line 106 "/home/x1bncwn/pike/src/post_modules/GTK3/source/gtkapplication.pre"
{
    pgtk3_verify_inited();
    {
        int status, argc = 0;
        char **argv = NULL;
        if (args > 0 && TYPEOF(Pike_sp[-args]) == PIKE_T_ARRAY) {
            struct array *args_array = Pike_sp[-args].u.array;
            argc = args_array->size;
            argv = calloc(argc + 1, sizeof(char *));
            if (!argv) Pike_error("Failed to allocate argument array\n");
            for (int i = 0; i < argc; i++) {
                if (TYPEOF(args_array->item[i]) == PIKE_T_STRING)
                    argv[i] = (char *)STR0(args_array->item[i].u.string);
                else {
                    free(argv);
                    Pike_error("Invalid argument type in command_line_args\n");
                }
            }
            argv[argc] = NULL;
        }
        if (!THIS->obj) {
            Pike_error("Application object not initialized in run.\n");
        }
        status = g_application_run(G_APPLICATION(THIS->obj), argc, argv);
        if (argv) free(argv);
        push_int(status);
    }
}

void pgtk3_application_set_accels_for_action( INT32 args )
#line 257 "/home/x1bncwn/pike/src/post_modules/GTK3/source/gtkapplication.pre"
{
    pgtk3_verify_inited();
    {
        const char *action_name;
        struct array *accels;
        get_all_args(NULL, args, "%s%A", &action_name, &accels);
        if (!THIS->obj) {
            Pike_error("Application object not initialized.\n");
        }
        if (accels && accels->size > 0) {
            char **accel_array = calloc(accels->size + 1, sizeof(char *));
            if (!accel_array) Pike_error("Failed to allocate accelerators array\n");
            for (int i = 0; i < accels->size; i++) {
                if (TYPEOF(accels->item[i]) == PIKE_T_STRING)
                    accel_array[i] = (char *)STR0(accels->item[i].u.string);
                else {
                    free(accel_array);
                    Pike_error("Invalid accelerator type\n");
                }
            }
            accel_array[accels->size] = NULL;
            gtk_application_set_accels_for_action((GtkApplication *)THIS->obj, action_name, (const gchar * const *)accel_array);
            free(accel_array);
        }
    }
}
void pgtk3_application_shutdown( INT32 args )
#line 48 "/home/x1bncwn/pike/src/post_modules/GTK3/source/gtkapplication.pre"
{
    pgtk3_verify_inited();
    {
        if (THIS->obj) {
            g_object_unref(THIS->obj);
            fprintf(stderr, "SHUTDOWN: Unreferenced application at %p\n", THIS->obj);
            THIS->obj = NULL;
        }
    }
    RETURN_THIS();
}

void pgtk3_application_startup( INT32 args )
#line 34 "/home/x1bncwn/pike/src/post_modules/GTK3/source/gtkapplication.pre"
{
    pgtk3_verify_inited();
    {
        if (!THIS->obj) {
            Pike_error("Application object not initialized in startup.\n");
        } else {
            fprintf(stderr, "STARTUP: Application ready at %p\n", THIS->obj);
        }
    }
    RETURN_THIS();
}

void pgtk3_application_uninhibit( INT32 args )
#line 516 "/home/x1bncwn/pike/src/post_modules/GTK3/source/gtkapplication.pre"
{
    pgtk3_verify_inited();
    {
        if (!THIS->obj) {
            Pike_error("Application object not initialized.\n");
        }
        gtk_application_uninhibit((GtkApplication *)THIS->obj, Pike_sp[-args].u.integer);
    }
}

void pgtk3_application_window_added( INT32 args )
#line 201 "/home/x1bncwn/pike/src/post_modules/GTK3/source/gtkapplication.pre"
{
    pgtk3_verify_inited();
    {
        struct object *window_obj;
        get_all_args(NULL, args, "%O", &window_obj);
        if (!THIS->obj) {
            Pike_error("Application object not initialized.\n");
        }
        GObject *win = get_gobject(window_obj);
        if (!win || !GTK_IS_WINDOW(win)) {
            Pike_error("Invalid window object.\n");
        }
        fprintf(stderr, "WINDOW_ADDED: Window %p added to app %p\n", win, THIS->obj);
    }
    RETURN_THIS();
}

void pgtk3_application_window_removed( INT32 args )
#line 220 "/home/x1bncwn/pike/src/post_modules/GTK3/source/gtkapplication.pre"
{
    pgtk3_verify_inited();
    {
        struct object *window_obj;
        get_all_args(NULL, args, "%O", &window_obj);
        if (!THIS->obj) {
            Pike_error("Application object not initialized.\n");
        }
        GObject *win = get_gobject(window_obj);
        if (!win || !GTK_IS_WINDOW(win)) {
            Pike_error("Invalid window object.\n");
        }
        fprintf(stderr, "WINDOW_REMOVED: Window %p removed from app %p\n", win, THIS->obj);
    }
    RETURN_THIS();
}
Editor is loading...
Leave a Comment