Guest User

plug.c

a guest
Jun 26th, 2017
121
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.54 KB | None | 0 0
  1. #include <gtk/gtk.h>
  2. #include <gtk/gtkx.h>
  3. #include <stdio.h>
  4.  
  5. static void destroy_cb(GtkWidget *widget, gpointer data)
  6. {
  7.     gtk_main_quit();
  8. }
  9.  
  10. static void embedded_cb(GtkWidget *widget, gpointer data)
  11. {
  12.     g_print("Embed event occurred\n");
  13. }
  14.  
  15. static void entry_activated_cb(GtkWidget *widget, gpointer data)
  16. {
  17.     g_print("Entry activated\n");
  18. }
  19.  
  20. void load_css()
  21. {
  22.     GtkCssProvider *provider;
  23.     GdkDisplay *display;
  24.     GdkScreen *screen;
  25.     provider = gtk_css_provider_new ();
  26.     display = gdk_display_get_default ();
  27.     screen = gdk_display_get_default_screen (display);
  28.     gtk_style_context_add_provider_for_screen (screen, GTK_STYLE_PROVIDER (provider), GTK_STYLE_PROVIDER_PRIORITY_APPLICATION);
  29.     const gchar* filename = "plug.css";
  30.     GError *error = 0;
  31.     gtk_css_provider_load_from_file(provider, g_file_new_for_path(filename), &error);
  32.     g_object_unref (provider);
  33. }
  34.  
  35. int main(int argc, char *argv[])
  36. {
  37.     gtk_init(&argc, &argv);
  38.     if (argc != 2){
  39.         g_print("Socket Id is needed\n");
  40.         return -1;
  41.     }
  42.  
  43.     unsigned int socket_id = -1;
  44.     sscanf (argv[1], "%u", &socket_id);
  45.  
  46.     GtkWidget *plug = gtk_plug_new(socket_id);
  47.  
  48.     g_signal_connect(plug, "destroy", G_CALLBACK(destroy_cb), NULL);
  49.     g_signal_connect(plug, "embedded", G_CALLBACK(embedded_cb), NULL);
  50.  
  51.     GtkWidget *entry = gtk_entry_new();
  52.     gtk_entry_set_text(GTK_ENTRY(entry), "Plug and Socket");
  53.     g_signal_connect(entry, "activate", G_CALLBACK(entry_activated_cb), NULL);
  54.     gtk_container_add (GTK_CONTAINER(plug), entry);
  55.  
  56.     gtk_widget_show_all(plug);
  57.  
  58.     load_css();
  59.     gtk_main();
  60.  
  61.     return 0;
  62. }
Advertisement
Add Comment
Please, Sign In to add comment