change BMessages to be more friendly; change BView to BGroupView and use LayoutBuilder more efficiently

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40539 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Alexander von Gluck IV
2011-02-16 21:17:31 +00:00
parent a04f2e614a
commit 87d10c126f
2 changed files with 22 additions and 27 deletions
@@ -10,9 +10,7 @@
#include "InterfaceAddressView.h" #include "InterfaceAddressView.h"
#include "NetworkSettings.h" #include "NetworkSettings.h"
#include <GroupLayout.h> #include <LayoutBuilder.h>
#include <GroupLayoutBuilder.h>
#include <GridLayoutBuilder.h>
#include <MenuItem.h> #include <MenuItem.h>
#include <StringView.h> #include <StringView.h>
@@ -20,7 +18,7 @@
InterfaceAddressView::InterfaceAddressView(BRect frame, const char* name, InterfaceAddressView::InterfaceAddressView(BRect frame, const char* name,
int family, NetworkSettings* settings) int family, NetworkSettings* settings)
: :
BView(frame, name, B_FOLLOW_ALL_SIDES, 0), BGroupView(B_VERTICAL),
fSettings(settings), fSettings(settings),
fFamily(family) fFamily(family)
{ {
@@ -30,12 +28,12 @@ InterfaceAddressView::InterfaceAddressView(BRect frame, const char* name,
fModePopUpMenu = new BPopUpMenu("modes"); fModePopUpMenu = new BPopUpMenu("modes");
fModePopUpMenu->AddItem(new BMenuItem("Automatic", fModePopUpMenu->AddItem(new BMenuItem("Automatic",
new BMessage(AUTOSEL_MSG))); new BMessage(M_MODE_AUTO)));
fModePopUpMenu->AddItem(new BMenuItem("Static", fModePopUpMenu->AddItem(new BMenuItem("Static",
new BMessage(STATICSEL_MSG))); new BMessage(M_MODE_STATIC)));
fModePopUpMenu->AddSeparatorItem(); fModePopUpMenu->AddSeparatorItem();
fModePopUpMenu->AddItem(new BMenuItem("None", fModePopUpMenu->AddItem(new BMenuItem("None",
new BMessage(NONESEL_MSG))); new BMessage(M_MODE_NONE)));
fModeField = new BMenuField("Mode:", fModePopUpMenu); fModeField = new BMenuField("Mode:", fModePopUpMenu);
@@ -46,19 +44,16 @@ InterfaceAddressView::InterfaceAddressView(BRect frame, const char* name,
RevertFields(); RevertFields();
// Do the initial field population // Do the initial field population
AddChild(BGroupLayoutBuilder(B_VERTICAL, 10) BLayoutBuilder::Group<>(this)
.Add(BGridLayoutBuilder() .AddGrid()
.Add(fModeField->CreateLabelLayoutItem(), 0, 0) .AddMenuField(fModeField, 0, 0, B_ALIGN_RIGHT)
.Add(fModeField->CreateMenuBarLayoutItem(), 1, 0) .AddTextControl(fAddressField, 0, 1, B_ALIGN_RIGHT)
.Add(fAddressField->CreateLabelLayoutItem(), 0, 1) .AddTextControl(fNetmaskField, 0, 2, B_ALIGN_RIGHT)
.Add(fAddressField->CreateTextViewLayoutItem(), 1, 1) .AddTextControl(fGatewayField, 0, 3, B_ALIGN_RIGHT)
.Add(fNetmaskField->CreateLabelLayoutItem(), 0, 2) .End()
.Add(fNetmaskField->CreateTextViewLayoutItem(), 1, 2)
.Add(fGatewayField->CreateLabelLayoutItem(), 0, 3)
.Add(fGatewayField->CreateTextViewLayoutItem(), 1, 3)
)
.AddGlue() .AddGlue()
); .SetInsets(B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING,
B_USE_DEFAULT_SPACING, B_USE_DEFAULT_SPACING);
} }
@@ -79,13 +74,13 @@ void
InterfaceAddressView::MessageReceived(BMessage* message) InterfaceAddressView::MessageReceived(BMessage* message)
{ {
switch (message->what) { switch (message->what) {
case AUTOSEL_MSG: case M_MODE_AUTO:
_EnableFields(false); _EnableFields(false);
break; break;
case STATICSEL_MSG: case M_MODE_STATIC:
_EnableFields(true); _EnableFields(true);
break; break;
case NONESEL_MSG: case M_MODE_NONE:
_EnableFields(false); _EnableFields(false);
fAddressField->SetText(""); fAddressField->SetText("");
fNetmaskField->SetText(""); fNetmaskField->SetText("");
@@ -15,17 +15,17 @@
#include <PopUpMenu.h> #include <PopUpMenu.h>
#include <Screen.h> #include <Screen.h>
#include <TextControl.h> #include <TextControl.h>
#include <View.h> #include <GroupView.h>
enum { enum {
AUTOSEL_MSG = 'iato', M_MODE_AUTO = 'iato',
STATICSEL_MSG = 'istc', M_MODE_STATIC = 'istc',
NONESEL_MSG = 'inon' M_MODE_NONE = 'inon'
}; };
class InterfaceAddressView : public BView { class InterfaceAddressView : public BGroupView {
public: public:
InterfaceAddressView(BRect frame, InterfaceAddressView(BRect frame,
const char* name, int family, const char* name, int family,