本文整理汇总了C++中Allocation::top方法的典型用法代码示例。如果您正苦于以下问题:C++ Allocation::top方法的具体用法?C++ Allocation::top怎么用?C++ Allocation::top使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Allocation
的用法示例。
在下文中一共展示了Allocation::top方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: draw
void Background::draw(Canvas* c, const Allocation& a) const {
Extension ext;
ext.set(c, a);
if (c->damaged(ext)) {
c->fill_rect(a.left(), a.bottom(), a.right(), a.top(), color_);
}
MonoGlyph::draw(c, a);
}
示例2: draw
void MonoKitFrame::draw(Canvas* c, const Allocation& a) const {
BevelFrame::draw(c, a);
if (!state_->test(TelltaleState::is_enabled)) {
c->fill_rect(
a.left(), a.bottom(), a.right(), a.top(), info_->gray_out()
);
}
}
示例3: draw
void Slider::draw(Canvas* c, const Allocation& a) const {
SliderImpl& s = *impl_;
c->push_clipping();
c->clip_rect(a.left(), a.bottom(), a.right(), a.top());
if (s.showing_old_thumb_) {
s.old_thumb_->draw(c, s.old_thumb_->allocation());
}
s.thumb_patch_->draw(c, s.thumb_patch_->allocation());
c->pop_clipping();
}
示例4: pick
void FieldStringEditor::pick(
Canvas*, const Allocation& a, int depth, Hit& h
) {
const Event* ep = h.event();
if (ep != nil && h.left() < a.right() && h.right() >= a.left() &&
h.bottom() < a.top() && h.top() >= a.bottom()
) {
h.target(depth, this, 0);
}
}
示例5: pick
void MonoKitFrame::pick(Canvas* c, const Allocation& a, int depth, Hit& h) {
if (target_) {
Coord x = h.left();
Coord y = h.bottom();
if (x >= a.left() && x < a.right() && y >= a.bottom() && y < a.top()) {
h.target(depth, this, 0);
}
} else {
BevelFrame::pick(c, a, depth, h);
}
}
示例6: pick
void Text::pick(Canvas*, const Allocation&, int depth, Hit& h) {
const Event* e = h.event();
EventButton t = (e == nil) ? Event::none : e->pointer_button();
EventType t1 = (e == nil) ? Event::undefined : e->type();
if (t == Event::left || t == Event::right ||
t == Event::middle || t1 == Event::key) {
Coord x = e->pointer_x();
Coord y = e->pointer_y();
Allocation* a = allocation_;
if (x >= a->left() && x <= a->right() && y >= a->bottom() && y <= a->top()) {
h.target(depth, this, 0, handler());
}
}
}
示例7: draw_frame
void MonoKitFrame::draw_frame(Canvas* c, const Allocation& a, Coord t) const {
const MonoKitInfo& i = info();
const Color* c1, * c2, * c3;
c2 = i.flat();
if (state_->test(TelltaleState::is_enabled_active)) {
c1 = i.light();
c3 = i.dark();
} else if (choosable_ && state_->test(TelltaleState::is_enabled_chosen)) {
c1 = i.dark();
c3 = i.light();
} else {
c1 = c2;
c3 = c2;
}
Bevel::rect(c, c1, c2, c3, t, a.left(), a.bottom(), a.right(), a.top());
}
示例8: event
boolean GlyphGrabber::event (Event& e) {
Graphic31* root = _gviewer->root();
Tool31& tool = _gviewer->tool();
Canvas* c = e.window()->canvas();
c->push_clipping();
c->clip_rect(_a->left(), _a->bottom(), _a->right(), _a->top());
boolean ok = root->grasp(e, tool);
Event ev;
Session* s = Session::instance();
while(ok) {
s->read(ev);
ok = root->manipulating(ev, tool);
}
ok = root->effect(ev, tool);
c->pop_clipping();
return ok;
}
示例9: reallocate
void TBScrollBoxImpl::reallocate() {
if (canvas_ == nil) {
return;
}
ScrollBox* s = scrollbox_;
GlyphIndex n = s->count();
end_ = n;
TBScrollBoxList& list = visible_;
list.remove_all();
Requisition req;
TBScrollBoxInfo info;
Extension e_i;
const Requirement& r = req.y_requirement();
Coord p = allocation_.top();
Coord bottom = allocation_.bottom();
bool found_start = false;
for (GlyphIndex i = start_; i < n; i++) {
Glyph* g = s->component(i);
if (g != nil) {
g->request(req);
Coord span = r.natural();
if (!Math::equal(span, Coord(0), float(1e-2))) {
if (!found_start) {
start_ = i;
found_start = true;
}
Coord alignment = r.alignment();
p -= span;
if (p < bottom) {
end_ = i;
break;
}
info.glyph_ = g;
Allotment& ax = info.allocation_.x_allotment();
ax = allocation_.x_allotment();
Allotment& ay = info.allocation_.y_allotment();
ay.span(span);
ay.origin(p + Coord(alignment * span));
ay.alignment(alignment);
list.append(info);
g->allocate(canvas_, info.allocation_, e_i);
}
}
}
}
示例10: print
void TBScrollBox::print(Printer* c, const Allocation& a) const {
TBScrollBoxImpl& sb = *impl_;
sb.check(c, a);
Extension& e = sb.extension_;
if (sb.canvas_->damaged(e)) {
if (sb.changed_) {
sb.refresh();
}
c->push_clipping();
c->clip_rect(a.left(), a.bottom(), a.right(), a.top());
for (ListItr(TBScrollBoxList) i(sb.visible_); i.more(); i.next()) {
const TBScrollBoxInfo& info = i.cur_ref();
Glyph* g = info.glyph_;
g->print(c, info.allocation_);
}
c->pop_clipping();
}
}
示例11: pick
void Page::pick(Canvas* c, const Allocation& a, int depth, Hit& h) {
if (background_ != nil) {
background_->pick(c, a, depth, h);
}
GlyphIndex count = info_->count();
for (GlyphIndex index = 0; index < count; ++index) {
PageInfo& info = info_->item_ref(index);
if (info.glyph_ != nil && !(info.status_ & PageInfoHidden)) {
Allocation& a = info.allocation_;
if (h.right() >= a.left() && h.left() < a.right() &&
h.top() >= a.bottom() && h.bottom() < a.top()
) {
h.begin(depth, this, index);
info.glyph_->pick(c, a, depth + 1, h);
h.end();
}
}
}
}
示例12: pick
void Box::pick(Canvas* c, const Allocation& a, int depth, Hit& h) {
if (h.right() >= a.left() && h.left() < a.right() &&
h.top() >= a.bottom() && h.bottom() < a.top()
) {
BoxImpl* b = impl_;
Extension ext;
ext.clear();
AllocationInfo& info = b->info(c, a, ext);
Allocation* aa = info.component_allocations();
GlyphIndex n = count();
for (GlyphIndex i = 0; i < n; i++) {
Glyph* g = component(i);
if (g != nil) {
h.begin(depth, this, i);
g->pick(c, aa[i], depth + 1, h);
h.end();
}
}
}
}
示例13: pick
void TBScrollBox::pick(Canvas* c, const Allocation& a, int depth, Hit& h) {
TBScrollBoxImpl& sb = *impl_;
sb.check(c, a);
if (h.left() < a.right() && h.right() >= a.left() &&
h.bottom() < a.top() && h.top() >= a.bottom()
) {
if (sb.changed_) {
sb.refresh();
}
GlyphIndex n = sb.start_;
for (ListItr(TBScrollBoxList) i(sb.visible_); i.more(); i.next()) {
const TBScrollBoxInfo& info = i.cur_ref();
Glyph* g = info.glyph_;
h.begin(depth, this, n);
g->pick(c, info.allocation_, depth + 1, h);
h.end();
++n;
}
}
}
示例14: draw
void PageBorder::draw(Canvas* c, const Allocation& a) const {
if (c != nil) {
Coord left = a.left();
Coord bottom = a.bottom();
Coord right = a.right();
Coord top = a.top();
if (c->damaged(left + 1, bottom + 5, right - 5, top - 1)) {
c->fill_rect(left + 1, bottom + 5, right - 5, top - 1, bg_);
}
if (c->damaged(left, bottom + 5, left + 1, top)) {
c->fill_rect(left + 1, bottom + 5, left, top, fg_);
}
if (c->damaged(left + 1, top - 1, right - 4, top)) {
c->fill_rect(left + 1, top - 1, right - 4, top, fg_);
}
if (c->damaged(right - 5, bottom, right, top - 1)) {
c->fill_rect(right - 5, top - 1, right - 4, bottom + 4, fg_);
c->fill_rect(right - 4, top - 3, right - 2, top - 2, fg_);
c->fill_rect(right - 4, top - 3, right - 3, bottom + 3, bg_);
c->fill_rect(right - 3, top - 3, right - 2, bottom + 2, fg_);
c->fill_rect(right - 2, top - 5, right, top - 4, fg_);
c->fill_rect(right - 2, top - 5, right - 1, bottom + 1, bg_);
c->fill_rect(right - 1, top - 5, right, bottom, fg_);
}
if (c->damaged(left, bottom, right - 1, bottom + 5)) {
c->fill_rect(right - 5, bottom + 5, left, bottom + 4, fg_);
c->fill_rect(left + 3, bottom + 3, right - 4, bottom + 4, bg_);
c->fill_rect(right - 3, bottom + 3, left + 2, bottom + 2, fg_);
c->fill_rect(left + 3, bottom + 3, left + 2, bottom + 4, fg_);
c->fill_rect(left + 5, bottom + 1, right - 1, bottom + 2, bg_);
c->fill_rect(right - 1, bottom + 1, left + 4, bottom, fg_);
c->fill_rect(left + 5, bottom + 1, left + 4, bottom + 2, fg_);
}
}
MonoGlyph::draw(c, a);
}
示例15: merge
void Extension::merge(Canvas* c, const Allocation& a) {
merge_xy(c, a.left(), a.bottom(), a.right(), a.top());
}