Toggle status lines with shift-F10

This commit is contained in:
David Schmenk 2013-11-19 02:43:27 +00:00
parent e3440318be
commit 7bcd53b4f8
4 changed files with 3291 additions and 3260 deletions

View File

@ -1777,7 +1777,7 @@ adb_physical_key_update(int a2code, int is_up)
break; break;
case 0x0a: /* F10 - change a2vid paletter */ case 0x0a: /* F10 - change a2vid paletter */
if (SHIFT_DOWN) { if (SHIFT_DOWN) {
#if defined(WIN32) || defined(__CYGWIN__) #ifdef TOGGLE_STATUS
extern void x_toggle_status_lines(); extern void x_toggle_status_lines();
x_toggle_status_lines(); x_toggle_status_lines();
#endif #endif

View File

@ -1,8 +1,8 @@
TARGET = gsport.exe TARGET = gsport.exe
TFEOBJ = tfe/tfe.o arch/win32/tfearch.o tfe/tfesupp.o TFEOBJ = tfe/tfe.o arch/win32/tfearch.o tfe/tfesupp.o
OBJECTS = $(OBJECTS1) $(TFEOBJ) scc_windriver.o win32snd_driver.o win_console.o win_generic.o gsport32.o OBJECTS = $(OBJECTS1) $(TFEOBJ) scc_windriver.o win32snd_driver.o win_console.o win_generic.o gsport32.o
CCOPTS = -O2 -DGSPORT_LITTLE_ENDIAN -DHAVE_TFE -DWIN_SOUND CCOPTS = -O2 -DGSPORT_LITTLE_ENDIAN -DHAVE_TFE -DWIN_SOUND -DTOGGLE_STATUS
CPPOPTS = -O2 -DGSPORT_LITTLE_ENDIAN -DHAVE_TFE CPPOPTS = -O2 -DGSPORT_LITTLE_ENDIAN -DHAVE_TFE -DTOGGLE_STATUS
SUFFIX = ".exe" SUFFIX = ".exe"
NAME = gsport NAME = gsport
EXTRA_LIBS = -lSDL -lfreetype -lcomdlg32 -lShlwapi EXTRA_LIBS = -lSDL -lfreetype -lcomdlg32 -lShlwapi

View File

@ -1,8 +1,8 @@
TARGET = gsport.exe TARGET = gsport.exe
TFEOBJ = tfe/tfe.o arch/win32/tfearch.o tfe/tfesupp.o TFEOBJ = tfe/tfe.o arch/win32/tfearch.o tfe/tfesupp.o
OBJECTS = $(OBJECTS1) $(TFEOBJ) scc_windriver.o win32snd_driver.o win_console.o win_generic.o gsport32.o OBJECTS = $(OBJECTS1) $(TFEOBJ) scc_windriver.o win32snd_driver.o win_console.o win_generic.o gsport32.o
CCOPTS = -O2 -DGSPORT_LITTLE_ENDIAN -DHAVE_TFE -DWIN_SOUND -DHAVE_SDL -DWIN32 -D_WIN32 -D__USE_W32_SOCKETS CCOPTS = -O2 -DGSPORT_LITTLE_ENDIAN -DHAVE_TFE -DWIN_SOUND -DHAVE_SDL -DWIN32 -D_WIN32 -D__USE_W32_SOCKETS -DTOGGLE_STATUS
CPPOPTS = -O2 -DGSPORT_LITTLE_ENDIAN -DHAVE_TFE -DHAVE_SDL -DWIN32 -D_WIN32 -D__USE_W32_SOCKETS -I /usr/include/freetype2 -I/usr/include/SDL CPPOPTS = -O2 -DGSPORT_LITTLE_ENDIAN -DHAVE_TFE -DHAVE_SDL -DWIN32 -D_WIN32 -D__USE_W32_SOCKETS -I /usr/include/freetype2 -I/usr/include/SDL -DTOGGLE_STATUS
SUFFIX = ".exe" SUFFIX = ".exe"
NAME = gsport NAME = gsport
EXTRA_LIBS = -lSDL -lfreetype -lcomdlg32 -lShlwapi EXTRA_LIBS = -lSDL -lfreetype -lcomdlg32 -lShlwapi

View File

@ -70,6 +70,8 @@ XFontStruct *g_text_FontSt;
Colormap g_a2_colormap = 0; Colormap g_a2_colormap = 0;
Colormap g_default_colormap = 0; Colormap g_default_colormap = 0;
int g_needs_cmap = 0; int g_needs_cmap = 0;
int g_win_status_debug = 0; // Current visibility of status lines.
int g_win_status_debug_request = 0; // Desired visibility of status lines.
extern word32 g_red_mask; extern word32 g_red_mask;
extern word32 g_green_mask; extern word32 g_green_mask;
@ -519,7 +521,9 @@ dev_video_init()
create_win_list = CWEventMask | CWBackingStore | CWCursor; create_win_list = CWEventMask | CWBackingStore | CWCursor;
create_win_list |= CWColormap | CWBorderPixel | CWBackPixel; create_win_list |= CWColormap | CWBorderPixel | CWBackPixel;
base_height = X_A2_WINDOW_HEIGHT + (MAX_STATUS_LINES * 13); base_height = X_A2_WINDOW_HEIGHT;
if (g_win_status_debug)
base_height += MAX_STATUS_LINES * 13;
g_a2_win = XCreateWindow(g_display, RootWindow(g_display, screen_num), g_a2_win = XCreateWindow(g_display, RootWindow(g_display, screen_num),
0, 0, BASE_WINDOW_WIDTH, base_height, 0, 0, BASE_WINDOW_WIDTH, base_height,
@ -916,6 +920,31 @@ get_ximage(Kimage *kimage_ptr)
} }
void
x_toggle_status_lines()
{
XSizeHints my_winSizeHints;
XClassHint my_winClassHint;
int base_height = X_A2_WINDOW_HEIGHT;
if ((g_win_status_debug = !g_win_status_debug))
base_height += MAX_STATUS_LINES * 13;
//printf("Resize returns %d\n", XResizeWindow(g_display, g_a2_win, BASE_WINDOW_WIDTH, base_height));
my_winSizeHints.flags = PSize | PMinSize | PMaxSize;
my_winSizeHints.width = BASE_WINDOW_WIDTH;
my_winSizeHints.height = base_height;
my_winSizeHints.min_width = BASE_WINDOW_WIDTH;
my_winSizeHints.min_height = base_height;
my_winSizeHints.max_width = BASE_WINDOW_WIDTH;
my_winSizeHints.max_height = base_height;
my_winClassHint.res_name = "GSport";
my_winClassHint.res_class = "GSport";
XSetWMProperties(g_display, g_a2_win, 0, 0, 0,
0, &my_winSizeHints, 0, &my_winClassHint);
XMapRaised(g_display, g_a2_win);
XFlush(g_display);
x_redraw_status_lines();
}
void void
x_redraw_status_lines() x_redraw_status_lines()
{ {
@ -925,6 +954,8 @@ x_redraw_status_lines()
int margin; int margin;
word32 white, black; word32 white, black;
if (g_win_status_debug)
{
height = g_text_FontSt->ascent + g_text_FontSt->descent; height = g_text_FontSt->ascent + g_text_FontSt->descent;
margin = g_text_FontSt->ascent; margin = g_text_FontSt->ascent;
@ -949,10 +980,10 @@ x_redraw_status_lines()
} }
XFlush(g_display); XFlush(g_display);
}
} }
void void
x_push_kimage(Kimage *kimage_ptr, int destx, int desty, int srcx, int srcy, x_push_kimage(Kimage *kimage_ptr, int destx, int desty, int srcx, int srcy,
int width, int height) int width, int height)