dolphin/Source/Core/DolphinWX/Src/LogWindow.h
Glenn Rice 22872b383c Make toggling of word wrap for the log window nicer for linux. Unfortunately this method is only implemented for wxGTK (what not wxMSW? Shocker!).
Made it so that Source/Core/DolphinWX/Globals.h is only used for the wxWidgets build, and a little other file inclusion clean up.
Fix an issue where a user runs a game from the open menu or toolbar items with a clean user directory, and henceforth double clicking on the empty game list (where it says double click to browse for games), that game is run again.


git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@6037 8ced0084-cf51-0410-be5f-012b33b47a6e
2010-08-03 03:20:44 +00:00

112 lines
2.8 KiB
C++

// Copyright (C) 2003 Dolphin Project.
// This program is free software: you can redistribute it and/or modify
// it under the terms of the GNU General Public License as published by
// the Free Software Foundation, version 2.0.
// This program is distributed in the hope that it will be useful,
// but WITHOUT ANY WARRANTY; without even the implied warranty of
// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
// GNU General Public License 2.0 for more details.
// A copy of the GPL 2.0 should have been included with the program.
// If not, see http://www.gnu.org/licenses/
// Official SVN repository and contact information can be found at
// http://code.google.com/p/dolphin-emu/
#ifndef LOGWINDOW_H_
#define LOGWINDOW_H_
#include "LogManager.h"
#include "Frame.h"
#include "Thread.h"
#include <queue>
enum
{
IDM_LOG,
IDM_CLEARLOG,
IDM_LOGCHECKS,
IDM_OPTIONS,
IDM_TOGGLEALL,
IDM_WRAPLINE,
IDM_WRITEFILE,
IDM_WRITECONSOLE,
IDM_WRITEWINDOW,
IDTM_UPDATELOG,
IDM_VERBOSITY,
IDM_FONT,
IDM_SUBMITCMD
};
class wxTextCtrl;
class wxCheckListBox;
class wxString;
class CFrame;
// Uses multiple inheritance - only sane because LogListener is a pure virtual interface.
class CLogWindow : public wxPanel, LogListener
{
public:
CLogWindow(CFrame *parent,
wxWindowID id = wxID_ANY,
const wxPoint& pos = wxDefaultPosition,
const wxSize& size = wxDefaultSize,
long style = wxTAB_TRAVERSAL,
const wxString& name = wxT("Log")
);
~CLogWindow();
void SaveSettings();
void LoadSettings();
void Log(LogTypes::LOG_LEVELS, const char *text);
int x, y, winpos;
private:
CFrame *Parent;
wxFont DefaultFont, MonoSpaceFont;
std::vector<wxFont> LogFont;
wxTimer *m_LogTimer;
FileLogListener *m_fileLog;
ConsoleListener *m_console;
LogManager *m_LogManager;
std::queue<std::pair<u8, wxString> > msgQueue;
bool m_writeFile, m_writeConsole, m_writeWindow, m_LogAccess;
// Controls
wxBoxSizer *sUber, *sLeft, *sRight, *sRightBottom;
wxTextCtrl *m_Log, *m_cmdline;
wxChoice * m_FontChoice;
wxCheckBox *m_writeFileCB, *m_writeConsoleCB, *m_writeWindowCB;
wxCheckListBox* m_checks;
wxRadioBox *m_verbosity;
Common::CriticalSection m_LogSection;
wxCSConv m_SJISConv;
DECLARE_EVENT_TABLE()
wxTextCtrl * CreateTextCtrl(wxPanel* parent, wxWindowID id = wxID_ANY, long Style = NULL);
void CreateGUIControls();
void PopulateRight(); void UnPopulateRight();
void OnClose(wxCloseEvent& event);
void OnSize(wxSizeEvent& event);
void OnSubmit(wxCommandEvent& event);
void OnOptionsCheck(wxCommandEvent& event);
void OnLogCheck(wxCommandEvent& event);
void OnClear(wxCommandEvent& event);
void OnToggleAll(wxCommandEvent& event);
void OnLogTimer(wxTimerEvent& WXUNUSED(event));
void ToggleLog(int _logType, bool enable);
void UpdateChecks();
void UpdateLog();
// LogListener
const char *getName() const { return "LogWindow"; }
};
#endif /*LOGWINDOW_H_*/