Use ColorMenuItem in Spider saver

This commit is contained in:
John Scipione
2016-07-31 19:42:39 -07:00
parent b2f8925b33
commit 837d7501ef
2 changed files with 22 additions and 16 deletions
+2
View File
@@ -4,6 +4,8 @@ SetSubDirSupportedPlatformsBeOSCompatible ;
AddResources Spider : Spider.rdef ;
UsePrivateHeaders interface ;
ScreenSaver Spider :
Polygon.cpp
PolygonQueue.cpp
+20 -16
View File
@@ -10,11 +10,11 @@
#include "SpiderView.h"
#include <Catalog.h>
#include <ColorMenuItem.h>
#include <ControlLook.h>
#include <Message.h>
#include <Menu.h>
#include <MenuField.h>
#include <MenuItem.h>
#include <Message.h>
#include <PopUpMenu.h>
#include <Slider.h>
#include <StringView.h>
@@ -105,64 +105,68 @@ SpiderView::SpiderView(BRect frame, SpiderSaver* saver, uint32 queueNumber,
AddChild(fQueueDepthSlider);
// color menu field
BMenu* menu = new BMenu(B_TRANSLATE("Color"));
BMenuItem* item;
BPopUpMenu* menu = new BPopUpMenu(B_TRANSLATE("Color"));
BColorMenuItem* item;
BMessage* message;
// red
message = new BMessage(kMsgColor);
message->AddInt32("color", RED);
item = new BMenuItem(B_TRANSLATE("Red"), message);
item = new BColorMenuItem(B_TRANSLATE("Red"), message,
(rgb_color){ 255, 65, 54 });
item->SetMarked(color == RED);
menu->AddItem(item);
// green
message = new BMessage(kMsgColor);
message->AddInt32("color", GREEN);
item = new BMenuItem(B_TRANSLATE("Green"), message);
item = new BColorMenuItem(B_TRANSLATE("Green"), message,
(rgb_color){ 46, 204, 64 });
item->SetMarked(color == GREEN);
menu->AddItem(item);
// blue
message = new BMessage(kMsgColor);
message->AddInt32("color", BLUE);
item = new BMenuItem(B_TRANSLATE("Blue"), message);
item = new BColorMenuItem(B_TRANSLATE("Blue"), message,
(rgb_color){ 0, 116, 217 });
item->SetMarked(color == BLUE);
menu->AddItem(item);
// yellow
message = new BMessage(kMsgColor);
message->AddInt32("color", YELLOW);
item = new BMenuItem(B_TRANSLATE("Yellow"), message);
item = new BColorMenuItem(B_TRANSLATE("Yellow"), message,
(rgb_color){ 255, 220, 0 });
item->SetMarked(color == YELLOW);
menu->AddItem(item);
// purple
message = new BMessage(kMsgColor);
message->AddInt32("color", PURPLE);
item = new BMenuItem(B_TRANSLATE("Purple"), message);
item = new BColorMenuItem(B_TRANSLATE("Purple"), message,
(rgb_color){ 177, 13, 201 });
item->SetMarked(color == PURPLE);
menu->AddItem(item);
// cyan
message = new BMessage(kMsgColor);
message->AddInt32("color", CYAN);
item = new BMenuItem(B_TRANSLATE("Cyan"), message);
item = new BColorMenuItem(B_TRANSLATE("Cyan"), message,
(rgb_color){ 127, 219, 255 });
item->SetMarked(color == CYAN);
menu->AddItem(item);
// gray
message = new BMessage(kMsgColor);
message->AddInt32("color", GRAY);
item = new BMenuItem(B_TRANSLATE("Gray"), message);
item = new BColorMenuItem(B_TRANSLATE("Gray"), message,
(rgb_color){ 170, 170, 170 });
item->SetMarked(color == GRAY);
menu->AddItem(item);
menu->SetLabelFromMarked(true);
menu->SetRadioMode(true);
frame.OffsetBy(0.0f, viewHeight);
fColorMenuField = new BMenuField(frame, "color", B_TRANSLATE("Color"),
fColorMenuField = new BMenuField( frame, "color", B_TRANSLATE("Color"),
menu);
fColorMenuField->SetDivider(fColorMenuField->StringWidth(
B_TRANSLATE("Color")) + be_control_look->DefaultItemSpacing());