Added new user shortcut "scrlck" (SDL/SDL2 using "Scroll Lock" for fullscreen toggle).
Cleanups and improvements in the userbutton shortcut code. Documentation update (mention SDL2, updated userbutton list)
This commit is contained in:
parent
20cc91a7d8
commit
cb8d81defd
@ -54,7 +54,8 @@
|
|||||||
# carbon use Carbon library (for MacOS X)
|
# carbon use Carbon library (for MacOS X)
|
||||||
# macintosh use MacOS pre-10
|
# macintosh use MacOS pre-10
|
||||||
# amigaos use native AmigaOS libraries
|
# amigaos use native AmigaOS libraries
|
||||||
# sdl use SDL library, cross platform
|
# sdl use SDL 1.2.x library, cross platform
|
||||||
|
# sdl2 use SDL 2.x library, cross platform
|
||||||
# svga use SVGALIB library for Linux, allows graphics without X11
|
# svga use SVGALIB library for Linux, allows graphics without X11
|
||||||
# term text only, uses curses/ncurses library, cross platform
|
# term text only, uses curses/ncurses library, cross platform
|
||||||
# rfb provides an interface to AT&T's VNC viewer, cross platform
|
# rfb provides an interface to AT&T's VNC viewer, cross platform
|
||||||
@ -69,9 +70,11 @@
|
|||||||
# Some display libraries now support specific options to control their
|
# Some display libraries now support specific options to control their
|
||||||
# behaviour. These options are supported by more than one display library:
|
# behaviour. These options are supported by more than one display library:
|
||||||
#
|
#
|
||||||
# "gui_debug" - use GTK debugger gui (sdl, x) / Win32 debugger gui (sdl, win32)
|
# "gui_debug" - use GTK debugger gui (sdl, sdl2, x) / Win32 debugger gui (sdl,
|
||||||
# "hideIPS" - disable IPS output in status bar (rfb, sdl, vncsrv, win32, wx, x)
|
# sdl2, win32)
|
||||||
# "nokeyrepeat" - turn off host keyboard repeat (sdl, win32, x)
|
# "hideIPS" - disable IPS output in status bar (rfb, sdl, sdl2, vncsrv,
|
||||||
|
# win32, wx, x)
|
||||||
|
# "nokeyrepeat" - turn off host keyboard repeat (sdl, sdl2, win32, x)
|
||||||
# "timeout" - time (in seconds) to wait for client (rfb, vncsrv)
|
# "timeout" - time (in seconds) to wait for client (rfb, vncsrv)
|
||||||
#
|
#
|
||||||
# See the examples below for other currently supported options.
|
# See the examples below for other currently supported options.
|
||||||
@ -82,6 +85,7 @@
|
|||||||
#display_library: nogui
|
#display_library: nogui
|
||||||
#display_library: rfb
|
#display_library: rfb
|
||||||
#display_library: sdl, options="fullscreen" # startup in fullscreen mode
|
#display_library: sdl, options="fullscreen" # startup in fullscreen mode
|
||||||
|
#display_library: sdl2, options="fullscreen" # startup in fullscreen mode
|
||||||
#display_library: term
|
#display_library: term
|
||||||
#display_library: vncsrv
|
#display_library: vncsrv
|
||||||
#display_library: win32
|
#display_library: win32
|
||||||
@ -459,7 +463,8 @@ vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
|
|||||||
# Valid key names:
|
# Valid key names:
|
||||||
# "alt", "bksl", "bksp", "ctrl", "del", "down", "end", "enter", "esc",
|
# "alt", "bksl", "bksp", "ctrl", "del", "down", "end", "enter", "esc",
|
||||||
# "f1", ... "f12", "home", "ins", "left", "menu", "minus", "pgdwn", "pgup",
|
# "f1", ... "f12", "home", "ins", "left", "menu", "minus", "pgdwn", "pgup",
|
||||||
# "plus", "right", "shift", "space", "tab", "up", "win", "print" and "power".
|
# "plus", "power", "print", "right", "scrlck", "shift", "space", "tab", "up"
|
||||||
|
# and "win".
|
||||||
|
|
||||||
# Examples:
|
# Examples:
|
||||||
# keyboard: type=mf, serial_delay=200, paste_delay=100000
|
# keyboard: type=mf, serial_delay=200, paste_delay=100000
|
||||||
|
@ -610,7 +610,7 @@ code that displays the Bochs VGA screen and handles keyboard and mouse events.
|
|||||||
tried first in Unix and then ported to the others; see
|
tried first in Unix and then ported to the others; see
|
||||||
<xref linkend="compiling"> for compile instructions.
|
<xref linkend="compiling"> for compile instructions.
|
||||||
</entry>
|
</entry>
|
||||||
<entry>x, sdl, wx, term, rfb, vncsrv</entry>
|
<entry>x, sdl, sdl2, wx, term, rfb, vncsrv</entry>
|
||||||
</row>
|
</row>
|
||||||
|
|
||||||
<row>
|
<row>
|
||||||
@ -621,7 +621,7 @@ code that displays the Bochs VGA screen and handles keyboard and mouse events.
|
|||||||
see <xref linkend="compiling-win32"> for compile instructions,
|
see <xref linkend="compiling-win32"> for compile instructions,
|
||||||
or Cygwin, see <xref linkend="compile-cygwin">.
|
or Cygwin, see <xref linkend="compile-cygwin">.
|
||||||
</entry>
|
</entry>
|
||||||
<entry>win32, sdl, wx, rfb</entry>
|
<entry>win32, sdl, sdl2, wx, rfb</entry>
|
||||||
</row>
|
</row>
|
||||||
|
|
||||||
<row>
|
<row>
|
||||||
@ -631,7 +631,7 @@ code that displays the Bochs VGA screen and handles keyboard and mouse events.
|
|||||||
Jeremy Parsons (Br'fin) has been maintaining the MacOS X port since
|
Jeremy Parsons (Br'fin) has been maintaining the MacOS X port since
|
||||||
March 2002; see <xref linkend="compile-macosx"> for compile instructions.
|
March 2002; see <xref linkend="compile-macosx"> for compile instructions.
|
||||||
</entry>
|
</entry>
|
||||||
<entry>carbon, x, rfb, sdl</entry>
|
<entry>carbon, x, rfb, sdl, sdl2</entry>
|
||||||
</row>
|
</row>
|
||||||
|
|
||||||
<row>
|
<row>
|
||||||
@ -1575,7 +1575,7 @@ description of each one.
|
|||||||
<row><entry>/usr/bin/bochs-dlx </entry> <entry> run this script to try out DLX Linux inside Bochs!</entry> </row>
|
<row><entry>/usr/bin/bochs-dlx </entry> <entry> run this script to try out DLX Linux inside Bochs!</entry> </row>
|
||||||
<row><entry>/usr/share/bochs/dlxlinux/ </entry> <entry> directory containing DLX linux sample disk image and configuration files</entry> </row>
|
<row><entry>/usr/share/bochs/dlxlinux/ </entry> <entry> directory containing DLX linux sample disk image and configuration files</entry> </row>
|
||||||
<row><entry>/usr/share/bochs/dlxlinux/readme.txt</entry> <entry> description of DLX linux</entry> </row>
|
<row><entry>/usr/share/bochs/dlxlinux/readme.txt</entry> <entry> description of DLX linux</entry> </row>
|
||||||
<row><entry>/usr/share/bochs/keymaps/*.map </entry> <entry>keymap tables for X11 and SDL </entry> </row>
|
<row><entry>/usr/share/bochs/keymaps/*.map </entry> <entry>keymap tables for X11, SDL and SDL2 </entry> </row>
|
||||||
</tbody>
|
</tbody>
|
||||||
</tgroup>
|
</tgroup>
|
||||||
</table>
|
</table>
|
||||||
@ -1989,7 +1989,11 @@ In Bochs 1.3 and before, the X11 GUI was always the default.
|
|||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>--with-sdl</entry>
|
<entry>--with-sdl</entry>
|
||||||
<entry>Enable support for the SDL GUI interface; see <xref linkend="compile-sdl">.</entry>
|
<entry>Enable support for the SDL 1.2.x GUI interface; see <xref linkend="compile-sdl">.</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>--with-sdl2</entry>
|
||||||
|
<entry>Enable support for the SDL 2.x GUI interface; see <xref linkend="compile-sdl">.</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>--with-term</entry>
|
<entry>--with-term</entry>
|
||||||
@ -3230,14 +3234,15 @@ Examples:
|
|||||||
Some display libraries now support specific options to control their
|
Some display libraries now support specific options to control their
|
||||||
behaviour. These options are supported by more than one display library:
|
behaviour. These options are supported by more than one display library:
|
||||||
<screen>
|
<screen>
|
||||||
"gui_debug" - use GTK debugger gui (sdl, x) / Win32 debugger gui (sdl, win32)
|
"gui_debug" - use GTK debugger gui (sdl, x) / Win32 debugger gui (sdl, sdl2, win32)
|
||||||
"hideIPS" - disable IPS output in status bar (rfb, sdl, vncsrv, win32, wx, x)
|
"hideIPS" - disable IPS output in status bar (rfb, sdl, sdl2, vncsrv, win32, wx, x)
|
||||||
"nokeyrepeat" - turn off host keyboard repeat (sdl, win32, x)
|
"nokeyrepeat" - turn off host keyboard repeat (sdl, sdl2, win32, x)
|
||||||
"timeout" - time (in seconds) to wait for client (rfb, vncsrv)
|
"timeout" - time (in seconds) to wait for client (rfb, vncsrv)
|
||||||
</screen>
|
</screen>
|
||||||
See the examples below for other currently supported options.
|
See the examples below for other currently supported options.
|
||||||
<screen>
|
<screen>
|
||||||
display_library: sdl, options="fullscreen" # startup in fullscreen mode
|
display_library: sdl, options="fullscreen" # startup in fullscreen mode
|
||||||
|
display_library: sdl2, options="fullscreen" # startup in fullscreen mode
|
||||||
</screen>
|
</screen>
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
@ -3273,7 +3278,12 @@ See the examples below for other currently supported options.
|
|||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>sdl</entry>
|
<entry>sdl</entry>
|
||||||
<entry>use SDL library, cross platform,
|
<entry>use SDL 1.2.x library, cross platform,
|
||||||
|
details in <xref linkend="compile-sdl"></entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>sdl2</entry>
|
||||||
|
<entry>use SDL 2.x library, cross platform,
|
||||||
details in <xref linkend="compile-sdl"></entry>
|
details in <xref linkend="compile-sdl"></entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
@ -3782,8 +3792,9 @@ Valid key names:
|
|||||||
</para>
|
</para>
|
||||||
<para>
|
<para>
|
||||||
"alt", "bksl", "bksp", "ctrl", "del", "down", "end", "enter", "esc",
|
"alt", "bksl", "bksp", "ctrl", "del", "down", "end", "enter", "esc",
|
||||||
"f1", ... "f12", "home", "ins", "left", "menu", "minus", "pgdwn", "pgup", "plus",
|
"f1", ... "f12", "home", "ins", "left", "menu", "minus", "pgdwn", "pgup",
|
||||||
"right", "shift", "space", "tab", "up", "win", "print" and "power".
|
"plus", "power", "print", "right", "scrlck", "shift", "space", "tab", "up"
|
||||||
|
and "win".
|
||||||
</para>
|
</para>
|
||||||
</section>
|
</section>
|
||||||
|
|
||||||
@ -5283,7 +5294,7 @@ behavoiur of Bochs at runtime if you click on one of these buttons:
|
|||||||
</para>
|
</para>
|
||||||
<note><para>
|
<note><para>
|
||||||
Changing the mouse capture at runtime is not supported by all display libraries,
|
Changing the mouse capture at runtime is not supported by all display libraries,
|
||||||
but it is already present on RFB, SDL, VNCSRV, Win32, wxWidgets and X11.
|
but it is already present on RFB, SDL, SDL2, VNCSRV, Win32, wxWidgets and X11.
|
||||||
</para></note>
|
</para></note>
|
||||||
<note><para>
|
<note><para>
|
||||||
Support for 2 button mouse to toggle the capture mode not yet complete - using
|
Support for 2 button mouse to toggle the capture mode not yet complete - using
|
||||||
@ -5578,7 +5589,7 @@ drivers and their features.
|
|||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>sdl</entry>
|
<entry>sdl</entry>
|
||||||
<entry>for wave output on platforms supported by SDL</entry>
|
<entry>for wave output on platforms supported by SDL (1.2.x or 2.x)</entry>
|
||||||
<entry>No</entry>
|
<entry>No</entry>
|
||||||
<entry>No</entry>
|
<entry>No</entry>
|
||||||
</row>
|
</row>
|
||||||
@ -6295,7 +6306,12 @@ simulation is starting.
|
|||||||
<row>
|
<row>
|
||||||
<entry>SDL</entry>
|
<entry>SDL</entry>
|
||||||
<entry>SDL</entry>
|
<entry>SDL</entry>
|
||||||
<entry>SDL gui</entry>
|
<entry>SDL 1.2.x gui</entry>
|
||||||
|
</row>
|
||||||
|
<row>
|
||||||
|
<entry>SDL2</entry>
|
||||||
|
<entry>SDL2</entry>
|
||||||
|
<entry>SDL 2.x gui</entry>
|
||||||
</row>
|
</row>
|
||||||
<row>
|
<row>
|
||||||
<entry>serial</entry>
|
<entry>serial</entry>
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
.\"Document Author: Timothy R. Butler - tbutler@uninetsolutions.com"
|
.\"Document Author: Timothy R. Butler - tbutler@uninetsolutions.com"
|
||||||
.TH bochsrc 5 "19 Jun 2014" "bochsrc" "The Bochs Project"
|
.TH bochsrc 5 "7 Jul 2014" "bochsrc" "The Bochs Project"
|
||||||
.\"SKIP_SECTION"
|
.\"SKIP_SECTION"
|
||||||
.SH NAME
|
.SH NAME
|
||||||
bochsrc \- Configuration file for Bochs.
|
bochsrc \- Configuration file for Bochs.
|
||||||
@ -93,7 +93,8 @@ The choices are:
|
|||||||
carbon Carbon library (for MacOS X)
|
carbon Carbon library (for MacOS X)
|
||||||
macintosh MacOS pre-10
|
macintosh MacOS pre-10
|
||||||
amigaos native AmigaOS libraries
|
amigaos native AmigaOS libraries
|
||||||
sdl SDL library, cross platform
|
sdl SDL 1.2.x library, cross platform
|
||||||
|
sdl2 SDL 2.x library, cross platform
|
||||||
term text only, uses curses/ncurses library, cross platform
|
term text only, uses curses/ncurses library, cross platform
|
||||||
rfb provides an interface to AT&T's VNC viewer, cross platform
|
rfb provides an interface to AT&T's VNC viewer, cross platform
|
||||||
vncsrv use LibVNCServer for extended RFB(VNC) support
|
vncsrv use LibVNCServer for extended RFB(VNC) support
|
||||||
@ -108,9 +109,9 @@ the "wx" display library.
|
|||||||
Some display libraries now support specific options to control their
|
Some display libraries now support specific options to control their
|
||||||
behaviour. These options are supported by more than one display library:
|
behaviour. These options are supported by more than one display library:
|
||||||
|
|
||||||
"gui_debug" - use GTK debugger gui (sdl, x)
|
"gui_debug" - use GTK debugger gui (sdl, sdl2, x)
|
||||||
"hideIPS" - disable IPS output in status bar (rfb, sdl, vncsrv, wx, x)
|
"hideIPS" - disable IPS output in status bar (rfb, sdl, sdl2, vncsrv, wx, x)
|
||||||
"nokeyrepeat" - turn off host keyboard repeat (sdl, x)
|
"nokeyrepeat" - turn off host keyboard repeat (sdl, sdl2, x)
|
||||||
"timeout" - time (in seconds) to wait for client (rfb, vncsrv)
|
"timeout" - time (in seconds) to wait for client (rfb, vncsrv)
|
||||||
|
|
||||||
See the examples below for other currently supported options.
|
See the examples below for other currently supported options.
|
||||||
@ -118,6 +119,7 @@ See the examples below for other currently supported options.
|
|||||||
Examples:
|
Examples:
|
||||||
display_library: x
|
display_library: x
|
||||||
display_library: sdl, options="fullscreen" # startup in fullscreen mode
|
display_library: sdl, options="fullscreen" # startup in fullscreen mode
|
||||||
|
display_library: sdl2, options="fullscreen" # startup in fullscreen mode
|
||||||
|
|
||||||
|
|
||||||
.TP
|
.TP
|
||||||
@ -521,8 +523,9 @@ button in the header bar. The shortcut string is a combination of maximum
|
|||||||
Valid key names:
|
Valid key names:
|
||||||
|
|
||||||
"alt", "bksl", "bksp", "ctrl", "del", "down", "end", "enter", "esc",
|
"alt", "bksl", "bksp", "ctrl", "del", "down", "end", "enter", "esc",
|
||||||
"f1", ... "f12", "home", "ins", "left", "menu", "minus", "pgdwn", "pgup", "plus",
|
"f1", ... "f12", "home", "ins", "left", "menu", "minus", "pgdwn", "pgup",
|
||||||
"right", "shift", "space", "tab", "up", "win", "print" and "power".
|
"plus", "power", "print", "right", "scrlck", "shift", "space", "tab", "up"
|
||||||
|
and "win".
|
||||||
|
|
||||||
Examples:
|
Examples:
|
||||||
keyboard: type=mf, serial_delay=200, paste_delay=100000
|
keyboard: type=mf, serial_delay=200, paste_delay=100000
|
||||||
|
@ -46,7 +46,7 @@ bx_gui_c *bx_gui = NULL;
|
|||||||
#define LOG_THIS BX_GUI_THIS
|
#define LOG_THIS BX_GUI_THIS
|
||||||
|
|
||||||
#define BX_KEY_UNKNOWN 0x7fffffff
|
#define BX_KEY_UNKNOWN 0x7fffffff
|
||||||
#define N_USER_KEYS 37
|
#define N_USER_KEYS 38
|
||||||
|
|
||||||
typedef struct {
|
typedef struct {
|
||||||
const char *key;
|
const char *key;
|
||||||
@ -91,7 +91,8 @@ static user_key_t user_keys[N_USER_KEYS] =
|
|||||||
{ "up", BX_KEY_UP },
|
{ "up", BX_KEY_UP },
|
||||||
{ "win", BX_KEY_WIN_L },
|
{ "win", BX_KEY_WIN_L },
|
||||||
{ "print", BX_KEY_PRINT },
|
{ "print", BX_KEY_PRINT },
|
||||||
{ "power", BX_KEY_POWER_POWER }
|
{ "power", BX_KEY_POWER_POWER },
|
||||||
|
{ "scrlck", BX_KEY_SCRL_LOCK }
|
||||||
};
|
};
|
||||||
|
|
||||||
bx_gui_c::bx_gui_c(void): disp_mode(DISP_MODE_SIM)
|
bx_gui_c::bx_gui_c(void): disp_mode(DISP_MODE_SIM)
|
||||||
@ -660,6 +661,7 @@ void bx_gui_c::userbutton_handler(void)
|
|||||||
{
|
{
|
||||||
Bit32u shortcut[4];
|
Bit32u shortcut[4];
|
||||||
Bit32u symbol;
|
Bit32u symbol;
|
||||||
|
bx_param_string_c *sparam;
|
||||||
char user_shortcut[512];
|
char user_shortcut[512];
|
||||||
char *ptr;
|
char *ptr;
|
||||||
int i, len = 0, ret = 1;
|
int i, len = 0, ret = 1;
|
||||||
@ -667,22 +669,28 @@ void bx_gui_c::userbutton_handler(void)
|
|||||||
if (BX_GUI_THIS dialog_caps & BX_GUI_DLG_USER) {
|
if (BX_GUI_THIS dialog_caps & BX_GUI_DLG_USER) {
|
||||||
ret = SIM->ask_param(BXPN_USER_SHORTCUT);
|
ret = SIM->ask_param(BXPN_USER_SHORTCUT);
|
||||||
}
|
}
|
||||||
strcpy(user_shortcut, SIM->get_param_string(BXPN_USER_SHORTCUT)->getptr());
|
sparam = SIM->get_param_string(BXPN_USER_SHORTCUT);
|
||||||
if ((ret > 0) && user_shortcut[0] && (strcmp(user_shortcut, "none"))) {
|
if ((ret > 0) && !sparam->isempty()) {
|
||||||
|
strcpy(user_shortcut, sparam->getptr());
|
||||||
ptr = strtok(user_shortcut, "-");
|
ptr = strtok(user_shortcut, "-");
|
||||||
if ((strcmp(ptr, SIM->get_param_string(BXPN_USER_SHORTCUT)->getptr())) ||
|
if ((strcmp(ptr, sparam->getptr())) ||
|
||||||
(strlen(SIM->get_param_string(BXPN_USER_SHORTCUT)->getptr()) < 6)) {
|
(strlen(sparam->getptr()) < 7)) {
|
||||||
while (ptr) {
|
while (ptr) {
|
||||||
symbol = get_user_key(ptr);
|
symbol = get_user_key(ptr);
|
||||||
if (symbol == BX_KEY_UNKNOWN) {
|
if (symbol == BX_KEY_UNKNOWN) {
|
||||||
BX_ERROR(("Unknown shortcut %s ignored", ptr));
|
BX_ERROR(("Unknown shortcut '%s' ignored", ptr));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
shortcut[len++] = symbol;
|
if (len < 3) {
|
||||||
ptr = strtok(NULL, "-");
|
shortcut[len++] = symbol;
|
||||||
|
ptr = strtok(NULL, "-");
|
||||||
|
} else {
|
||||||
|
BX_ERROR(("Ignoring extra key symbol '%s'", ptr));
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
BX_ERROR(("Unknown shortcut %s ignored", user_shortcut));
|
BX_ERROR(("Unknown shortcut '%s' ignored", user_shortcut));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
i = 0;
|
i = 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user