~unity-team/unity/trusty-1332509

« back to all changes in this revision

Viewing changes to dash/ResultRendererTile.cpp

  • Committer: CI bot
  • Author(s): Stephen M. Webb, Marco Trevisan (Treviño), Andrea Azzarone, Pawel Szubert, Chris Townsend, Andrea Azzarone, Eleni Maria Stea
  • Date: 2014-08-26 13:48:28 UTC
  • mfrom: (3800.1.24 prepare-7.2.3-SRU)
  • Revision ID: ps-jenkins@lists.canonical.com-20140826134828-fkev1oisyfl9kbt3
Prepare fixes for upstream micro-release 7.2.3. Fixes: 1283415, 1292391, 1306211, 1312107, 1320051, 1320071, 1324114, 1339629, 1340171, 1340394, 1340477, 1340992, 1340996, 1342208, 1342731, 1347735

Show diffs side-by-side

added added

removed removed

Lines of Context:
31
31
#include "unity-shared/CairoTexture.h"
32
32
#include "unity-shared/DashStyle.h"
33
33
#include "unity-shared/TextureCache.h"
34
 
#include "unity-shared/RawPixel.h"
35
34
#include "unity-shared/UnitySettings.h"
36
35
 
37
36
namespace unity
120
119
    return;
121
120
 
122
121
  dash::Style const& style = dash::Style::Instance();
123
 
  RawPixel const tile_size   = style.GetTileImageSize();
124
 
  RawPixel const tile_width  = style.GetTileWidth();
125
 
  RawPixel const tile_height = style.GetTileHeight();
126
 
  RawPixel const tile_highlight_width  = style.GetTileIconHightlightWidth();
127
 
  RawPixel const tile_highlight_height = style.GetTileIconHightlightHeight();
128
 
 
129
 
  int tile_icon_size = tile_size.CP(scale());
 
122
  int tile_icon_size = style.GetTileImageSize().CP(scale);
130
123
 
131
124
  // set up our texture mode
132
125
  nux::TexCoordXForm texxform;
148
141
  // render highlight if its needed
149
142
  if (container->prelight && state != ResultRendererState::RESULT_RENDERER_NORMAL)
150
143
  {
151
 
    int highlight_x =  (geometry.x + geometry.width/2) - tile_highlight_width.CP(scale())/2;
152
 
    int highlight_y =  (geometry.y + PADDING.CP(scale()) + tile_icon_size / 2) - tile_highlight_height.CP(scale())/2;
 
144
    int highlight_x = (geometry.x + geometry.width/2) - style.GetTileIconHightlightWidth().CP(scale)/2;
 
145
    int highlight_y = (geometry.y + PADDING.CP(scale) + tile_icon_size / 2) - style.GetTileIconHightlightHeight().CP(scale)/2;
153
146
 
154
147
    RenderTexture(GfxContext,
155
148
                  highlight_x,
179
172
  if (container->text)
180
173
  {
181
174
    RenderTexture(GfxContext,
182
 
                  geometry.x + PADDING.CP(scale()),
183
 
                  geometry.y + tile_icon_size + SPACING.CP(scale()),
184
 
                  tile_width.CP(scale()) - (PADDING.CP(scale()) * 2),
185
 
                  tile_height.CP(scale()) - tile_icon_size - SPACING.CP(scale()),
 
175
                  geometry.x + PADDING.CP(scale),
 
176
                  geometry.y + tile_icon_size + SPACING.CP(scale),
 
177
                  style.GetTileWidth().CP(scale) - (PADDING.CP(scale) * 2),
 
178
                  style.GetTileHeight().CP(scale) - tile_icon_size - SPACING.CP(scale),
186
179
                  container->text->GetDeviceTexture(),
187
180
                  texxform,
188
181
                  color,
273
266
void ResultRendererTile::LoadIcon(Result const& row)
274
267
{
275
268
  Style const& style = Style::Instance();
276
 
  RawPixel const tile_size   = style.GetTileImageSize();
277
 
  RawPixel const tile_gsize  = style.GetTileGIconSize();
278
 
  RawPixel const tile_highlight_width  = style.GetTileIconHightlightWidth();
279
 
  RawPixel const tile_highlight_height = style.GetTileIconHightlightHeight();
 
269
  int tile_size   = style.GetTileImageSize().CP(scale);
 
270
  int tile_gsize  = style.GetTileGIconSize().CP(scale);
280
271
 
281
272
  std::string const& icon_hint = row.icon_hint;
282
273
  std::string const& icon_name = !icon_hint.empty() ? icon_hint : DEFAULT_GICON;
288
279
  {
289
280
    TextureCache& cache = TextureCache::GetDefault();
290
281
    BaseTexturePtr texture_prelight(cache.FindTexture("resultview_prelight",
291
 
                                                      tile_highlight_width.CP(scale()),
292
 
                                                      tile_highlight_height.CP(scale()),
 
282
                                                      style.GetTileIconHightlightWidth().CP(scale),
 
283
                                                      style.GetTileIconHightlightHeight().CP(scale),
293
284
                                                      sigc::mem_fun(this, &ResultRendererTile::DrawHighlight)));
294
285
    container->prelight = texture_prelight;
295
286
  }
300
291
  {
301
292
    bool use_large_icon = icon.IsType(G_TYPE_FILE_ICON) || !icon.IsType(G_TYPE_THEMED_ICON);
302
293
    container->slot_handle = IconLoader::GetDefault().LoadFromGIconString(icon_name, 
303
 
                                                                          tile_size.CP(scale()),
 
294
                                                                          tile_size,
304
295
                                                                          use_large_icon ?
305
 
                                                                          tile_size.CP(scale()) : tile_gsize.CP(scale()), slot);
 
296
                                                                          tile_size : tile_gsize, slot);
306
297
  }
307
298
  else
308
299
  {
309
 
    container->slot_handle = IconLoader::GetDefault().LoadFromIconName(icon_name, -1, tile_gsize.CP(scale()), slot);
 
300
    container->slot_handle = IconLoader::GetDefault().LoadFromIconName(icon_name, -1, tile_gsize, slot);
310
301
  }
311
302
}
312
303
 
333
324
  }
334
325
  else
335
326
  {
336
 
    Style const& style = Style::Instance();
337
 
    RawPixel const tile_size = style.GetTileImageSize();
338
 
 
339
327
    // slow path for non square icons that must be resized to fit in the square
340
328
    // texture
341
329
    float aspect = static_cast<float>(pixbuf_height) / pixbuf_width; // already sanitized width/height so can not be 0.0
342
330
    if (aspect < 1.0f)
343
331
    {
344
 
      pixbuf_width = tile_size.CP(scale());
 
332
      pixbuf_width = Style::Instance().GetTileImageSize().CP(scale);
345
333
      pixbuf_height = pixbuf_width * aspect;
346
334
 
347
335
      if (pixbuf_height > height)
470
458
void ResultRendererTile::LoadText(Result const& row)
471
459
{
472
460
  Style const& style = Style::Instance();
473
 
  RawPixel const tile_size   = style.GetTileImageSize();
474
 
  RawPixel const tile_width  = style.GetTileWidth();
475
 
  RawPixel const tile_height = style.GetTileHeight();
476
461
 
477
462
  nux::CairoGraphics _cairoGraphics(CAIRO_FORMAT_ARGB32,
478
 
                                    tile_width.CP(scale()) - (PADDING.CP(scale()) * 2),
479
 
                                    tile_height.CP(scale()) - tile_size.CP(scale()) - SPACING.CP(scale()));
 
463
                                    style.GetTileWidth().CP(scale()) - (PADDING.CP(scale()) * 2),
 
464
                                    style.GetTileHeight().CP(scale()) - style.GetTileImageSize().CP(scale()) - SPACING.CP(scale()));
480
465
  cairo_surface_set_device_scale(_cairoGraphics.GetSurface(), scale(), scale());
481
466
 
482
467
  cairo_t* cr = _cairoGraphics.GetInternalContext();
499
484
 
500
485
  pango_layout_set_wrap(layout, PANGO_WRAP_WORD_CHAR);
501
486
  pango_layout_set_ellipsize(layout, PANGO_ELLIPSIZE_START);
502
 
  pango_layout_set_width(layout, (tile_width - (PADDING * 2))* PANGO_SCALE);
 
487
  pango_layout_set_width(layout, (style.GetTileWidth() - (PADDING * 2))* PANGO_SCALE);
503
488
  pango_layout_set_height(layout, -2);
504
489
 
505
490
  // FIXME bug #1239381