Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <gtk/gtk.h>
- static gboolean print_cmd_arg(GApplication *app, GApplicationCommandLine *app_cmd, int *argc)
- {
- g_application_activate(app);
- if (*argc > 1)
- {
- char **argv = g_application_command_line_get_arguments(app_cmd, argc);
- [nikola@leviathan tmp]$ cat test.c
- #include <gtk/gtk.h>
- static gboolean print_cmd_arg(GApplication *app, GApplicationCommandLine *app_cmd, int *argc)
- {
- g_application_activate(app);
- if (*argc > 1)
- {
- char **argv = g_application_command_line_get_arguments(app_cmd, argc);
- GFile *file = g_file_new_for_commandline_arg(argv[1]);
- if (g_file_query_exists(file, NULL))
- {
- char *text;
- g_file_load_contents(file, NULL, &text, NULL, NULL, NULL);
- g_print("%s", text);
- g_free(text);
- g_object_unref(file);
- }
- else
- {
- g_print("File \'%s\' does not exist.\n", argv[1]);
- g_object_unref(file);
- }
- }
- }
- static void activation(GtkApplication *app, gpointer user_data)
- {
- GtkWidget *window = gtk_application_window_new(app);
- gtk_window_set_default_size(GTK_WINDOW(window), 200, 200);
- gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER_ALWAYS);
- gtk_window_set_title(GTK_WINDOW(window), "Test");
- g_signal_connect(window, "delete-event", G_CALLBACK(gtk_widget_destroy), NULL);
- GtkWidget *button = gtk_button_new_with_label("Quit");
- g_signal_connect_swapped(button, "clicked", G_CALLBACK(gtk_widget_destroy), window);
- gtk_container_set_border_width(GTK_CONTAINER(window), 10);
- gtk_container_add(GTK_CONTAINER(window), button);
- gtk_widget_show_all(window);
- }
- int main(int argc, char **argv)
- {
- int status = 1234;
- GtkApplication *test = gtk_application_new("this.is.only.a.test", G_APPLICATION_NON_UNIQUE | G_APPLICATION_HANDLES_COMMAND_LINE);
- g_signal_connect(test, "activate", G_CALLBACK(activation), NULL);
- g_signal_connect(G_APPLICATION(test), "command-line", G_CALLBACK(print_cmd_arg), &argc);
- status = g_application_run(G_APPLICATION(test), argc, argv);
- g_print("%d\n", status);
- return status;
- }
Advertisement
Add Comment
Please, Sign In to add comment