Debugger: Cleanup.
Refactor the expression windows to use the type code helper to simplify building the type menus.
This commit is contained in:
parent
6d9f98fd95
commit
8336fb8168
|
@ -18,6 +18,7 @@
|
|||
#include "SourceLanguage.h"
|
||||
#include "StackFrame.h"
|
||||
#include "Thread.h"
|
||||
#include "UiUtils.h"
|
||||
#include "UserInterface.h"
|
||||
#include "Value.h"
|
||||
|
||||
|
@ -140,44 +141,37 @@ ExpressionEvaluationWindow::_BuildTypesMenu()
|
|||
BMenu* menu = new BMenu("Types");
|
||||
menu->SetLabelFromMarked(true);
|
||||
|
||||
BMessage message(MSG_CHANGE_EVALUATION_TYPE);
|
||||
message.AddInt32("type", B_INT8_TYPE);
|
||||
|
||||
menu->AddItem(new BMenuItem("int8", new BMessage(message)));
|
||||
|
||||
message.ReplaceInt32("type", B_UINT8_TYPE);
|
||||
menu->AddItem(new BMenuItem("uint8", new BMessage(message)));
|
||||
|
||||
message.ReplaceInt32("type", B_INT16_TYPE);
|
||||
menu->AddItem(new BMenuItem("int16", new BMessage(message)));
|
||||
|
||||
message.ReplaceInt32("type", B_UINT16_TYPE);
|
||||
menu->AddItem(new BMenuItem("uint16", new BMessage(message)));
|
||||
|
||||
message.ReplaceInt32("type", B_INT32_TYPE);
|
||||
menu->AddItem(new BMenuItem("int32", new BMessage(message)));
|
||||
|
||||
message.ReplaceInt32("type", B_UINT32_TYPE);
|
||||
menu->AddItem(new BMenuItem("uint32", new BMessage(message)));
|
||||
|
||||
message.ReplaceInt32("type", B_INT64_TYPE);
|
||||
BMenuItem* item = new BMenuItem("int64", new BMessage(message));
|
||||
menu->AddItem(item);
|
||||
_AddMenuItemForType(menu, B_INT8_TYPE);
|
||||
_AddMenuItemForType(menu, B_UINT8_TYPE);
|
||||
_AddMenuItemForType(menu, B_INT16_TYPE);
|
||||
_AddMenuItemForType(menu, B_UINT16_TYPE);
|
||||
_AddMenuItemForType(menu, B_INT32_TYPE);
|
||||
_AddMenuItemForType(menu, B_UINT32_TYPE);
|
||||
BMenuItem* item = _AddMenuItemForType(menu, B_INT64_TYPE);
|
||||
if (item != NULL)
|
||||
item->SetMarked(true);
|
||||
|
||||
message.ReplaceInt32("type", B_UINT64_TYPE);
|
||||
menu->AddItem(new BMenuItem("uint64", new BMessage(message)));
|
||||
|
||||
message.ReplaceInt32("type", B_FLOAT_TYPE);
|
||||
menu->AddItem(new BMenuItem("float", new BMessage(message)));
|
||||
|
||||
message.ReplaceInt32("type", B_DOUBLE_TYPE);
|
||||
menu->AddItem(new BMenuItem("double", new BMessage(message)));
|
||||
_AddMenuItemForType(menu, B_UINT64_TYPE);
|
||||
_AddMenuItemForType(menu, B_FLOAT_TYPE);
|
||||
_AddMenuItemForType(menu, B_DOUBLE_TYPE);
|
||||
|
||||
return menu;
|
||||
}
|
||||
|
||||
|
||||
BMenuItem*
|
||||
ExpressionEvaluationWindow::_AddMenuItemForType(BMenu* menu, type_code type)
|
||||
{
|
||||
BMessage *message = new BMessage(MSG_CHANGE_EVALUATION_TYPE);
|
||||
message->AddInt32("type", type);
|
||||
|
||||
BMenuItem* item = new BMenuItem(UiUtils::TypeCodeToString(type), message);
|
||||
menu->AddItem(item);
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
ExpressionEvaluationWindow::ExpressionEvaluated(
|
||||
const Team::ExpressionEvaluationEvent& event)
|
||||
|
|
|
@ -12,6 +12,7 @@
|
|||
#include "types/Types.h"
|
||||
|
||||
class BMenu;
|
||||
class BMenuItem;
|
||||
class BButton;
|
||||
class BStringView;
|
||||
class BTextControl;
|
||||
|
@ -53,6 +54,8 @@ public:
|
|||
private:
|
||||
void _Init();
|
||||
BMenu* _BuildTypesMenu();
|
||||
BMenuItem* _AddMenuItemForType(BMenu* menu,
|
||||
type_code type);
|
||||
|
||||
// Team::Listener
|
||||
virtual void ExpressionEvaluated(
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include <TextControl.h>
|
||||
|
||||
#include "MessageCodes.h"
|
||||
#include "UiUtils.h"
|
||||
|
||||
|
||||
enum {
|
||||
|
@ -100,44 +101,37 @@ ExpressionPromptWindow::_BuildTypesMenu()
|
|||
BMenu* menu = new BMenu("Types");
|
||||
menu->SetLabelFromMarked(true);
|
||||
|
||||
BMessage message(MSG_CHANGE_EVALUATION_TYPE);
|
||||
message.AddInt32("type", B_INT8_TYPE);
|
||||
|
||||
menu->AddItem(new BMenuItem("int8", new BMessage(message)));
|
||||
|
||||
message.ReplaceInt32("type", B_UINT8_TYPE);
|
||||
menu->AddItem(new BMenuItem("uint8", new BMessage(message)));
|
||||
|
||||
message.ReplaceInt32("type", B_INT16_TYPE);
|
||||
menu->AddItem(new BMenuItem("int16", new BMessage(message)));
|
||||
|
||||
message.ReplaceInt32("type", B_UINT16_TYPE);
|
||||
menu->AddItem(new BMenuItem("uint16", new BMessage(message)));
|
||||
|
||||
message.ReplaceInt32("type", B_INT32_TYPE);
|
||||
menu->AddItem(new BMenuItem("int32", new BMessage(message)));
|
||||
|
||||
message.ReplaceInt32("type", B_UINT32_TYPE);
|
||||
menu->AddItem(new BMenuItem("uint32", new BMessage(message)));
|
||||
|
||||
message.ReplaceInt32("type", B_INT64_TYPE);
|
||||
BMenuItem* item = new BMenuItem("int64", new BMessage(message));
|
||||
menu->AddItem(item);
|
||||
_AddMenuItemForType(menu, B_INT8_TYPE);
|
||||
_AddMenuItemForType(menu, B_UINT8_TYPE);
|
||||
_AddMenuItemForType(menu, B_INT16_TYPE);
|
||||
_AddMenuItemForType(menu, B_UINT16_TYPE);
|
||||
_AddMenuItemForType(menu, B_INT32_TYPE);
|
||||
_AddMenuItemForType(menu, B_UINT32_TYPE);
|
||||
BMenuItem* item = _AddMenuItemForType(menu, B_INT64_TYPE);
|
||||
if (item != NULL)
|
||||
item->SetMarked(true);
|
||||
|
||||
message.ReplaceInt32("type", B_UINT64_TYPE);
|
||||
menu->AddItem(new BMenuItem("uint64", new BMessage(message)));
|
||||
|
||||
message.ReplaceInt32("type", B_FLOAT_TYPE);
|
||||
menu->AddItem(new BMenuItem("float", new BMessage(message)));
|
||||
|
||||
message.ReplaceInt32("type", B_DOUBLE_TYPE);
|
||||
menu->AddItem(new BMenuItem("double", new BMessage(message)));
|
||||
_AddMenuItemForType(menu, B_UINT64_TYPE);
|
||||
_AddMenuItemForType(menu, B_FLOAT_TYPE);
|
||||
_AddMenuItemForType(menu, B_DOUBLE_TYPE);
|
||||
|
||||
return menu;
|
||||
}
|
||||
|
||||
|
||||
BMenuItem*
|
||||
ExpressionPromptWindow::_AddMenuItemForType(BMenu* menu, type_code type)
|
||||
{
|
||||
BMessage *message = new BMessage(MSG_CHANGE_EVALUATION_TYPE);
|
||||
message->AddInt32("type", type);
|
||||
|
||||
BMenuItem* item = new BMenuItem(UiUtils::TypeCodeToString(type), message);
|
||||
menu->AddItem(item);
|
||||
|
||||
return item;
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
ExpressionPromptWindow::Show()
|
||||
{
|
||||
|
@ -168,12 +162,13 @@ ExpressionPromptWindow::MessageReceived(BMessage* message)
|
|||
|
||||
case MSG_ADD_NEW_EXPRESSION:
|
||||
{
|
||||
BMessage addMessage(message->what);
|
||||
BMessage addMessage(MSG_EXPRESSION_PROMPT_WINDOW_CLOSED);
|
||||
addMessage.AddString("expression", fExpressionInput->Text());
|
||||
addMessage.AddInt32("type", fCurrentType);
|
||||
addMessage.AddMessenger("target", BMessenger(fAddTarget));
|
||||
|
||||
BMessenger(fAddTarget).SendMessage(&addMessage);
|
||||
PostMessage(B_QUIT_REQUESTED);
|
||||
BMessenger(fCloseTarget).SendMessage(&addMessage);
|
||||
Quit();
|
||||
break;
|
||||
}
|
||||
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
|
||||
class BButton;
|
||||
class BMenu;
|
||||
class BMenuItem;
|
||||
class BTextControl;
|
||||
|
||||
|
||||
|
@ -35,6 +36,8 @@ public:
|
|||
private:
|
||||
void _Init();
|
||||
BMenu* _BuildTypesMenu();
|
||||
BMenuItem* _AddMenuItemForType(BMenu* menu,
|
||||
type_code type);
|
||||
|
||||
private:
|
||||
BTextControl* fExpressionInput;
|
||||
|
|
Loading…
Reference in New Issue