From: Daniel Caujolle-B. <f1...@us...> - 2002-12-15 22:40:51
|
Update of /cvsroot/xine/xine-ui/src/xitk In directory sc8-pr-cvs1:/tmp/cvs-serv10994 Modified Files: file_browser.c Log Message: change cursor pointer to 'watch' when getdir() is running, since it can take some time, that inform user about 'non freeze' state ;-) Index: file_browser.c =================================================================== RCS file: /cvsroot/xine/xine-ui/src/xitk/file_browser.c,v retrieving revision 1.27 retrieving revision 1.28 diff -u -r1.27 -r1.28 --- file_browser.c 12 Dec 2002 01:11:43 -0000 1.27 +++ file_browser.c 15 Dec 2002 22:40:48 -0000 1.28 @@ -29,6 +29,7 @@ #include <X11/Xlib.h> #include <X11/Xutil.h> #include <X11/keysym.h> +#include <X11/cursorfont.h> #include <sys/types.h> #include <sys/stat.h> #include <dirent.h> @@ -101,6 +102,9 @@ #define DEFAULT_SORT 0 #define REVERSE_SORT 1 +#define NORMAL_CURS 0 +#define WAIT_CURS 1 + struct filebrowser_s { xitk_window_t *xwin; @@ -108,6 +112,8 @@ xitk_widget_t *origin; + Cursor cursor[2]; + xitk_widget_t *directories_browser; xitk_widget_t *directories_sort; int directories_sort_direction; @@ -196,6 +202,15 @@ static void fb_reactivate(filebrowser_t *fb) { _fb_enability(fb, 1); } + +static void _fb_set_cursor(filebrowser_t *fb, int state) { + if(fb) { + XLockDisplay(gGui->display); + XDefineCursor(gGui->display, (xitk_window_get_window(fb->xwin)), fb->cursor[state]); + XSync(gGui->display, False); + XUnlockDisplay(gGui->display); + } +} /* * ************************************************** */ @@ -591,6 +606,8 @@ DIR *pdir; int num_files = -1; + _fb_set_cursor(fb, WAIT_CURS); + if(fb->norm_files) { while(fb->files_num) { free(fb->norm_files[fb->files_num - 1].name); @@ -660,6 +677,7 @@ fb->files_num = num_norm_files; sort_directories(fb); sort_files(fb); + _fb_set_cursor(fb, NORMAL_CURS); } /* @@ -831,6 +849,8 @@ xitk_list_free((XITK_WIDGET_LIST_LIST(fb->widget_list))); XLockDisplay(gGui->display); + XFreeCursor(gGui->display, fb->cursor[NORMAL_CURS]); + XFreeCursor(gGui->display, fb->cursor[WAIT_CURS]); XFreeGC(gGui->display, (XITK_WIDGET_LIST_GC(fb->widget_list))); XUnlockDisplay(gGui->display); @@ -1158,6 +1178,8 @@ XLockDisplay(gGui->display); gc = XCreateGC(gGui->display, (xitk_window_get_window(fb->xwin)), None, None); + fb->cursor[NORMAL_CURS] = XCreateFontCursor(gGui->display, XC_left_ptr); + fb->cursor[WAIT_CURS] = XCreateFontCursor(gGui->display, XC_watch); XUnlockDisplay(gGui->display); fb->widget_list = xitk_widget_list_new(); |