Small cleanup, added a TODO comment.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@10547 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -124,6 +124,7 @@ BOptionPopUp::GetOptionAt(int32 index, const char **outName, int32 *outValue)
|
|||||||
result = true;
|
result = true;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
return result;
|
return result;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -167,29 +168,30 @@ status_t
|
|||||||
BOptionPopUp::AddOptionAt(const char *name, int32 value, int32 index)
|
BOptionPopUp::AddOptionAt(const char *name, int32 value, int32 index)
|
||||||
{
|
{
|
||||||
BMenu *menu = _mField->Menu();
|
BMenu *menu = _mField->Menu();
|
||||||
if (menu != NULL) {
|
if (menu == NULL)
|
||||||
int32 numItems = menu->CountItems();
|
return B_ERROR;
|
||||||
if (index < 0 || index > numItems)
|
|
||||||
return B_BAD_VALUE;
|
int32 numItems = menu->CountItems();
|
||||||
|
if (index < 0 || index > numItems)
|
||||||
BMessage *message = MakeValueMessage(value);
|
return B_BAD_VALUE;
|
||||||
if (message == NULL)
|
|
||||||
return B_ERROR; // TODO: Should return B_NO_MEMORY instead ?
|
BMessage *message = MakeValueMessage(value);
|
||||||
|
if (message == NULL)
|
||||||
BMenuItem *newItem = new BMenuItem(name, message);
|
return B_ERROR; // TODO: Should return B_NO_MEMORY instead ?
|
||||||
if (newItem == NULL) {
|
|
||||||
delete message;
|
BMenuItem *newItem = new BMenuItem(name, message);
|
||||||
return B_ERROR; // TODO: same as above
|
if (newItem == NULL) {
|
||||||
}
|
delete message;
|
||||||
menu->AddItem(newItem, index);
|
return B_ERROR; // TODO: same as above
|
||||||
|
|
||||||
// We didnt' have any items before, so select the newly added one
|
|
||||||
if (numItems == 0)
|
|
||||||
SetValue(value);
|
|
||||||
return B_OK;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return B_ERROR;
|
menu->AddItem(newItem, index);
|
||||||
|
|
||||||
|
// We didnt' have any items before, so select the newly added one
|
||||||
|
if (numItems == 0)
|
||||||
|
SetValue(value);
|
||||||
|
|
||||||
|
return B_OK;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -238,14 +240,16 @@ BOptionPopUp::SetValue(int32 value)
|
|||||||
{
|
{
|
||||||
BControl::SetValue(value);
|
BControl::SetValue(value);
|
||||||
BMenu *menu = _mField->Menu();
|
BMenu *menu = _mField->Menu();
|
||||||
|
if (menu == NULL)
|
||||||
|
return;
|
||||||
|
|
||||||
int32 numItems = menu->CountItems();
|
int32 numItems = menu->CountItems();
|
||||||
for (int32 i = 0; i < numItems; i++) {
|
for (int32 i = 0; i < numItems; i++) {
|
||||||
BMenuItem *item = menu->ItemAt(i);
|
BMenuItem *item = menu->ItemAt(i);
|
||||||
if (item && item->Message()) {
|
if (item && item->Message()) {
|
||||||
int32 val;
|
int32 itemValue;
|
||||||
item->Message()->FindInt32("be:value", &val);
|
item->Message()->FindInt32("be:value", &itemValue);
|
||||||
if (val == value) {
|
if (itemValue == value) {
|
||||||
item->SetMarked(true);
|
item->SetMarked(true);
|
||||||
|
|
||||||
#if BEHAVE_LIKE_R5
|
#if BEHAVE_LIKE_R5
|
||||||
@@ -293,6 +297,7 @@ BOptionPopUp::GetPreferredSize(float *width, float *height)
|
|||||||
|
|
||||||
// Iterate over all the entries in the control,
|
// Iterate over all the entries in the control,
|
||||||
// and take the maximum width.
|
// and take the maximum width.
|
||||||
|
// TODO: Should we call BMenuField::GetPreferredSize() instead ?
|
||||||
int32 numItems = menu->CountItems();
|
int32 numItems = menu->CountItems();
|
||||||
for (int32 i = 0; i < numItems; i++) {
|
for (int32 i = 0; i < numItems; i++) {
|
||||||
BMenuItem *item = menu->ItemAt(i);
|
BMenuItem *item = menu->ItemAt(i);
|
||||||
|
|||||||
Reference in New Issue
Block a user