1/* 2 * Copyright 2011, Rene Gollent, rene@gollent.com. All rights reserved. 3 * Distributed under the terms of the MIT License. 4 */ 5#ifndef INSPECTOR_WINDOW_H 6#define INSPECTOR_WINDOW_H 7 8 9#include <Window.h> 10 11#include "TeamMemoryBlock.h" 12#include "Types.h" 13 14 15class BButton; 16class BMenuField; 17class BMessenger; 18class BTextControl; 19class GuiTeamUiSettings; 20class MemoryView; 21class Team; 22class UserInterfaceListener; 23 24 25class InspectorWindow : public BWindow, 26 public TeamMemoryBlock::Listener { 27public: 28 InspectorWindow(::Team* team, 29 UserInterfaceListener* listener, 30 BHandler* target); 31 virtual ~InspectorWindow(); 32 33 static InspectorWindow* Create(::Team* team, 34 UserInterfaceListener* listener, 35 BHandler* target); 36 // throws 37 38 virtual void MessageReceived(BMessage* message); 39 virtual bool QuitRequested(); 40 41 virtual void MemoryBlockRetrieved(TeamMemoryBlock* block); 42 43 status_t LoadSettings( 44 const GuiTeamUiSettings& settings); 45 status_t SaveSettings( 46 BMessage& settings); 47private: 48 void _Init(); 49 50 void _LoadMenuFieldMode(BMenuField* field, 51 const char* name, 52 const BMessage& settings); 53 status_t _SaveMenuFieldMode(BMenuField* field, 54 const char* name, 55 BMessage& settings); 56 57private: 58 UserInterfaceListener* fListener; 59 BTextControl* fAddressInput; 60 BMenuField* fHexMode; 61 BMenuField* fEndianMode; 62 BMenuField* fTextMode; 63 MemoryView* fMemoryView; 64 BButton* fPreviousBlockButton; 65 BButton* fNextBlockButton; 66 TeamMemoryBlock* fCurrentBlock; 67 target_addr_t fCurrentAddress; 68 ::Team* fTeam; 69 BHandler* fTarget; 70}; 71 72#endif // INSPECTOR_WINDOW_H 73