[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [37185] trunk/blender: Code holiday commit :
Ton Roosendaal
ton at blender.org
Sat Jun 4 19:03:46 CEST 2011
Revision: 37185
http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-blender&revision=37185
Author: ton
Date: 2011-06-04 17:03:46 +0000 (Sat, 04 Jun 2011)
Log Message:
-----------
Code holiday commit:
- fix: user pref, window title was reset to 'Blender' on tab usage
- Undo history menu back:
- name "Undo History"
- hotkey alt+ctrl+z (alt+apple+z for mac)
- works like 2.4x, only for global undo, editmode and particle edit.
- Menu scroll
- for small windows or screens, popup menus now allow to display
all items, using internal scrolling
- works with a timer, scrolling 10 items per second when mouse
is over the top or bottom arrow
- if menu is too big to display, it now draws to top or bottom,
based on largest available space.
- also works for hotkey driven pop up menus.
- User pref "DPI" follows widget/layout size
- widgets & headers now become bigger and smaller, to match
'dpi' font sizes. Works well to match UI to monitor size.
- note that icons can get fuzzy, we need better mipmaps for it
Modified Paths:
--------------
trunk/blender/release/scripts/startup/bl_ui/space_view3d.py
trunk/blender/source/blender/blenkernel/BKE_blender.h
trunk/blender/source/blender/blenkernel/intern/blender.c
trunk/blender/source/blender/editors/include/ED_particle.h
trunk/blender/source/blender/editors/include/ED_screen.h
trunk/blender/source/blender/editors/include/ED_types.h
trunk/blender/source/blender/editors/include/ED_util.h
trunk/blender/source/blender/editors/include/UI_interface.h
trunk/blender/source/blender/editors/interface/interface.c
trunk/blender/source/blender/editors/interface/interface_handlers.c
trunk/blender/source/blender/editors/interface/interface_icons.c
trunk/blender/source/blender/editors/interface/interface_intern.h
trunk/blender/source/blender/editors/interface/interface_panel.c
trunk/blender/source/blender/editors/interface/interface_regions.c
trunk/blender/source/blender/editors/interface/interface_templates.c
trunk/blender/source/blender/editors/interface/interface_widgets.c
trunk/blender/source/blender/editors/interface/resources.c
trunk/blender/source/blender/editors/physics/particle_edit.c
trunk/blender/source/blender/editors/screen/area.c
trunk/blender/source/blender/editors/screen/screen_edit.c
trunk/blender/source/blender/editors/screen/screen_ops.c
trunk/blender/source/blender/editors/space_action/space_action.c
trunk/blender/source/blender/editors/space_buttons/buttons_header.c
trunk/blender/source/blender/editors/space_script/script_header.c
trunk/blender/source/blender/editors/space_sound/sound_header.c
trunk/blender/source/blender/editors/space_view3d/view3d_header.c
trunk/blender/source/blender/editors/util/editmode_undo.c
trunk/blender/source/blender/editors/util/undo.c
trunk/blender/source/blender/editors/util/util_intern.h
trunk/blender/source/blender/makesdna/DNA_screen_types.h
trunk/blender/source/blender/makesdna/DNA_userdef_types.h
trunk/blender/source/blender/makesrna/intern/rna_userdef.c
trunk/blender/source/blender/windowmanager/intern/wm_files.c
trunk/blender/source/blender/windowmanager/intern/wm_operators.c
trunk/blender/source/blender/windowmanager/intern/wm_window.c
Modified: trunk/blender/release/scripts/startup/bl_ui/space_view3d.py
===================================================================
--- trunk/blender/release/scripts/startup/bl_ui/space_view3d.py 2011-06-04 16:32:04 UTC (rev 37184)
+++ trunk/blender/release/scripts/startup/bl_ui/space_view3d.py 2011-06-04 17:03:46 UTC (rev 37185)
@@ -685,6 +685,7 @@
layout.operator("ed.undo")
layout.operator("ed.redo")
+ layout.operator("ed.undo_history")
layout.separator()
@@ -1049,6 +1050,7 @@
layout.operator("ed.undo")
layout.operator("ed.redo")
+ layout.operator("ed.undo_history")
layout.separator()
@@ -1129,6 +1131,7 @@
layout.operator("ed.undo")
layout.operator("ed.redo")
+ layout.operator("ed.undo_history")
layout.separator()
@@ -1182,6 +1185,7 @@
layout.operator("ed.undo")
layout.operator("ed.redo")
+ layout.operator("ed.undo_history")
layout.separator()
@@ -1373,6 +1377,7 @@
layout.operator("ed.undo")
layout.operator("ed.redo")
+ layout.operator("ed.undo_history")
layout.separator()
@@ -1844,6 +1849,7 @@
layout.operator("ed.undo")
layout.operator("ed.redo")
+ layout.operator("ed.undo_history")
layout.separator()
Modified: trunk/blender/source/blender/blenkernel/BKE_blender.h
===================================================================
--- trunk/blender/source/blender/blenkernel/BKE_blender.h 2011-06-04 16:32:04 UTC (rev 37184)
+++ trunk/blender/source/blender/blenkernel/BKE_blender.h 2011-06-04 17:03:46 UTC (rev 37185)
@@ -89,6 +89,7 @@
extern void BKE_reset_undo(void);
extern char *BKE_undo_menu_string(void);
extern void BKE_undo_number(struct bContext *C, int nr);
+extern char *BKE_undo_get_name(int nr, int *active);
extern void BKE_undo_save_quit(void);
extern struct Main *BKE_undo_get_main(struct Scene **scene);
Modified: trunk/blender/source/blender/blenkernel/intern/blender.c
===================================================================
--- trunk/blender/source/blender/blenkernel/intern/blender.c 2011-06-04 16:32:04 UTC (rev 37184)
+++ trunk/blender/source/blender/blenkernel/intern/blender.c 2011-06-04 17:03:46 UTC (rev 37185)
@@ -620,7 +620,7 @@
/* based on index nr it does a restore */
void BKE_undo_number(bContext *C, int nr)
{
- curundo= BLI_findlink(&undobase, nr - 1);
+ curundo= BLI_findlink(&undobase, nr);
BKE_undo_step(C, 0);
}
@@ -646,6 +646,21 @@
return undobase.last != undobase.first;
}
+/* get name of undo item, return null if no item with this index */
+/* if active pointer, set it to 1 if true */
+char *BKE_undo_get_name(int nr, int *active)
+{
+ UndoElem *uel= BLI_findlink(&undobase, nr);
+
+ if(active) *active= 0;
+
+ if(uel) {
+ if(active && uel==curundo)
+ *active= 1;
+ return uel->name;
+ }
+ return NULL;
+}
char *BKE_undo_menu_string(void)
{
Modified: trunk/blender/source/blender/editors/include/ED_particle.h
===================================================================
--- trunk/blender/source/blender/editors/include/ED_particle.h 2011-06-04 16:32:04 UTC (rev 37184)
+++ trunk/blender/source/blender/editors/include/ED_particle.h 2011-06-04 17:03:46 UTC (rev 37185)
@@ -71,8 +71,9 @@
void PE_undo_step(struct Scene *scene, int step);
void PE_undo(struct Scene *scene);
void PE_redo(struct Scene *scene);
-void PE_undo_menu(struct Scene *scene, struct Object *ob);
int PE_undo_valid(struct Scene *scene);
+void PE_undo_number(struct Scene *scene, int nr);
+char *PE_undo_get_name(struct Scene *scene, int nr, int *active);
#endif /* ED_PARTICLE_H */
Modified: trunk/blender/source/blender/editors/include/ED_screen.h
===================================================================
--- trunk/blender/source/blender/editors/include/ED_screen.h 2011-06-04 16:32:04 UTC (rev 37184)
+++ trunk/blender/source/blender/editors/include/ED_screen.h 2011-06-04 17:03:46 UTC (rev 37185)
@@ -90,6 +90,7 @@
void ED_area_newspace(struct bContext *C, ScrArea *sa, int type);
void ED_area_prevspace(struct bContext *C, ScrArea *sa);
void ED_area_swapspace(struct bContext *C, ScrArea *sa1, ScrArea *sa2);
+int ED_area_headersize(void);
/* screens */
void ED_screens_initialize(struct wmWindowManager *wm);
Modified: trunk/blender/source/blender/editors/include/ED_types.h
===================================================================
--- trunk/blender/source/blender/editors/include/ED_types.h 2011-06-04 16:32:04 UTC (rev 37184)
+++ trunk/blender/source/blender/editors/include/ED_types.h 2011-06-04 17:03:46 UTC (rev 37185)
@@ -40,10 +40,6 @@
#define SELECT 1
#define ACTIVE 2
-/* buttons */
-#define XIC 20
-#define YIC 20
-
/* proposal = put scene pointers on function calls? */
// #define BASACT (scene->basact)
// #define OBACT (BASACT? BASACT->object: NULL)
Modified: trunk/blender/source/blender/editors/include/ED_util.h
===================================================================
--- trunk/blender/source/blender/editors/include/ED_util.h 2011-06-04 16:32:04 UTC (rev 37184)
+++ trunk/blender/source/blender/editors/include/ED_util.h 2011-06-04 17:03:46 UTC (rev 37185)
@@ -59,6 +59,7 @@
void ED_OT_undo (struct wmOperatorType *ot);
void ED_OT_undo_push (struct wmOperatorType *ot);
void ED_OT_redo (struct wmOperatorType *ot);
+void ED_OT_undo_history (struct wmOperatorType *ot);
int ED_undo_operator_repeat(struct bContext *C, struct wmOperator *op);
/* convenience since UI callbacks use this mostly*/
@@ -76,11 +77,7 @@
int (*validate_undo)(void *, void *));
-void *undo_editmode_get_prev (struct Object *ob);
-struct uiBlock *editmode_undohistorymenu(struct bContext *C, struct ARegion *ar, void *arg_unused);
-void undo_editmode_menu (struct bContext *C);
void undo_editmode_clear (void);
-void undo_editmode_step (struct bContext *C, int step);
/* crazyspace.c */
float *crazyspace_get_mapped_editverts(struct Scene *scene, struct Object *obedit);
Modified: trunk/blender/source/blender/editors/include/UI_interface.h
===================================================================
--- trunk/blender/source/blender/editors/include/UI_interface.h 2011-06-04 16:32:04 UTC (rev 37184)
+++ trunk/blender/source/blender/editors/include/UI_interface.h 2011-06-04 17:03:46 UTC (rev 37185)
@@ -35,6 +35,7 @@
#define UI_INTERFACE_H
#include "RNA_types.h"
+#include "DNA_userdef_types.h"
/* Struct Declarations */
@@ -100,8 +101,8 @@
#define UI_BLOCK_RET_1 4 /* XXX 2.5 not implemented */
#define UI_BLOCK_NUMSELECT 8
/*#define UI_BLOCK_ENTER_OK 16*/ /*UNUSED*/
-/*#define UI_BLOCK_NOSHADOW 32*/ /*UNUSED*/
-/*#define UI_BLOCK_UNUSED 64*/ /*UNUSED*/
+#define UI_BLOCK_CLIPBOTTOM 32
+#define UI_BLOCK_CLIPTOP 64
#define UI_BLOCK_MOVEMOUSE_QUIT 128
#define UI_BLOCK_KEEP_OPEN 256
#define UI_BLOCK_POPUP 512
@@ -622,8 +623,8 @@
#define UI_LAYOUT_MENU 2
#define UI_LAYOUT_TOOLBAR 3
-#define UI_UNIT_X 20
-#define UI_UNIT_Y 20
+#define UI_UNIT_X U.widget_unit
+#define UI_UNIT_Y U.widget_unit
#define UI_LAYOUT_ALIGN_EXPAND 0
#define UI_LAYOUT_ALIGN_LEFT 1
Modified: trunk/blender/source/blender/editors/interface/interface.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface.c 2011-06-04 16:32:04 UTC (rev 37184)
+++ trunk/blender/source/blender/editors/interface/interface.c 2011-06-04 17:03:46 UTC (rev 37185)
@@ -892,13 +892,14 @@
/* widgets */
for(but= block->buttons.first; but; but= but->next) {
- ui_but_to_pixelrect(&rect, ar, block, but);
+ if(!(but->flag & (UI_HIDDEN|UI_SCROLLED))) {
+ ui_but_to_pixelrect(&rect, ar, block, but);
- if(!(but->flag & UI_HIDDEN) &&
/* XXX: figure out why invalid coordinates happen when closing render window */
/* and material preview is redrawn in main window (temp fix for bug #23848) */
- rect.xmin < rect.xmax && rect.ymin < rect.ymax)
- ui_draw_but(C, ar, &style, but, &rect);
+ if(rect.xmin < rect.xmax && rect.ymin < rect.ymax)
+ ui_draw_but(C, ar, &style, but, &rect);
+ }
}
/* restore matrix */
Modified: trunk/blender/source/blender/editors/interface/interface_handlers.c
===================================================================
--- trunk/blender/source/blender/editors/interface/interface_handlers.c 2011-06-04 16:32:04 UTC (rev 37184)
+++ trunk/blender/source/blender/editors/interface/interface_handlers.c 2011-06-04 17:03:46 UTC (rev 37185)
@@ -81,6 +81,7 @@
#define BUTTON_TOOLTIP_DELAY 0.500
#define BUTTON_FLASH_DELAY 0.020
+#define MENU_SCROLL_INTERVAL 0.1
#define BUTTON_AUTO_OPEN_THRESH 0.3
#define BUTTON_MOUSE_TOWARDS_THRESH 1.0
@@ -4743,6 +4744,8 @@
continue;
if(but->flag & UI_HIDDEN)
continue;
+ if(but->flag & UI_SCROLLED)
+ continue;
if(ui_but_contains_pt(but, mx, my))
butover= but;
}
@@ -5572,6 +5575,76 @@
return menu->dotowards;
}
+static char ui_menu_scroll_test(uiBlock *block, int my)
+{
+ if(block->flag & (UI_BLOCK_CLIPTOP|UI_BLOCK_CLIPBOTTOM)) {
+ if(block->flag & UI_BLOCK_CLIPTOP)
+ if(my > block->maxy-14)
+ return 't';
+ if(block->flag & UI_BLOCK_CLIPBOTTOM)
+ if(my < block->miny+14)
+ return 'b';
+ }
+ return 0;
+}
+
+static int ui_menu_scroll(ARegion *ar, uiBlock *block, int my)
+{
+ char test= ui_menu_scroll_test(block, my);
+
+ if(test) {
+ uiBut *b1= block->buttons.first;
+ uiBut *b2= block->buttons.last;
+ uiBut *bnext;
+ uiBut *bprev;
+ int dy= 0;
+
+ /* get first and last visible buttons */
+ while(b1 && ui_but_next(b1) && (b1->flag & UI_SCROLLED))
+ b1= ui_but_next(b1);
+ while(b2 && ui_but_prev(b2) && (b2->flag & UI_SCROLLED))
+ b2= ui_but_prev(b2);
+ /* skips separators */
+ bnext= ui_but_next(b1);
+ bprev= ui_but_prev(b2);
+
+ if(bnext==NULL || bprev==NULL)
+ return 0;
+
+ if(test=='t') {
+ /* bottom button is first button */
+ if(b1->y1 < b2->y1)
+ dy= bnext->y1 - b1->y1;
+ /* bottom button is last button */
+ else
+ dy= bprev->y1 - b2->y1;
+ }
+ else if(test=='b') {
+ /* bottom button is first button */
+ if(b1->y1 < b2->y1)
+ dy= b1->y1 - bnext->y1;
+ /* bottom button is last button */
+ else
+ dy= b2->y1 - bprev->y1;
+ }
+ if(dy) {
+
+ for(b1= block->buttons.first; b1; b1= b1->next) {
+ b1->y1 -= dy;
+ b1->y2 -= dy;
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list