summaryrefslogtreecommitdiff
path: root/include/util/listmgr.h
blob: 50491bb669c68e7e4b13380937279efc9b5d6255 (plain)
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
/*
 * Copyright (c) 2015 Samsung Electronics Co., Ltd All Rights Reserved
 *
 * 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.
 */

#ifndef __AIR_MEDIAHUB_LISTMGR_H__
#define __AIR_MEDIAHUB_LISTMGR_H__

struct listmgr;

struct play_info_ops {
	bool (*draw)(void *data, Evas_Object *base);
	bool (*update)(void *data, Evas_Object *base);

	void (*selected_cb)(void *data, Evas_Object *obj);
	void *ops_data;
};

struct grid_ops {
	struct grid_class *gclass;

	void (*selected_cb)(void *data, Elm_Object_Item *it);
	void *ops_data;
};

struct listmgr_data {
	Evas_Object *menu_btn;

	int grid_item_x;
	int grid_item_y;
	int grid_num_item;

	int box_padding;

	struct play_info_ops *pops;
	struct grid_ops *gops;
};

struct listmgr *listmgr_create(Evas_Object *base, void *data);
void listmgr_destroy(struct listmgr *listmgr);

bool listmgr_draw_list_area(struct listmgr *lmgr);
bool listmgr_update_content_list(struct listmgr *lmgr, Eina_List *list);
bool listmgr_update_play_info(struct listmgr *lmgr, app_media_info *info);

bool listmgr_update_focus_item(struct listmgr *lmgr, int index);

#endif /* __AIR_MEDIAHUB_LISTMGR_H__ */