358
void SearchBar::Draw(nux::GraphicsEngine& GfxContext, bool force_draw)
358
void SearchBar::Draw(nux::GraphicsEngine& graphics_engine, bool force_draw)
360
360
nux::Geometry const& base = GetGeometry();
362
362
UpdateBackground(false);
364
GfxContext.PushClippingRectangle(base);
365
nux::GetPainter().PaintBackground(GfxContext, base);
364
graphics_engine.PushClippingRectangle(base);
367
366
bg_layer_->SetGeometry(nux::Geometry(base.x, base.y, last_width_, last_height_));
368
nux::GetPainter().RenderSinglePaintLayer(GfxContext,
367
nux::GetPainter().RenderSinglePaintLayer(graphics_engine,
369
368
bg_layer_->GetGeometry(),
370
369
bg_layer_.get());
381
380
if (!highlight_layer_)
382
381
highlight_layer_.reset(style.FocusOverlay(geo.width, geo.height));
383
if (RedirectedAncestor())
385
unsigned int alpha = 0, src = 0, dest = 0;
386
graphics_engine.GetRenderStates().GetBlend(alpha, src, dest);
387
// This is necessary when doing redirected rendering.
388
// Clean the area below this view before drawing anything.
389
graphics_engine.GetRenderStates().SetBlend(false);
390
graphics_engine.QRP_Color(geo.x, geo.y, geo.width, geo.height, nux::Color(0.0f, 0.0f, 0.0f, 0.0f));
391
graphics_engine.GetRenderStates().SetBlend(alpha, src, dest);
384
394
highlight_layer_->SetGeometry(geo);
385
highlight_layer_->Renderlayer(GfxContext);
388
GfxContext.PopClippingRectangle();
395
highlight_layer_->Renderlayer(graphics_engine);
397
else if (expander_view_ && expander_view_->IsVisible())
399
nux::Geometry geo(expander_view_->GetGeometry());
401
geo.y -= (HIGHLIGHT_HEIGHT- geo.height) / 2;
402
geo.height = HIGHLIGHT_HEIGHT;
404
if (RedirectedAncestor())
406
unsigned int alpha = 0, src = 0, dest = 0;
407
graphics_engine.GetRenderStates().GetBlend(alpha, src, dest);
408
// This is necessary when doing redirected rendering.
409
// Clean the area below this view before drawing anything.
410
graphics_engine.GetRenderStates().SetBlend(false);
411
graphics_engine.QRP_Color(geo.x, geo.y, geo.width, geo.height, nux::Color(0.0f, 0.0f, 0.0f, 0.0f));
412
graphics_engine.GetRenderStates().SetBlend(alpha, src, dest);
415
graphics_engine.PopClippingRectangle();
391
void SearchBar::DrawContent(nux::GraphicsEngine& GfxContext, bool force_draw)
418
void SearchBar::DrawContent(nux::GraphicsEngine& graphics_engine, bool force_draw)
393
420
nux::Geometry const& geo = GetGeometry();
395
GfxContext.PushClippingRectangle(geo);
422
graphics_engine.PushClippingRectangle(geo);
397
424
if (highlight_layer_ && ShouldBeHighlighted() && !IsFullRedraw())
399
nux::GetPainter().PushLayer(GfxContext, highlight_layer_->GetGeometry(), highlight_layer_.get());
426
nux::GetPainter().PushLayer(graphics_engine, highlight_layer_->GetGeometry(), highlight_layer_.get());
403
429
if (!IsFullRedraw())
405
gPainter.PushLayer(GfxContext, bg_layer_->GetGeometry(), bg_layer_.get());
431
unsigned int current_alpha_blend;
432
unsigned int current_src_blend_factor;
433
unsigned int current_dest_blend_factor;
434
graphics_engine.GetRenderStates().GetBlend(current_alpha_blend, current_src_blend_factor, current_dest_blend_factor);
436
graphics_engine.GetRenderStates().SetBlend(false);
437
graphics_engine.QRP_Color(
438
pango_entry_->GetX(),
439
pango_entry_->GetY(),
440
pango_entry_->GetWidth(),
441
pango_entry_->GetHeight(), nux::Color(0.0f, 0.0f, 0.0f, 0.0f));
443
if (spinner_->IsRedrawNeeded())
445
graphics_engine.QRP_Color(
448
spinner_->GetWidth(),
449
spinner_->GetHeight(), nux::Color(0.0f, 0.0f, 0.0f, 0.0f));
452
graphics_engine.GetRenderStates().SetBlend(current_alpha_blend, current_src_blend_factor, current_dest_blend_factor);
454
gPainter.PushLayer(graphics_engine, bg_layer_->GetGeometry(), bg_layer_.get());
409
458
nux::GetPainter().PushPaintLayerStack();
412
layout_->ProcessDraw(GfxContext, force_draw);
461
layout_->ProcessDraw(graphics_engine, force_draw);
414
463
if (!IsFullRedraw())