SGITranslator: Resize menu field to preferred width

... when the window is first activated. Unfortunately the preferred
width has not been set until after the window is shown so we can't
do the work in AllAttached().
This commit is contained in:
John Scipione
2013-05-30 17:43:34 -04:00
parent 7f4dce0c88
commit dc674f5d96
2 changed files with 16 additions and 1 deletions
+15 -1
View File
@@ -95,7 +95,7 @@ SGIView::SGIView(const char* name, uint32 flags, TranslatorSettings* settings)
//add_menu_item(menu, SGI_COMP_ARLE, "Agressive RLE", currentCompression);
fCompressionMF = new BMenuField("compression",
fCompressionMF = new BMenuField("compression",
B_TRANSLATE("Use compression:"), menu);
BAlignment labelAlignment(B_ALIGN_LEFT, B_ALIGN_NO_VERTICAL);
@@ -157,6 +157,8 @@ void
SGIView::AllAttached()
{
fCompressionMF->Menu()->SetTargetForItems(this);
fCompressionMF->SetDivider(
fCompressionMF->StringWidth(fCompressionMF->Label()) + 3);
}
@@ -177,3 +179,15 @@ SGIView::MessageReceived(BMessage* message)
BView::MessageReceived(message);
}
}
void
SGIView::WindowActivated(bool active)
{
static bool firstRun = true;
if (firstRun) {
firstRun = false;
fCompressionMF->ResizeToPreferred();
}
}
+1
View File
@@ -50,6 +50,7 @@ public:
virtual void AllAttached();
virtual void MessageReceived(BMessage* message);
virtual void WindowActivated(bool active);
enum {
MSG_COMPRESSION_CHANGED = 'cmch',