forked from dolphin-emu/dolphin
		
	git-svn-id: https://dolphin-emu.googlecode.com/svn/trunk@842 8ced0084-cf51-0410-be5f-012b33b47a6e
		
			
				
	
	
		
			194 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
			
		
		
	
	
			194 lines
		
	
	
		
			5.0 KiB
		
	
	
	
		
			C++
		
	
	
	
	
	
// Copyright (C) 2003-2008 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 CODEWINDOW_H_
 | 
						|
#define CODEWINDOW_H_
 | 
						|
 | 
						|
#include <wx/dialog.h>
 | 
						|
#include <wx/textctrl.h>
 | 
						|
#include <wx/listbox.h>
 | 
						|
#include "Debugger.h"
 | 
						|
#include "CodeView.h"
 | 
						|
#include "Thread.h"
 | 
						|
 | 
						|
#include "CoreParameter.h"
 | 
						|
 | 
						|
class CRegisterWindow;
 | 
						|
class CLogWindow;
 | 
						|
class CBreakPointWindow;
 | 
						|
class CMemoryWindow;
 | 
						|
class CJitWindow;
 | 
						|
class CCodeView;
 | 
						|
class IniFile;
 | 
						|
 | 
						|
class CCodeWindow
 | 
						|
	: public wxFrame
 | 
						|
{
 | 
						|
	public:
 | 
						|
 | 
						|
		CCodeWindow(const SCoreStartupParameter& _LocalCoreStartupParameter, wxWindow* parent,
 | 
						|
			wxWindowID id = wxID_ANY,
 | 
						|
			const wxString& title = _T("Dolphin-Debugger"),
 | 
						|
		const wxPoint& pos = wxPoint(950, 100),
 | 
						|
		const wxSize& size = wxSize(400, 500),
 | 
						|
		long style = wxDEFAULT_FRAME_STYLE | wxCLIP_CHILDREN | wxNO_FULL_REPAINT_ON_RESIZE);
 | 
						|
 | 
						|
		~CCodeWindow();
 | 
						|
 | 
						|
		void Load(IniFile &file);
 | 
						|
		void Save(IniFile &file) const;
 | 
						|
 | 
						|
		void Update();
 | 
						|
		void NotifyMapLoaded();
 | 
						|
 | 
						|
 | 
						|
		bool UseInterpreter();
 | 
						|
		bool UseDualCore();
 | 
						|
        void JumpToAddress(u32 _Address);
 | 
						|
 | 
						|
	private:
 | 
						|
 | 
						|
		enum
 | 
						|
		{
 | 
						|
			ID_TOOLBAR = 500,
 | 
						|
			IDM_CODEVIEW,
 | 
						|
			IDM_DEBUG_GO,
 | 
						|
			IDM_STEP,
 | 
						|
			IDM_STEPOVER,
 | 
						|
			IDM_SKIP,
 | 
						|
			IDM_SETPC,
 | 
						|
			IDM_GOTOPC,
 | 
						|
			IDM_ADDRBOX,
 | 
						|
			IDM_CALLSTACKLIST,
 | 
						|
			IDM_CALLERSLIST,
 | 
						|
			IDM_CALLSLIST,
 | 
						|
			IDM_SYMBOLLIST,
 | 
						|
			IDM_INTERPRETER,
 | 
						|
			IDM_JITOFF, // jit
 | 
						|
			IDM_JITLSOFF,
 | 
						|
			IDM_JITIOFF,
 | 
						|
			IDM_JITFPOFF,
 | 
						|
			IDM_JITPOFF,
 | 
						|
			IDM_JITSROFF,
 | 
						|
			IDM_DUALCORE,
 | 
						|
			IDM_LOGWINDOW,
 | 
						|
			IDM_REGISTERWINDOW,
 | 
						|
			IDM_BREAKPOINTWINDOW,
 | 
						|
			IDM_MEMORYWINDOW,
 | 
						|
			IDM_SOUNDWINDOW, // sound
 | 
						|
			IDM_VIDEOWINDOW, // video
 | 
						|
			IDM_JITWINDOW, // jit
 | 
						|
			IDM_SCANFUNCTIONS,
 | 
						|
			IDM_LOGINSTRUCTIONS,
 | 
						|
			IDM_LOADMAPFILE,
 | 
						|
			IDM_SAVEMAPFILE,
 | 
						|
			IDM_CLEARSYMBOLS,
 | 
						|
			IDM_CLEANSYMBOLS,
 | 
						|
			IDM_CREATESIGNATUREFILE,
 | 
						|
			IDM_USESIGNATUREFILE,
 | 
						|
			IDM_USESYMBOLFILE,
 | 
						|
			IDM_CLEARCODECACHE,
 | 
						|
			IDM_PROFILEBLOCKS,
 | 
						|
			IDM_WRITEPROFILE,
 | 
						|
		};
 | 
						|
 | 
						|
		enum
 | 
						|
		{
 | 
						|
			Toolbar_DebugGo,
 | 
						|
			Toolbar_Pause,
 | 
						|
			Toolbar_Step,
 | 
						|
			Toolbar_StepOver,
 | 
						|
			Toolbar_Skip,
 | 
						|
			Toolbar_GotoPC,
 | 
						|
			Toolbar_SetPC,
 | 
						|
			Bitmaps_max
 | 
						|
		};
 | 
						|
 | 
						|
		// sub dialogs
 | 
						|
		CLogWindow* m_LogWindow;
 | 
						|
		CRegisterWindow* m_RegisterWindow;
 | 
						|
		CBreakPointWindow* m_BreakpointWindow;
 | 
						|
		CMemoryWindow* m_MemoryWindow;
 | 
						|
		CJitWindow* m_JitWindow;
 | 
						|
 | 
						|
		wxMenuItem* jitoff;
 | 
						|
		wxMenuItem* jitlsoff;
 | 
						|
		wxMenuItem* jitfpoff;
 | 
						|
		wxMenuItem* jitioff;
 | 
						|
		wxMenuItem* jitpoff;
 | 
						|
		wxMenuItem* jitsroff;
 | 
						|
 | 
						|
		CCodeView* codeview;
 | 
						|
		wxListBox* callstack;
 | 
						|
		wxListBox* symbols;
 | 
						|
		wxListBox* callers;
 | 
						|
		wxListBox* calls;
 | 
						|
		Common::Event sync_event;
 | 
						|
 | 
						|
		wxBitmap m_Bitmaps[Bitmaps_max];
 | 
						|
 | 
						|
		DECLARE_EVENT_TABLE()
 | 
						|
 | 
						|
		void OnSymbolListChange(wxCommandEvent& event);
 | 
						|
		void OnSymbolListContextMenu(wxContextMenuEvent& event);
 | 
						|
		void OnCallstackListChange(wxCommandEvent& event);
 | 
						|
		void OnCallersListChange(wxCommandEvent& event);
 | 
						|
		void OnCallsListChange(wxCommandEvent& event);
 | 
						|
		void OnCodeStep(wxCommandEvent& event);
 | 
						|
		void OnCodeViewChange(wxCommandEvent &event);
 | 
						|
 | 
						|
		void SingleCPUStep();
 | 
						|
 | 
						|
		void OnAddrBoxChange(wxCommandEvent& event);
 | 
						|
 | 
						|
		void OnToggleRegisterWindow(wxCommandEvent& event);
 | 
						|
		void OnToggleBreakPointWindow(wxCommandEvent& event);
 | 
						|
		void OnToggleLogWindow(wxCommandEvent& event);
 | 
						|
		void OnToggleMemoryWindow(wxCommandEvent& event);
 | 
						|
		void OnToggleJitWindow(wxCommandEvent& event);
 | 
						|
		void OnToggleSoundWindow(wxCommandEvent& event);
 | 
						|
		void OnToggleVideoWindow(wxCommandEvent& event);
 | 
						|
	
 | 
						|
		void OnHostMessage(wxCommandEvent& event);
 | 
						|
		void OnSymbolsMenu(wxCommandEvent& event);
 | 
						|
		void OnJitMenu(wxCommandEvent& event);
 | 
						|
		void OnProfilerMenu(wxCommandEvent& event);
 | 
						|
 | 
						|
		void OnInterpreter(wxCommandEvent& event); // cpu mode menu
 | 
						|
		void OnJITOff(wxCommandEvent& event);
 | 
						|
		void OnJITLSOff(wxCommandEvent& event);
 | 
						|
		void OnJITFPOff(wxCommandEvent& event);
 | 
						|
		void OnJITIOff(wxCommandEvent& event);
 | 
						|
		void OnJITPOff(wxCommandEvent& event);
 | 
						|
		void OnJITSROff(wxCommandEvent& event);
 | 
						|
		void DoJITOff(wxCommandEvent& event, wxMenuItem* a, bool& b);		
 | 
						|
 | 
						|
		void CreateMenu(const SCoreStartupParameter& _LocalCoreStartupParameter);
 | 
						|
 | 
						|
		void UpdateButtonStates();
 | 
						|
		void UpdateLists();
 | 
						|
 | 
						|
		void RecreateToolbar();
 | 
						|
		void PopulateToolbar(wxToolBar* toolBar);
 | 
						|
		void InitBitmaps();
 | 
						|
		void CreateGUIControls(const SCoreStartupParameter& _LocalCoreStartupParameter);
 | 
						|
		void OnKeyDown(wxKeyEvent& event);
 | 
						|
};
 | 
						|
 | 
						|
#endif /*CODEWINDOW_*/
 |