本文整理汇总了C++中gtk::Label::set_ellipsize方法的典型用法代码示例。如果您正苦于以下问题:C++ Label::set_ellipsize方法的具体用法?C++ Label::set_ellipsize怎么用?C++ Label::set_ellipsize使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类gtk::Label
的用法示例。
在下文中一共展示了Label::set_ellipsize方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: populate_results
void AwesomeBar::populate_results(const std::vector<unicode>& to_add) {
Pango::FontDescription desc("sans-serif 12");
displayed_files_.clear();
for(auto file: to_add) {
auto to_display = file.slice(window_.project_path().length() + 1, nullptr);
Gtk::Label* label = Gtk::manage(new Gtk::Label(to_display.encode()));
label->set_margin_top(10);
label->set_margin_bottom(10);
label->set_margin_left(10);
label->set_margin_right(10);
label->set_alignment(0, 0.5);
label->set_hexpand(false);
label->set_line_wrap_mode(Pango::WRAP_CHAR);
label->set_ellipsize(Pango::ELLIPSIZE_MIDDLE);
label->set_line_wrap(true);
label->override_font(desc);
list_.append(*label);
displayed_files_.push_back(file);
}
list_.show_all();
if(!list_.get_children().empty()) {
list_revealer_.set_reveal_child(true);
about_to_focus = true;
list_.select_row(*list_.get_row_at_index(0));
}
}
示例2: a
Launcher::Launcher(const App& app) :
a(app),
box(new Box(Gtk::ORIENTATION_HORIZONTAL))
{
Gdk::RGBA awkward_grey;
awkward_grey.set_grey(0.5, 0.1);
box->override_background_color(awkward_grey, Gtk::STATE_FLAG_NORMAL);
Image* icon = Gtk::manage(icon_from_name(app.icon_name(), Gtk::ICON_SIZE_LARGE_TOOLBAR));
icon->set_margin_end(20);
Gtk::Label* name = Gtk::manage(new Label(app.name()));
name->set_ellipsize(Pango::ELLIPSIZE_END);
box->pack_start(*icon, false, false);
box->pack_start(*name, false, false);
box->show_all();
box->set_tooltip_text(app.comment());
}
示例3: Label
Gobby::StatusBar::MessageHandle
Gobby::StatusBar::add_message(Gobby::StatusBar::MessageType type,
const Glib::ustring& message,
const Glib::ustring& dialog_message,
unsigned int timeout)
{
if(m_visible_messages >= 12)
{
for(MessageHandle iter = m_list.begin();
iter != m_list.end();
++iter)
{
if(*iter)
{
if((*iter)->is_error())
remove_message(iter);
else
// only hide message because whoever
// installed it is expecting to be
// able to call remove_message on it
hide_message(iter);
break;
}
}
}
Gtk::HBox* bar = Gtk::manage(new Gtk::HBox);
Gtk::Image* image = Gtk::manage(new Gtk::Image(
message_type_to_stock_id(type), Gtk::ICON_SIZE_MENU));
bar->pack_start(*image, Gtk::PACK_SHRINK);
image->show();
Gtk::Label* label = Gtk::manage(
new Gtk::Label(message, GtkCompat::ALIGN_LEFT));
label->set_ellipsize(Pango::ELLIPSIZE_END);
bar->pack_start(*label, Gtk::PACK_EXPAND_WIDGET);
label->show();
GtkShadowType shadow_type;
gtk_widget_style_get(GTK_WIDGET(m_bar_position.gobj()),
"shadow-type", &shadow_type, NULL);
Gtk::Frame* frame = Gtk::manage(new Gtk::Frame);
m_list.push_back(0);
Gobby::StatusBar::MessageHandle iter(--m_list.end());
sigc::connection timeout_conn;
if(timeout)
{
timeout_conn = Glib::signal_timeout().connect_seconds(
sigc::bind(
sigc::bind_return(
sigc::mem_fun(
*this,
&StatusBar::remove_message),
false),
iter),
timeout);
}
*iter = new Message(frame, message, dialog_message, timeout_conn);
++m_visible_messages;
if(dialog_message.empty())
{
frame->add(*bar);
}
else
{
Gtk::EventBox *eventbox = Gtk::manage(new Gtk::EventBox);
frame->add(*eventbox);
eventbox->add(*bar);
eventbox->signal_button_press_event().connect(
sigc::bind_return(sigc::bind(
sigc::mem_fun(
*this,
&StatusBar::on_message_clicked),
iter), false));
eventbox->show();
}
frame->set_shadow_type(static_cast<Gtk::ShadowType>(shadow_type));
bar->show();
pack_start(*frame, Gtk::PACK_EXPAND_WIDGET);
reorder_child(*frame, 0);
frame->show();
return iter;
}
示例4: Label
Gobby::StatusBar::MessageHandle
Gobby::StatusBar::add_message(Gobby::StatusBar::MessageType type,
const Glib::ustring& message,
const Glib::ustring& dialog_message,
unsigned int timeout)
{
if(m_visible_messages >= 12)
{
for(MessageHandle iter = m_list.begin();
iter != m_list.end();
++iter)
{
if(*iter)
{
if((*iter)->is_error())
remove_message(iter);
else
// only hide message because whoever
// installed it is expecting to be
// able to call remove_message on it
hide_message(iter);
break;
}
}
}
Gtk::Grid* grid = Gtk::manage(new Gtk::Grid());
grid->set_column_spacing(6);
grid->set_margin_start(2);
grid->set_margin_end(2);
Gtk::Image* image = Gtk::manage(new Gtk::Image);
image->set_from_icon_name(message_type_to_icon_name(type),
Gtk::ICON_SIZE_MENU);
grid->attach(*image, 0, 0, 1, 1);
image->show();
Gtk::Label* label = Gtk::manage(
new Gtk::Label(message, Gtk::ALIGN_START));
label->set_ellipsize(Pango::ELLIPSIZE_END);
// If we set halign instead, the label will not behave correctly
// when ellipsized, because then it has always all space around it
// allocated, and the alignment "jumps" around whin resizing the
// window due to new characters appearing or disappearing as a result
// of the ellipsization.
#if GTK_CHECK_VERSION(3, 16, 0)
gtk_label_set_xalign(label->gobj(), 0.0);
#else
label->set_alignment(0.0, 0.0);
#endif
label->show();
grid->attach(*label, 1, 0, 1, 1);
Gtk::Frame* frame = Gtk::manage(new Gtk::Frame);
m_list.push_back(0);
Gobby::StatusBar::MessageHandle iter(--m_list.end());
sigc::connection timeout_conn;
if(timeout)
{
timeout_conn = Glib::signal_timeout().connect_seconds(
sigc::bind(
sigc::bind_return(
sigc::mem_fun(
*this,
&StatusBar::remove_message),
false),
iter),
timeout);
}
*iter = new Message(frame, message, dialog_message, timeout_conn);
++m_visible_messages;
if(dialog_message.empty())
{
frame->add(*grid);
}
else
{
Gtk::EventBox *eventbox = Gtk::manage(new Gtk::EventBox);
frame->add(*eventbox);
eventbox->add(*grid);
eventbox->signal_button_press_event().connect(
sigc::bind_return(sigc::bind(
sigc::mem_fun(
*this,
&StatusBar::on_message_clicked),
iter), false));
eventbox->show();
}
grid->show();
// Insert at front
gtk_grid_attach_next_to(
gobj(), GTK_WIDGET(frame->gobj()),
NULL, GTK_POS_LEFT, 1, 1);
//.........这里部分代码省略.........