enlightenment-module-news/src/module/news_item.h

89 lines
2.2 KiB
C

#ifdef E_MOD_NEWS_TYPEDEFS
typedef struct _News_Item News_Item;
typedef enum _News_Item_View_Mode
{
NEWS_ITEM_VIEW_MODE_ONE,
NEWS_ITEM_VIEW_MODE_FEED,
NEWS_ITEM_VIEW_MODE_FEED_UNREAD,
NEWS_ITEM_VIEW_MODE_FEED_IMPORTANT,
NEWS_ITEM_VIEW_MODE_FEED_IMPORTANT_UNREAD
} News_Item_View_Mode;
typedef enum _News_Item_Openmethod
{
NEWS_ITEM_OPENMETHOD_VIEWER,
NEWS_ITEM_OPENMETHOD_BROWSER,
} News_Item_View_Openmethod;
#else
#ifndef NEWS_ITEM_H_INCLUDED
#define NEWS_ITEM_H_INCLUDED
#define NEWS_ITEM_VIEW_MODE_DEFAULT NEWS_ITEM_VIEW_MODE_FEED
#define NEWS_ITEM_OPENMETHOD_DEFAULT NEWS_ITEM_OPENMETHOD_VIEWER
#define NEWS_ITEM_BROWSER_OPEN_HOME_DEFAULT 0
#define NEWS_ITEM_FEEDS_FOREACH_BEG_LIST(list) \
{ \
Evas_List *_l_feeds; \
News_Feed_Ref *_ref; \
News_Feed *_feed; \
\
for (_l_feeds=list; _l_feeds; _l_feeds=evas_list_next(_l_feeds)) \
{ \
_ref = _l_feeds->data; \
_feed = _ref->feed; \
if (!_feed) continue;
#define NEWS_ITEM_FEEDS_FOREACH_BEG(item) \
NEWS_ITEM_FEEDS_FOREACH_BEG_LIST(item->config->feed_refs);
#define NEWS_ITEM_FEEDS_FOREACH_END() \
} \
}
struct _News_Item
{
E_Gadcon_Client *gcc;
Evas_Object *obj;
News_Config_Item *config;
E_Config_Dialog *config_dialog;
E_Config_Dialog *config_dialog_content;
E_Menu *menu;
E_Menu *menu_browser;
struct
{
Evas_Object *box;
Evas_Object *obj_mode_one;
} view;
/* TODO: a counter from 10 to 0 incremented every retry
for any feed linked to this item.
when it reaches 0, we look at the feed(s) wich failed
and we alert the user via a popup
(if all feeds have failed, special popup "connection pb") */
int loading_state;
int unread_count;
News_Viewer *viewer;
};
News_Item *news_item_new(E_Gadcon_Client *gcc, Evas_Object *obj, const char *id);
void news_item_free(News_Item *ni);
void news_item_refresh(News_Item *ni, int changed_order, int changed_content, int changed_state);
void news_item_orient_set(News_Item *ni, int horizontal);
void news_item_loadingstate_refresh(News_Item *ni);
void news_item_unread_count_change(News_Item *ni, int nb);
#endif
#endif