X-Git-Url: http://winboard.nl/cgi-bin?a=blobdiff_plain;f=dialogs.c;h=42e6379d1e2b3319c570cbb42e8b7ef8527467e7;hb=ac9d48038a86a672579abbcbbc53b17e2515ba13;hp=47efff8298cf1943241ca18ab74f304bb04fde13;hpb=a61f78756889e18aa279dc273bd99b9af60468d7;p=xboard.git diff --git a/dialogs.c b/dialogs.c index 47efff8..42e6379 100644 --- a/dialogs.c +++ b/dialogs.c @@ -752,12 +752,14 @@ SoundOptionsProc () static void DefColor P((int n)); static void AdjustColor P((int i)); +static char oldPngDir[MSG_SIZ]; +static char oldSvgDir[MSG_SIZ]; + static int BoardOptionsOK (int n) { if(appData.overrideLineGap >= 0) lineGap = appData.overrideLineGap; else lineGap = defaultLineGap; - useImages = useImageSqs = 0; - InitDrawingParams(); + InitDrawingParams(strcmp(oldPngDir, appData.pngDirectory) || strcmp(oldSvgDir, appData.svgDirectory)); InitDrawingSizes(-1, 0); DrawPosition(True, NULL); return 1; @@ -811,8 +813,8 @@ static Option boardOptions[] = { { 0, 0, 0, NULL, (void*) &appData.useBitmaps, "", NULL, CheckBox, N_("Use Board Textures") }, { 0, 0, 0, NULL, (void*) &appData.liteBackTextureFile, ".xpm", NULL, FileName, N_("Light-Squares Texture File:") }, { 0, 0, 0, NULL, (void*) &appData.darkBackTextureFile, ".xpm", NULL, FileName, N_("Dark-Squares Texture File:") }, -{ 0, 0, 0, NULL, (void*) &appData.bitmapDirectory, "", NULL, PathName, N_("Directory with Bitmap Pieces:") }, -{ 0, 0, 0, NULL, (void*) &appData.pixmapDirectory, "", NULL, PathName, N_("Directory with Pixmap Pieces:") }, +{ 0, 0, 0, NULL, (void*) &appData.pngDirectory, "", NULL, PathName, N_("Directory with PNG Pieces:") }, +{ 0, 0, 0, NULL, (void*) &appData.svgDirectory, "", NULL, PathName, N_("Directory with SVG Pieces:") }, { 0, 0, 0, NULL, (void*) &BoardOptionsOK, "", NULL, EndMark , "" } }; @@ -861,6 +863,8 @@ AdjustColor (int i) void BoardOptionsProc () { + strncpy(oldPngDir, appData.pngDirectory, MSG_SIZ-1); // to see if it changed + strncpy(oldSvgDir, appData.svgDirectory, MSG_SIZ-1); // to see if it changed GenericPopUp(boardOptions, _("Board Options"), TransientDlg, BoardWindow, MODAL, 0); } @@ -892,6 +896,7 @@ IcsTextProc () if((p = icsTextMenuString) == NULL) return; do { q = r = p; while(*p && *p != ';') p++; + if(textOptions[i].name == NULL) textOptions[i].name = (char*) malloc(MSG_SIZ); for(j=0; j in chat-partner text-edit, as there is no OK button + char buf[MSG_SIZ]; + if(!partner || strcmp(partner, chatPartner[activePartner])) { + safeStrCpy(chatPartner[activePartner], partner, MSG_SIZ); + SetWidgetText(&chatOptions[5], "", -1); // clear text if we alter partner + SetWidgetText(&chatOptions[6], "", ChatDlg); // clear text if we alter partner + HardSetFocus(&chatOptions[6]); + } + if(line[0]) { // something was typed + SetWidgetText(&chatOptions[6], "", ChatDlg); + // from here on it could be back-end + if(line[strlen(line)-1] == '\n') line[strlen(line)-1] = NULLCHAR; + SaveInHistory(line); + if(!strcmp("whispers", chatPartner[activePartner])) + snprintf(buf, MSG_SIZ, "whisper %s\n", line); // WHISPER box uses "whisper" to send + else if(!strcmp("shouts", chatPartner[activePartner])) + snprintf(buf, MSG_SIZ, "shout %s\n", line); // SHOUT box uses "shout" to send + else { + if(!atoi(chatPartner[activePartner])) { + snprintf(buf, MSG_SIZ, "> %s\n", line); // echo only tells to handle, not channel + OutputChatMessage(activePartner, buf); + snprintf(buf, MSG_SIZ, "xtell %s %s\n", chatPartner[activePartner], line); + } else + snprintf(buf, MSG_SIZ, "tell %s %s\n", chatPartner[activePartner], line); + } + SendToICS(buf); + } + return FALSE; // never pop down +} + +void +ChatSwitch (int n) +{ + int i, j; + if(n <= activePartner) n--; + activePartner = n; + if(!texts[n]) texts[n] = strdup(""); + dirty[n] = 0; + SetWidgetText(&chatOptions[5], texts[n], ChatDlg); + SetInsertPos(&chatOptions[5], strlen(texts[n])); + SetWidgetText(&chatOptions[0], chatPartner[n], ChatDlg); + for(i=j=0; i