improve visualization of group caption
This commit is contained in:
parent
970872c96f
commit
48be0b4b07
@ -301,6 +301,8 @@ namespace API
|
|||||||
void window_size(window, const size&);
|
void window_size(window, const size&);
|
||||||
size window_outline_size(window);
|
size window_outline_size(window);
|
||||||
void window_outline_size(window, const size&);
|
void window_outline_size(window, const size&);
|
||||||
|
|
||||||
|
nana::optional<rectangle> window_rectangle(window);
|
||||||
bool get_window_rectangle(window, rectangle&);
|
bool get_window_rectangle(window, rectangle&);
|
||||||
bool track_window_size(window, const size&, bool true_for_max); ///< Sets the minimum or maximum tracking size of a window.
|
bool track_window_size(window, const size&, bool true_for_max); ///< Sets the minimum or maximum tracking size of a window.
|
||||||
void window_enabled(window, bool);
|
void window_enabled(window, bool);
|
||||||
|
|||||||
@ -821,6 +821,15 @@ namespace API
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
nana::optional<rectangle> window_rectangle(window wd)
|
||||||
|
{
|
||||||
|
auto iwd = reinterpret_cast<basic_window*>(wd);
|
||||||
|
internal_scope_guard lock;
|
||||||
|
if (restrict::wd_manager().available(iwd))
|
||||||
|
return rectangle(iwd->pos_owner, iwd->dimension);
|
||||||
|
return{};
|
||||||
|
}
|
||||||
|
|
||||||
bool get_window_rectangle(window wd, rectangle& r)
|
bool get_window_rectangle(window wd, rectangle& r)
|
||||||
{
|
{
|
||||||
auto iwd = reinterpret_cast<basic_window*>(wd);
|
auto iwd = reinterpret_cast<basic_window*>(wd);
|
||||||
|
|||||||
@ -208,8 +208,8 @@ namespace nana{
|
|||||||
outter[field_title] << impl_->caption;
|
outter[field_title] << impl_->caption;
|
||||||
outter.collocate();
|
outter.collocate();
|
||||||
|
|
||||||
|
impl_->caption.transparent(true);
|
||||||
color pbg = API::bgcolor(this->parent());
|
color pbg = API::bgcolor(this->parent());
|
||||||
|
|
||||||
impl_->caption.bgcolor(pbg.blend(colors::black, 0.025));
|
impl_->caption.bgcolor(pbg.blend(colors::black, 0.025));
|
||||||
|
|
||||||
this->bgcolor(pbg.blend(colors::black, 0.05));
|
this->bgcolor(pbg.blend(colors::black, 0.05));
|
||||||
@ -222,10 +222,27 @@ namespace nana{
|
|||||||
auto gap_px = impl_->gap - 1;
|
auto gap_px = impl_->gap - 1;
|
||||||
|
|
||||||
graph.rectangle(true, API::bgcolor(this->parent()));
|
graph.rectangle(true, API::bgcolor(this->parent()));
|
||||||
graph.round_rectangle(rectangle(point(gap_px, impl_->caption_dimension.height / 2),
|
|
||||||
nana::size(graph.width() - 2 * gap_px, graph.height() - impl_->caption_dimension.height / 2 - gap_px)
|
auto const top_round_line = static_cast<int>(impl_->caption_dimension.height) / 2;
|
||||||
|
|
||||||
|
graph.round_rectangle(rectangle(point(gap_px, top_round_line),
|
||||||
|
nana::size(graph.width() - 2 * gap_px, graph.height() - top_round_line - gap_px)
|
||||||
),
|
),
|
||||||
3, 3, colors::gray_border, true, this->bgcolor());
|
3, 3, colors::gray_border, true, this->bgcolor());
|
||||||
|
|
||||||
|
auto opt_r = API::window_rectangle(impl_->caption);
|
||||||
|
if (opt_r)
|
||||||
|
{
|
||||||
|
rectangle grad_r{ opt_r->position(), nana::size{ opt_r->width, static_cast<unsigned>(top_round_line - opt_r->y) } };
|
||||||
|
|
||||||
|
grad_r.y += top_round_line / 2;
|
||||||
|
grad_r.x -= 2;
|
||||||
|
grad_r.width += 4;
|
||||||
|
|
||||||
|
graph.gradual_rectangle(grad_r,
|
||||||
|
API::bgcolor(this->parent()), this->bgcolor(), true
|
||||||
|
);
|
||||||
|
}
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user