ReSize (WindowPlacement *wp)
{
GtkAllocation a;
- int sqx, sqy, w, h, lg = lineGap;
+ int sqx, sqy, i, w, h, lg = lineGap;
static int first = 1;
// DisplayBothClocks();
if(wp->width == wpMain.width && wp->height == wpMain.height && !first) return; // not sized
lg = sqx < 37 ? 1 : sqx < 59 ? 2 : sqx < 116 ? 3 : 4;
if(sqx == oldSqx + 1 && lg == lineGap + 1) sqx = oldSqx, squareSize = 0; // prevent oscillations, force resize by kludge
}
- for(h=0; sizeDefaults[h].name && sizeDefaults[h].squareSize > sqx; h++) {}
+ for(h=0; sizeDefaults[h].name && sizeDefaults[h].squareSize*8 > sqx*BOARD_WIDTH; h++) {}
+ if(initialSquareSize != sizeDefaults[h].squareSize) { // boardSize changed
+ initialSquareSize = sizeDefaults[h].squareSize; // used for saving font
+ if(!fontValid[CLOCK_FONT][initialSquareSize]) { ASSIGN(fontTable[CLOCK_FONT][initialSquareSize], CLOCK_FONT_NAME); }
+ appData.clockFont = InsertPxlSize(fontTable[CLOCK_FONT][initialSquareSize], 2*(sizeDefaults[h].clockFontPxlSize+1)/3);
+ if(!fontValid[MESSAGE_FONT][initialSquareSize]) { ASSIGN(fontTable[MESSAGE_FONT][initialSquareSize], DEFAULT_FONT_NAME); }
+ appData.font = InsertPxlSize(fontTable[MESSAGE_FONT][initialSquareSize], sizeDefaults[h].coordFontPxlSize);
+ DisplayBothClocks();
+ ApplyFont(&mainOptions[W_MESSG], NULL);
+ for(i=1; i<6; i++) ApplyFont(&mainOptions[W_BUTTON+i], NULL);
+ }
if(!strchr(appData.boardSize, ',')) {
ASSIGN(appData.boardSize, sizeDefaults[h].name);
- initialSquareSize = sizeDefaults[h].squareSize; // used for saving font
}
+#ifndef OSXAPP
if(sizeDefaults[h].tinyLayout != tinyLayout) { // alter clipping of menu names to conform to board width
int clip = (tinyLayout = sizeDefaults[h].tinyLayout) + 1;
char text[MSG_SIZ];
for(h=1; mainOptions[h].type == DropDown; h++) {
strncpy(text, _(mainOptions[h].name), MSG_SIZ);
- text[clip + (text[clip-1] == '_')] = NULLCHAR;
+ if(clip != 1) text[clip + (text[clip-1] == '_')] = NULLCHAR;
gtk_menu_item_set_label((GtkMenuItem *) mainOptions[h].handle, text);
}
}
+#endif
if(sqx != squareSize && !first) {
squareSize = sqx; // adopt new square size
CreatePNGPieces(); // make newly scaled pieces
static char *oldClockFont, *oldMessgFont;
int w, h;
if(oldMessgFont && !strcmp(oldMessgFont, appData.font) &&
- oldClockFont && !strcmp(oldClockFont, appData.clockFont) ) return; // only do something when font changed
+ oldClockFont && !strcmp(oldClockFont, appData.clockFont) && after < 2) return; // only do something when font changed
w = BOARD_WIDTH*(squareSize + lineGap) + lineGap;
h = BOARD_HEIGHT*(squareSize + lineGap) + lineGap;
- if(after) {
+ if(after & 1) {
ASSIGN(oldClockFont, appData.clockFont);
ASSIGN(oldMessgFont, appData.font);
gtk_window_resize(GTK_WINDOW(shellWidget), w, h);
void
DisplayTimerLabel (Option *opt, char *color, long timer, int highlight)
{
+ static int twoLines = -1;
GtkWidget *w = (GtkWidget *) opt->handle;
GdkColor col;
- char *markup;
+ char *markup, two = (appData.logoSize != 0);
char bgcolor[10];
char fgcolor[10];
strcpy(fgcolor, appData.lowTimeWarningColor);
}
+ if(! partnerUp && two != twoLines) LockBoardSize(2); // lock board size if clock height changes
+
gdk_color_parse( bgcolor, &col );
gtk_widget_modify_bg(gtk_widget_get_parent(opt->handle), GTK_STATE_NORMAL, &col);
if (appData.clockMode) {
markup = g_markup_printf_escaped("<span font=\"%s\" background=\"%s\" foreground=\"%s\">%s:%s%s</span>", appData.clockFont,
- bgcolor, fgcolor, color, appData.logoSize && !partnerUp ? "\n" : " ", TimeString(timer));
+ bgcolor, fgcolor, color, two ? "\n" : " ", TimeString(timer));
// markup = g_markup_printf_escaped("<span size=\"xx-large\" weight=\"heavy\" background=\"%s\" foreground=\"%s\">%s:%s%s</span>",
// bgcolor, fgcolor, color, appData.logoSize && !partnerUp ? "\n" : " ", TimeString(timer));
} else {
}
gtk_label_set_markup(GTK_LABEL(w), markup);
g_free(markup);
+
+ if(!partnerUp && two != twoLines) LockBoardSize(3), twoLines = two;
}
static GdkPixbuf **clockIcons[] = { &WhiteIcon, &BlackIcon };