diff --git a/docs/index.html b/docs/index.html index 0a76b604e..55ff74e84 100644 --- a/docs/index.html +++ b/docs/index.html @@ -1766,8 +1766,13 @@ -
-showinfo <0|1|2>
- Shows some application & game info on the commandline while Stella is running. Zero completely disables output (except for serious errors), while the remaining numbers show increasingly more detail. +
-loglevel <0|1|2>
+ Indicates level of logging to perform while the application is running. Zero completely disables logging (except for serious errors), while the remaining numbers show increasingly more detail. + + + +
-logtoconsole <1|0>
+ Indicates that logged output should be printed to the console/commandline as it's being collected. An internal log will still be kept, and the amount of logging is still controlled by 'loglevel'. @@ -2267,7 +2272,7 @@ Interface Palettepalette to use for UI elements-uipalette List quick delaytime to wait between keypresses in listwidget-listdelay Mouse wheel scrollnumber of lines mouse scroll will move in listwidget-mscroll - Show Info levelamount of logging information to display-showinfo + FIXMEfix this snapshot... @@ -2694,8 +2699,8 @@ - -showinfo 1 - showinfo = 1 (or showinfo = true) + -center 1 + center = 1 (or center = true) diff --git a/src/emucore/OSystem.cxx b/src/emucore/OSystem.cxx index 2aab15afd..a89e5506a 100644 --- a/src/emucore/OSystem.cxx +++ b/src/emucore/OSystem.cxx @@ -646,9 +646,9 @@ void OSystem::logMessage(const string& message, uInt8 level) cout << message << flush; myLogMessages += message; } - else if(level <= (uInt8)mySettings->getInt("showinfo")) + else if(level <= (uInt8)mySettings->getInt("loglevel")) { - if(1) // TODO - messages should be output to console + if(mySettings->getBool("logtoconsole")) cout << message << flush; myLogMessages += message; } diff --git a/src/emucore/OSystem.hxx b/src/emucore/OSystem.hxx index 73e8d3f2a..fc07f21b5 100644 --- a/src/emucore/OSystem.hxx +++ b/src/emucore/OSystem.hxx @@ -378,11 +378,11 @@ class OSystem void quit() { myQuitLoop = true; } /** - Output a message to the a log (normally stdout). + Append a message to the internal log. - @param message The message to be output - @param level If 0, always output the message, only output when - level is less than or equal to that in 'showinfo' + @param message The message to be appended + @param level If 0, always output the message, only append when + level is less than or equal to that in 'loglevel' */ void logMessage(const string& message, uInt8 level); diff --git a/src/emucore/Settings.cxx b/src/emucore/Settings.cxx index a141baa00..0334ee20b 100644 --- a/src/emucore/Settings.cxx +++ b/src/emucore/Settings.cxx @@ -121,7 +121,8 @@ Settings::Settings(OSystem* osystem) // Misc options setInternal("autoslot", "false"); - setInternal("showinfo", "1"); + setInternal("loglevel", "1"); + setInternal("logtoconsole", "0"); setInternal("tiadriven", "false"); setInternal("ramrandom", "true"); setInternal("avoxport", ""); @@ -321,9 +322,9 @@ void Settings::validate() if(s != "low" && s != "medium" && s != "high") setInternal("tv_noise", "off"); - i = getInt("showinfo"); + i = getInt("loglevel"); if(i < 0 || i > 2) - setInternal("showinfo", "1"); + setInternal("loglevel", "1"); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -352,7 +353,8 @@ void Settings::usage() << " -gl_fsmax <1|0> Stretch GL image in fullscreen emulation mode\n" << " -gl_vsync <1|0> Enable synchronize to vertical blank interrupt\n" << " -gl_texrect <1|0> Enable GL_TEXTURE_RECTANGLE extension\n" -// << " -gl_accel <1|0> Enable SDL_GL_ACCELERATED_VISUAL\n" +#if 0 + << " -gl_accel <1|0> Enable SDL_GL_ACCELERATED_VISUAL\n" << " -tv_tex OpenGL TV texturing, type is one of the following:\n" << " normal Aligned in a grid\n" << " stag Aligned in a staggered grid\n" @@ -365,6 +367,7 @@ void Settings::usage() << " medium \n" << " high \n" << " -tv_phos <1|0> OpenGL TV phosphor burn-off\n" +#endif << endl #endif << " -tia_filter Use the specified filter in emulation mode\n" @@ -390,7 +393,8 @@ void Settings::usage() << endl #endif << " -cheat Use the specified cheatcode (see manual for description)\n" - << " -showinfo <0|1|2> Shows some application/game info on commandline\n" + << " -loglevel <0|1|2> Set level of logging during application run\n" + << " -logtoconsole <1|0> Log output to console/commandline\n" << " -joydeadzone Sets 'deadzone' area for analog joysticks (0-29)\n" << " -joyallow4 <1|0> Allow all 4 directions on a joystick to be pressed simultaneously\n" << " -usemouse <1|0> Use mouse for various controllers (paddle, driving, etc)\n" diff --git a/src/emucore/TIA.cxx b/src/emucore/TIA.cxx index d5eda8e55..21c7e01d5 100644 --- a/src/emucore/TIA.cxx +++ b/src/emucore/TIA.cxx @@ -1361,8 +1361,6 @@ bool TIA::poke(uInt16 addr, uInt8 value) case NUSIZ0: // Number-size of player-missle 0 { - // TODO - 08-11-2009: determine correct delay instead of always - // using '8'. myNUSIZ0 = value; mySuppressP0 = 0; break; @@ -1370,8 +1368,6 @@ bool TIA::poke(uInt16 addr, uInt8 value) case NUSIZ1: // Number-size of player-missle 1 { - // TODO - 08-11-2009: determine correct delay instead of always - // using '8'. myNUSIZ1 = value; mySuppressP1 = 0; break; diff --git a/src/emucore/TIATables.cxx b/src/emucore/TIATables.cxx index 041918635..43f0e848e 100644 --- a/src/emucore/TIATables.cxx +++ b/src/emucore/TIATables.cxx @@ -616,10 +616,53 @@ uInt8 TIATables::DisabledMask[640]; // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - const Int16 TIATables::PokeDelay[64] = { - 0, 1, 0, 0, 8, 8, 0, 0, 0, 0, 0, 1, 1, -1, -1, -1, - 0, 0, 8, 8, 0, 0, 0, 0, 0, 0, 0, 1, 1, 1, 1, 1, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 3, 0, 0, 0, 0, 0, - 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, + 0, // VSYNC + 1, // VBLANK (0) / 1 + 0, // WSYNC + 0, // RSYNC + 0, // NUSIZ0 (0) / 8 TODO - calculate this instead of hardcoding + 0, // NUSIZ1 (0) / 8 TODO - calculate this instead of hardcoding + 0, // COLUP0 + 0, // COLUP1 + 0, // COLUPF + 0, // COLUBK + 0, // CTRLPF + 1, // REFP0 + 1, // REFP1 + -1, // PF0 (4) / -1 + -1, // PF1 (4) / -1 + -1, // PF2 (4) / -1 + 0, // RESP0 + 0, // RESP1 + 8, // RESM0 (0) / 8 + 8, // RESM1 (0) / 8 + 0, // RESBL + 0, // AUDC0 (-1) / 0 + 0, // AUDC1 (-1) / 0 + 0, // AUDF0 (-1) / 0 + 0, // AUDF1 (-1) / 0 + 0, // AUDV0 (-1) / 0 + 0, // AUDV1 (-1) / 0 + 1, // GRP0 + 1, // GRP1 + 1, // ENAM0 + 1, // ENAM1 + 1, // ENABL + 0, // HMP0 + 0, // HMP1 + 0, // HMM0 + 0, // HMM1 + 0, // HMBL + 0, // VDELP0 + 0, // VDELP1 + 0, // VDELBL + 0, // RESMP0 + 0, // RESMP1 + 3, // HMOVE + 0, // HMCLR + 0, // CXCLR + // remaining values are undefined TIA write locations + 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 }; // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/gui/LoggerDialog.cxx b/src/gui/LoggerDialog.cxx new file mode 100644 index 000000000..aa8997412 --- /dev/null +++ b/src/gui/LoggerDialog.cxx @@ -0,0 +1,149 @@ +//============================================================================ +// +// SSSS tt lll lll +// SS SS tt ll ll +// SS tttttt eeee ll ll aaaa +// SSSS tt ee ee ll ll aa +// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator" +// SS SS tt ee ll ll aa aa +// SSSS ttt eeeee llll llll aaaaa +// +// Copyright (c) 1995-2011 by Bradford W. Mott, Stephen Anthony +// and the Stella Team +// +// See the file "License.txt" for information on usage and redistribution of +// this file, and for a DISCLAIMER OF ALL WARRANTIES. +// +// $Id$ +//============================================================================ + +#include + +#include "bspf.hxx" + +#include "Dialog.hxx" +#include "DialogContainer.hxx" +#include "FSNode.hxx" +#include "GuiObject.hxx" +#include "OSystem.hxx" +#include "Settings.hxx" +#include "PopUpWidget.hxx" +#include "StringListWidget.hxx" +#include "StringParser.hxx" +#include "Widget.hxx" + +#include "LoggerDialog.hxx" + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +LoggerDialog::LoggerDialog(OSystem* osystem, DialogContainer* parent, + const GUI::Font& font, int max_w, int max_h) + : Dialog(osystem, parent, 0, 0, 0, 0), + myLogInfo(NULL) +{ + const int lineHeight = font.getLineHeight(), + buttonWidth = font.getStringWidth("Save log to disk") + 20, + buttonHeight = font.getLineHeight() + 4; + int xpos, ypos; + WidgetArray wid; + + // Set real dimensions + // This is one dialog that can take as much space as is available + _w = BSPF_min(max_w, 480); + _h = BSPF_min(max_h, 380); + + // Test listing of the log output + xpos = 10; ypos = 10; + myLogInfo = new StringListWidget(this, instance().consoleFont(), xpos, ypos, + _w - 2 * xpos, _h - buttonHeight - ypos - 20 - + 2 * lineHeight); + myLogInfo->setNumberingMode(kListNumberingOff); + myLogInfo->setEditable(false); + wid.push_back(myLogInfo); + ypos += myLogInfo->getHeight() + 8; + + // Level of logging (how much info to print) + xpos += 20; + StringMap items; + items.clear(); + items.push_back("None", "0"); + items.push_back("Basic", "1"); + items.push_back("Verbose", "2"); + myLogLevel = + new PopUpWidget(this, font, xpos, ypos, font.getStringWidth("Verbose"), + lineHeight, items, "Log level: ", + font.getStringWidth("Log level: ")); + wid.push_back(myLogLevel); + + // Should log output also be shown on the console? + xpos += myLogLevel->getWidth() + 30; + myLogToConsole = new CheckboxWidget(this, font, xpos, ypos, "Print to console"); + wid.push_back(myLogToConsole); + + // Add Defaults, OK and Cancel buttons + ButtonWidget* b; + b = new ButtonWidget(this, font, 10, _h - buttonHeight - 10, + buttonWidth, buttonHeight, "Save log to disk", kDefaultsCmd); + wid.push_back(b); + addOKCancelBGroup(wid, font); + + addToFocusList(wid); +} + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +LoggerDialog::~LoggerDialog() +{ +} + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void LoggerDialog::loadConfig() +{ + StringParser parser(instance().logMessages()); + myLogInfo->setList(parser.stringList()); + myLogInfo->setSelected(0); + + myLogLevel->setSelected(instance().settings().getString("loglevel"), "1"); + myLogToConsole->setState(instance().settings().getBool("logtoconsole")); +} + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void LoggerDialog::saveConfig() +{ + instance().settings().setString("loglevel", + myLogLevel->getSelectedTag()); + instance().settings().setBool("logtoconsole", myLogToConsole->getState()); +} + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void LoggerDialog::saveLogFile() +{ + string path = AbstractFilesystemNode::getAbsolutePath("stella", "~", "log"); + FilesystemNode node(path); + + ofstream out(node.getPath(true).c_str(), ios::out); + if(out.is_open()) + { + out << instance().logMessages(); + out.close(); + } +} + +// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - +void LoggerDialog::handleCommand(CommandSender* sender, int cmd, + int data, int id) +{ + switch(cmd) + { + case kOKCmd: + saveConfig(); + close(); + break; + + case kDefaultsCmd: + saveLogFile(); + break; + + default: + Dialog::handleCommand(sender, cmd, data, 0); + break; + } +} diff --git a/src/gui/LoggerDialog.hxx b/src/gui/LoggerDialog.hxx new file mode 100644 index 000000000..130a0f3ea --- /dev/null +++ b/src/gui/LoggerDialog.hxx @@ -0,0 +1,51 @@ +//============================================================================ +// +// SSSS tt lll lll +// SS SS tt ll ll +// SS tttttt eeee ll ll aaaa +// SSSS tt ee ee ll ll aa +// SS tt eeeeee ll ll aaaaa -- "An Atari 2600 VCS Emulator" +// SS SS tt ee ll ll aa aa +// SSSS ttt eeeee llll llll aaaaa +// +// Copyright (c) 1995-2011 by Bradford W. Mott, Stephen Anthony +// and the Stella Team +// +// See the file "License.txt" for information on usage and redistribution of +// this file, and for a DISCLAIMER OF ALL WARRANTIES. +// +// $Id$ +//============================================================================ + +#ifndef LOGGER_DIALOG_HXX +#define LOGGER_DIALOG_HXX + +class GuiObject; +class CheckboxWidget; +class PopUpWidget; +class StringListWidget; + +#include "Dialog.hxx" +#include "bspf.hxx" + + +class LoggerDialog : public Dialog +{ + public: + LoggerDialog(OSystem* osystem, DialogContainer* parent, const GUI::Font& font, int max_w, int max_h); + virtual ~LoggerDialog(); + + protected: + void loadConfig(); + void saveConfig(); + void saveLogFile(); + + virtual void handleCommand(CommandSender* sender, int cmd, int data, int id); + + private: + StringListWidget* myLogInfo; + PopUpWidget* myLogLevel; + CheckboxWidget* myLogToConsole; +}; + +#endif diff --git a/src/gui/OptionsDialog.cxx b/src/gui/OptionsDialog.cxx index 8969f3ea2..690f3905e 100644 --- a/src/gui/OptionsDialog.cxx +++ b/src/gui/OptionsDialog.cxx @@ -32,6 +32,7 @@ #include "FileSnapDialog.hxx" #include "RomAuditDialog.hxx" #include "GameInfoDialog.hxx" +#include "LoggerDialog.hxx" #include "HelpDialog.hxx" #include "AboutDialog.hxx" #include "OptionsDialog.hxx" @@ -57,6 +58,7 @@ OptionsDialog::OptionsDialog(OSystem* osystem, DialogContainer* parent, myFileSnapDialog(NULL), myGameInfoDialog(NULL), myCheatCodeDialog(NULL), + myLoggerDialog(NULL), myHelpDialog(NULL), myAboutDialog(NULL), myIsGlobal(global) @@ -106,6 +108,9 @@ OptionsDialog::OptionsDialog(OSystem* osystem, DialogContainer* parent, #endif wid.push_back(myCheatCodeButton); + myLoggerButton = addODButton("System Logs", kLoggerCmd); + wid.push_back(myLoggerButton); + myHelpButton = addODButton("Help", kHelpCmd); wid.push_back(myHelpButton); @@ -127,6 +132,7 @@ OptionsDialog::OptionsDialog(OSystem* osystem, DialogContainer* parent, #ifdef CHEATCODE_SUPPORT myCheatCodeDialog = new CheatCodeDialog(osystem, parent, font); #endif + myLoggerDialog = new LoggerDialog(osystem, parent, font, max_w, max_h); myHelpDialog = new HelpDialog(osystem, parent, font); myAboutDialog = new AboutDialog(osystem, parent, font); @@ -159,6 +165,7 @@ OptionsDialog::~OptionsDialog() #ifdef CHEATCODE_SUPPORT delete myCheatCodeDialog; #endif + delete myLoggerDialog; delete myHelpDialog; delete myAboutDialog; } @@ -225,6 +232,10 @@ void OptionsDialog::handleCommand(CommandSender* sender, int cmd, break; #endif + case kLoggerCmd: + parent().addDialog(myLoggerDialog); + break; + case kHelpCmd: parent().addDialog(myHelpDialog); break; diff --git a/src/gui/OptionsDialog.hxx b/src/gui/OptionsDialog.hxx index c1675bd46..fa0ebf7b4 100644 --- a/src/gui/OptionsDialog.hxx +++ b/src/gui/OptionsDialog.hxx @@ -36,6 +36,7 @@ class GameInfoDialog; class CheatCodeDialog; class HelpDialog; class AboutDialog; +class LoggerDialog; class OSystem; #include "Dialog.hxx" @@ -61,6 +62,7 @@ class OptionsDialog : public Dialog RomAuditDialog* myRomAuditDialog; GameInfoDialog* myGameInfoDialog; CheatCodeDialog* myCheatCodeDialog; + LoggerDialog* myLoggerDialog; HelpDialog* myHelpDialog; AboutDialog* myAboutDialog; @@ -71,6 +73,7 @@ class OptionsDialog : public Dialog ButtonWidget* myRomAuditButton; ButtonWidget* myGameInfoButton; ButtonWidget* myCheatCodeButton; + ButtonWidget* myLoggerButton; ButtonWidget* myHelpButton; ButtonWidget* myAboutButton; @@ -86,6 +89,7 @@ class OptionsDialog : public Dialog kAuditCmd = 'RAUD', kInfoCmd = 'INFO', kCheatCmd = 'CHET', + kLoggerCmd = 'LOGG', kHelpCmd = 'HELP', kAboutCmd = 'ABOU', kExitCmd = 'EXIM' diff --git a/src/gui/UIDialog.cxx b/src/gui/UIDialog.cxx index f09fd0cb0..5e44375ad 100644 --- a/src/gui/UIDialog.cxx +++ b/src/gui/UIDialog.cxx @@ -251,16 +251,6 @@ UIDialog::UIDialog(OSystem* osystem, DialogContainer* parent, wid.push_back(myWheelLinesPopup); ypos += lineHeight + 4; - // Amount of output to show with 'showinfo' - items.clear(); - items.push_back("None", "0"); - items.push_back("Basic", "1"); - items.push_back("Verbose", "2"); - myShowInfoPopup = new PopUpWidget(myTab, font, xpos, ypos, pwidth, lineHeight, - items, "Show Info level: ", lwidth); - wid.push_back(myShowInfoPopup); - ypos += lineHeight + 4; - // Add items for tab 2 addToFocusList(wid, tabID); @@ -333,10 +323,6 @@ void UIDialog::loadConfig() const string& mw = instance().settings().getString("mwheel"); myWheelLinesPopup->setSelected(mw, "1"); - // Showinfo - const string& si = instance().settings().getString("showinfo"); - myShowInfoPopup->setSelected(si, "1"); - myTab->loadConfig(); } @@ -372,10 +358,6 @@ void UIDialog::saveConfig() instance().settings().setString("mwheel", myWheelLinesPopup->getSelectedTag()); ScrollBarWidget::setWheelLines(atoi(myWheelLinesPopup->getSelectedTag().c_str())); - - // Show info - instance().settings().setString("showinfo", - myShowInfoPopup->getSelectedTag()); } // - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -407,7 +389,6 @@ void UIDialog::setDefaults() myPalettePopup->setSelected("1", "1"); myListDelayPopup->setSelected("300", "300"); myWheelLinesPopup->setSelected("4", "4"); - myShowInfoPopup->setSelected("1", "1"); break; default: diff --git a/src/gui/UIDialog.hxx b/src/gui/UIDialog.hxx index 1ec6c577c..a063e1ac8 100644 --- a/src/gui/UIDialog.hxx +++ b/src/gui/UIDialog.hxx @@ -62,7 +62,6 @@ class UIDialog : public Dialog PopUpWidget* myPalettePopup; PopUpWidget* myListDelayPopup; PopUpWidget* myWheelLinesPopup; - PopUpWidget* myShowInfoPopup; private: void loadConfig(); diff --git a/src/gui/module.mk b/src/gui/module.mk index af5aab5e1..e24744b40 100644 --- a/src/gui/module.mk +++ b/src/gui/module.mk @@ -24,6 +24,7 @@ MODULE_OBJS := \ src/gui/Launcher.o \ src/gui/LauncherDialog.o \ src/gui/LauncherFilterDialog.o \ + src/gui/LoggerDialog.o \ src/gui/ListWidget.o \ src/gui/Menu.o \ src/gui/MessageBox.o \ diff --git a/src/macosx/stella_intel.xcodeproj/project.pbxproj b/src/macosx/stella_intel.xcodeproj/project.pbxproj index fce9f9515..1dcafc51c 100644 --- a/src/macosx/stella_intel.xcodeproj/project.pbxproj +++ b/src/macosx/stella_intel.xcodeproj/project.pbxproj @@ -279,6 +279,8 @@ DC6B2BA511037FF200F199A7 /* CartDebug.hxx in Headers */ = {isa = PBXBuildFile; fileRef = DC6B2BA111037FF200F199A7 /* CartDebug.hxx */; }; DC6B2BA611037FF200F199A7 /* DiStella.cxx in Sources */ = {isa = PBXBuildFile; fileRef = DC6B2BA211037FF200F199A7 /* DiStella.cxx */; }; DC6B2BA711037FF200F199A7 /* DiStella.hxx in Headers */ = {isa = PBXBuildFile; fileRef = DC6B2BA311037FF200F199A7 /* DiStella.hxx */; }; + DC6C726213CDEA0A008A5975 /* LoggerDialog.cxx in Sources */ = {isa = PBXBuildFile; fileRef = DC6C726013CDEA0A008A5975 /* LoggerDialog.cxx */; }; + DC6C726313CDEA0A008A5975 /* LoggerDialog.hxx in Headers */ = {isa = PBXBuildFile; fileRef = DC6C726113CDEA0A008A5975 /* LoggerDialog.hxx */; }; DC74D6A1138D4D7E00F05C5C /* StringList.hxx in Headers */ = {isa = PBXBuildFile; fileRef = DC74D69F138D4D7E00F05C5C /* StringList.hxx */; }; DC74D6A2138D4D7E00F05C5C /* StringParser.hxx in Headers */ = {isa = PBXBuildFile; fileRef = DC74D6A0138D4D7E00F05C5C /* StringParser.hxx */; }; DC8078DB0B4BD5F3005E9305 /* DebuggerExpressions.hxx in Headers */ = {isa = PBXBuildFile; fileRef = DC8078DA0B4BD5F3005E9305 /* DebuggerExpressions.hxx */; }; @@ -684,6 +686,8 @@ DC6B2BA111037FF200F199A7 /* CartDebug.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = CartDebug.hxx; path = ../debugger/CartDebug.hxx; sourceTree = SOURCE_ROOT; }; DC6B2BA211037FF200F199A7 /* DiStella.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = DiStella.cxx; path = ../debugger/DiStella.cxx; sourceTree = SOURCE_ROOT; }; DC6B2BA311037FF200F199A7 /* DiStella.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = DiStella.hxx; path = ../debugger/DiStella.hxx; sourceTree = SOURCE_ROOT; }; + DC6C726013CDEA0A008A5975 /* LoggerDialog.cxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.cpp; name = LoggerDialog.cxx; path = ../gui/LoggerDialog.cxx; sourceTree = SOURCE_ROOT; }; + DC6C726113CDEA0A008A5975 /* LoggerDialog.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = LoggerDialog.hxx; path = ../gui/LoggerDialog.hxx; sourceTree = SOURCE_ROOT; }; DC74D69F138D4D7E00F05C5C /* StringList.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = StringList.hxx; path = ../common/StringList.hxx; sourceTree = SOURCE_ROOT; }; DC74D6A0138D4D7E00F05C5C /* StringParser.hxx */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.cpp.h; name = StringParser.hxx; path = ../common/StringParser.hxx; sourceTree = SOURCE_ROOT; }; DC8078DA0B4BD5F3005E9305 /* DebuggerExpressions.hxx */ = {isa = PBXFileReference; fileEncoding = 30; lastKnownFileType = sourcecode.cpp.h; name = DebuggerExpressions.hxx; path = ../debugger/DebuggerExpressions.hxx; sourceTree = SOURCE_ROOT; }; @@ -1167,6 +1171,8 @@ DC5D2C5F0F129B1E004D1660 /* LauncherFilterDialog.hxx */, 2DDBEAC0084578BF00812C11 /* ListWidget.cxx */, 2DDBEAC1084578BF00812C11 /* ListWidget.hxx */, + DC6C726013CDEA0A008A5975 /* LoggerDialog.cxx */, + DC6C726113CDEA0A008A5975 /* LoggerDialog.hxx */, 2DDBEAC2084578BF00812C11 /* Menu.cxx */, 2DDBEAC3084578BF00812C11 /* Menu.hxx */, DC98F35411F5B56200AA520F /* MessageBox.cxx */, @@ -1473,6 +1479,7 @@ DC69670E1361FD0A0036499D /* pngstruct.h in Headers */, DC74D6A1138D4D7E00F05C5C /* StringList.hxx in Headers */, DC74D6A2138D4D7E00F05C5C /* StringParser.hxx in Headers */, + DC6C726313CDEA0A008A5975 /* LoggerDialog.hxx in Headers */, ); runOnlyForDeploymentPostprocessing = 0; }; @@ -1732,6 +1739,7 @@ DC98F35611F5B56200AA520F /* MessageBox.cxx in Sources */, DCFFE59D12100E1400DFA000 /* ComboDialog.cxx in Sources */, DCD2839812E39F1200A808DC /* Thumbulator.cxx in Sources */, + DC6C726213CDEA0A008A5975 /* LoggerDialog.cxx in Sources */, ); runOnlyForDeploymentPostprocessing = 0; };