Based on remarks from Stephan and Axel. Thanks for reviewing.
* The list now owns its items * MakeEmpty() is used to clear the list (also on destruction) * RemoveIconAt() lets ItemAt() check the provided index and delete the item * SlideToIcon(), SlideToNext(), SlideToPrevious() don't need to check invalid values as ItemAt() will return a NULL pointer in this case. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39915 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -23,6 +23,7 @@ const int32 kBorderOffset = 1;
|
|||||||
BIconRule::BIconRule(const char* name)
|
BIconRule::BIconRule(const char* name)
|
||||||
:
|
:
|
||||||
BView(name, B_WILL_DRAW),
|
BView(name, B_WILL_DRAW),
|
||||||
|
fIcons(5, true),
|
||||||
fSelIndex(-1)
|
fSelIndex(-1)
|
||||||
{
|
{
|
||||||
}
|
}
|
||||||
@@ -157,18 +158,14 @@ BIconRule::AddIcon(const char* label, const BBitmap* icon)
|
|||||||
void
|
void
|
||||||
BIconRule::RemoveIconAt(int32 index)
|
BIconRule::RemoveIconAt(int32 index)
|
||||||
{
|
{
|
||||||
int32 count = fIcons.CountItems();
|
delete fIcons.RemoveItemAt(index);
|
||||||
if (index < count && index >= (int32)0)
|
|
||||||
fIcons.RemoveItemAt((int32)index);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
void
|
void
|
||||||
BIconRule::RemoveAllIcons()
|
BIconRule::RemoveAllIcons()
|
||||||
{
|
{
|
||||||
int32 count = fIcons.CountItems();
|
fIcons.MakeEmpty();
|
||||||
for (int32 i = 0; i < count; i++)
|
|
||||||
fIcons.RemoveItemAt(i);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -182,10 +179,6 @@ BIconRule::CountIcons() const
|
|||||||
void
|
void
|
||||||
BIconRule::SlideToIcon(int32 index)
|
BIconRule::SlideToIcon(int32 index)
|
||||||
{
|
{
|
||||||
// Ignore invalid items
|
|
||||||
if ((index < 0) || (index > CountIcons() - 1))
|
|
||||||
return;
|
|
||||||
|
|
||||||
BIconItem* item = fIcons.ItemAt(index);
|
BIconItem* item = fIcons.ItemAt(index);
|
||||||
if (item) {
|
if (item) {
|
||||||
// Deselect previously selected item
|
// Deselect previously selected item
|
||||||
@@ -208,8 +201,6 @@ BIconRule::SlideToIcon(int32 index)
|
|||||||
void
|
void
|
||||||
BIconRule::SlideToNext()
|
BIconRule::SlideToNext()
|
||||||
{
|
{
|
||||||
if (fSelIndex + 1 < CountIcons() - 1)
|
|
||||||
return;
|
|
||||||
SlideToIcon(fSelIndex + 1);
|
SlideToIcon(fSelIndex + 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -217,8 +208,6 @@ BIconRule::SlideToNext()
|
|||||||
void
|
void
|
||||||
BIconRule::SlideToPrevious()
|
BIconRule::SlideToPrevious()
|
||||||
{
|
{
|
||||||
if (fSelIndex <= 0)
|
|
||||||
return;
|
|
||||||
SlideToIcon(fSelIndex - 1);
|
SlideToIcon(fSelIndex - 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user