[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [11849] branches/imgbrowser-elubie: NEW FEATURES:
Andrea Weikert
elubie at gmx.net
Mon Aug 27 22:29:32 CEST 2007
Revision: 11849
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=11849
Author: elubie
Date: 2007-08-27 22:29:32 +0200 (Mon, 27 Aug 2007)
Log Message:
-----------
NEW FEATURES:
1. large image preview panel popup in imagebrowser
* BKEY in imagebrowser pops up panel with image currently selected in file button.
2. bookmark management
* New button in header toggles bookmark display on/off
* To add current directory to bookmarks, hit the button with the 'B' on top.
* To jump to a bookmark directory, LMB on the name (will be highlighted).
* To delete bookmark, press XKEY while bookmark is highlighted.
OTHER CHANGES:
* Cleanup of drawing
* general code cleanup
* Added missing png file for the larger folder and file type icons provided by Samir Bharadwaj (samirbharadwaj at yahoo.com)
TODO and ISSUES:
* Accented characters do not display correctly with international fonts
* Crash was reported when browsing in directory with movie files
* Bookmark management probably still needs some UI work (second scrollbar?), feedback here is welcome!
Also, please test and report issues, merging with trunk is planned soon!
Modified Paths:
--------------
branches/imgbrowser-elubie/projectfiles_vc7/blender/src/BL_src.vcproj
branches/imgbrowser-elubie/source/blender/blenloader/intern/readfile.c
branches/imgbrowser-elubie/source/blender/include/BIF_filelist.h
branches/imgbrowser-elubie/source/blender/include/BIF_fsmenu.h
branches/imgbrowser-elubie/source/blender/include/BIF_resources.h
branches/imgbrowser-elubie/source/blender/include/BIF_space.h
branches/imgbrowser-elubie/source/blender/include/BSE_drawimasel.h
branches/imgbrowser-elubie/source/blender/makesdna/DNA_space_types.h
branches/imgbrowser-elubie/source/blender/src/drawimasel.c
branches/imgbrowser-elubie/source/blender/src/editimasel.c
branches/imgbrowser-elubie/source/blender/src/filelist.c
branches/imgbrowser-elubie/source/blender/src/filesel.c
branches/imgbrowser-elubie/source/blender/src/header_imasel.c
branches/imgbrowser-elubie/source/blender/src/imasel.c
branches/imgbrowser-elubie/source/blender/src/interface.c
branches/imgbrowser-elubie/source/blender/src/prvicons.c
branches/imgbrowser-elubie/source/blender/src/usiblender.c
Added Paths:
-----------
branches/imgbrowser-elubie/release/datafiles/prvicons
Modified: branches/imgbrowser-elubie/projectfiles_vc7/blender/src/BL_src.vcproj
===================================================================
--- branches/imgbrowser-elubie/projectfiles_vc7/blender/src/BL_src.vcproj 2007-08-27 20:06:39 UTC (rev 11848)
+++ branches/imgbrowser-elubie/projectfiles_vc7/blender/src/BL_src.vcproj 2007-08-27 20:29:32 UTC (rev 11849)
@@ -338,6 +338,9 @@
RelativePath="..\..\..\source\blender\src\fluidsim.c">
</File>
<File
+ RelativePath="..\..\..\source\blender\src\fsmenu.c">
+ </File>
+ <File
RelativePath="..\..\..\source\blender\src\ghostwinlay.c">
</File>
<File
Added: branches/imgbrowser-elubie/release/datafiles/prvicons
===================================================================
(Binary files differ)
Property changes on: branches/imgbrowser-elubie/release/datafiles/prvicons
___________________________________________________________________
Name: svn:mime-type
+ application/octet-stream
Modified: branches/imgbrowser-elubie/source/blender/blenloader/intern/readfile.c
===================================================================
--- branches/imgbrowser-elubie/source/blender/blenloader/intern/readfile.c 2007-08-27 20:06:39 UTC (rev 11848)
+++ branches/imgbrowser-elubie/source/blender/blenloader/intern/readfile.c 2007-08-27 20:29:32 UTC (rev 11849)
@@ -3466,6 +3466,7 @@
simasel->returnfunc= NULL;
simasel->menup= NULL;
simasel->pupmenu= NULL;
+ simasel->img= NULL;
}
else if(sl->spacetype==SPACE_ACTION) {
SpaceAction *saction= (SpaceAction *)sl;
Modified: branches/imgbrowser-elubie/source/blender/include/BIF_filelist.h
===================================================================
--- branches/imgbrowser-elubie/source/blender/include/BIF_filelist.h 2007-08-27 20:06:39 UTC (rev 11848)
+++ branches/imgbrowser-elubie/source/blender/include/BIF_filelist.h 2007-08-27 20:29:32 UTC (rev 11849)
@@ -43,7 +43,9 @@
struct FileList * BIF_filelist_new();
void BIF_filelist_init_icons();
+void BIF_filelist_free_icons();
struct FileList * BIF_filelist_copy(struct FileList* filelist);
+int BIF_filelist_find(struct FileList* filelist, char *file);
void BIF_filelist_free(struct FileList* filelist);
void BIF_filelist_freelib(struct FileList* filelist);
void BIF_filelist_sort(struct FileList* filelist, short sort);
@@ -60,8 +62,7 @@
void BIF_filelist_loadimage(struct FileList* filelist, int index);
struct ImBuf * BIF_filelist_getimage(struct FileList* filelist, int index);
-void BIF_filelist_readdir(struct FileList* filelist, const char* dir);
-void BIF_filelist_refresh(struct FileList* filelist);
+void BIF_filelist_readdir(struct FileList* filelist);
int BIF_filelist_empty(struct FileList* filelist);
void BIF_filelist_parent(struct FileList* filelist);
Modified: branches/imgbrowser-elubie/source/blender/include/BIF_fsmenu.h
===================================================================
--- branches/imgbrowser-elubie/source/blender/include/BIF_fsmenu.h 2007-08-27 20:06:39 UTC (rev 11848)
+++ branches/imgbrowser-elubie/source/blender/include/BIF_fsmenu.h 2007-08-27 20:29:32 UTC (rev 11849)
@@ -55,17 +55,20 @@
/** Append a seperator to the FSMenu, inserts always follow the
* last seperator.
*/
-void fsmenu_append_seperator (void);
+void fsmenu_append_separator (void);
/** Inserts a new fsmenu entry with the given @a path.
* Duplicate entries are not added.
* @param sorted Should entry be inserted in sorted order?
*/
-void fsmenu_insert_entry (char *path, int sorted);
+void fsmenu_insert_entry (char *path, int sorted, short save);
/** Removes the fsmenu entry at the given @a index. */
void fsmenu_remove_entry (int index);
+ /** saves the 'favourites' to the specified file */
+void fsmenu_write_file(const char *filename);
+
/** Free's all the memory associated with the fsmenu */
void fsmenu_free (void);
Modified: branches/imgbrowser-elubie/source/blender/include/BIF_resources.h
===================================================================
--- branches/imgbrowser-elubie/source/blender/include/BIF_resources.h 2007-08-27 20:06:39 UTC (rev 11848)
+++ branches/imgbrowser-elubie/source/blender/include/BIF_resources.h 2007-08-27 20:29:32 UTC (rev 11849)
@@ -164,7 +164,7 @@
ICON_FACESEL_DEHLT,
ICON_FACESEL_HLT,
ICON_EDIT_DEHLT,
- ICON_BLANK19,
+ ICON_BOOKMARKS,
ICON_BLANK20,
ICON_BLANK21,
ICON_BLANK22,
Modified: branches/imgbrowser-elubie/source/blender/include/BIF_space.h
===================================================================
--- branches/imgbrowser-elubie/source/blender/include/BIF_space.h 2007-08-27 20:06:39 UTC (rev 11848)
+++ branches/imgbrowser-elubie/source/blender/include/BIF_space.h 2007-08-27 20:29:32 UTC (rev 11849)
@@ -75,6 +75,9 @@
/* sequence handler codes */
#define SEQ_HANDLER_PROPERTIES 60
+/* imasel handler codes */
+#define IMASEL_HANDLER_IMAGE 70
+
/* theme codes */
#define B_ADD_THEME 3301
#define B_DEL_THEME 3302
Modified: branches/imgbrowser-elubie/source/blender/include/BSE_drawimasel.h
===================================================================
--- branches/imgbrowser-elubie/source/blender/include/BSE_drawimasel.h 2007-08-27 20:06:39 UTC (rev 11848)
+++ branches/imgbrowser-elubie/source/blender/include/BSE_drawimasel.h 2007-08-27 20:29:32 UTC (rev 11849)
@@ -33,11 +33,28 @@
#ifndef BSE_DRAWIMASEL_H
#define BSE_DRAWIMASEL_H
+
+/* button events */
+#define B_FS_FILENAME 1
+#define B_FS_DIRNAME 2
+#define B_FS_DIR_MENU 3
+#define B_FS_PARDIR 4
+#define B_FS_LOAD 5
+#define B_FS_CANCEL 6
+#define B_FS_LIBNAME 7
+#define B_FS_BOOKMARK 8
+
+/* ui geometry */
+#define IMASEL_BUTTONS_HEIGHT 60
+#define TILE_BORDER_X 8
+#define TILE_BORDER_Y 8
+
struct ScrArea;
struct SpaceImaSel;
void drawimaselspace(struct ScrArea *sa, void *spacedata);
void calc_imasel_rcts(SpaceImaSel *simasel, int winx, int winy);
+void do_imasel_buttonevents(short event, SpaceImaSel *simasel);
#endif /* BSE_DRAWIMASEL_H */
Modified: branches/imgbrowser-elubie/source/blender/makesdna/DNA_space_types.h
===================================================================
--- branches/imgbrowser-elubie/source/blender/makesdna/DNA_space_types.h 2007-08-27 20:06:39 UTC (rev 11848)
+++ branches/imgbrowser-elubie/source/blender/makesdna/DNA_space_types.h 2007-08-27 20:29:32 UTC (rev 11849)
@@ -363,19 +363,22 @@
int numtilesy;
int selstate;
- float scrollpos;
- float scrollheight;
- float scrollarea;
+ struct rcti viewrect;
+ struct rcti bookmarkrect;
+
+ float scrollpos; /* current position of scrollhandle */
+ float scrollheight; /* height of the scrollhandle */
+ float scrollarea; /* scroll region, scrollpos is from 0 to scrollarea */
+
float aspect;
unsigned short retval; /* event */
short ipotype;
short filter;
- short pad;
- short pad1;
- short pad2;
+ short active_bookmark;
+ short pad, pad1;
/* view settings */
short prv_w;
@@ -389,6 +392,8 @@
void *arg1, *arg2;
short *menup; /* pointer to menu result or ID browsing */
char *pupmenu; /* optional menu in header */
+
+ struct ImBuf *img;
} SpaceImaSel;
@@ -409,7 +414,7 @@
#define FILE_MAX 240
/* filesel types */
-#define FILE_UNIX 7
+#define FILE_UNIX 8
#define FILE_BLENDER 8
#define FILE_SPECIAL 9
@@ -427,6 +432,7 @@
#define FILE_ATCURSOR 64
#define FILE_SYNCPOSE 128
#define FILE_FILTER 256
+#define FILE_BOOKMARKS 512
/* sfile->sort */
#define FILE_SORTALPHA 0
Modified: branches/imgbrowser-elubie/source/blender/src/drawimasel.c
===================================================================
--- branches/imgbrowser-elubie/source/blender/src/drawimasel.c 2007-08-27 20:06:39 UTC (rev 11848)
+++ branches/imgbrowser-elubie/source/blender/src/drawimasel.c 2007-08-27 20:29:32 UTC (rev 11849)
@@ -52,6 +52,7 @@
#include "DNA_screen_types.h"
#include "DNA_space_types.h"
#include "DNA_scene_types.h"
+#include "DNA_userdef_types.h"
#include "DNA_object_types.h"
#include "DNA_material_types.h"
@@ -64,7 +65,7 @@
#include "BKE_global.h"
#include "BKE_library.h"
#include "BKE_icons.h"
-
+#include "BKE_utildefines.h"
#include "BIF_filelist.h"
#include "BIF_gl.h"
@@ -98,22 +99,67 @@
#include "interface.h" /* urm... for rasterpos_safe, roundbox */
-#define FONTSIZE 20
+#define BUTTONWIDTH 20
+#define BOOKMARKWIDTH_MAX 240
void calc_imasel_rcts(SpaceImaSel *simasel, int winx, int winy)
{
int width = (int)20.0f*simasel->aspect;
+ int numtiles;
+ int numfiles = 0;
+ int tilewidth = simasel->prv_w + TILE_BORDER_X*4;
+ int tileheight = simasel->prv_h + TILE_BORDER_Y*4 + U.fontsize;
- simasel->v2d.vert.xmax= winx- 10;
- simasel->v2d.vert.xmin= winx- width -10;
- simasel->v2d.vert.ymin= 10;
- simasel->v2d.vert.ymax= winy-10-60;
+ // complete area of the space
+ simasel->v2d.mask.xmin= simasel->v2d.mask.ymin = 0;
+ simasel->v2d.mask.xmax= winx;
+ simasel->v2d.mask.ymax= winy;
+
+ // vertical scroll bar
+ simasel->v2d.vert= simasel->v2d.mask;
+ simasel->v2d.vert.xmax -= TILE_BORDER_X;
+ simasel->v2d.vert.xmin= simasel->v2d.vert.xmax- width - TILE_BORDER_X;
+ simasel->v2d.vert.ymax -= IMASEL_BUTTONS_HEIGHT + TILE_BORDER_Y + 1;
+ simasel->v2d.vert.ymin += TILE_BORDER_Y + 1;
+ // simasel->v2d.mask.xmax= simasel->v2d.vert.xmin;
- simasel->v2d.mask.xmin= 10;
- simasel->v2d.mask.xmax= simasel->v2d.vert.xmin-10;
+ if (simasel->flag & FILE_BOOKMARKS) {
+ int bmwidth = (simasel->v2d.vert.xmin - simasel->v2d.mask.xmin)/4.0f;
+ if (bmwidth > BOOKMARKWIDTH_MAX) bmwidth = BOOKMARKWIDTH_MAX;
- simasel->v2d.mask.ymin= simasel->v2d.vert.ymin;
- simasel->v2d.mask.ymax= simasel->v2d.vert.ymax;
+ simasel->bookmarkrect.xmin = simasel->v2d.mask.xmin + TILE_BORDER_X;
+ simasel->bookmarkrect.xmax = simasel->v2d.mask.xmin + bmwidth - TILE_BORDER_X;
+ simasel->bookmarkrect.ymax = simasel->v2d.mask.ymax - IMASEL_BUTTONS_HEIGHT - TILE_BORDER_Y;
+ simasel->bookmarkrect.ymin = simasel->v2d.mask.ymin + TILE_BORDER_Y;
+
+ simasel->viewrect.xmin = simasel->bookmarkrect.xmax + TILE_BORDER_X;
+ simasel->viewrect.xmax = simasel->v2d.vert.xmin - TILE_BORDER_X;
+ simasel->viewrect.ymax = simasel->v2d.mask.ymax - IMASEL_BUTTONS_HEIGHT - TILE_BORDER_Y;
+ simasel->viewrect.ymin = simasel->v2d.mask.ymin + TILE_BORDER_Y;
+ } else {
+ simasel->viewrect.xmin = simasel->v2d.mask.xmin + TILE_BORDER_X;
+ simasel->viewrect.xmax = simasel->v2d.vert.xmin - TILE_BORDER_X;
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list