Implemented BitmapMenuItem::GetContentSize() to get rid of a ugly hack.

This fixes bug 488, the dash was actually the "trigger" :)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@18461 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Stefano Ceccherini
2006-08-08 15:14:18 +00:00
parent 5fef9a28fc
commit 7b44e811c1
3 changed files with 23 additions and 4 deletions
+18
View File
@@ -43,3 +43,21 @@ BitmapMenuItem::DrawContent()
menu->SetDrawingMode(B_OP_COPY);
}
}
void
BitmapMenuItem::GetContentSize(float *_width, float *_height)
{
float width, height;
BMenuItem::GetContentSize(&width, &height);
if (fBitmap != NULL) {
width += fBitmap->Bounds().Width();
height = max_c(height, fBitmap->Bounds().Height());
}
if (_width != NULL)
*_width = width;
if (_height != NULL)
*_height = height;
}
+4 -1
View File
@@ -11,7 +11,10 @@ public:
char shortcut = 0, uint32 modifiers = 0);
~BitmapMenuItem();
virtual void DrawContent();
protected:
virtual void GetContentSize(float *width, float *height);
private:
BBitmap *fBitmap;
BString fName;
+1 -3
View File
@@ -48,13 +48,11 @@ MenuBar::build_menu()
colorSchemeItem = new BMenuItem("Color Scheme...", new BMessage(COLOR_SCHEME_MSG), 0, 0);
// create the separator menu
// TODO: Use B_ITEMS_IN_MATRIX here
separatorStyleMenu = new BMenu("Separator Style", B_ITEMS_IN_COLUMN);
separatorStyleMenu->SetRadioMode(true);
BMessage *msg = new BMessage(MENU_SEP_TYPE);
msg->AddInt32("sep", 0);
separatorStyleZero = new BitmapMenuItem(" ", msg,
BTranslationUtils::GetBitmap(B_RAW_TYPE, "SEP0"));
separatorStyleZero = new BitmapMenuItem("", msg, BTranslationUtils::GetBitmap(B_RAW_TYPE, "SEP0"));
msg = new BMessage(MENU_SEP_TYPE);
msg->AddInt32("sep", 1);
separatorStyleOne = new BitmapMenuItem("", msg, BTranslationUtils::GetBitmap(B_RAW_TYPE, "SEP1"));