success with text ellipsize for combobox

This commit is contained in:
tamasmeszaros 2021-01-06 16:01:39 +01:00
parent 8e7958da12
commit a5882a1a1c
2 changed files with 29 additions and 0 deletions

View File

@ -255,3 +255,12 @@ endif ()
if (SLIC3R_PCH AND NOT SLIC3R_SYNTAXONLY) if (SLIC3R_PCH AND NOT SLIC3R_SYNTAXONLY)
add_precompiled_header(libslic3r_gui pchheader.hpp FORCEINCLUDE) add_precompiled_header(libslic3r_gui pchheader.hpp FORCEINCLUDE)
endif () endif ()
target_include_directories(libslic3r_gui PUBLIC /usr/include/glib-2.0)
target_include_directories(libslic3r_gui PUBLIC /usr/lib/glib-2.0/include)
target_include_directories(libslic3r_gui PUBLIC /usr/include/pango-1.0)
target_include_directories(libslic3r_gui PUBLIC /usr/include/harfbuzz)
target_include_directories(libslic3r_gui PUBLIC /usr/include/gtk-3.0/)
target_include_directories(libslic3r_gui PUBLIC /usr/include/cairo/)
target_include_directories(libslic3r_gui PUBLIC /usr/include/gdk-pixbuf-2.0/)
target_include_directories(libslic3r_gui PUBLIC /usr/include/atk-1.0/)

View File

@ -32,6 +32,10 @@
#include "PhysicalPrinterDialog.hpp" #include "PhysicalPrinterDialog.hpp"
#include "SavePresetDialog.hpp" #include "SavePresetDialog.hpp"
#include <glib-2.0/glib-object.h>
#include <pango-1.0/pango/pango-layout.h>
#include <gtk/gtk.h>
using Slic3r::GUI::format_wxstr; using Slic3r::GUI::format_wxstr;
namespace Slic3r { namespace Slic3r {
@ -130,6 +134,8 @@ PresetComboBox::PresetComboBox(wxWindow* parent, Preset::Type preset_type, const
} }
evt.Skip(); evt.Skip();
}); });
// g_object_set( G_OBJECT( this ), "ellipsize", PANGO_ELLIPSIZE_END, nullptr);
} }
PresetComboBox::~PresetComboBox() PresetComboBox::~PresetComboBox()
@ -179,6 +185,20 @@ void PresetComboBox::update_selection()
SetSelection(m_last_selected); SetSelection(m_last_selected);
SetToolTip(GetString(m_last_selected)); SetToolTip(GetString(m_last_selected));
GList* cells = gtk_cell_layout_get_cells( GTK_CELL_LAYOUT( m_widget ) );
if( !cells )
return;
GtkCellRendererText* cell = (GtkCellRendererText *) cells->next->data;
if( !cell )
return;
g_object_set( G_OBJECT( cell ), "ellipsize", PANGO_ELLIPSIZE_END, NULL );
// Only the list of cells must be freed, the renderer isn't ours to free
g_list_free( cells );
} }
void PresetComboBox::update(std::string select_preset_name) void PresetComboBox::update(std::string select_preset_name)