1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124
|
/* ... */
#include <glib.h>
#include <gtk/gtk.h>
#include <stdlib.h>
#include <math.h>
#include <string.h>
typedef struct {
GtkWidget *metalentry, *redsentry, *redientry;
} Entries;
/* ... */
float metallicity=0.00;
float reddenedinterval=0.03;
float reddenedinitial=0.00;
/* ... */
void changemetallicity(GtkEntry *entry, gpointer data);
void redstartchange (GtkEntry *entry);
void redintervalchange (GtkEntry *entry);
int main (int argc, char *argv[])
{
/* ... */
GtkWidget *window;
GtkWidget *button;
GtkWidget *metalentry, *redsentry, *redientry, *rednbutton;
char metalstring[10];
char redsstring[10];
char redistring[10];
Entries *e = g_new (Entries, 1);
gtk_init(&argc,&argv);
/* ... */
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_window_set_title(GTK_WINDOW(window), "Horizon Replacement");
/* ... */
e->metalentry = gtk_entry_new();
gtk_entry_set_max_length(GTK_ENTRY(e->metalentry),10);
sprintf(metalstring,"%4.2f",metallicity);
gtk_entry_set_text(GTK_ENTRY(e->metalentry),metalstring);
g_signal_connect(e->metalentry,"activate",G_CALLBACK(changemetallicity),e);
gtk_box_pack_start(GTK_BOX(box2),e->metalentry,TRUE,TRUE,0);
gtk_widget_show(e->metalentry);
/* ... */
e->redsentry = gtk_entry_new();
gtk_entry_set_max_length(GTK_ENTRY(e->redsentry),10);
sprintf(redsstring,"%4.2f\n",reddenedinitial);
gtk_entry_set_text(GTK_ENTRY(e->redsentry),redsstring);
g_signal_connect(G_OBJECT(e->redsentry),"activate",G_CALLBACK(redstartchange), e);
gtk_box_pack_start(GTK_BOX(box3),e->redsentry,TRUE,TRUE,0);
gtk_widget_show(e->redsentry);
/* ... */
e->redientry = gtk_entry_new();
gtk_entry_set_max_length(GTK_ENTRY(e->redientry),10);
sprintf(redistring,"%4.2f",reddenedinterval);
gtk_entry_set_text(GTK_ENTRY(e->redientry),redistring);
g_signal_connect(G_OBJECT(redientry),"activate",G_CALLBACK(redintervalchange), e);
gtk_box_pack_start(GTK_BOX(box3),e->redientry,TRUE,TRUE,0);
gtk_widget_show(e->redientry);
/* ... */
button = gtk_button_new_with_label("Submit");
g_signal_connect(G_OBJECT(button),"clicked",G_CALLBACK(makeplot),NULL);
g_signal_connect(G_OBJECT(button),"clicked",G_CALLBACK(changemetallicity),e);
gtk_box_pack_start(GTK_BOX(box1),button,TRUE,TRUE,0);
gtk_widget_show(button);
gtk_widget_show(window);
/* ... */
g_free(e);
gtk_main();
return 0;
}
/* ... */
static void changemetallicity(GtkEntry *metalentry, gpointer data)
{
Entries *e = (Entries*) data;
const gchar *str;
str = gtk_entry_get_text(GTK_ENTRY(e->metalentry));
metallicity = atof(str);
}
void redstartchange (GtkEntry *redsentry, gpointer data)
{
Entries *e = (Entries*) data;
const gchar *str;
str = gtk_entry_get_text(GTK_ENTRY(e->redsentry));
reddenedinitial = atof(str);
}
void redintervalchange (GtkEntry *redientry, gpointer data)
{
Entries *e = (Entries*) data;
const gchar *str;
str = gtk_entry_get_text(GTK_ENTRY(e->redientry));
reddenedinterval = atof(str);
}
|