~brandontschaefer/unity/alt-grave-ordering-fix

« back to all changes in this revision

Viewing changes to unity-shared/SearchBar.cpp

  • Committer: Jay Taoko
  • Date: 2012-09-18 11:55:33 UTC
  • mfrom: (2696.3.6 unity.dash-to-preview)
  • mto: This revision was merged to the branch mainline in revision 2719.
  • Revision ID: jay.taoko@canonical.com-20120918115533-ksgl1o12m1wfxy9r
* Merged with Unity trunk.

Show diffs side-by-side

added added

removed removed

Lines of Context:
355
355
  }
356
356
}
357
357
 
358
 
void SearchBar::Draw(nux::GraphicsEngine& GfxContext, bool force_draw)
 
358
void SearchBar::Draw(nux::GraphicsEngine& graphics_engine, bool force_draw)
359
359
{
360
360
  nux::Geometry const& base = GetGeometry();
361
361
 
362
362
  UpdateBackground(false);
363
363
 
364
 
  GfxContext.PushClippingRectangle(base);
365
 
  nux::GetPainter().PaintBackground(GfxContext, base);
 
364
  graphics_engine.PushClippingRectangle(base);
366
365
 
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());
371
370
 
381
380
    if (!highlight_layer_)
382
381
      highlight_layer_.reset(style.FocusOverlay(geo.width, geo.height));
383
382
 
 
383
    if (RedirectedAncestor())
 
384
    {
 
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);
 
392
    }
 
393
 
384
394
    highlight_layer_->SetGeometry(geo);
385
 
    highlight_layer_->Renderlayer(GfxContext);
386
 
  }
387
 
 
388
 
  GfxContext.PopClippingRectangle();
 
395
    highlight_layer_->Renderlayer(graphics_engine);
 
396
  }
 
397
  else if (expander_view_ && expander_view_->IsVisible())
 
398
  {
 
399
    nux::Geometry geo(expander_view_->GetGeometry());
 
400
 
 
401
    geo.y -= (HIGHLIGHT_HEIGHT- geo.height) / 2;
 
402
    geo.height = HIGHLIGHT_HEIGHT;
 
403
 
 
404
    if (RedirectedAncestor())
 
405
    {
 
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);
 
413
    }
 
414
  }
 
415
  graphics_engine.PopClippingRectangle();
389
416
}
390
417
 
391
 
void SearchBar::DrawContent(nux::GraphicsEngine& GfxContext, bool force_draw)
 
418
void SearchBar::DrawContent(nux::GraphicsEngine& graphics_engine, bool force_draw)
392
419
{
393
420
  nux::Geometry const& geo = GetGeometry();
394
421
 
395
 
  GfxContext.PushClippingRectangle(geo);
 
422
  graphics_engine.PushClippingRectangle(geo);
396
423
 
397
424
  if (highlight_layer_ && ShouldBeHighlighted() && !IsFullRedraw())
398
425
  {
399
 
    nux::GetPainter().PushLayer(GfxContext, highlight_layer_->GetGeometry(), highlight_layer_.get());
 
426
    nux::GetPainter().PushLayer(graphics_engine, highlight_layer_->GetGeometry(), highlight_layer_.get());
400
427
  }
401
428
 
402
 
 
403
429
  if (!IsFullRedraw())
404
430
  {
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);
 
435
 
 
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));
 
442
 
 
443
    if (spinner_->IsRedrawNeeded())
 
444
    {
 
445
      graphics_engine.QRP_Color(
 
446
        spinner_->GetX(),
 
447
        spinner_->GetY(),
 
448
        spinner_->GetWidth(),
 
449
        spinner_->GetHeight(), nux::Color(0.0f, 0.0f, 0.0f, 0.0f));
 
450
    }
 
451
    
 
452
    graphics_engine.GetRenderStates().SetBlend(current_alpha_blend, current_src_blend_factor, current_dest_blend_factor);
 
453
 
 
454
    gPainter.PushLayer(graphics_engine, bg_layer_->GetGeometry(), bg_layer_.get());
406
455
  }
407
456
  else
408
457
  {
409
458
    nux::GetPainter().PushPaintLayerStack();
410
459
  }
411
460
 
412
 
  layout_->ProcessDraw(GfxContext, force_draw);
 
461
  layout_->ProcessDraw(graphics_engine, force_draw);
413
462
 
414
463
  if (!IsFullRedraw())
415
464
  {
420
469
    nux::GetPainter().PopPaintLayerStack();
421
470
  }
422
471
 
423
 
  GfxContext.PopClippingRectangle();
 
472
  graphics_engine.PopClippingRectangle();
424
473
}
425
474
 
426
475
void SearchBar::OnClearClicked(int x, int y, unsigned long button_fags,