#include #include #include #include "config.h" #define KEP_ATTACH(o, x, y) gtk_table_attach_defaults(GTK_TABLE(kepesseg_tabla), o, x, x + 1, y, y + 1) #define ATTACH(o, x, y) gtk_table_attach_defaults(GTK_TABLE(tabla), o, x, x + 1, y, y + 1) #define HE_ATTACH(o, x, y) gtk_table_attach_defaults(GTK_TABLE(harcertekek_tabla), o, x, x + 1, y, y + 1) #define EE_ATTACH(o, x, y) gtk_table_attach_defaults(GTK_TABLE(eletero_tabla), o, x, x + 1, y, y + 1) #define MA_ATTACH(o, x, y) gtk_table_attach_defaults(GTK_TABLE(magia_tabla), o, x, x + 1, y, y + 1) #define ADJ gtk_adjustment_new(3.0, 3.0, 100.0, 1.0, 5.0, 1.0) #define HE_ADJ gtk_adjustment_new(0.0, 0.0, 100.0, 1.0, 5.0, 1.0) #define NEW_SPIN gtk_spin_button_new(GTK_ADJUSTMENT(ADJ), 1, 0) #define NEW_HE_SPIN gtk_spin_button_new(GTK_ADJUSTMENT(HE_ADJ), 1, 0) #define SIGNAL(x) gtk_signal_connect(GTK_OBJECT(x), "output", GTK_SIGNAL_FUNC(spin_valtozott), NULL) GtkWidget *kap_ertek, *ero_spin, *gyorsasag_spin, *ugyesseg_spin, *allokepesseg_spin, *egeszseg_spin, *szepseg_spin, *intelligencia_spin, *akaratero_spin, *asztral_spin, *erzekeles_spin, *ke_spin, *te_spin, *ve_spin, *ce_spin, *epalap_spin, *fpalap_spin, *mpalap_spin, *ppalap_spin; gint aktiv_kap; gint convert_string(char *from_string, char **to_string); void update_kap(); void main_window_destroy(GtkWidget *window, gpointer data) { gtk_main_quit(); } void set_kap_ertek() { gchar *ertek; int len; if (aktiv_kap < 0) { convert_string("Érvénytelen karakter!", &buf); gtk_entry_set_text(GTK_ENTRY(kap_ertek), buf); return; } if (aktiv_kap == 0) { ertek = "0"; } else { len = (int)log10((double)aktiv_kap) + 2; ertek = g_malloc(len); memset(ertek, 0, len); sprintf(ertek, "%d", aktiv_kap); } gtk_entry_set_text(GTK_ENTRY(kap_ertek), (const gchar *)ertek); } gboolean spin_valtozott(GtkSpinButton *melyik, gpointer arg1, gpointer data) { update_kap(); return FALSE; } int main(int argc, char **argv) { GtkWidget *main_window, *kepesseg_tabla, *kepesseg_keret, *tabla, *kap_box, *harcertekek_keret, *harcertekek_tabla, *eletero_keret, *eletero_tabla, *magia_keret, *magia_tabla; aktiv_kap = KEZDO_KAP; gtk_init(&argc, &argv); main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL); gtk_signal_connect(GTK_OBJECT(main_window), "destroy", GTK_SIGNAL_FUNC(main_window_destroy), NULL); tabla = gtk_table_new(4, 2, FALSE); kepesseg_tabla = gtk_table_new(10, 2, FALSE); harcertekek_tabla = gtk_table_new(4, 2, FALSE); eletero_tabla = gtk_table_new(2, 2, FALSE); magia_tabla = gtk_table_new(2, 2, FALSE); kap_box = gtk_hbox_new(FALSE, 0); gtk_box_pack_start(GTK_BOX(kap_box), gtk_label_new("KAP:"), FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(kap_box), (kap_ertek = gtk_entry_new()), FALSE, FALSE, 0); gtk_entry_set_editable(GTK_ENTRY(kap_ertek), FALSE); CONVERT("Erő:"); KEP_ATTACH(gtk_label_new(buf), 0, 1); KEP_ATTACH((ero_spin = NEW_SPIN), 1, 1); SIGNAL(ero_spin); CONVERT("Gyorsaság:"); KEP_ATTACH(gtk_label_new(buf), 0, 2); KEP_ATTACH((gyorsasag_spin = NEW_SPIN), 1, 2); SIGNAL(gyorsasag_spin); CONVERT("Ügyesség:"); KEP_ATTACH(gtk_label_new(buf), 0, 3); KEP_ATTACH((ugyesseg_spin = NEW_SPIN), 1, 3); SIGNAL(ugyesseg_spin); CONVERT("Állóképesség:"); KEP_ATTACH(gtk_label_new(buf), 0, 4); KEP_ATTACH((allokepesseg_spin = NEW_SPIN), 1, 4); SIGNAL(allokepesseg_spin); CONVERT("Egészség:"); KEP_ATTACH(gtk_label_new(buf), 0, 5); KEP_ATTACH((egeszseg_spin = NEW_SPIN), 1, 5); SIGNAL(egeszseg_spin); CONVERT("Szépség:"); KEP_ATTACH(gtk_label_new(buf), 0, 6); KEP_ATTACH((szepseg_spin = NEW_SPIN), 1, 6); SIGNAL(szepseg_spin); KEP_ATTACH(gtk_label_new("Intelligencia:"), 0, 7); KEP_ATTACH((intelligencia_spin = NEW_SPIN), 1, 7); SIGNAL(intelligencia_spin); CONVERT("Akaraterő:"); KEP_ATTACH(gtk_label_new(buf), 0, 8); KEP_ATTACH((akaratero_spin = NEW_SPIN), 1, 8); SIGNAL(akaratero_spin); CONVERT("Asztrál:"); KEP_ATTACH(gtk_label_new(buf), 0, 9); KEP_ATTACH((asztral_spin = NEW_SPIN), 1, 9); SIGNAL(asztral_spin); CONVERT("Érzékelés:"); KEP_ATTACH(gtk_label_new(buf), 0, 10); KEP_ATTACH((erzekeles_spin = NEW_SPIN), 1, 10); SIGNAL(erzekeles_spin); CONVERT("KÉ:"); HE_ATTACH(gtk_label_new(buf), 0, 0); HE_ATTACH((ke_spin = NEW_HE_SPIN), 1, 0); SIGNAL(ke_spin); CONVERT("TÉ:"); HE_ATTACH(gtk_label_new(buf), 0, 1); HE_ATTACH((te_spin = NEW_HE_SPIN), 1, 1); SIGNAL(te_spin); CONVERT("VÉ:"); HE_ATTACH(gtk_label_new(buf), 0, 2); HE_ATTACH((ve_spin = NEW_HE_SPIN), 1, 2); SIGNAL(ve_spin); CONVERT("CÉ:"); HE_ATTACH(gtk_label_new(buf), 0, 3); HE_ATTACH((ce_spin = NEW_HE_SPIN), 1, 3); SIGNAL(ce_spin); CONVERT("Ép alap:"); EE_ATTACH(gtk_label_new(buf), 0, 0); EE_ATTACH((epalap_spin = NEW_HE_SPIN), 1, 0); SIGNAL(epalap_spin); EE_ATTACH(gtk_label_new("Fp alap:"), 0, 1); EE_ATTACH((fpalap_spin = NEW_HE_SPIN), 1, 1); SIGNAL(fpalap_spin); MA_ATTACH(gtk_label_new("Mp alap:"), 0, 0); MA_ATTACH((mpalap_spin = NEW_HE_SPIN), 1, 0); SIGNAL(mpalap_spin); MA_ATTACH(gtk_label_new("Pszi alap:"), 0, 1); MA_ATTACH((ppalap_spin = NEW_HE_SPIN), 1, 1); SIGNAL(ppalap_spin); CONVERT("Képességek"); kepesseg_keret = gtk_frame_new((const gchar *)buf); CONVERT("Harcértékek"); harcertekek_keret = gtk_frame_new((const gchar *)buf); CONVERT("Életerő"); eletero_keret = gtk_frame_new((const gchar *)buf); CONVERT("Mágia, pszi"); magia_keret = gtk_frame_new((const gchar *)buf); ATTACH(kap_box, 0, 0); gtk_table_attach_defaults(GTK_TABLE(tabla), kepesseg_keret, 0, 1, 1, 4); ATTACH(harcertekek_keret, 1, 1); ATTACH(eletero_keret, 1, 2); ATTACH(magia_keret, 1, 3); gtk_container_add(GTK_CONTAINER(harcertekek_keret), harcertekek_tabla); gtk_container_add(GTK_CONTAINER(kepesseg_keret), kepesseg_tabla); gtk_container_add(GTK_CONTAINER(eletero_keret), eletero_tabla); gtk_container_add(GTK_CONTAINER(magia_keret), magia_tabla); gtk_container_add(GTK_CONTAINER(main_window), tabla); gtk_widget_show_all(main_window); set_kap_ertek(); gtk_main(); return 0; }