2010-07-01 11:49:22 -07:00
|
|
|
#ifndef _EPHOTO_H_
|
|
|
|
#define _EPHOTO_H_
|
|
|
|
|
|
|
|
#ifndef _GNU_SOURCE
|
|
|
|
#define _GNU_SOURCE
|
|
|
|
#endif
|
|
|
|
|
2010-09-13 15:24:59 -07:00
|
|
|
#include <Eet.h>
|
2010-07-01 11:49:22 -07:00
|
|
|
#include <Ecore.h>
|
|
|
|
#include <Ecore_Evas.h>
|
|
|
|
#include <Ecore_File.h>
|
|
|
|
#include <Efreet_Mime.h>
|
|
|
|
#include <Elementary.h>
|
|
|
|
#include <Eina.h>
|
|
|
|
#include <Edje.h>
|
|
|
|
#include <Evas.h>
|
|
|
|
#include <Ethumb.h>
|
|
|
|
#include <Ethumb_Client.h>
|
2010-07-22 09:15:16 -07:00
|
|
|
#include <Eio.h>
|
2010-07-01 11:49:22 -07:00
|
|
|
#include <limits.h>
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <string.h>
|
|
|
|
#include "config.h"
|
|
|
|
|
2010-09-13 15:24:59 -07:00
|
|
|
typedef struct _Ephoto_Config Ephoto_Config;
|
|
|
|
typedef struct _Ephoto Ephoto;
|
|
|
|
|
|
|
|
typedef enum _Ephoto_State Ephoto_State;
|
2010-09-14 01:35:42 -07:00
|
|
|
typedef enum _Ephoto_Orient Ephoto_Orient;
|
2010-09-13 15:24:59 -07:00
|
|
|
|
2010-07-01 11:49:22 -07:00
|
|
|
/*Main Functions*/
|
2010-07-10 14:52:14 -07:00
|
|
|
void ephoto_create_main_window(const char *directory, const char *image);
|
2010-07-01 11:49:22 -07:00
|
|
|
|
2010-09-13 15:24:59 -07:00
|
|
|
/* Configuration */
|
|
|
|
Eina_Bool ephoto_config_init(Ephoto *em);
|
2010-09-14 00:02:04 -07:00
|
|
|
void ephoto_config_save(Ephoto *em, Eina_Bool instant);
|
2010-09-13 15:24:59 -07:00
|
|
|
void ephoto_config_free(Ephoto *em);
|
|
|
|
|
2010-07-05 14:07:53 -07:00
|
|
|
/*Ephoto Flow Browser*/
|
2010-09-13 09:40:33 -07:00
|
|
|
Evas_Object *ephoto_create_flow_browser(Evas_Object *parent);
|
|
|
|
void ephoto_flow_browser_image_set(Evas_Object *obj, const char *current_image);
|
|
|
|
/* smart callbacks called:
|
|
|
|
* "delete,request" - the user requested to delete the flow browser, typically called when go_back button is pressed or Escape key is typed.
|
|
|
|
*/
|
|
|
|
|
2010-07-05 14:07:53 -07:00
|
|
|
|
2010-07-27 19:06:03 -07:00
|
|
|
/*Ephoto Slideshow*/
|
|
|
|
void ephoto_create_slideshow(void);
|
|
|
|
void ephoto_show_slideshow(int view, const char *current_image);
|
|
|
|
void ephoto_hide_slideshow(void);
|
|
|
|
void ephoto_delete_slideshow(void);
|
|
|
|
|
2010-07-01 11:49:22 -07:00
|
|
|
/*Ephoto Thumb Browser*/
|
2010-09-13 09:40:33 -07:00
|
|
|
Evas_Object *ephoto_create_thumb_browser(Evas_Object *parent, const char *directory);
|
|
|
|
void ephoto_populate_thumbnails(Evas_Object *obj);
|
|
|
|
/* smart callbacks called:
|
|
|
|
* "selected" - an item in the thumb browser is selected. The selected file is passed as event_info argument.
|
2010-09-13 10:02:32 -07:00
|
|
|
* "directory,changed" - the user selected a new directory. The selected directory is passed as event_info argument.
|
2010-09-13 09:40:33 -07:00
|
|
|
*/
|
|
|
|
|
|
|
|
/* Enum for the state machine */
|
|
|
|
enum _Ephoto_State
|
|
|
|
{
|
|
|
|
EPHOTO_STATE_THUMB,
|
|
|
|
EPHOTO_STATE_FLOW,
|
|
|
|
EPHOTO_STATE_SLIDESHOW
|
|
|
|
};
|
2010-07-01 11:49:22 -07:00
|
|
|
|
2010-09-14 01:35:42 -07:00
|
|
|
enum _Ephoto_Orient
|
|
|
|
{
|
|
|
|
EPHOTO_ORIENT_0,
|
|
|
|
EPHOTO_ORIENT_90,
|
|
|
|
EPHOTO_ORIENT_180,
|
|
|
|
EPHOTO_ORIENT_270
|
|
|
|
};
|
|
|
|
|
2010-09-13 15:24:59 -07:00
|
|
|
struct _Ephoto_Config
|
|
|
|
{
|
|
|
|
int config_version;
|
|
|
|
|
|
|
|
int thumb_size;
|
|
|
|
};
|
|
|
|
|
2010-07-01 11:49:22 -07:00
|
|
|
/*Ephoto Main Structure*/
|
|
|
|
struct _Ephoto
|
|
|
|
{
|
|
|
|
Evas *e;
|
|
|
|
Evas_Object *win;
|
|
|
|
Evas_Object *bg;
|
2010-09-13 09:29:39 -07:00
|
|
|
Evas_Object *layout;
|
2010-07-05 14:07:53 -07:00
|
|
|
Evas_Object *flow_browser;
|
2010-07-27 19:06:03 -07:00
|
|
|
Evas_Object *slideshow;
|
2010-07-01 11:49:22 -07:00
|
|
|
Evas_Object *thumb_browser;
|
2010-07-02 14:35:51 -07:00
|
|
|
Eina_List *images;
|
2010-09-13 09:40:33 -07:00
|
|
|
Ephoto_State state;
|
2010-09-13 10:02:32 -07:00
|
|
|
const char *cur_directory;
|
2010-09-13 15:24:59 -07:00
|
|
|
|
|
|
|
Ephoto_Config *config;
|
|
|
|
|
|
|
|
Eet_Data_Descriptor *config_edd;
|
|
|
|
Ecore_Timer *config_save;
|
2010-07-01 11:49:22 -07:00
|
|
|
};
|
2010-09-13 09:40:33 -07:00
|
|
|
|
2010-07-01 11:49:22 -07:00
|
|
|
extern Ephoto *em;
|
|
|
|
|
2010-09-13 15:24:59 -07:00
|
|
|
extern int __log_domain;
|
|
|
|
#define DBG(...) EINA_LOG_DOM_DBG(__log_domain, __VA_ARGS__)
|
|
|
|
#define ERR(...) EINA_LOG_DOM_ERR(__log_domain, __VA_ARGS__)
|
2010-07-01 11:49:22 -07:00
|
|
|
|
2010-09-13 15:24:59 -07:00
|
|
|
#endif
|