Untitled
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