Debugger: Cleanup.
Refactor the expression windows to use the type code helper to simplify building the type menus.
This commit is contained in:
@@ -18,6 +18,7 @@
|
|||||||
#include "SourceLanguage.h"
|
#include "SourceLanguage.h"
|
||||||
#include "StackFrame.h"
|
#include "StackFrame.h"
|
||||||
#include "Thread.h"
|
#include "Thread.h"
|
||||||
|
#include "UiUtils.h"
|
||||||
#include "UserInterface.h"
|
#include "UserInterface.h"
|
||||||
#include "Value.h"
|
#include "Value.h"
|
||||||
|
|
||||||
@@ -140,44 +141,37 @@ ExpressionEvaluationWindow::_BuildTypesMenu()
|
|||||||
BMenu* menu = new BMenu("Types");
|
BMenu* menu = new BMenu("Types");
|
||||||
menu->SetLabelFromMarked(true);
|
menu->SetLabelFromMarked(true);
|
||||||
|
|
||||||
BMessage message(MSG_CHANGE_EVALUATION_TYPE);
|
_AddMenuItemForType(menu, B_INT8_TYPE);
|
||||||
message.AddInt32("type", 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);
|
||||||
|
|
||||||
menu->AddItem(new BMenuItem("int8", new BMessage(message)));
|
_AddMenuItemForType(menu, B_UINT64_TYPE);
|
||||||
|
_AddMenuItemForType(menu, B_FLOAT_TYPE);
|
||||||
message.ReplaceInt32("type", B_UINT8_TYPE);
|
_AddMenuItemForType(menu, B_DOUBLE_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);
|
|
||||||
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)));
|
|
||||||
|
|
||||||
return menu;
|
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
|
void
|
||||||
ExpressionEvaluationWindow::ExpressionEvaluated(
|
ExpressionEvaluationWindow::ExpressionEvaluated(
|
||||||
const Team::ExpressionEvaluationEvent& event)
|
const Team::ExpressionEvaluationEvent& event)
|
||||||
|
|||||||
@@ -12,6 +12,7 @@
|
|||||||
#include "types/Types.h"
|
#include "types/Types.h"
|
||||||
|
|
||||||
class BMenu;
|
class BMenu;
|
||||||
|
class BMenuItem;
|
||||||
class BButton;
|
class BButton;
|
||||||
class BStringView;
|
class BStringView;
|
||||||
class BTextControl;
|
class BTextControl;
|
||||||
@@ -53,6 +54,8 @@ public:
|
|||||||
private:
|
private:
|
||||||
void _Init();
|
void _Init();
|
||||||
BMenu* _BuildTypesMenu();
|
BMenu* _BuildTypesMenu();
|
||||||
|
BMenuItem* _AddMenuItemForType(BMenu* menu,
|
||||||
|
type_code type);
|
||||||
|
|
||||||
// Team::Listener
|
// Team::Listener
|
||||||
virtual void ExpressionEvaluated(
|
virtual void ExpressionEvaluated(
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
#include <TextControl.h>
|
#include <TextControl.h>
|
||||||
|
|
||||||
#include "MessageCodes.h"
|
#include "MessageCodes.h"
|
||||||
|
#include "UiUtils.h"
|
||||||
|
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
@@ -100,44 +101,37 @@ ExpressionPromptWindow::_BuildTypesMenu()
|
|||||||
BMenu* menu = new BMenu("Types");
|
BMenu* menu = new BMenu("Types");
|
||||||
menu->SetLabelFromMarked(true);
|
menu->SetLabelFromMarked(true);
|
||||||
|
|
||||||
BMessage message(MSG_CHANGE_EVALUATION_TYPE);
|
_AddMenuItemForType(menu, B_INT8_TYPE);
|
||||||
message.AddInt32("type", 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);
|
||||||
|
|
||||||
menu->AddItem(new BMenuItem("int8", new BMessage(message)));
|
_AddMenuItemForType(menu, B_UINT64_TYPE);
|
||||||
|
_AddMenuItemForType(menu, B_FLOAT_TYPE);
|
||||||
message.ReplaceInt32("type", B_UINT8_TYPE);
|
_AddMenuItemForType(menu, B_DOUBLE_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);
|
|
||||||
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)));
|
|
||||||
|
|
||||||
return menu;
|
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
|
void
|
||||||
ExpressionPromptWindow::Show()
|
ExpressionPromptWindow::Show()
|
||||||
{
|
{
|
||||||
@@ -168,12 +162,13 @@ ExpressionPromptWindow::MessageReceived(BMessage* message)
|
|||||||
|
|
||||||
case MSG_ADD_NEW_EXPRESSION:
|
case MSG_ADD_NEW_EXPRESSION:
|
||||||
{
|
{
|
||||||
BMessage addMessage(message->what);
|
BMessage addMessage(MSG_EXPRESSION_PROMPT_WINDOW_CLOSED);
|
||||||
addMessage.AddString("expression", fExpressionInput->Text());
|
addMessage.AddString("expression", fExpressionInput->Text());
|
||||||
addMessage.AddInt32("type", fCurrentType);
|
addMessage.AddInt32("type", fCurrentType);
|
||||||
|
addMessage.AddMessenger("target", BMessenger(fAddTarget));
|
||||||
|
|
||||||
BMessenger(fAddTarget).SendMessage(&addMessage);
|
BMessenger(fCloseTarget).SendMessage(&addMessage);
|
||||||
PostMessage(B_QUIT_REQUESTED);
|
Quit();
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -11,6 +11,7 @@
|
|||||||
|
|
||||||
class BButton;
|
class BButton;
|
||||||
class BMenu;
|
class BMenu;
|
||||||
|
class BMenuItem;
|
||||||
class BTextControl;
|
class BTextControl;
|
||||||
|
|
||||||
|
|
||||||
@@ -35,6 +36,8 @@ public:
|
|||||||
private:
|
private:
|
||||||
void _Init();
|
void _Init();
|
||||||
BMenu* _BuildTypesMenu();
|
BMenu* _BuildTypesMenu();
|
||||||
|
BMenuItem* _AddMenuItemForType(BMenu* menu,
|
||||||
|
type_code type);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
BTextControl* fExpressionInput;
|
BTextControl* fExpressionInput;
|
||||||
|
|||||||
Reference in New Issue
Block a user