Added ability to use bold fonts in the debugger.

git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@2816 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
stephena 2013-08-24 15:51:37 +00:00
parent 587959c273
commit 8aa736b35a
13 changed files with 7179 additions and 20 deletions

View File

@ -12,6 +12,19 @@
Release History
===========================================================================
3.9.1 to 3.9.2: (August xx, 2013)
* Added ability to use bold fonts within the debugger window, which can
be set with the 'dbg.boldfont' commandline argument as well as in the
debugger UI Settings dialog. This is useful for those that find the
current font too narrow.
* Renamed 'debuggerres' argument to 'dbg.res'. All future debugger-
specific options will start with 'dbg.'.
-Have fun!
3.9 to 3.9.1: (August 21, 2013)
* Note: because of TIA/6502 changes, the state file format has changed
@ -111,8 +124,6 @@
* Updated included PNG library to latest stable version.
-Have fun!
3.8.1 to 3.9: (June 27, 2013)

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.2 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.9 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

@ -10,7 +10,7 @@
<br><br>
<center><h2><b>A multi-platform Atari 2600 VCS emulator</b></h2></center>
<center><h4><b>Release 3.9.1</b></h4></center>
<center><h4><b>Release 3.9.2</b></h4></center>
<br><br>
<center><h2><b>User's Guide</b></h2></center>
@ -2215,10 +2215,15 @@
</tr>
<tr>
<td><pre>-debuggerres &lt;WxH&gt;</pre></td>
<td><pre>-dbg.res &lt;WxH&gt;</pre></td>
<td>Set the size of the debugger window.</td>
</tr>
<tr>
<td><pre>-dbg.boldfont</pre></td>
<td>Use bold fonts in the debugger window.</td>
</tr>
<tr>
<td><pre>-break &lt;address&gt;</pre></td>
<td>Set a breakpoint at specified address.</td>
@ -2474,7 +2479,8 @@
<td valign="top">
<table border="1" cellpadding="4">
<tr><th>Item</th><th>Brief description</th><th>For more information,<br>see <a href="#CommandLine">CommandLine</a></th></tr>
<tr><td>Debugger Width/Height</td><td>self-explanatory (requires ROM reload)</td><td>-debuggerres</td></tr>
<tr><td>Debugger Width/Height</td><td>self-explanatory (requires ROM reload)</td><td>-dbg.res</td></tr>
<tr><td>Use bold font ...</td><td>self-explanatory (requires ROM reload)</td><td>-dbg.boldfont</td></tr>
</table>
</td>
</tr>

View File

@ -122,8 +122,8 @@ Debugger::Debugger(OSystem& osystem, Console& console)
myBreakPoints(NULL),
myReadTraps(NULL),
myWriteTraps(NULL),
myWidth(1080),
myHeight(720),
myWidth(DebuggerDialog::kSmallFontMinW),
myHeight(DebuggerDialog::kSmallFontMinH),
myRewindManager(NULL)
{
// Init parser
@ -166,12 +166,12 @@ Debugger::~Debugger()
void Debugger::initialize()
{
// Get the dialog size
const GUI::Size& size = myOSystem->settings().getSize("debuggerres");
const GUI::Size& size = myOSystem->settings().getSize("dbg.res");
myWidth = BSPF_max(size.w, 0);
myHeight = BSPF_max(size.h, 0);
myWidth = BSPF_max(myWidth, 1080u);
myHeight = BSPF_max(myHeight, 720u);
myOSystem->settings().setValue("debuggerres", GUI::Size(myWidth, myHeight));
myWidth = BSPF_max(myWidth, (uInt32)DebuggerDialog::kSmallFontMinW);
myHeight = BSPF_max(myHeight, (uInt32)DebuggerDialog::kSmallFontMinH);
myOSystem->settings().setValue("dbg.res", GUI::Size(myWidth, myHeight));
delete myBaseDialog; myBaseDialog = myDialog = NULL;
myDialog = new DebuggerDialog(myOSystem, this, 0, 0, myWidth, myHeight);

View File

@ -37,7 +37,9 @@
#include "Debugger.hxx"
#include "DebuggerParser.hxx"
#include "ConsoleFont.hxx"
#include "ConsoleBFont.hxx"
#include "ConsoleMediumFont.hxx"
#include "ConsoleMediumBFont.hxx"
#include "StellaMediumFont.hxx"
#include "DebuggerDialog.hxx"
@ -203,13 +205,15 @@ void DebuggerDialog::doExitRom()
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
void DebuggerDialog::createFont()
{
bool bold = instance().settings().getBool("dbg.boldfont");
// For now, these sizes are hardcoded based on actual font size
if(_w >= kLargeFontMinW && _h >= kLargeFontMinH)
myFont = new GUI::Font(GUI::stellaMediumDesc);
else if(_w >= kMediumFontMinW && _h >= kMediumFontMinH)
myFont = new GUI::Font(GUI::consoleMediumDesc);
myFont = new GUI::Font(bold ? GUI::consoleMediumBDesc : GUI::consoleMediumDesc);
else
myFont = new GUI::Font(GUI::consoleDesc);
myFont = new GUI::Font(bold ? GUI::consoleBDesc : GUI::consoleDesc);
}
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

View File

@ -120,7 +120,7 @@ Settings::Settings(OSystem* osystem)
setInternal("lastrom", "");
// UI-related options
setInternal("debuggerres",
setInternal("dbg.res",
GUI::Size(DebuggerDialog::kMediumFontMinW, DebuggerDialog::kMediumFontMinH));
setInternal("uipalette", "0");
setInternal("listdelay", "300");
@ -140,6 +140,7 @@ Settings::Settings(OSystem* osystem)
setExternal("maxres", "");
// Debugger/disassembly options
setInternal("dbg.boldfont", "false");
setInternal("dbg.uhex", "true");
setInternal("dis.resolve", "true");
setInternal("dis.gfxformat", "2");
@ -450,7 +451,8 @@ void Settings::usage()
<< " -dis.showaddr <1|0> Show opcode addresses in disassembler\n"
<< " -dis.relocate <1|0> Relocate calls out of address range in disassembler\n"
<< endl
<< " -debuggerres <WxH> The resolution to use in debugger mode\n"
<< " -dbg.res <WxH> The resolution to use in debugger mode\n"
<< " -dbg.boldfont <1|0> Use bold fonts in the debugger window\n"
<< " -break <address> Set a breakpoint at 'address'\n"
<< " -debug Start in debugger mode\n"
<< endl

3367
src/gui/ConsoleBFont.hxx Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -54,7 +54,7 @@ UIDialog::UIDialog(OSystem* osystem, DialogContainer* parent,
// Set real dimensions
_w = 37 * fontWidth + 10;
_h = 10 * (lineHeight + 4) + 10;
_h = 11 * (lineHeight + 4) + 10;
// The tab widget
xpos = ypos = vBorder;
@ -206,6 +206,12 @@ UIDialog::UIDialog(OSystem* osystem, DialogContainer* parent,
b = new ButtonWidget(myTab, font, xpos, ypos, fbwidth, buttonHeight,
"Set window size for large font", kDLargeSize);
wid.push_back(b);
ypos += b->getHeight() + 12;
// Do we use bold fonts?
myDebuggerFontBold =
new CheckboxWidget(myTab, font, xpos+10, ypos, "Use bold fonts when possible");
wid.push_back(myDebuggerFontBold);
// Debugger is only realistically available in windowed modes 800x600 or greater
// (and when it's actually been compiled into the app)
@ -326,7 +332,7 @@ void UIDialog::loadConfig()
#ifdef DEBUGGER_SUPPORT
// Debugger size
const GUI::Size& ds = instance().settings().getSize("debuggerres");
const GUI::Size& ds = instance().settings().getSize("dbg.res");
w = ds.w, h = ds.h;
w = BSPF_max(w, (int)DebuggerDialog::kSmallFontMinW);
h = BSPF_max(h, (int)DebuggerDialog::kSmallFontMinH);
@ -337,6 +343,9 @@ void UIDialog::loadConfig()
myDebuggerWidthLabel->setValue(w);
myDebuggerHeightSlider->setValue(h);
myDebuggerHeightLabel->setValue(h);
// Debugger bold font
myDebuggerFontBold->setState(instance().settings().getBool("dbg.boldfont"));
#endif
// UI palette
@ -375,10 +384,13 @@ void UIDialog::saveConfig()
myLauncherExitPopup->getSelectedTag().toString());
// Debugger size
instance().settings().setValue("debuggerres",
instance().settings().setValue("dbg.res",
GUI::Size(myDebuggerWidthSlider->getValue(),
myDebuggerHeightSlider->getValue()));
// Debugger bold font
instance().settings().setValue("dbg.boldfont", myDebuggerFontBold->getState());
// UI palette
instance().settings().setValue("uipalette",
myPalettePopup->getSelectedTag().toString());
@ -421,6 +433,7 @@ void UIDialog::setDefaults()
myDebuggerWidthLabel->setValue(w);
myDebuggerHeightSlider->setValue(h);
myDebuggerHeightLabel->setValue(h);
myDebuggerFontBold->setState(false);
break;
}

View File

@ -55,6 +55,7 @@ class UIDialog : public Dialog
StaticTextWidget* myDebuggerWidthLabel;
SliderWidget* myDebuggerHeightSlider;
StaticTextWidget* myDebuggerHeightLabel;
CheckboxWidget* myDebuggerFontBold;
// Misc options
PopUpWidget* myPalettePopup;

View File

@ -235,8 +235,8 @@ void getopts(int *pac, char ***pav)
char* u;
strcpy(fontnameU, fontname);
u = fontnameU;
while(*u++=toupper(*u))
;
while(*u=toupper(*u))
*u++;
}
break;
default: