[Bf-blender-cvs] SVN commit: /data/svn/bf-blender [21745] branches/blender2.5/blender/source /blender: 2.5: UI
Brecht Van Lommel
brecht at blender.org
Tue Jul 21 03:26:18 CEST 2009
Revision: 21745
http://projects.blender.org/plugins/scmsvn/viewcvs.php?view=rev&root=bf-blender&revision=21745
Author: blendix
Date: 2009-07-21 03:26:17 +0200 (Tue, 21 Jul 2009)
Log Message:
-----------
2.5: UI
* List template visual changes. Items now look different,
and it expands to size 5 as more items are added.
* Added LISTROW and LISTBOX elements. The former is like
a typical ROW button, but looks diffrent. The latter
looks like a BOUNDBOX, and has no extra features yet.
* Fix some glColor3ubv warnings with casting, did not find
a nicer way.
Modified Paths:
--------------
branches/blender2.5/blender/source/blender/editors/include/UI_interface.h
branches/blender2.5/blender/source/blender/editors/interface/interface.c
branches/blender2.5/blender/source/blender/editors/interface/interface_draw.c
branches/blender2.5/blender/source/blender/editors/interface/interface_handlers.c
branches/blender2.5/blender/source/blender/editors/interface/interface_intern.h
branches/blender2.5/blender/source/blender/editors/interface/interface_layout.c
branches/blender2.5/blender/source/blender/editors/interface/interface_style.c
branches/blender2.5/blender/source/blender/editors/interface/interface_templates.c
branches/blender2.5/blender/source/blender/editors/interface/interface_widgets.c
branches/blender2.5/blender/source/blender/makesdna/DNA_userdef_types.h
branches/blender2.5/blender/source/blender/makesrna/intern/rna_ui.c
branches/blender2.5/blender/source/blender/makesrna/intern/rna_ui_api.c
branches/blender2.5/blender/source/blender/makesrna/intern/rna_userdef.c
Modified: branches/blender2.5/blender/source/blender/editors/include/UI_interface.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/include/UI_interface.h 2009-07-21 01:14:55 UTC (rev 21744)
+++ branches/blender2.5/blender/source/blender/editors/include/UI_interface.h 2009-07-21 01:26:17 UTC (rev 21745)
@@ -30,6 +30,8 @@
#ifndef UI_INTERFACE_H
#define UI_INTERFACE_H
+#include "RNA_types.h"
+
/* Struct Declarations */
struct ID;
@@ -201,7 +203,9 @@
#define SEARCH_MENU (40<<9)
#define BUT_EXTRA (41<<9)
#define HSVCIRCLE (42<<9)
-#define BUTTYPE (63<<9)
+#define LISTBOX (43<<9)
+#define LISTROW (44<<9)
+#define BUTTYPE (63<<9)
/* Drawing
*
@@ -588,7 +592,6 @@
void uiLayoutSetScaleX(uiLayout *layout, float scale);
void uiLayoutSetScaleY(uiLayout *layout, float scale);
-
int uiLayoutGetOperatorContext(uiLayout *layout);
int uiLayoutGetActive(uiLayout *layout);
int uiLayoutGetEnabled(uiLayout *layout);
@@ -597,12 +600,14 @@
int uiLayoutGetKeepAspect(uiLayout *layout);
float uiLayoutGetScaleX(uiLayout *layout);
float uiLayoutGetScaleY(uiLayout *layout);
+ListBase *uiLayoutBoxGetList(uiLayout *layout);
/* layout specifiers */
uiLayout *uiLayoutRow(uiLayout *layout, int align);
uiLayout *uiLayoutColumn(uiLayout *layout, int align);
uiLayout *uiLayoutColumnFlow(uiLayout *layout, int number, int align);
uiLayout *uiLayoutBox(uiLayout *layout);
+uiLayout *uiLayoutListBox(uiLayout *layout);
uiLayout *uiLayoutFree(uiLayout *layout, int align);
uiLayout *uiLayoutSplit(uiLayout *layout, float percentage);
@@ -619,11 +624,19 @@
void uiTemplateCurveMapping(uiLayout *layout, struct CurveMapping *cumap, int type);
void uiTemplateLayers(uiLayout *layout, struct PointerRNA *ptr, char *propname);
void uiTemplateImageLayers(uiLayout *layout, struct bContext *C, struct Image *ima, struct ImageUser *iuser);
-ListBase uiTemplateList(uiLayout *layout, struct PointerRNA *ptr, char *propname, struct PointerRNA *activeptr, char *activeprop, int rows, int columns, int compact);
void uiTemplateRunningJobs(uiLayout *layout, struct bContext *C);
void uiTemplateOperatorSearch(uiLayout *layout);
void uiTemplateHeader3D(uiLayout *layout, struct bContext *C);
+typedef struct uiListItem {
+ struct uiListItem *next, *prev;
+
+ struct PointerRNA data;
+ uiLayout *layout;
+} uiListItem;
+
+ListBase uiTemplateList(uiLayout *layout, struct bContext *C, struct PointerRNA *ptr, char *propname, struct PointerRNA *activeptr, char *activeprop, int rows, int type);
+
/* items */
void uiItemO(uiLayout *layout, char *name, int icon, char *opname);
void uiItemEnumO(uiLayout *layout, char *name, int icon, char *opname, char *propname, int value);
Modified: branches/blender2.5/blender/source/blender/editors/interface/interface.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/interface.c 2009-07-21 01:14:55 UTC (rev 21744)
+++ branches/blender2.5/blender/source/blender/editors/interface/interface.c 2009-07-21 01:26:17 UTC (rev 21745)
@@ -720,6 +720,7 @@
if(value==0.0) push= 1;
break;
case ROW:
+ case LISTROW:
if(value == but->hardmax) push= 1;
break;
case COL:
@@ -2149,7 +2150,7 @@
freestr= 1;
}
- else if(type == ROW && proptype == PROP_ENUM) {
+ else if(ELEM(type, ROW, LISTROW) && proptype == PROP_ENUM) {
EnumPropertyItem *item;
int i, totitem, free;
@@ -2202,7 +2203,7 @@
RNA_property_int_range(ptr, prop, &hardmin, &hardmax);
RNA_property_int_ui_range(ptr, prop, &softmin, &softmax, &step);
- if(type != ROW && min == max) {
+ if(!ELEM(type, ROW, LISTROW) && min == max) {
min= hardmin;
max= hardmax;
}
@@ -2217,7 +2218,7 @@
RNA_property_float_range(ptr, prop, &hardmin, &hardmax);
RNA_property_float_ui_range(ptr, prop, &softmin, &softmax, &step, &precision);
- if(type != ROW && min == max) {
+ if(!ELEM(type, ROW, LISTROW) && min == max) {
min= hardmin;
max= hardmax;
}
Modified: branches/blender2.5/blender/source/blender/editors/interface/interface_draw.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/interface_draw.c 2009-07-21 01:14:55 UTC (rev 21744)
+++ branches/blender2.5/blender/source/blender/editors/interface/interface_draw.c 2009-07-21 01:26:17 UTC (rev 21745)
@@ -788,7 +788,7 @@
glGetMaterialfv(GL_FRONT, GL_DIFFUSE, diff);
/* backdrop */
- glColor3ubv(wcol->inner);
+ glColor3ubv((unsigned char*)wcol->inner);
uiSetRoundBox(15);
gl_round_box(GL_POLYGON, rect->xmin, rect->ymin, rect->xmax, rect->ymax, 5.0f);
@@ -852,7 +852,7 @@
/* AA circle */
glEnable(GL_BLEND);
glEnable(GL_LINE_SMOOTH );
- glColor3ubv(wcol->inner);
+ glColor3ubv((unsigned char*)wcol->inner);
glutil_draw_lined_arc(0.0f, M_PI*2.0, 100.0f, 32);
glDisable(GL_BLEND);
glDisable(GL_LINE_SMOOTH );
@@ -926,14 +926,14 @@
if(cumap->flag & CUMA_DO_CLIP) {
glColor3ubvShade(wcol->inner, -20);
glRectf(rect->xmin, rect->ymin, rect->xmax, rect->ymax);
- glColor3ubv(wcol->inner);
+ glColor3ubv((unsigned char*)wcol->inner);
glRectf(rect->xmin + zoomx*(cumap->clipr.xmin-offsx),
rect->ymin + zoomy*(cumap->clipr.ymin-offsy),
rect->xmin + zoomx*(cumap->clipr.xmax-offsx),
rect->ymin + zoomy*(cumap->clipr.ymax-offsy));
}
else {
- glColor3ubv(wcol->inner);
+ glColor3ubv((unsigned char*)wcol->inner);
glRectf(rect->xmin, rect->ymin, rect->xmax, rect->ymax);
}
@@ -989,7 +989,7 @@
}*/
/* the curve */
- glColor3ubv(wcol->item);
+ glColor3ubv((unsigned char*)wcol->item);
glEnable(GL_LINE_SMOOTH);
glEnable(GL_BLEND);
glBegin(GL_LINE_STRIP);
@@ -1043,7 +1043,7 @@
glScissor(scissor[0], scissor[1], scissor[2], scissor[3]);
/* outline */
- glColor3ubv(wcol->outline);
+ glColor3ubv((unsigned char*)wcol->outline);
fdrawbox(rect->xmin, rect->ymin, rect->xmax, rect->ymax);
}
Modified: branches/blender2.5/blender/source/blender/editors/interface/interface_handlers.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/interface_handlers.c 2009-07-21 01:14:55 UTC (rev 21744)
+++ branches/blender2.5/blender/source/blender/editors/interface/interface_handlers.c 2009-07-21 01:26:17 UTC (rev 21745)
@@ -188,7 +188,7 @@
{
while(but->prev) {
but= but->prev;
- if(but->type!=LABEL && but->type!=SEPR && but->type!=ROUNDBOX) return but;
+ if(!ELEM4(but->type, LABEL, SEPR, ROUNDBOX, LISTBOX)) return but;
}
return NULL;
}
@@ -197,7 +197,7 @@
{
while(but->next) {
but= but->next;
- if(but->type!=LABEL && but->type!=SEPR && but->type!=ROUNDBOX) return but;
+ if(!ELEM4(but->type, LABEL, SEPR, ROUNDBOX, LISTBOX)) return but;
}
return NULL;
}
@@ -208,7 +208,7 @@
but= block->buttons.first;
while(but) {
- if(but->type!=LABEL && but->type!=SEPR && but->type!=ROUNDBOX) return but;
+ if(!ELEM4(but->type, LABEL, SEPR, ROUNDBOX, LISTBOX)) return but;
but= but->next;
}
return NULL;
@@ -220,7 +220,7 @@
but= block->buttons.last;
while(but) {
- if(but->type!=LABEL && but->type!=SEPR && but->type!=ROUNDBOX) return but;
+ if(!ELEM4(but->type, LABEL, SEPR, ROUNDBOX, LISTBOX)) return but;
but= but->prev;
}
return NULL;
@@ -284,7 +284,7 @@
uiAfterFunc *after;
char *str= NULL;
- if ELEM5(but->type, BLOCK, BUT, LABEL, PULLDOWN, ROUNDBOX);
+ if ELEM6(but->type, BLOCK, BUT, LABEL, PULLDOWN, ROUNDBOX, LISTBOX);
else {
/* define which string to use for undo */
if ELEM(but->type, LINK, INLINK) str= "Add button link";
@@ -449,7 +449,7 @@
/* states of other row buttons */
for(bt= block->buttons.first; bt; bt= bt->next)
- if(bt!=but && bt->poin==but->poin && bt->type==ROW)
+ if(bt!=but && bt->poin==but->poin && ELEM(bt->type, ROW, LISTROW))
ui_check_but(bt);
ui_apply_but_func(C, but);
@@ -782,6 +782,7 @@
ui_apply_but_TOG(C, block, but, data);
break;
case ROW:
+ case LISTROW:
ui_apply_but_ROW(C, block, but, data);
break;
case SCROLL:
@@ -1392,7 +1393,7 @@
uiBut *but;
/* label and roundbox can overlap real buttons (backdrops...) */
- if(actbut->type==LABEL && actbut->type==ROUNDBOX)
+ if(ELEM4(actbut->type, LABEL, SEPR, ROUNDBOX, LISTBOX))
return;
for(but= actbut->next; but; but= but->next) {
@@ -1416,7 +1417,7 @@
uiBut *but;
/* label and roundbox can overlap real buttons (backdrops...) */
- if(actbut->type==LABEL && actbut->type==ROUNDBOX)
+ if(ELEM4(actbut->type, LABEL, SEPR, ROUNDBOX, LISTBOX))
return;
for(but= actbut->prev; but; but= but->prev) {
@@ -3183,9 +3184,11 @@
retval= ui_do_but_SLI(C, block, but, data, event);
break;
case ROUNDBOX:
+ case LISTBOX:
case LABEL:
case TOG3:
case ROW:
+ case LISTROW:
retval= ui_do_but_EXIT(C, but, data, event);
break;
case TEX:
@@ -3331,7 +3334,7 @@
ui_window_to_block(ar, block, &mx, &my);
for(but=block->buttons.first; but; but= but->next) {
- if(ELEM3(but->type, LABEL, ROUNDBOX, SEPR))
+ if(ELEM4(but->type, LABEL, ROUNDBOX, SEPR, LISTBOX))
continue;
if(but->flag & UI_HIDDEN)
continue;
Modified: branches/blender2.5/blender/source/blender/editors/interface/interface_intern.h
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/interface_intern.h 2009-07-21 01:14:55 UTC (rev 21744)
+++ branches/blender2.5/blender/source/blender/editors/interface/interface_intern.h 2009-07-21 01:26:17 UTC (rev 21745)
@@ -84,7 +84,8 @@
UI_WTYPE_RGB_PICKER,
UI_WTYPE_NORMAL,
UI_WTYPE_BOX,
- UI_WTYPE_SCROLL
+ UI_WTYPE_SCROLL,
+ UI_WTYPE_LISTITEM
} uiWidgetTypeEnum;
Modified: branches/blender2.5/blender/source/blender/editors/interface/interface_layout.c
===================================================================
--- branches/blender2.5/blender/source/blender/editors/interface/interface_layout.c 2009-07-21 01:14:55 UTC (rev 21744)
+++ branches/blender2.5/blender/source/blender/editors/interface/interface_layout.c 2009-07-21 01:26:17 UTC (rev 21745)
@@ -148,6 +148,7 @@
typedef struct uiLayoutItemBx {
uiLayout litem;
uiBut *roundbox;
+ ListBase items;
} uiLayoutItemBx;
typedef struct uiLayoutItemSplt {
@@ -218,7 +219,7 @@
{
int variable = ui_layout_vary_direction(layout) == UI_ITEM_VARY_X;
@@ Diff output truncated at 10240 characters. @@
More information about the Bf-blender-cvs
mailing list