Previous behavior for Profile Panel's combobox size restored

See issue #3300 and #3446.
This commit is contained in:
Hombre
2016-11-17 20:09:31 +01:00
parent 0ab931c287
commit 7209f4f1c9
5 changed files with 78 additions and 2 deletions

View File

@@ -938,6 +938,7 @@ void MyScrolledWindow::get_preferred_height_for_width_vfunc (int width, int &min
MyComboBoxText::MyComboBoxText (bool has_entry) : Gtk::ComboBoxText(has_entry)
{
minimumWidth = naturalWidth = 70;
Gtk::CellRendererText* cellRenderer = dynamic_cast<Gtk::CellRendererText*>(get_first_cell());
cellRenderer->property_ellipsize() = Pango::ELLIPSIZE_MIDDLE;
}
@@ -955,6 +956,39 @@ bool MyComboBoxText::on_scroll_event (GdkEventScroll* event)
return false;
}
void MyComboBoxText::setPreferredWidth (int minimum_width, int natural_width)
{
if (natural_width == -1 && minimum_width == -1) {
naturalWidth = minimumWidth = 70;
} else if (natural_width == -1) {
naturalWidth = minimumWidth = minimum_width;
} else if (minimum_width == -1) {
naturalWidth = natural_width;
minimumWidth = rtengine::max(naturalWidth / 2, 20);
minimumWidth = rtengine::min(naturalWidth, minimumWidth);
} else {
naturalWidth = natural_width;
minimumWidth = minimum_width;
}
}
void MyComboBoxText::get_preferred_width_vfunc (int &minimum_width, int &natural_width) const
{
natural_width = rtengine::max(naturalWidth, 10);
minimum_width = rtengine::max(minimumWidth, 10);
}
void MyComboBoxText::get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const
{
natural_width = rtengine::max(naturalWidth, 10);
minimum_width = rtengine::max(minimumWidth, 10);
}
MyComboBox::MyComboBox ()
{
minimumWidth = naturalWidth = 70;
}
bool MyComboBox::on_scroll_event (GdkEventScroll* event)
{
@@ -968,6 +1002,33 @@ bool MyComboBox::on_scroll_event (GdkEventScroll* event)
return false;
}
void MyComboBox::setPreferredWidth (int minimum_width, int natural_width)
{
if (natural_width == -1 && minimum_width == -1) {
naturalWidth = minimumWidth = 70;
} else if (natural_width == -1) {
naturalWidth = minimumWidth = minimum_width;
} else if (minimum_width == -1) {
naturalWidth = natural_width;
minimumWidth = rtengine::max(naturalWidth / 2, 20);
minimumWidth = rtengine::min(naturalWidth, minimumWidth);
} else {
naturalWidth = natural_width;
minimumWidth = minimum_width;
}
}
void MyComboBox::get_preferred_width_vfunc (int &minimum_width, int &natural_width) const
{
natural_width = rtengine::max(naturalWidth, 10);
minimum_width = rtengine::max(minimumWidth, 10);
}
void MyComboBox::get_preferred_width_for_height_vfunc (int height, int &minimum_width, int &natural_width) const
{
natural_width = rtengine::max(naturalWidth, 10);
minimum_width = rtengine::max(minimumWidth, 10);
}
MySpinButton::MySpinButton ()
{
Gtk::Border border;