Now I've run into other problems. I'll give you the relevant bits of what I have and I'd really appreciate some pointers.
Code:
/* ... */
#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);
}
Thanks.