本文整理汇总了C++中ToolBar::get_size方法的典型用法代码示例。如果您正苦于以下问题:C++ ToolBar::get_size方法的具体用法?C++ ToolBar::get_size怎么用?C++ ToolBar::get_size使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类ToolBar
的用法示例。
在下文中一共展示了ToolBar::get_size方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: on_render
void ToolBar_Impl::on_render(Canvas &canvas, const Rect &update_rect)
{
update_layout(canvas);
Rect rect = toolbar->get_size();
std::vector<ToolBarItem>::size_type index, size;
size = items.size();
for (index = 0; index < size; index++)
{
ToolBarItem &item = items[index];
GUIThemePart part_item = part_item_normal;
if (index == index_hot_item)
part_item = part_item_hot;
if (index == index_pressed_item || items[index].impl->pressed)
part_item = part_item_pressed;
Rect item_content = part_item.get_content_box(item.impl->position);
part_item.render_box(canvas, item.impl->position);
Rect icon_pos = item.impl->icon_pos;
icon_pos.translate(item_content.left, item_content.top);
Point pressed_offset(0,0);
if (index == index_pressed_item)
pressed_offset = Point(0,0); // To do: Read this from css properties or remove feature totally
if (!item.impl->icon.is_null())
{
icon_pos.translate(pressed_offset);
item.impl->icon.set_frame(item.impl->frame);
item.impl->icon.draw(canvas, icon_pos);
}
//FIXME: toolbar->push_cliprect(canvas, item_content);
//canvas.fill_rect(item_content, Colorf::gray);
// FIXME: Added 256 as a hack .. until someone fixes this class
part_item_normal.render_text(canvas, item.impl->text, Rect(item_content.left + item.impl->text_pos.x + pressed_offset.x, item_content.top + item.impl->text_pos.y + pressed_offset.y, item_content.right+256, item_content.bottom+256));
//toolbar->pop_cliprect(canvas);
}
}
示例2: update_layout
void ToolBar_Impl::update_layout(Canvas &canvas)
{
if (need_layout_update == false)
return;
need_layout_update = false;
Rect rect = toolbar->get_size();
Rect component_content = toolbar->get_content_box();
Rect item_content = part_item_normal.get_content_box(component_content);
int original_text_gap = part_item_normal.get_property_int(CssStr::text_gap, "3");
if (horizontal)
{
int x = component_content.left;
int center_y = item_content.get_center().y;
int item_size = part_item_normal.get_css_width();
std::vector<ToolBarItem>::size_type index, size;
size = items.size();
for (index = 0; index < size; index++)
{
ToolBarItem &item = items[index];
item_content.left = x;
Size text_size = toolbar->get_render_text_size(canvas, item.impl->text);
int text_gap = original_text_gap;
if (text_size.width == 0)
text_gap = 0;
if (layout == layout_left)
{
item.impl->icon_pos = Rect(Point(0, center_y-size_icon.height/2-item_content.top), size_icon);
item_content.right = item_content.left + item.impl->icon_pos.get_width() + text_gap + text_size.width;
item.impl->text_pos = Point(item.impl->icon_pos.right + text_gap, part_item_normal.get_vertical_text_align(canvas, item_content).baseline-item_content.top);
}
else if (layout == layout_center)
{
item.impl->icon_pos = Rect(Point(item_size/2-size_icon.width/2, 0), size_icon);
item.impl->text_pos = Point(item_size/2-text_size.width/2, item.impl->icon_pos.bottom + text_gap + text_size.height);
item_content.right = item_content.left + item_size;
}
Rect item_render = part_item_normal.get_border_box(item_content);
Rect shrink_box = part_item_normal.get_content_shrink_box();
item_render.translate(shrink_box.left,0);
item.impl->position = item_render;
x = item_render.right;
}
}
else
{
int y = component_content.top;
int center_x = item_content.get_center().x;
int size_item = part_item_normal.get_css_height();
std::vector<ToolBarItem>::size_type index, size;
size = items.size();
for (index = 0; index < size; index++)
{
ToolBarItem &item = items[index];
item_content.top = y;
Size text_size = toolbar->get_render_text_size(canvas, item.impl->text);
int text_gap = original_text_gap;
if (text_size.width == 0)
text_gap = 0;
if (layout == layout_left)
{
item.impl->icon_pos = Rect(Point(0,0), size_icon);
item.impl->text_pos = Point(item.impl->icon_pos.right + text_gap, size_item/2+text_size.height/2);
item_content.bottom = item_content.top + size_item;
}
else if (layout == layout_center)
{
item.impl->icon_pos = Rect(Point(center_x-size_icon.width/2, 0), size_icon);
item.impl->text_pos = Point(center_x-text_size.width/2, item.impl->icon_pos.bottom + text_gap + text_size.height);
item_content.bottom = item_content.top + item.impl->icon_pos.get_height() + text_gap + text_size.height;
}
Rect item_render = part_item_normal.get_border_box(item_content);
Rect shrink_box = part_item_normal.get_content_shrink_box();
item_render.translate(0, shrink_box.top);
item.impl->position = item_render;
y = item_render.bottom;
}
}
// toolbar->request_repaint();
}