clipping-item-factory.cpp
4.97 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
/*
* Copyright (c) 2020 Samsung Electronics Co., Ltd.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*
*/
// CLASS HEADER
#include "clipping-item-factory.h"
// EXTERNAL INCLUDES
#include <dali-toolkit/devel-api/visuals/visual-properties-devel.h>
#include <dali-toolkit/public-api/controls/image-view/image-view.h>
#include <dali-toolkit/public-api/visuals/border-visual-properties.h>
#include <dali-toolkit/public-api/visuals/image-visual-properties.h>
#include <dali-toolkit/public-api/visuals/visual-properties.h>
#include <dali/public-api/object/property-map.h>
using namespace Dali;
using namespace Dali::Toolkit;
namespace
{
const char* IMAGE_PATHS[] = {
DEMO_IMAGE_DIR "gallery-medium-1.jpg",
DEMO_IMAGE_DIR "gallery-medium-2.jpg",
DEMO_IMAGE_DIR "gallery-medium-3.jpg",
DEMO_IMAGE_DIR "gallery-medium-4.jpg",
DEMO_IMAGE_DIR "gallery-medium-5.jpg",
DEMO_IMAGE_DIR "gallery-medium-6.jpg",
DEMO_IMAGE_DIR "gallery-medium-7.jpg",
DEMO_IMAGE_DIR "gallery-medium-8.jpg",
DEMO_IMAGE_DIR "gallery-medium-9.jpg",
DEMO_IMAGE_DIR "gallery-medium-10.jpg",
DEMO_IMAGE_DIR "gallery-medium-11.jpg",
DEMO_IMAGE_DIR "gallery-medium-12.jpg",
DEMO_IMAGE_DIR "gallery-medium-13.jpg",
DEMO_IMAGE_DIR "gallery-medium-14.jpg",
DEMO_IMAGE_DIR "gallery-medium-15.jpg",
DEMO_IMAGE_DIR "gallery-medium-16.jpg",
DEMO_IMAGE_DIR "gallery-medium-17.jpg",
DEMO_IMAGE_DIR "gallery-medium-18.jpg",
DEMO_IMAGE_DIR "gallery-medium-19.jpg",
DEMO_IMAGE_DIR "gallery-medium-20.jpg",
DEMO_IMAGE_DIR "gallery-medium-21.jpg",
DEMO_IMAGE_DIR "gallery-medium-22.jpg",
DEMO_IMAGE_DIR "gallery-medium-23.jpg",
DEMO_IMAGE_DIR "gallery-medium-24.jpg",
DEMO_IMAGE_DIR "gallery-medium-25.jpg",
DEMO_IMAGE_DIR "gallery-medium-26.jpg",
DEMO_IMAGE_DIR "gallery-medium-27.jpg",
DEMO_IMAGE_DIR "gallery-medium-28.jpg",
DEMO_IMAGE_DIR "gallery-medium-29.jpg",
DEMO_IMAGE_DIR "gallery-medium-30.jpg",
DEMO_IMAGE_DIR "gallery-medium-31.jpg",
DEMO_IMAGE_DIR "gallery-medium-32.jpg",
DEMO_IMAGE_DIR "gallery-medium-33.jpg",
DEMO_IMAGE_DIR "gallery-medium-34.jpg",
DEMO_IMAGE_DIR "gallery-medium-35.jpg",
DEMO_IMAGE_DIR "gallery-medium-36.jpg",
DEMO_IMAGE_DIR "gallery-medium-37.jpg",
DEMO_IMAGE_DIR "gallery-medium-38.jpg",
DEMO_IMAGE_DIR "gallery-medium-39.jpg",
DEMO_IMAGE_DIR "gallery-medium-40.jpg",
DEMO_IMAGE_DIR "gallery-medium-41.jpg",
DEMO_IMAGE_DIR "gallery-medium-42.jpg",
DEMO_IMAGE_DIR "gallery-medium-43.jpg",
DEMO_IMAGE_DIR "gallery-medium-44.jpg",
DEMO_IMAGE_DIR "gallery-medium-45.jpg",
DEMO_IMAGE_DIR "gallery-medium-46.jpg",
DEMO_IMAGE_DIR "gallery-medium-47.jpg",
DEMO_IMAGE_DIR "gallery-medium-48.jpg",
DEMO_IMAGE_DIR "gallery-medium-49.jpg",
DEMO_IMAGE_DIR "gallery-medium-50.jpg",
DEMO_IMAGE_DIR "gallery-medium-51.jpg",
DEMO_IMAGE_DIR "gallery-medium-52.jpg",
DEMO_IMAGE_DIR "gallery-medium-53.jpg",
};
const unsigned int NUM_IMAGES = sizeof(IMAGE_PATHS) / sizeof(char*);
const unsigned int NUM_IMAGES_MULTIPLIER = 10;
const float ITEM_BORDER_SIZE = 2.0f;
} // unnamed namespace
ClippingItemFactory::ClippingItemFactory()
{
}
unsigned int ClippingItemFactory::GetNumberOfItems()
{
return NUM_IMAGES * NUM_IMAGES_MULTIPLIER;
}
Actor ClippingItemFactory::NewItem(unsigned int itemId)
{
// Create an image view for this item
Property::Map propertyMap;
propertyMap.Insert(Visual::Property::TYPE, Visual::IMAGE);
propertyMap.Insert(ImageVisual::Property::URL, IMAGE_PATHS[itemId % NUM_IMAGES]);
propertyMap.Insert(DevelVisual::Property::VISUAL_FITTING_MODE, DevelVisual::FILL);
ImageView actor = ImageView::New();
actor.SetProperty(Toolkit::ImageView::Property::IMAGE, propertyMap);
// Add a border image child actor
ImageView borderActor = ImageView::New();
borderActor.SetProperty(Actor::Property::PARENT_ORIGIN, ParentOrigin::CENTER);
borderActor.SetProperty(Actor::Property::ANCHOR_POINT, AnchorPoint::CENTER);
borderActor.SetResizePolicy(ResizePolicy::SIZE_FIXED_OFFSET_FROM_PARENT, Dimension::ALL_DIMENSIONS);
borderActor.SetProperty(Actor::Property::SIZE_MODE_FACTOR, Vector3(2.0f * ITEM_BORDER_SIZE, 2.0f * ITEM_BORDER_SIZE, 0.0f));
borderActor.SetProperty(Actor::Property::COLOR_MODE, USE_PARENT_COLOR);
borderActor.SetProperty(ImageView::Property::IMAGE,
Property::Map().Add(Toolkit::Visual::Property::TYPE, Visual::BORDER).Add(BorderVisual::Property::COLOR, Color::WHITE).Add(BorderVisual::Property::SIZE, ITEM_BORDER_SIZE).Add(BorderVisual::Property::ANTI_ALIASING, true));
actor.Add(borderActor);
return actor;
}