1327952Sdim/* 2193326Sed * Copyright 2012-2014, Rene Gollent, rene@gollent.com. 3353358Sdim * Distributed under the terms of the MIT License. 4353358Sdim */ 5353358Sdim#ifndef WATCH_PROMPT_WINDOW_H 6193326Sed#define WATCH_PROMPT_WINDOW_H 7193326Sed 8327952Sdim 9239462Sdim#include <Window.h> 10341825Sdim 11327952Sdim#include "ExpressionInfo.h" 12193326Sed#include "types/Types.h" 13193326Sed 14193326Sed 15193326Sedclass Architecture; 16193326Sedclass BMenuField; 17360784Sdimclass BTextControl; 18327952Sdimclass SourceLanguage; 19327952Sdimclass Watchpoint; 20193326Sedclass UserInterfaceListener; 21327952Sdim 22234353Sdim 23198893Srdivackyclass WatchPromptWindow : public BWindow, private ExpressionInfo::Listener 24327952Sdim{ 25327952Sdimpublic: 26327952Sdim WatchPromptWindow(Architecture* architecture, 27327952Sdim target_addr_t address, uint32 type, 28327952Sdim int32 length, 29327952Sdim UserInterfaceListener* listener); 30327952Sdim 31194179Sed ~WatchPromptWindow(); 32327952Sdim 33327952Sdim static WatchPromptWindow* Create(Architecture* architecture, 34327952Sdim target_addr_t address, uint32 type, 35234353Sdim int32 length, 36296417Sdim UserInterfaceListener* listener); 37327952Sdim // throws 38327952Sdim 39327952Sdim 40327952Sdim virtual void MessageReceived(BMessage* message); 41309124Sdim 42193326Sed virtual void Show(); 43193326Sed 44193326Sed // ExpressionInfo::Listener 45296417Sdim virtual void ExpressionEvaluated(ExpressionInfo* info, 46193326Sed status_t result, ExpressionResult* value); 47193326Sed 48327952Sdimprivate: 49327952Sdim void _Init(); 50327952Sdim 51193326Sed 52327952Sdimprivate: 53193326Sed target_addr_t fInitialAddress; 54327952Sdim uint32 fInitialType; 55360784Sdim int32 fInitialLength; 56327952Sdim Architecture* fArchitecture; 57261991Sdim target_addr_t fRequestedAddress; 58261991Sdim int32 fRequestedLength; 59193326Sed BTextControl* fAddressInput; 60341825Sdim BTextControl* fLengthInput; 61327952Sdim ExpressionInfo* fAddressExpressionInfo; 62360784Sdim ExpressionInfo* fLengthExpressionInfo; 63360784Sdim BMenuField* fTypeField; 64194179Sed UserInterfaceListener* fListener; 65310194Sdim BButton* fWatchButton; 66310194Sdim BButton* fCancelButton; 67341825Sdim SourceLanguage* fLanguage; 68239462Sdim}; 69296417Sdim 70314564Sdim#endif // WATCH_PROMPT_WINDOW_H 71314564Sdim