summaryrefslogtreecommitdiff
path: root/main/src/view/ivug-main-view.h
blob: 7d1a648fa332ef4a7f977a64a5f03b1b72419026 (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
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
127
128
129
130
131
132
133
/*
 * Copyright 2012  Samsung Electronics Co., Ltd
 *
 * Licensed under the Flora License, Version 1.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.tizenopensource.org/license
 *
 * 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 __IVUG_MAIN_VIEWER_H__
#define __IVUG_MAIN_VIEWER_H__

#include "ivug-common.h"
#include "ivug-details-view.h"
#include "ivug-setas-view.h"

#define MAX_CTRL_ITEM_CNT 5
#define MAX_NAVI_ITEM_CNT 3

//navigation bar type
typedef enum NAVI_BAR_TYPE {
	NAVI_BAR_TYPE_NONE = 0x00,
	NAVI_BAR_TYPE_EMPTY,			// no control bar
	NAVI_BAR_TYPE_IMAGE,			// no control bar
	NAVI_BAR_TYPE_VIDEO,			// no control bar
	NAVI_BAR_TYPE_SELECT,			// [Ok, Cancel] from take photo
} _navi_bar_type;

//control bar type
typedef enum CTRL_BAR_TYPE{
	CTRL_BAR_TYPE_NONE = 0x00,
	CTRL_BAR_TYPE_EMPTY,				// not exist ctrl bar
	CTRL_BAR_TYPE_FILE,					// [Delete,Info]  file manager, video at gallery
	CTRL_BAR_TYPE_CAMERA_IMAGE,			// [Delete,Info]  camera image file
	CTRL_BAR_TYPE_CAMERA_VIDEO,			// [Delete,Info]  camera video file
	CTRL_BAR_TYPE_IMAGE,				// [Delete,Slide show, Info] from gallery
	CTRL_BAR_TYPE_VIDEO,				// [Delete,Slide show, Info] from gallery
} _ctrl_bar_type;


typedef struct {
	Evas_Object *parent;

	Evas_Object *layout;		/*Layout widget based on EDJ*/

	Evas_Object *navi_bar;
	Elm_Object_Item *navi_it;
	Evas_Object* empty_layout;	//navigation bar contents layout
	Evas_Object* slider;			//image viewer slider
	Evas_Object* event_blocker;

	Evas_Object* selectioninfo;

	Evas_Object *back_btn;

/*
   |-------------------|
   |naviframe(tool_bar)|
   |-------------------|
   |				   |
   |				   |
   |				   |
   |				   |
   |-------------------|
   |	ctrl_bar 	   |
   |-------------------|
*/

// Tool Bar
	enum NAVI_BAR_TYPE tool_bar_type;
	Evas_Object* tool_bar_item[MAX_NAVI_ITEM_CNT];		// Control bar item in navigation header. ex) SetAs, Info

// Control Bar
	Evas_Object *ctrl_bar;
	enum CTRL_BAR_TYPE ctrl_bar_type;
	Elm_Object_Item *ctrl_bar_item[MAX_CTRL_ITEM_CNT];			// Bottom control bar item. ex) Delete, etc...

	Evas_Object* popup; 			//popup
	Evas_Object* copy_popup;		//copy popup
	Eina_List*	 popup_list;

	Ivug_SetAsView *pSetAsView;

	Ivug_DetailsView *pDetailsView;

	Evas_Object *btn_detail;
	Evas_Object *btn_detail_data;

//flag
	bool bShowMenu;

	ivug_mode mode;
	ivug_view_by view_by;

	struct ui_gadget *ext_ug;

	struct ui_gadget *ugHandle;

	Ecore_Event_Handler *keydown_handler;

	Ecore_Timer *exit_timer;

	Eina_Bool option_show;
} Ivug_MainView;


/*
	Create MainView layout
*/
Ivug_MainView *
ivug_main_view_create(Evas_Object* parent, 	ivug_mode mode, ivug_view_by view_by);

Evas_Object *
ivug_main_view_object_get(Ivug_MainView *pMainView);

/*
	Load media list from parameter.
*/
bool ivug_main_view_load_list(Ivug_MainView *pMainView, ivug_parameter* ivug_param);

void ivug_main_view_update(Ivug_MainView *pMainView);

void ivug_main_view_destroy(Ivug_MainView *pMainView);

#endif //__IVUG_MAIN_VIEWER_H__