Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. #include <stdlib.h>
  2. #include <gtk/gtk.h>
  3.  
  4. #define MAXTEST 100000000
  5.  
  6. typedef struct WidgetBank
  7. {
  8.     GtkWidget *window;
  9.     GtkWidget *fixedspace;
  10.     GtkWidget *button;
  11.     GtkWidget *PrimeToFind;
  12.     GtkWidget *readoutCount;
  13.     GtkWidget *readoutPrime;
  14.     GtkEntryBuffer *PrimeToFindBuffer;
  15. } Widgets;
  16.  
  17. int isitprime(unsigned long int index);
  18.  
  19. static void destroy (GtkWidget *window, gpointer data)
  20. {
  21.     gtk_main_quit ();
  22. }
  23. //callback function that starts prime finder and updates labels in main window
  24. static void FindNthPrime (GtkWidget *button, gpointer data)
  25. {
  26.     Widgets *widgets = data;
  27.     char *PrimeToFind = gtk_entry_buffer_get_text(widgets->PrimeToFindBuffer);
  28.  
  29.     //gtk_label_set_text((GtkLabel *)widgets->readoutCount, PrimeToFind);
  30.     //g_print("%s\n", PrimeToFind);
  31. }
  32.  
  33. int main (int argc, char *argv[])
  34. {
  35.     //GtkWidget *window, *fixedspace, *button, *readoutCount, *readoutPrime;
  36.  
  37.     gtk_init (&argc, &argv);
  38.  
  39.     Widgets PE7_Widgets;
  40.     //Set up widget pointers
  41.     PE7_Widgets.window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
  42.     PE7_Widgets.fixedspace = gtk_fixed_new();
  43.     PE7_Widgets.button = gtk_button_new_with_label("Start");
  44.     PE7_Widgets.readoutCount = gtk_label_new("Primes Found: 0");
  45.     PE7_Widgets.readoutPrime = gtk_label_new("Current Prime: 0");
  46.     PE7_Widgets.PrimeToFindBuffer = gtk_entry_buffer_new(NULL, -1);
  47.     PE7_Widgets.PrimeToFind = gtk_entry_new_with_buffer(PE7_Widgets.PrimeToFindBuffer);
  48.  
  49.     //pack and set up locations
  50.     gtk_container_add(GTK_CONTAINER (PE7_Widgets.window), PE7_Widgets.fixedspace);
  51.     gtk_fixed_put((GtkFixed *)PE7_Widgets.fixedspace, PE7_Widgets.button, 0, 0);
  52.     gtk_fixed_put((GtkFixed *)PE7_Widgets.fixedspace, PE7_Widgets.readoutCount, 0, 30);
  53.     gtk_fixed_put((GtkFixed *)PE7_Widgets.fixedspace, PE7_Widgets.readoutPrime, 0, 50);
  54.     gtk_fixed_put((GtkFixed *)PE7_Widgets.fixedspace, PE7_Widgets.PrimeToFind, 45, 0);
  55.  
  56.     //connect signals for closing main window and the button
  57.     g_signal_connect (G_OBJECT (PE7_Widgets.window), "destroy", G_CALLBACK (destroy), NULL);
  58.     g_signal_connect (G_OBJECT (PE7_Widgets.button), "clicked", G_CALLBACK (FindNthPrime), &PE7_Widgets);
  59.  
  60.     //display and wait
  61.     gtk_widget_show_all(PE7_Widgets.window);
  62.     gtk_main ();
  63.     return 0;
  64. }