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 "NetworkSettings.h"
#include <GroupLayout.h>
#include <GroupLayoutBuilder.h>
#include <GridLayoutBuilder.h>
#include <LayoutBuilder.h>
#include <MenuItem.h>
#include <StringView.h>
@@ -20,7 +18,7 @@
InterfaceAddressView::InterfaceAddressView(BRect frame, const char* name,
int family, NetworkSettings* settings)
:
BView(frame, name, B_FOLLOW_ALL_SIDES, 0),
BGroupView(B_VERTICAL),
fSettings(settings),
fFamily(family)
{
@@ -30,12 +28,12 @@ InterfaceAddressView::InterfaceAddressView(BRect frame, const char* name,
fModePopUpMenu = new BPopUpMenu("modes");
fModePopUpMenu->AddItem(new BMenuItem("Automatic",
new BMessage(AUTOSEL_MSG)));
new BMessage(M_MODE_AUTO)));
fModePopUpMenu->AddItem(new BMenuItem("Static",
new BMessage(STATICSEL_MSG)));
new BMessage(M_MODE_STATIC)));
fModePopUpMenu->AddSeparatorItem();
fModePopUpMenu->AddItem(new BMenuItem("None",
new BMessage(NONESEL_MSG)));
new BMessage(M_MODE_NONE)));
fModeField = new BMenuField("Mode:", fModePopUpMenu);
@@ -46,19 +44,16 @@ InterfaceAddressView::InterfaceAddressView(BRect frame, const char* name,
RevertFields();
// Do the initial field population
AddChild(BGroupLayoutBuilder(B_VERTICAL, 10)
.Add(BGridLayoutBuilder()
.Add(fModeField->CreateLabelLayoutItem(), 0, 0)
.Add(fModeField->CreateMenuBarLayoutItem(), 1, 0)
.Add(fAddressField->CreateLabelLayoutItem(), 0, 1)
.Add(fAddressField->CreateTextViewLayoutItem(), 1, 1)
.Add(fNetmaskField->CreateLabelLayoutItem(), 0, 2)
.Add(fNetmaskField->CreateTextViewLayoutItem(), 1, 2)
.Add(fGatewayField->CreateLabelLayoutItem(), 0, 3)
.Add(fGatewayField->CreateTextViewLayoutItem(), 1, 3)
)
BLayoutBuilder::Group<>(this)
.AddGrid()
.AddMenuField(fModeField, 0, 0, B_ALIGN_RIGHT)
.AddTextControl(fAddressField, 0, 1, B_ALIGN_RIGHT)
.AddTextControl(fNetmaskField, 0, 2, B_ALIGN_RIGHT)
.AddTextControl(fGatewayField, 0, 3, B_ALIGN_RIGHT)
.End()
.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)
{
switch (message->what) {
case AUTOSEL_MSG:
case M_MODE_AUTO:
_EnableFields(false);
break;
case STATICSEL_MSG:
case M_MODE_STATIC:
_EnableFields(true);
break;
case NONESEL_MSG:
case M_MODE_NONE:
_EnableFields(false);
fAddressField->SetText("");
fNetmaskField->SetText("");
@@ -15,17 +15,17 @@
#include <PopUpMenu.h>
#include <Screen.h>
#include <TextControl.h>
#include <View.h>
#include <GroupView.h>
enum {
AUTOSEL_MSG = 'iato',
STATICSEL_MSG = 'istc',
NONESEL_MSG = 'inon'
M_MODE_AUTO = 'iato',
M_MODE_STATIC = 'istc',
M_MODE_NONE = 'inon'
};
class InterfaceAddressView : public BView {
class InterfaceAddressView : public BGroupView {
public:
InterfaceAddressView(BRect frame,
const char* name, int family,