change to kMsg style BMessage; introduce a new BMessage for listitem click events so I can implement a BPopUpMenu; style cleanup

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40770 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Alexander von Gluck IV
2011-03-01 22:21:21 +00:00
parent 0a42083169
commit f7008de829
2 changed files with 47 additions and 43 deletions
@@ -65,20 +65,20 @@ InterfacesAddOn::CreateView(BRect *bounds)
// Construct the ListView // Construct the ListView
fListview = new InterfacesListView(intViewRect, fListview = new InterfacesListView(intViewRect,
"interfaces", B_FOLLOW_ALL_SIDES); "interfaces", B_FOLLOW_ALL_SIDES);
fListview->SetSelectionMessage(new BMessage(INTERFACE_SELECTED_MSG)); fListview->SetSelectionMessage(new BMessage(kMsgInterfaceSel));
fListview->SetInvocationMessage(new BMessage(CONFIGURE_INTERFACE_MSG)); fListview->SetInvocationMessage(new BMessage(kMsgInterfaceAct));
BScrollView* scrollView = new BScrollView(NULL, fListview, BScrollView* scrollView = new BScrollView(NULL, fListview,
B_FOLLOW_ALL_SIDES, B_WILL_DRAW | B_FRAME_EVENTS, false, true); B_FOLLOW_ALL_SIDES, B_WILL_DRAW | B_FRAME_EVENTS, false, true);
// Construct the BButtons // Construct the BButtons
fConfigure = new BButton(intViewRect, "configure", fConfigure = new BButton(intViewRect, "configure",
"Configure" B_UTF8_ELLIPSIS, new BMessage(CONFIGURE_INTERFACE_MSG)); "Configure" B_UTF8_ELLIPSIS, new BMessage(kMsgInterfaceCfg));
fConfigure->SetEnabled(false); fConfigure->SetEnabled(false);
fOnOff = new BButton(intViewRect, "onoff", "Disable", fOnOff = new BButton(intViewRect, "onoff", "Disable",
new BMessage(ONOFF_INTERFACE_MSG)); new BMessage(kMsgInterfaceTog));
fOnOff->SetEnabled(false); fOnOff->SetEnabled(false);
@@ -127,36 +127,41 @@ InterfacesAddOn::MessageReceived(BMessage* msg)
} }
switch (msg->what) { switch (msg->what) {
case INTERFACE_SELECTED_MSG: { case kMsgInterfaceSel:
fOnOff->SetEnabled(item != NULL); {
fConfigure->SetEnabled(item != NULL); fOnOff->SetEnabled(item != NULL);
if (!item) fConfigure->SetEnabled(item != NULL);
if (!item)
break;
fConfigure->SetEnabled(!item->IsDisabled());
fOnOff->SetLabel(item->IsDisabled() ? "Enable" : "Disable");
break; break;
fConfigure->SetEnabled(!item->IsDisabled()); }
fOnOff->SetLabel(item->IsDisabled() ? "Enable" : "Disable");
break;
}
case CONFIGURE_INTERFACE_MSG: { case kMsgInterfaceAct:
if (!item) case kMsgInterfaceCfg:
{
if (!item)
break;
InterfaceWindow* sw = new InterfaceWindow(item->GetSettings());
sw->Show();
break; break;
}
InterfaceWindow* sw = new InterfaceWindow(item->GetSettings()); case kMsgInterfaceTog:
sw->Show(); {
break; if (!item)
} break;
case ONOFF_INTERFACE_MSG: item->SetDisabled(!item->IsDisabled());
if (!item) fOnOff->SetLabel(item->IsDisabled() ? "Enable" : "Disable");
fConfigure->SetEnabled(!item->IsDisabled());
fListview->Invalidate();
break; break;
}
item->SetDisabled(!item->IsDisabled()); default:
fOnOff->SetLabel(item->IsDisabled() ? "Enable" : "Disable"); BBox::MessageReceived(msg);
fConfigure->SetEnabled(!item->IsDisabled());
fListview->Invalidate();
break;
default:
BBox::MessageReceived(msg);
} }
} }
@@ -23,27 +23,26 @@
class InterfacesAddOn : public NetworkSetupAddOn, public BBox class InterfacesAddOn : public NetworkSetupAddOn, public BBox
{ {
public: public:
InterfacesAddOn(image_id addon_image); InterfacesAddOn(image_id addon_image);
~InterfacesAddOn(); ~InterfacesAddOn();
const char* Name(); const char* Name();
status_t Save(); status_t Save();
BView* CreateView(BRect *bounds); BView* CreateView(BRect *bounds);
enum { static const uint32 kMsgInterfaceSel = 'ifce';
INTERFACE_SELECTED_MSG = 'ifce', static const uint32 kMsgInterfaceAct = 'ifac';
CONFIGURE_INTERFACE_MSG = 'conf', static const uint32 kMsgInterfaceCfg = 'ifcf';
ONOFF_INTERFACE_MSG = 'onof' static const uint32 kMsgInterfaceTog = 'onof';
};
void AttachedToWindow(); void AttachedToWindow();
void MessageReceived(BMessage* msg); void MessageReceived(BMessage* msg);
private: private:
InterfacesListView* fListview; InterfacesListView* fListview;
BButton* fConfigure; BButton* fConfigure;
BButton* fOnOff; BButton* fOnOff;
}; };