diff --git a/TODO b/TODO index 4cbfa42..e68502b 100644 --- a/TODO +++ b/TODO @@ -1,4 +1,4 @@ -make install CFLAGS="-g -Wall -Werror -DDEBUG -DDEBUG_MAIN -DDEBUG_CONFIG -DDEBUG_ITEM -DDEBUG_FEED -DDEBUG_PARSE -DDEBUG_BROWSER -DDEBUG_POPUP_WARN -DDEBUG_VIEWER" +gmake install CFLAGS="-g -Wall -Werror -DDEBUG -DDEBUG_MAIN -DDEBUG_CONFIG -DDEBUG_ITEM -DDEBUG_FEED -DDEBUG_PARSE -DDEBUG_BROWSER -DDEBUG_POPUP_WARN -DDEBUG_VIEWER" ---------------------------------------------------- BUGS @@ -35,20 +35,7 @@ http://www.kozlika.org/kozeries/feed/rss2 NEEDED (to do more or less in this order) ---------------------------------------------------- - - make a difference in item ui, depending on the gadon gadget inset/freee appearance - - - item: open feeds in menu ? -each menu item would be an article of the feed you clicked on -it would open the article in the viewer (viewer-article_set) - -news_menu_viewer, in news_menu : -going over a menu item would fire up a viewer near the menu -the position of this small viewer is fixed, next to the menu. side to side. the same way that a submenu sticks to the menu. we are always on the side of the menu where there is the most much space -maybe that could replace the normal viewer ? smaller are easier to use, more quick to get to the info ... but normal viewer is maybe better when you want to look at all the feeds, reading here and there, doing other sings at the same time ... - -the menu has a title, the feeds name - -the viewer near the menu gets its content by the same function than the full viewer + - ? make a difference in item ui, depending on the gadon gadget inset/freee appearance ? - debug html chars parse with test.rss -> add support for & alone in evas_textblock @@ -82,10 +69,19 @@ news_config_dialog_item_refresh_feed to avoid refresh the ilist [Viewer] + - ? item: open feeds in menu ? +each menu item would be an article of the feed you clicked on +it would open the article in the viewer (viewer-article_set) +news_menu_viewer, in news_menu : +going over a menu item would fire up a viewer near the menu +the position of this small viewer is fixed, next to the menu. side to side. the same way that a submenu sticks to the menu. we are always on the side of the menu where there is the most much space +maybe that could replace the normal viewer ? smaller are easier to use, more quick to get to the info ... but normal viewer is maybe better when you want to look at all the feeds, reading here and there, doing other sings at the same time ... +the menu has a title, the feeds name +the viewer near the menu gets its content by the same function than the full viewer - ? viewer: instead of having 'own lists', get the pos of feeds/articles via going through ilist items (e_widget_ilist_items_get && e_widget_ilist_nth_data_get), counting and looking data field ? - appear with sliding animation in option ? - - viewer: dont reselect current feed in viewer when a feed has updated with changes - - viewer: when an article goes to "as read" and "feeds first" option, refresh the feeds list but don't reselect the feed, go on top of the list + - dont reselect current feed in viewer when a feed has updated with changes + - when an article goes to "as read" and "feeds first" option, refresh the feeds list but don't reselect the feed, go on top of the list - use a "changed" attribute to things, to detect what has to be refresh when refresh() is called. to avoid refresh things for nothing, so avoid user ilists changer for nothing [Parse] diff --git a/data/theme/module_feed_parts.edc b/data/theme/module_feed_parts.edc index 399bccc..8759ea0 100644 --- a/data/theme/module_feed_parts.edc +++ b/data/theme/module_feed_parts.edc @@ -1,35 +1,3 @@ -part -{ - name: "border"; - type: IMAGE; - mouse_events: 0; - description - { - state: "default" 0.0; - visible: 0; - color: 255 255 255 0; - rel1 - { - relative: 0.0 0.0; - } - rel2 - { - relative: 1.0 1.0; - } - image - { - normal: "feed_border.png"; - } - } - description - { - state: "selected" 0.0; - inherit: "default" 0.0; - visible: 1; - color: 255 255 255 255; - } -} - part { name: "icon"; @@ -55,15 +23,33 @@ part } } +part +{ + name: "unread_clip"; + type: RECT; + mouse_events: 0; + description + { + state: "default" 0.0; + color: 255 255 255 0; + } + description + { + state: "active" 0.0; + inherit: "default" 0.0; + color: 255 255 255 255; + } +} + part { name: "unread"; type: IMAGE; mouse_events: 0; + clip_to: "unread_clip"; description { state: "default" 0.0; - color: 255 255 255 0; rel1 { relative: 0.0 0.0; @@ -77,6 +63,18 @@ part normal: "feed_background_new.png"; } } +} + +part +{ + name: "border_clip"; + type: RECT; + mouse_events: 0; + description + { + state: "default" 0.0; + color: 255 255 255 0; + } description { state: "active" 0.0; @@ -85,6 +83,30 @@ part } } +part +{ + name: "border"; + type: IMAGE; + mouse_events: 0; + clip_to: "border_clip"; + description + { + state: "default" 0.0; + rel1 + { + relative: 0.0 0.0; + } + rel2 + { + relative: 1.0 1.0; + } + image + { + normal: "feed_border.png"; + } + } +} + part { name: "name"; diff --git a/data/theme/module_feed_programs.edc b/data/theme/module_feed_programs.edc index 765d52c..c401ccc 100644 --- a/data/theme/module_feed_programs.edc +++ b/data/theme/module_feed_programs.edc @@ -19,8 +19,8 @@ program signal: "e,state,new,set"; source: "e"; action: STATE_SET "active" 0.0; - transition: SINUSOIDAL 0.5; - target: "unread"; + transition: SINUSOIDAL 0.7; + target: "unread_clip"; } program { @@ -29,7 +29,7 @@ program source: "e"; action: STATE_SET "default" 0.0; transition: SINUSOIDAL 0.5; - target: "unread"; + target: "unread_clip"; } /* Mouse in/out */ @@ -39,8 +39,9 @@ program name: "mouse_in"; signal: "mouse,in"; source: "inout"; - action: STATE_SET "selected" 0.0; - target: "border"; + action: STATE_SET "active" 0.0; + transition: SINUSOIDAL 0.1; + target: "border_clip"; } program @@ -49,7 +50,8 @@ program signal: "mouse,out"; source: "inout"; action: STATE_SET "default" 0.0; - target: "border"; + transition: SINUSOIDAL 0.5; + target: "border_clip"; } program diff --git a/src/module/news_parse.c b/src/module/news_parse.c index c8e25bc..c6d3fc6 100644 --- a/src/module/news_parse.c +++ b/src/module/news_parse.c @@ -879,7 +879,6 @@ _meta_block_find(char **buf) *buf = p1; p2 = _meta_block_end(*buf, 0, 1); - if (!p2) return NULL; return p2; } diff --git a/src/module/news_viewer.c b/src/module/news_viewer.c index 2da41cf..8b26ff1 100644 --- a/src/module/news_viewer.c +++ b/src/module/news_viewer.c @@ -422,10 +422,16 @@ _dialog_content_create(News_Viewer *nv) news->config->viewer.vcontent.font_shadow_color); } snprintf(buf, sizeof(buf), - "DEFAULT='font=Vera font_size=%d align=left color=%s%s wrap=word'" "br='\n'", + "DEFAULT='font=Vera font_size=%d align=left color=%s%s wrap=word'" + "br='\n'" + "hilight='+ font=Vera-Bold font_size=%d'" + "small='+ font_size=%d'" + "italic='+ font=Vera-Italic'", news->config->viewer.vcontent.font_size, news->config->viewer.vcontent.font_color, - buf2); + buf2, + news->config->viewer.vcontent.font_size + 1, + news->config->viewer.vcontent.font_size - 1); evas_textblock_style_set(tb_style, buf); evas_object_textblock_style_set(ob, tb_style); evas_textblock_style_free(tb_style); @@ -591,11 +597,10 @@ _dialog_cb_article_selected(void *data) if (art->date.tm_year != 0) strftime(buf_date, sizeof(buf_date), "%Y-%m-%d %H:%M:%S", &art->date); snprintf(buf, sizeof(buf), - "%s
" + "%s
" + "%s

" "%s

" - "%s

" - "%s", - news->config->viewer.vcontent.font_color, + "%s", (art->title && art->title[0]) ? art->title : "No title", buf_date, (art->description && art->description[0])? art->description : "No description text", @@ -878,12 +883,11 @@ _vcontent_feed_infos_set(News_Viewer *nv) } } snprintf(buf, sizeof(buf), - "%s in %s
" + "%s in %s

" "%s" "%s

" - "%s%s
" - "%s", - news->config->viewer.vcontent.font_color, + "%s%s
" + "%s
", f->name, f->category->name, buf_error, diff --git a/src/module/news_viewer.h b/src/module/news_viewer.h index e3d90ef..002b401 100644 --- a/src/module/news_viewer.h +++ b/src/module/news_viewer.h @@ -26,11 +26,10 @@ struct _News_Viewer struct { E_Dialog *dia; + int x, y, w, h; Evas_Object *tab; Evas_Object *ftab_feeds, *ftab_articles, *ftab_content; - - int x, y, w, h; } dialog; /* view of the feeds list */