static void gb_gnome_pixmap_reload (GtkWidget *widget) { gchar *filename; gboolean scaled; gint width, height; filename = gtk_object_get_data (GTK_OBJECT (widget), Filename); scaled = gtk_object_get_data (GTK_OBJECT (widget), Scaled) != NULL ? TRUE : FALSE; width = GPOINTER_TO_INT (gtk_object_get_data (GTK_OBJECT (widget), Width)); height = GPOINTER_TO_INT (gtk_object_get_data (GTK_OBJECT (widget), Height)); if (filename) { if (scaled && width > 0 && height > 0) gnome_pixmap_load_file_at_size (GNOME_PIXMAP (widget), filename, width, height); else gnome_pixmap_load_file (GNOME_PIXMAP (widget), filename); } else { if (scaled && width > 0 && height > 0) gnome_pixmap_load_xpm_d_at_size (GNOME_PIXMAP (widget), (const char**) gnome_pixmap_xpm, width, height); else gnome_pixmap_load_xpm_d (GNOME_PIXMAP (widget), (const char**) gnome_pixmap_xpm); } }
/* Here we set the type of the message box, i.e. we change the pixmap. */ static void set_message_box_type (GtkWidget *dialog, GtkWidget *pixmap, gchar *type_name) { gint i, type_index = 0; /* Set to 0 in case we can't find it. */ gchar *filename; /* Find out the index of the type. */ for (i = 0; GbMessageBoxTypeChoices[i]; i++) { if (!strcmp (type_name, GbMessageBoxTypeChoices[i]) || !strcmp (type_name, GbMessageBoxTypeSymbols[i])) { type_index = i; break; } } gtk_object_set_data (GTK_OBJECT (dialog), MessageBoxType, GINT_TO_POINTER (type_index)); filename = gnome_unconditional_pixmap_file (GbMessageBoxTypePixmapFilenames[type_index]); gnome_pixmap_load_file (GNOME_PIXMAP (pixmap), filename); g_free (filename); }
void ghack_worn_display(GtkWidget *win, boolean block, gpointer data) { int i, j; struct obj *worn_objects[WORN_HEIGHT][WORN_WIDTH] = WORN_OBJECT_LIST; for (i = 0; i < WORN_HEIGHT; i++) { for (j = 0; j < WORN_WIDTH; j++) { if (worn_objects[i][j] != last_worn_objects[i][j]) { last_worn_objects[i][j] = worn_objects[i][j]; gnome_pixmap_load_imlib(GNOME_PIXMAP(worn_contents[i][j]), image_of_worn_object(worn_objects[i][j])); } } } }
/* * Creates a new GtkWidget of class GnomePixmap, performing any specialized * initialization needed for the widget to work correctly in this environment. * If a dialog box is used to initialize the widget, return NULL from this * function, and call data->callback with your new widget when it is done. */ static GtkWidget* gb_gnome_pixmap_new (GbWidgetNewData *data) { GtkWidget *new_widget; new_widget = gtk_type_new (gnome_pixmap_get_type ()); /* Set the default scaled width to 48 x 48. */ gtk_object_set_data (GTK_OBJECT (new_widget), Width, GINT_TO_POINTER (48)); gtk_object_set_data (GTK_OBJECT (new_widget), Height, GINT_TO_POINTER (48)); if (data->action == GB_CREATING) gnome_pixmap_load_xpm_d (GNOME_PIXMAP (new_widget), (const char**) gnome_pixmap_xpm); return new_widget; }
void ghack_status_window_update_stats() { char buf[BUFSZ]; gchar *buf1; const char *hung; const char *enc; static int firstTime = TRUE; long umoney; /* First, fill in the player name and the dungeon level */ strcpy(buf, plname); if ('a' <= buf[0] && buf[0] <= 'z') buf[0] += 'A' - 'a'; strcat(buf, " the "); if (u.mtimedone) { char mname[BUFSZ]; int k = 0; strcpy(mname, mons[u.umonnum].mname); while (mname[k] != 0) { if ((k == 0 || (k > 0 && mname[k - 1] == ' ')) && 'a' <= mname[k] && mname[k] <= 'z') { mname[k] += 'A' - 'a'; } k++; } strcat(buf, mname); } else { strcat(buf, rank_of(u.ulevel, pl_character[0], flags.female)); } gtk_label_get(GTK_LABEL(titleLabel), &buf1); if (strcmp(buf1, buf) != 0 && firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(titleLabel, bigStyle, bigGreenStyle); } gtk_label_set(GTK_LABEL(titleLabel), buf); if (In_endgame(&u.uz)) { strcpy(buf, (Is_astralevel(&u.uz) ? "Astral Plane" : "End Game")); } else { sprintf(buf, "%s, level %d", dungeons[u.uz.dnum].dname, depth(&u.uz)); } if (lastDepth > depth(&u.uz) && firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(dgnLevelLabel, bigStyle, bigRedStyle); } else if (lastDepth < depth(&u.uz) && firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(dgnLevelLabel, bigStyle, bigGreenStyle); } lastDepth = depth(&u.uz); gtk_label_set(GTK_LABEL(dgnLevelLabel), buf); /* Next, fill in the player's stats */ if (ACURR(A_STR) > 118) { sprintf(buf, "STR:%d", ACURR(A_STR) - 100); } else if (ACURR(A_STR) == 118) { sprintf(buf, "STR:18/**"); } else if (ACURR(A_STR) > 18) { sprintf(buf, "STR:18/%02d", ACURR(A_STR) - 18); } else { sprintf(buf, "STR:%d", ACURR(A_STR)); } if (lastStr < ACURR(A_STR) && firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(strLabel, normalStyle, greenStyle); } else if (lastStr > ACURR(A_STR) && firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(strLabel, normalStyle, redStyle); } lastStr = ACURR(A_STR); gtk_label_set(GTK_LABEL(strLabel), buf); sprintf(buf, "INT:%d", ACURR(A_INT)); if (lastInt < ACURR(A_INT) && firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(intLabel, normalStyle, greenStyle); } else if (lastInt > ACURR(A_INT) && firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(intLabel, normalStyle, redStyle); } lastInt = ACURR(A_INT); gtk_label_set(GTK_LABEL(intLabel), buf); sprintf(buf, "WIS:%d", ACURR(A_WIS)); if (lastWis < ACURR(A_WIS) && firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(wisLabel, normalStyle, greenStyle); } else if (lastWis > ACURR(A_WIS) && firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(wisLabel, normalStyle, redStyle); } lastWis = ACURR(A_WIS); gtk_label_set(GTK_LABEL(wisLabel), buf); sprintf(buf, "DEX:%d", ACURR(A_DEX)); if (lastDex < ACURR(A_DEX) && firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(dexLabel, normalStyle, greenStyle); } else if (lastDex > ACURR(A_DEX) && firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(dexLabel, normalStyle, redStyle); } lastDex = ACURR(A_DEX); gtk_label_set(GTK_LABEL(dexLabel), buf); sprintf(buf, "CON:%d", ACURR(A_CON)); if (lastCon < ACURR(A_CON) && firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(conLabel, normalStyle, greenStyle); } else if (lastCon > ACURR(A_CON) && firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(conLabel, normalStyle, redStyle); } lastCon = ACURR(A_CON); gtk_label_set(GTK_LABEL(conLabel), buf); sprintf(buf, "CHA:%d", ACURR(A_CHA)); if (lastCha < ACURR(A_CHA) && firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(chaLabel, normalStyle, greenStyle); } else if (lastCha > ACURR(A_CHA) && firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(chaLabel, normalStyle, redStyle); } lastCha = ACURR(A_CHA); gtk_label_set(GTK_LABEL(chaLabel), buf); /* Now do the non-pixmaped stats (gold and such) */ umoney = money_cnt(invent); sprintf(buf, "Au:%ld", umoney); if (lastAu < umoney && firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(goldLabel, normalStyle, greenStyle); } else if (lastAu > umoney && firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(goldLabel, normalStyle, redStyle); } lastAu = umoney; gtk_label_set(GTK_LABEL(goldLabel), buf); if (u.mtimedone) { /* special case: when polymorphed, show "HD", disable exp */ sprintf(buf, "HP:%d/%d", ((u.mh > 0) ? u.mh : 0), u.mhmax); if ((lastHP < u.mh || lastMHP < u.mhmax) && firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(hpLabel, normalStyle, greenStyle); } else if ((lastHP > u.mh || lastMHP > u.mhmax) && firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(hpLabel, normalStyle, redStyle); } lastHP = u.mh; lastMHP = u.mhmax; } else { sprintf(buf, "HP:%d/%d", ((u.uhp > 0) ? u.uhp : 0), u.uhpmax); if ((lastHP < u.uhp || lastMHP < u.uhpmax) && firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(hpLabel, normalStyle, greenStyle); } else if ((lastHP > u.uhp || lastMHP > u.uhpmax) && firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(hpLabel, normalStyle, redStyle); } lastHP = u.uhp; lastMHP = u.uhpmax; } gtk_label_set(GTK_LABEL(hpLabel), buf); if (u.mtimedone) { /* special case: when polymorphed, show "HD", disable exp */ sprintf(buf, "HD:%d", mons[u.umonnum].mlevel); if (lastLevel < mons[u.umonnum].mlevel && firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(levlLabel, normalStyle, greenStyle); } else if (lastLevel > mons[u.umonnum].mlevel && firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(levlLabel, normalStyle, redStyle); } lastLevel = mons[u.umonnum].mlevel; } else { sprintf(buf, "Level:%d", u.ulevel); if (lastLevel < u.ulevel && firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(levlLabel, normalStyle, greenStyle); } else if (lastLevel > u.ulevel && firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(levlLabel, normalStyle, redStyle); } lastLevel = u.ulevel; } gtk_label_set(GTK_LABEL(levlLabel), buf); sprintf(buf, "Power:%d/%d", u.uen, u.uenmax); if ((lastPOW < u.uen || lastMPOW < u.uenmax) && firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(powLabel, normalStyle, greenStyle); } if ((lastPOW > u.uen || lastMPOW > u.uenmax) && firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(powLabel, normalStyle, redStyle); } lastPOW = u.uen; lastMPOW = u.uenmax; gtk_label_set(GTK_LABEL(powLabel), buf); sprintf(buf, "AC:%d", u.uac); if (lastAC > u.uac && firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(acLabel, normalStyle, greenStyle); } else if (lastAC < u.uac && firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(acLabel, normalStyle, redStyle); } lastAC = u.uac; gtk_label_set(GTK_LABEL(acLabel), buf); if (flags.showexp) { sprintf(buf, "Exp:%ld", u.uexp); if (lastExp < u.uexp && firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(expLabel, normalStyle, greenStyle); } else if (lastExp > u.uexp && firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(expLabel, normalStyle, redStyle); } lastExp = u.uexp; gtk_label_set(GTK_LABEL(expLabel), buf); } else { gtk_label_set(GTK_LABEL(expLabel), ""); } if (flags.time) { sprintf(buf, "Time:%ld", moves); gtk_label_set(GTK_LABEL(timeLabel), buf); } else gtk_label_set(GTK_LABEL(timeLabel), ""); #ifdef SCORE_ON_BOTL if (flags.showscore) { sprintf(buf, "Score:%ld", botl_score()); gtk_label_set(GTK_LABEL(scoreLabel), buf); } else gtk_label_set(GTK_LABEL(scoreLabel), ""); #else { gtk_label_set(GTK_LABEL(scoreLabel), ""); } #endif /* See if their alignment has changed */ if (lastAlignment != u.ualign.type) { if (firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(alignLabel, normalStyle, redStyle); } lastAlignment = u.ualign.type; /* looks like their alignment has changed -- change out the icon */ if (u.ualign.type == A_CHAOTIC) { gtk_label_set(GTK_LABEL(alignLabel), "Chaotic"); gnome_pixmap_load_xpm_d(GNOME_PIXMAP(alignPix), chaotic_xpm); } else if (u.ualign.type == A_NEUTRAL) { gtk_label_set(GTK_LABEL(alignLabel), "Neutral"); gnome_pixmap_load_xpm_d(GNOME_PIXMAP(alignPix), neutral_xpm); } else { gtk_label_set(GTK_LABEL(alignLabel), "Lawful"); gnome_pixmap_load_xpm_d(GNOME_PIXMAP(alignPix), lawful_xpm); } } hung = hu_stat[u.uhs]; if (lastHungr != u.uhs) { if (firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(hungerLabel, normalStyle, redStyle); } lastHungr = u.uhs; if (hung[0] == ' ') { gtk_label_set(GTK_LABEL(hungerLabel), " "); gnome_pixmap_load_xpm_d(GNOME_PIXMAP(hungerPix), nothing_xpm); } else if (u.uhs == 0 /* SATIATED */) { gtk_label_set(GTK_LABEL(hungerLabel), hung); gnome_pixmap_load_xpm_d(GNOME_PIXMAP(hungerPix), satiated_xpm); } else { gtk_label_set(GTK_LABEL(hungerLabel), hung); gnome_pixmap_load_xpm_d(GNOME_PIXMAP(hungerPix), hungry_xpm); } } if (lastConf != Confusion) { if (firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(confuLabel, normalStyle, redStyle); } lastConf = Confusion; if (Confusion) { gtk_label_set(GTK_LABEL(confuLabel), "Confused"); gnome_pixmap_load_xpm_d(GNOME_PIXMAP(confuPix), confused_xpm); } else { gtk_label_set(GTK_LABEL(confuLabel), " "); gnome_pixmap_load_xpm_d(GNOME_PIXMAP(confuPix), nothing_xpm); } } if (lastBlind != Blind) { if (firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(blindLabel, normalStyle, redStyle); } lastBlind = Blind; if (Blind) { gtk_label_set(GTK_LABEL(blindLabel), "Blind"); gnome_pixmap_load_xpm_d(GNOME_PIXMAP(blindPix), blind_xpm); } else { gtk_label_set(GTK_LABEL(blindLabel), " "); gnome_pixmap_load_xpm_d(GNOME_PIXMAP(blindPix), nothing_xpm); } } if (lastStun != Stunned) { if (firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(stunLabel, normalStyle, redStyle); } lastStun = Stunned; if (Stunned) { gtk_label_set(GTK_LABEL(stunLabel), "Stun"); gnome_pixmap_load_xpm_d(GNOME_PIXMAP(stunPix), stunned_xpm); } else { gtk_label_set(GTK_LABEL(stunLabel), " "); gnome_pixmap_load_xpm_d(GNOME_PIXMAP(stunPix), nothing_xpm); } } if (lastHalu != Hallucination) { if (firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(halluLabel, normalStyle, redStyle); } lastHalu = Hallucination; if (Hallucination) { gtk_label_set(GTK_LABEL(halluLabel), "Hallu"); gnome_pixmap_load_xpm_d(GNOME_PIXMAP(halluPix), hallu_xpm); } else { gtk_label_set(GTK_LABEL(halluLabel), " "); gnome_pixmap_load_xpm_d(GNOME_PIXMAP(halluPix), nothing_xpm); } } if (lastSick != Sick) { if (firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(sickLabel, normalStyle, redStyle); } lastSick = Sick; if (Sick) { if (u.usick_type & SICK_VOMITABLE) { gtk_label_set(GTK_LABEL(sickLabel), "FoodPois"); gnome_pixmap_load_xpm_d(GNOME_PIXMAP(sickPix), sick_fp_xpm); } else if (u.usick_type & SICK_NONVOMITABLE) { gtk_label_set(GTK_LABEL(sickLabel), "Ill"); gnome_pixmap_load_xpm_d(GNOME_PIXMAP(sickPix), sick_il_xpm); } else { gtk_label_set(GTK_LABEL(sickLabel), "FoodPois"); gnome_pixmap_load_xpm_d(GNOME_PIXMAP(sickPix), sick_fp_xpm); } } else { gtk_label_set(GTK_LABEL(sickLabel), " "); gnome_pixmap_load_xpm_d(GNOME_PIXMAP(sickPix), nothing_xpm); } } enc = enc_stat[near_capacity()]; if (lastEncumb != near_capacity()) { if (firstTime == FALSE) { /* Ok, this changed so add it to the highlighing list */ ghack_highlight_widget(encumbLabel, normalStyle, redStyle); } lastEncumb = near_capacity(); switch (lastEncumb) { case 0: gtk_label_set(GTK_LABEL(encumbLabel), " "); gnome_pixmap_load_xpm_d(GNOME_PIXMAP(encumbPix), nothing_xpm); break; case 1: gtk_label_set(GTK_LABEL(encumbLabel), enc); gnome_pixmap_load_xpm_d(GNOME_PIXMAP(encumbPix), slt_enc_xpm); break; case 2: gtk_label_set(GTK_LABEL(encumbLabel), enc); gnome_pixmap_load_xpm_d(GNOME_PIXMAP(encumbPix), mod_enc_xpm); break; case 3: gtk_label_set(GTK_LABEL(encumbLabel), enc); gnome_pixmap_load_xpm_d(GNOME_PIXMAP(encumbPix), hvy_enc_xpm); break; case 4: gtk_label_set(GTK_LABEL(encumbLabel), enc); gnome_pixmap_load_xpm_d(GNOME_PIXMAP(encumbPix), ext_enc_xpm); break; case 5: gtk_label_set(GTK_LABEL(encumbLabel), enc); gnome_pixmap_load_xpm_d(GNOME_PIXMAP(encumbPix), ovr_enc_xpm); } } firstTime = FALSE; }