when going back to categories list, scroll to the category we were just in

get rid of some warnings


SVN revision: 30269
This commit is contained in:
rephorm 2007-06-07 03:49:09 +00:00 committed by rephorm
parent a7bbf46762
commit aa355036c4
7 changed files with 50 additions and 4 deletions

View File

@ -1,3 +1,6 @@
/*
* vim:ts=8:sw=3:sts=8:noexpandtab:cino=>5n-3f0^-2{2
*/
#include "e.h" #include "e.h"
#define SMART_NAME "e_ilist" #define SMART_NAME "e_ilist"
@ -403,6 +406,23 @@ e_ilist_nth_is_header(Evas_Object *obj, int n)
return 0; return 0;
} }
EAPI void
e_ilist_nth_geometry_get(Evas_Object *obj, int n, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h)
{
E_Ilist_Item *si;
int error;
API_ENTRY return;
if (!sd->items) return;
si = evas_list_nth(sd->items, n);
if (!si) return;
evas_object_geometry_get(si->o_base, x, y, w, h);
*x -= sd->x;
*y -= sd->y;
}
EAPI void EAPI void
e_ilist_icon_size_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h) e_ilist_icon_size_set(Evas_Object *obj, Evas_Coord w, Evas_Coord h)
{ {

View File

@ -44,6 +44,7 @@ EAPI void e_ilist_nth_label_set (Evas_Object *obj, int n, const
EAPI Evas_Object *e_ilist_nth_icon_get (Evas_Object *obj, int n); EAPI Evas_Object *e_ilist_nth_icon_get (Evas_Object *obj, int n);
EAPI void e_ilist_nth_icon_set (Evas_Object *obj, int n, Evas_Object *icon); EAPI void e_ilist_nth_icon_set (Evas_Object *obj, int n, Evas_Object *icon);
EAPI int e_ilist_nth_is_header (Evas_Object *obj, int n); EAPI int e_ilist_nth_is_header (Evas_Object *obj, int n);
EAPI void e_ilist_nth_geometry_get (Evas_Object *obj, int n, Evas_Coord *x, Evas_Coord *y, Evas_Coord *w, Evas_Coord *h);
EAPI void e_ilist_icon_size_set (Evas_Object *obj, Evas_Coord w, Evas_Coord h); EAPI void e_ilist_icon_size_set (Evas_Object *obj, Evas_Coord w, Evas_Coord h);
EAPI Evas_List *e_ilist_items_get (Evas_Object *obj); EAPI Evas_List *e_ilist_items_get (Evas_Object *obj);
EAPI void e_ilist_multi_select (Evas_Object *obj, int n); EAPI void e_ilist_multi_select (Evas_Object *obj, int n);

View File

@ -44,6 +44,7 @@ struct _E_Config_Dialog_Data
Evas_Object *o_add, *o_del, *o_categories; Evas_Object *o_add, *o_del, *o_categories;
Ecore_List *apps; Ecore_List *apps;
const char *category; const char *category;
int category_n;
char *fav, *app; char *fav, *app;
}; };
@ -491,6 +492,7 @@ _category_cb_selected(void *data)
cfdata = data; cfdata = data;
cfdata->category_n = e_widget_ilist_selected_get(cfdata->o_apps);
if (cfdata->category) ecore_string_release(cfdata->category); if (cfdata->category) ecore_string_release(cfdata->category);
cfdata->category = ecore_string_instance(cfdata->app); cfdata->category = ecore_string_instance(cfdata->app);
_fill_apps(cfdata); _fill_apps(cfdata);
@ -525,6 +527,8 @@ _cb_categories(void *data, void *data2)
if (cfdata->category) ecore_string_release(cfdata->category); if (cfdata->category) ecore_string_release(cfdata->category);
cfdata->category = NULL; cfdata->category = NULL;
_fill_categories(cfdata); _fill_categories(cfdata);
e_widget_ilist_nth_show(cfdata->o_apps, cfdata->category_n, 1);
cfdata->category_n = 0;
} }
static void static void

View File

@ -16,7 +16,7 @@ static void _e_wid_disable_hook(Evas_Object *obj);
/* externally accessible functions */ /* externally accessible functions */
EAPI Evas_Object * EAPI Evas_Object *
e_widget_framelist_add(Evas *evas, char *label, int horiz) e_widget_framelist_add(Evas *evas, const char *label, int horiz)
{ {
Evas_Object *obj, *o; Evas_Object *obj, *o;
E_Widget_Data *wd; E_Widget_Data *wd;
@ -88,7 +88,7 @@ e_widget_framelist_content_align_set(Evas_Object *obj, double halign, double val
} }
EAPI void EAPI void
e_widget_framelist_label_set(Evas_Object *obj, char *label) e_widget_framelist_label_set(Evas_Object *obj, const char *label)
{ {
E_Widget_Data *wd; E_Widget_Data *wd;

View File

@ -6,10 +6,10 @@
#ifndef E_WIDGET_FRAMELIST_H #ifndef E_WIDGET_FRAMELIST_H
#define E_WIDGET_FRAMELIST_H #define E_WIDGET_FRAMELIST_H
EAPI Evas_Object *e_widget_framelist_add(Evas *evas, char *label, int horiz); EAPI Evas_Object *e_widget_framelist_add(Evas *evas, const char *label, int horiz);
EAPI void e_widget_framelist_object_append(Evas_Object *obj, Evas_Object *sobj); EAPI void e_widget_framelist_object_append(Evas_Object *obj, Evas_Object *sobj);
EAPI void e_widget_framelist_content_align_set(Evas_Object *obj, double halign, double valign); EAPI void e_widget_framelist_content_align_set(Evas_Object *obj, double halign, double valign);
EAPI void e_widget_framelist_label_set(Evas_Object *obj, char *label); EAPI void e_widget_framelist_label_set(Evas_Object *obj, const char *label);
#endif #endif
#endif #endif

View File

@ -242,6 +242,26 @@ e_widget_ilist_nth_data_get(Evas_Object *obj, int n)
return wcb->data; return wcb->data;
} }
/**
* Show the nth element of an ilist
* @param obj the ilist
* @param n the number of the element to show
* @param top if true, place this item at the top, otherwise scroll just
* enough to show the element (from the current position).
*/
EAPI void
e_widget_ilist_nth_show(Evas_Object *obj, int n, int top)
{
E_Widget_Data *wd;
Evas_Coord x, y, w, h;
wd = e_widget_data_get(obj);
e_ilist_nth_geometry_get(wd->o_ilist, n, &x, &y, &w, &h);
if (top)
e_scrollframe_child_pos_set(wd->o_scrollframe, x, y);
else
e_scrollframe_child_region_show(wd->o_scrollframe, x, y, w, h);
}
EAPI void EAPI void
e_widget_ilist_selected_set(Evas_Object *obj, int n) e_widget_ilist_selected_set(Evas_Object *obj, int n)
{ {

View File

@ -22,6 +22,7 @@ EAPI const char *e_widget_ilist_nth_label_get(Evas_Object *obj, int n);
EAPI void e_widget_ilist_nth_icon_set(Evas_Object *obj, int n, Evas_Object *icon); EAPI void e_widget_ilist_nth_icon_set(Evas_Object *obj, int n, Evas_Object *icon);
EAPI Evas_Object *e_widget_ilist_nth_icon_get(Evas_Object *obj, int n); EAPI Evas_Object *e_widget_ilist_nth_icon_get(Evas_Object *obj, int n);
EAPI void *e_widget_ilist_nth_data_get(Evas_Object *obj, int n); EAPI void *e_widget_ilist_nth_data_get(Evas_Object *obj, int n);
EAPI void e_widget_ilist_nth_show(Evas_Object *obj, int n, int top);
EAPI void e_widget_ilist_selected_set(Evas_Object *obj, int n); EAPI void e_widget_ilist_selected_set(Evas_Object *obj, int n);
EAPI int e_widget_ilist_selected_get(Evas_Object *obj); EAPI int e_widget_ilist_selected_get(Evas_Object *obj);
EAPI const char *e_widget_ilist_selected_label_get(Evas_Object *obj); EAPI const char *e_widget_ilist_selected_label_get(Evas_Object *obj);