From 860fce4eb97e4961065afad76f7b0915600b1ddb Mon Sep 17 00:00:00 2001 From: Brecht Van Lommel Date: Sun, 9 Jun 2013 18:05:50 +0000 Subject: [PATCH] Code cleanup: removed some unused UI button types * CHARTAB: not needed anymore with improved copy/paste support and text input. * IDPOIN: replaced by SEARCH_MENU. * ICONROW/ICONTEXTROW: replaced by RNA enums. * NUMABS: can use min/max limits instead. * BUT_TOGDUAL, TOG3, TOGR, SLI: not used in 2.5 interface. --- doc/guides/interface_API.txt | 92 ++---- source/blender/blenkernel/BKE_blender.h | 1 - source/blender/blenkernel/intern/blender.c | 19 -- source/blender/editors/include/UI_interface.h | 18 -- source/blender/editors/interface/interface.c | 104 +------ .../editors/interface/interface_handlers.c | 270 ++---------------- .../editors/interface/interface_intern.h | 6 - .../editors/interface/interface_regions.c | 49 +--- .../editors/interface/interface_utils.c | 2 +- .../editors/interface/interface_widgets.c | 100 +++---- source/blender/editors/mesh/editface.c | 73 ----- .../blender/editors/mesh/editmesh_extrude.c | 17 +- 12 files changed, 80 insertions(+), 671 deletions(-) diff --git a/doc/guides/interface_API.txt b/doc/guides/interface_API.txt index 5f0fbc85ff8..1874519db8d 100644 --- a/doc/guides/interface_API.txt +++ b/doc/guides/interface_API.txt @@ -19,26 +19,22 @@ Contents 4. API for uiButton 4.1 UiDefBut 1. BUT - 2. TOG or TOGN or TOGR + 2. TOG or TOGN TOG|BIT| - 3. TOG3|BIT| - 4. ROW - 5. SLI or NUMSLI or HSVSLI - 6. NUM - 7. TEX - 8. LABEL - 9 SEPR - 10. MENU - 11. COL + 3. ROW + 4. NUMSLI or HSVSLI + 5. NUM + 6. TEX + 7. LABEL + 8 SEPR + 9. MENU + 10. COL 4.2 Icon buttons - 12. ICONROW - 13. ICONTEXTROW 4.3 pulldown menus / block buttons 14. BLOCK 4.4 specials 15. KEYEVT 16. LINK and INLINK - 17. IDPOIN 4.5 uiButton control fuctions @@ -289,55 +285,49 @@ type: Activation button. (like "Render") Passing on a pointer is not needed -2. TOG or TOGN or TOGR +2. TOG or TOGN Toggle button (like "Lock") The pointer value is set either at 0 or 1 If pressed, it calls the optional function with arguments provided. Type TOGN: works negative, when pressed it sets at 0 - Type TOGR: is part of a row, redraws automatically all buttons with same *poin "|BIT|" When added to type, it works on a single bit (lowest order bit: nr = '0') -3. TOG3|BIT| - A toggle with 3 values! - Can be only used for short *poin. - In the third toggle setting, the bit of *( poin+1) is set. - -4. ROW +3. ROW Button that's part of a row. in "min" you set a row-id number, in "max" the value you want *poin to be assigned when you press the button. Always pass on these values as floats. When this button is pressed, it sets the "max" value to *poin, and redraws all buttons with the same row-id number. -5. SLI or NUMSLI or HSVSLI - Slider, number-slider or hsv-slider button. +4. NUMSLI or HSVSLI + Number-slider or hsv-slider button. "min" and "max" are to clamp the value to. If you want a button type "Col" to be updated, make 'a1' equal to 'retval' from the COL button. -6. NUM +5. NUM Number button Set the clamping values 'min' and 'max' always as float. For UiDefButF, set a 'step' in 'a1', in 1/100's. The step value is the increment or decrement when you click once on the right or left side of a button. The optional button function is additionally called for each change of the *poin value. -7. TEX +6. TEX Text string button. Pointertype is standard a char. Value 'max' is length of string (pass as float). When button is left with ESC, it doesn't put the 'retval' at the queue. -8. LABEL +7. LABEL Label button. Only displays text. If 'min' is set at 1.0, the text is printed in white. -9 SEPR +8 SEPR A separator line, typically used within pulldown menus. -10. MENU +9. MENU Menu button. The syntax of the string in *name defines the menu items: - %t means the previous text becomes the title @@ -346,7 +336,7 @@ type: without returnvalues, the first item gets value 0 (incl. title!) Example: "Do something %t| turn left %2| turn right %1| nothing %0" -11. COLOR +10. COLOR A special button that only visualizes a RGB value In 'retval' you can put a code, which is used to identify for sliders if it needs redraws while using the sliders. Check button '5'. @@ -371,19 +361,6 @@ uiBut *uiDefIconTextButF(uiBlock *block, int type, int retval, int icon, char *s Same again, but now with an icon and string as button name. -Two special icon buttons are available in Blender: - -12. ICONROW - (uiDefIconBut) - This button pops up a vertical menu with a row of icons to choose from. - 'max' = amount of icons. The icons are supposed to be ordered in a sequence - It writes in *poin which item in the menu was choosen (starting with 0). - -13. ICONTEXTROW - (uiDefIconTextBut) - Same as previous, but with the texts next to it. - - -----------4.3 pulldown menus / block buttons @@ -465,37 +442,6 @@ uiDefIconBut(block, INLINK, 0, ICON_INLINK, x1, y1, w, h, void *poin, short from -17. IDPOIN -void uiDefIDPoinBut(uiBlock *block, uiIDPoinFuncFP func, int retval, char *str, - short x1, short y1, short x2, short y2, void *idpp, char *tip) - - The ID struct is a generic part in structs like Object, Material, Mesh, etc. - Most linking options in Blender happens using ID's. (Mesh -> Material). - - This special button in Blender visualizes an ID pointer with its name. Typing in - a new name, changes the pointer. For most ID types in Blender functions have been - written already, needed by this button, to check validity of names, and assign the pointer. - - (BTW: the 'void *idpp' has to be a pointer to the ID pointer!) - - Example function that can be put in 'func': - - void test_scriptpoin_but(char *name, ID **idpp) - { - ID *id; - - id= G.main->text.first; - while(id) { - if( strcmp(name, id->name+2)==0 ) { - *idpp= id; - return; - } - id= id->next; - } - *idpp= 0; - } - - ------------- 4.5 uiButton control fuctions diff --git a/source/blender/blenkernel/BKE_blender.h b/source/blender/blenkernel/BKE_blender.h index 2dfdce49a71..dfab15a6f12 100644 --- a/source/blender/blenkernel/BKE_blender.h +++ b/source/blender/blenkernel/BKE_blender.h @@ -96,7 +96,6 @@ extern void BKE_undo_step(struct bContext *C, int step); extern void BKE_undo_name(struct bContext *C, const char *name); extern int BKE_undo_valid(const char *name); extern void BKE_reset_undo(void); -extern char *BKE_undo_menu_string(void); extern void BKE_undo_number(struct bContext *C, int nr); extern const char *BKE_undo_get_name(int nr, int *active); extern int BKE_undo_save_file(const char *filename); diff --git a/source/blender/blenkernel/intern/blender.c b/source/blender/blenkernel/intern/blender.c index d3f4d6d06b0..87a8def52bf 100644 --- a/source/blender/blenkernel/intern/blender.c +++ b/source/blender/blenkernel/intern/blender.c @@ -792,25 +792,6 @@ const char *BKE_undo_get_name(int nr, int *active) return NULL; } -char *BKE_undo_menu_string(void) -{ - UndoElem *uel; - DynStr *ds = BLI_dynstr_new(); - char *menu; - - BLI_dynstr_append(ds, "Global Undo History %t"); - - for (uel = undobase.first; uel; uel = uel->next) { - BLI_dynstr_append(ds, "|"); - BLI_dynstr_append(ds, uel->name); - } - - menu = BLI_dynstr_get_cstring(ds); - BLI_dynstr_free(ds); - - return menu; -} - /* saves .blend using undo buffer, returns 1 == success */ int BKE_undo_save_file(const char *filename) { diff --git a/source/blender/editors/include/UI_interface.h b/source/blender/editors/include/UI_interface.h index e64a5a4af57..cb2f3e3286e 100644 --- a/source/blender/editors/include/UI_interface.h +++ b/source/blender/editors/include/UI_interface.h @@ -210,20 +210,14 @@ typedef enum { BUT = (1 << 9), ROW = (2 << 9), TOG = (3 << 9), - SLI = (4 << 9), NUM = (5 << 9), TEX = (6 << 9), - TOG3 = (7 << 9), - TOGR = (8 << 9), TOGN = (9 << 9), LABEL = (10 << 9), MENU = (11 << 9), /* Dropdown list, actually! */ - ICONROW = (12 << 9), ICONTOG = (13 << 9), NUMSLI = (14 << 9), COLOR = (15 << 9), - IDPOIN = (16 << 9), - /* HSVSLI = (17 << 9), */ /* UNUSED */ SCROLL = (18 << 9), BLOCK = (19 << 9), BUTM = (20 << 9), @@ -231,18 +225,13 @@ typedef enum { LINK = (22 << 9), INLINK = (23 << 9), KEYEVT = (24 << 9), - ICONTEXTROW = (25 << 9), HSVCUBE = (26 << 9), PULLDOWN = (27 << 9), /* Menu, actually! */ ROUNDBOX = (28 << 9), - CHARTAB = (29 << 9), BUT_COLORBAND = (30 << 9), BUT_NORMAL = (31 << 9), BUT_CURVE = (32 << 9), - BUT_TOGDUAL = (33 << 9), ICONTOGN = (34 << 9), - /* FTPREVIEW = (35 << 9), */ /* UNUSED */ - NUMABS = (36 << 9), TOGBUT = (37 << 9), OPTION = (38 << 9), OPTIONN = (39 << 9), @@ -560,7 +549,6 @@ void uiButGetStrInfo(struct bContext *C, uiBut *but, ...); /* Special Buttons * * Buttons with a more specific purpose: - * - IDPoinBut: for creating buttons that work on a pointer to an ID block. * - MenuBut: buttons that popup a menu (in headers usually). * - PulldownBut: like MenuBut, but creating a uiBlock (for compatibility). * - BlockBut: buttons that popup a block with more buttons. @@ -582,12 +570,6 @@ void uiButGetStrInfo(struct bContext *C, uiBut *but, ...); #define UI_ID_PREVIEWS 2048 #define UI_ID_FULL (UI_ID_RENAME | UI_ID_BROWSE | UI_ID_ADD_NEW | UI_ID_OPEN | UI_ID_ALONE | UI_ID_DELETE | UI_ID_LOCAL) -typedef void (*uiIDPoinFuncFP)(struct bContext *C, const char *str, struct ID **idpp); -typedef void (*uiIDPoinFunc)(struct bContext *C, struct ID *id, int event); - -uiBut *uiDefIDPoinBut(uiBlock *block, uiIDPoinFuncFP func, short blocktype, int retval, const char *str, - int x, int y, short width, short height, void *idpp, const char *tip); - int uiIconFromID(struct ID *id); uiBut *uiDefPulldownBut(uiBlock *block, uiBlockCreateFunc func, void *arg, const char *str, int x, int y, short width, short height, const char *tip); diff --git a/source/blender/editors/interface/interface.c b/source/blender/editors/interface/interface.c index cce9ec50c1e..1bebfa8a7a0 100644 --- a/source/blender/editors/interface/interface.c +++ b/source/blender/editors/interface/interface.c @@ -1140,9 +1140,6 @@ int ui_is_but_push_ex(uiBut *but, double *value) break; case TOGBUT: case TOG: - case TOGR: - case TOG3: - case BUT_TOGDUAL: case ICONTOG: case OPTION: UI_GET_BUT_VALUE_INIT(but, *value); @@ -1420,7 +1417,7 @@ bool ui_is_but_float(uiBut *but) bool ui_is_but_bool(uiBut *but) { - if (ELEM5(but->type, TOG, TOGN, TOGR, ICONTOG, ICONTOGN)) + if (ELEM4(but->type, TOG, TOGN, ICONTOG, ICONTOGN)) return true; if (but->rnaprop && RNA_property_type(but->rnaprop) == PROP_BOOLEAN) @@ -1620,8 +1617,6 @@ int ui_get_but_string_max_length(uiBut *but) { if (ELEM3(but->type, TEX, SEARCH_MENU, SEARCH_MENU_UNLINK)) return but->hardmax; - else if (but->type == IDPOIN) - return MAX_ID_NAME - 2; else return UI_MAX_DRAW_STR; } @@ -1716,7 +1711,7 @@ static float ui_get_but_step_unit(uiBut *but, float step_default) */ void ui_get_but_string_ex(uiBut *but, char *str, const size_t maxlen, const int float_precision) { - if (but->rnaprop && ELEM4(but->type, TEX, IDPOIN, SEARCH_MENU, SEARCH_MENU_UNLINK)) { + if (but->rnaprop && ELEM3(but->type, TEX, SEARCH_MENU, SEARCH_MENU_UNLINK)) { PropertyType type; const char *buf = NULL; int buf_len; @@ -1753,18 +1748,6 @@ void ui_get_but_string_ex(uiBut *but, char *str, const size_t maxlen, const int MEM_freeN((void *)buf); } } - else if (but->type == IDPOIN) { - /* ID pointer */ - if (but->idpoin_idpp) { /* Can be NULL for ID properties by python */ - ID *id = *(but->idpoin_idpp); - if (id) { - BLI_strncpy(str, id->name + 2, maxlen); - return; - } - } - str[0] = '\0'; - return; - } else if (but->type == TEX) { /* string */ BLI_strncpy(str, but->poin, maxlen); @@ -1865,7 +1848,7 @@ bool ui_set_but_string_eval_num(bContext *C, uiBut *but, const char *str, double bool ui_set_but_string(bContext *C, uiBut *but, const char *str) { - if (but->rnaprop && ELEM4(but->type, TEX, IDPOIN, SEARCH_MENU, SEARCH_MENU_UNLINK)) { + if (but->rnaprop && ELEM3(but->type, TEX, SEARCH_MENU, SEARCH_MENU_UNLINK)) { if (RNA_property_editable(&but->rnapoin, but->rnaprop)) { PropertyType type; @@ -1910,11 +1893,6 @@ bool ui_set_but_string(bContext *C, uiBut *but, const char *str) } } } - else if (but->type == IDPOIN) { - /* ID pointer */ - but->idpoin_func(C, str, but->idpoin_idpp); - return true; - } else if (but->type == TEX) { /* string */ if (ui_is_but_utf8(but)) BLI_strncpy_utf8(but->poin, str, but->hardmax); @@ -1944,7 +1922,6 @@ bool ui_set_but_string(bContext *C, uiBut *but, const char *str) } if (!ui_is_but_float(but)) value = (int)floor(value + 0.5); - if (but->type == NUMABS) value = fabs(value); /* not that we use hard limits here */ if (value < (double)but->hardmin) value = but->hardmin; @@ -2285,7 +2262,6 @@ void ui_check_but(uiBut *but) /* test for min and max, icon sliders, etc */ switch (but->type) { case NUM: - case SLI: case SCROLL: case NUMSLI: UI_GET_BUT_VALUE_INIT(but, value); @@ -2293,15 +2269,6 @@ void ui_check_but(uiBut *but) else if (value > (double)but->hardmax) ui_set_but_val(but, but->hardmax); break; - case NUMABS: - { - double value_abs; - UI_GET_BUT_VALUE_INIT(but, value); - value_abs = fabs(value); - if (value_abs < (double)but->hardmin) ui_set_but_val(but, but->hardmin); - else if (value_abs > (double)but->hardmax) ui_set_but_val(but, but->hardmax); - break; - } case ICONTOG: case ICONTOGN: if (!but->rnaprop || (RNA_property_flag(but->rnaprop) & PROP_ICONS_CONSECUTIVE)) { @@ -2310,20 +2277,6 @@ void ui_check_but(uiBut *but) } break; - case ICONROW: - if (!but->rnaprop || (RNA_property_flag(but->rnaprop) & PROP_ICONS_CONSECUTIVE)) { - UI_GET_BUT_VALUE_INIT(but, value); - but->iconadd = (int)value - (int)(but->hardmin); - } - break; - - case ICONTEXTROW: - if (!but->rnaprop || (RNA_property_flag(but->rnaprop) & PROP_ICONS_CONSECUTIVE)) { - UI_GET_BUT_VALUE_INIT(but, value); - but->iconadd = (int)value - (int)(but->hardmin); - } - break; - /* quiet warnings for unhandled types */ default: break; @@ -2337,7 +2290,6 @@ void ui_check_but(uiBut *but) switch (but->type) { case MENU: - case ICONTEXTROW: if (BLI_rctf_size_x(&but->rect) > 24.0f) { UI_GET_BUT_VALUE_INIT(but, value); @@ -2347,7 +2299,6 @@ void ui_check_but(uiBut *but) case NUM: case NUMSLI: - case NUMABS: UI_GET_BUT_VALUE_INIT(but, value); @@ -2394,7 +2345,6 @@ void ui_check_but(uiBut *but) break; - case IDPOIN: case TEX: case SEARCH_MENU: case SEARCH_MENU_UNLINK: @@ -2444,14 +2394,6 @@ void ui_check_but(uiBut *but) break; - case BUT_TOGDUAL: - /* trying to get the dual-icon to left of text... not very nice */ - if (but->str[0]) { - BLI_strncpy(but->drawstr, " ", UI_MAX_DRAW_STR); - BLI_strncpy(but->drawstr + 2, but->str, UI_MAX_DRAW_STR - 2); - } - break; - case HSVCUBE: case HSVCIRCLE: break; @@ -2771,7 +2713,7 @@ static uiBut *ui_def_but(uiBlock *block, int type, int retval, const char *str, but->pos = -1; /* cursor invisible */ - if (ELEM3(but->type, NUM, NUMABS, NUMSLI)) { /* add a space to name */ + if (ELEM(but->type, NUM, NUMSLI)) { /* add a space to name */ /* slen remains unchanged from previous assignment, ensure this stays true */ if (slen > 0 && slen < UI_MAX_NAME_STR - 2) { if (but->str[slen - 1] != ' ') { @@ -2782,13 +2724,10 @@ static uiBut *ui_def_but(uiBlock *block, int type, int retval, const char *str, } if ((block->flag & UI_BLOCK_LOOP) || - ELEM9(but->type, MENU, TEX, LABEL, IDPOIN, BLOCK, BUTM, SEARCH_MENU, PROGRESSBAR, SEARCH_MENU_UNLINK)) + ELEM8(but->type, MENU, TEX, LABEL, BLOCK, BUTM, SEARCH_MENU, PROGRESSBAR, SEARCH_MENU_UNLINK)) { but->flag |= (UI_TEXT_LEFT | UI_ICON_LEFT); } - else if (but->type == BUT_TOGDUAL) { - but->flag |= UI_ICON_LEFT; - } but->flag |= (block->flag & UI_BUT_ALIGN); @@ -3164,26 +3103,6 @@ void autocomplete_end(AutoComplete *autocpl, char *autoname) MEM_freeN(autocpl); } -/* autocomplete callback for ID buttons */ -static void autocomplete_id(bContext *C, char *str, void *arg_v) -{ - int blocktype = (intptr_t)arg_v; - ListBase *listb = which_libbase(CTX_data_main(C), blocktype); - - if (listb == NULL) return; - - /* search if str matches the beginning of an ID struct */ - if (str[0]) { - AutoComplete *autocpl = autocomplete_begin(str, MAX_ID_NAME - 2); - ID *id; - - for (id = listb->first; id; id = id->next) - autocomplete_do_name(autocpl, id->name + 2); - - autocomplete_end(autocpl, str); - } -} - static void ui_check_but_and_iconize(uiBut *but, int icon) { if (icon) { @@ -3675,19 +3594,6 @@ void uiButSetCompleteFunc(uiBut *but, uiButCompleteFunc func, void *arg) but->autofunc_arg = arg; } -uiBut *uiDefIDPoinBut(uiBlock *block, uiIDPoinFuncFP func, short blocktype, int retval, const char *str, int x, int y, short width, short height, void *idpp, const char *tip) -{ - uiBut *but = ui_def_but(block, IDPOIN, retval, str, x, y, width, height, NULL, 0.0, 0.0, 0.0, 0.0, tip); - but->idpoin_func = func; - but->idpoin_idpp = (ID **) idpp; - ui_check_but(but); - - if (blocktype) - uiButSetCompleteFunc(but, autocomplete_id, (void *)(intptr_t)blocktype); - - return but; -} - uiBut *uiDefBlockBut(uiBlock *block, uiBlockCreateFunc func, void *arg, const char *str, int x, int y, short width, short height, const char *tip) { uiBut *but = ui_def_but(block, BLOCK, 0, str, x, y, width, height, arg, 0.0, 0.0, 0.0, 0.0, tip); diff --git a/source/blender/editors/interface/interface_handlers.c b/source/blender/editors/interface/interface_handlers.c index 0d8c11c0036..d431115d84e 100644 --- a/source/blender/editors/interface/interface_handlers.c +++ b/source/blender/editors/interface/interface_handlers.c @@ -321,7 +321,7 @@ static uiBut *ui_but_last(uiBlock *block) static bool ui_is_a_warp_but(uiBut *but) { if (U.uiflag & USER_CONTINUOUS_MOUSE) { - if (ELEM7(but->type, NUM, NUMSLI, NUMABS, HSVCIRCLE, TRACKPREVIEW, HSVCUBE, BUT_CURVE)) { + if (ELEM6(but->type, NUM, NUMSLI, HSVCIRCLE, TRACKPREVIEW, HSVCUBE, BUT_CURVE)) { return true; } } @@ -431,7 +431,7 @@ static void ui_apply_undo(uiBut *but) /* define which string to use for undo */ if (ELEM(but->type, LINK, INLINK)) str = "Add button link"; - else if (ELEM(but->type, MENU, ICONTEXTROW)) str = but->drawstr; + else if (but->type == MENU) str = but->drawstr; else if (but->drawstr[0]) str = but->drawstr; else str = but->tip; @@ -544,7 +544,7 @@ static void ui_apply_but_BUTM(bContext *C, uiBut *but, uiHandleButtonData *data) static void ui_apply_but_BLOCK(bContext *C, uiBut *but, uiHandleButtonData *data) { - if (ELEM3(but->type, MENU, ICONROW, ICONTEXTROW)) + if (but->type == MENU) ui_set_but_val(but, data->value); ui_check_but(but); @@ -558,16 +558,6 @@ static void ui_apply_but_TOG(bContext *C, uiBut *but, uiHandleButtonData *data) double value; int w, lvalue, push; - /* local hack... */ - if (but->type == BUT_TOGDUAL && data->togdual) { - if (but->pointype == UI_BUT_POIN_SHORT) { - but->poin += 2; - } - else if (but->pointype == UI_BUT_POIN_INT) { - but->poin += 4; - } - } - value = ui_get_but_val(but); lvalue = (int)value; @@ -576,17 +566,6 @@ static void ui_apply_but_TOG(bContext *C, uiBut *but, uiHandleButtonData *data) if (w) lvalue = UI_BITBUT_CLR(lvalue, but->bitnr); else lvalue = UI_BITBUT_SET(lvalue, but->bitnr); - if (but->type == TOGR) { - if (!data->togonly) { - lvalue = 1 << (but->bitnr); - - ui_set_but_val(but, (double)lvalue); - } - else { - if (lvalue == 0) lvalue = 1 << (but->bitnr); - } - } - ui_set_but_val(but, (double)lvalue); if (but->type == ICONTOG || but->type == ICONTOGN) ui_check_but(but); } @@ -600,16 +579,6 @@ static void ui_apply_but_TOG(bContext *C, uiBut *but, uiHandleButtonData *data) if (but->type == ICONTOG || but->type == ICONTOGN) ui_check_but(but); } - /* end local hack... */ - if (but->type == BUT_TOGDUAL && data->togdual) { - if (but->pointype == UI_BUT_POIN_SHORT) { - but->poin -= 2; - } - else if (but->pointype == UI_BUT_POIN_INT) { - but->poin -= 4; - } - } - ui_apply_but_func(C, but); data->retval = but->retval; @@ -673,41 +642,6 @@ static void ui_apply_but_NUM(bContext *C, uiBut *but, uiHandleButtonData *data) data->applied = true; } -static void ui_apply_but_TOG3(bContext *C, uiBut *but, uiHandleButtonData *data) -{ - if (but->pointype == UI_BUT_POIN_SHORT) { - short *sp = (short *)but->poin; - - if (UI_BITBUT_TEST(sp[1], but->bitnr)) { - sp[1] = UI_BITBUT_CLR(sp[1], but->bitnr); - sp[0] = UI_BITBUT_CLR(sp[0], but->bitnr); - } - else if (UI_BITBUT_TEST(sp[0], but->bitnr)) { - sp[1] = UI_BITBUT_SET(sp[1], but->bitnr); - } - else { - sp[0] = UI_BITBUT_SET(sp[0], but->bitnr); - } - } - else { - if (UI_BITBUT_TEST(*(but->poin + 2), but->bitnr)) { - *(but->poin + 2) = UI_BITBUT_CLR(*(but->poin + 2), but->bitnr); - *(but->poin) = UI_BITBUT_CLR(*(but->poin), but->bitnr); - } - else if (UI_BITBUT_TEST(*(but->poin), but->bitnr)) { - *(but->poin + 2) = UI_BITBUT_SET(*(but->poin + 2), but->bitnr); - } - else { - *(but->poin) = UI_BITBUT_SET(*(but->poin), but->bitnr); - } - } - - ui_check_but(but); - ui_apply_but_func(C, but); - data->retval = but->retval; - data->applied = true; -} - static void ui_apply_but_VEC(bContext *C, uiBut *but, uiHandleButtonData *data) { ui_set_but_vectorf(but, data->vec); @@ -732,24 +666,6 @@ static void ui_apply_but_CURVE(bContext *C, uiBut *but, uiHandleButtonData *data data->applied = true; } -static void ui_apply_but_IDPOIN(bContext *C, uiBut *but, uiHandleButtonData *data) -{ - ui_set_but_string(C, but, data->str); - ui_check_but(but); - ui_apply_but_func(C, but); - data->retval = but->retval; - data->applied = true; -} - -#ifdef WITH_INTERNATIONAL -static void ui_apply_but_CHARTAB(bContext *C, uiBut *but, uiHandleButtonData *data) -{ - ui_apply_but_func(C, but); - data->retval = but->retval; - data->applied = true; -} -#endif - /* ****************** drag drop code *********************** */ #ifdef USE_DRAG_TOGGLE @@ -1292,11 +1208,9 @@ static void ui_apply_button(bContext *C, uiBlock *block, uiBut *but, uiHandleBut break; case TOGBUT: case TOG: - case TOGR: case ICONTOG: case ICONTOGN: case TOGN: - case BUT_TOGDUAL: case OPTION: case OPTIONN: ui_apply_but_TOG(C, but, data); @@ -1307,17 +1221,10 @@ static void ui_apply_button(bContext *C, uiBlock *block, uiBut *but, uiHandleBut break; case SCROLL: case NUM: - case NUMABS: - case SLI: case NUMSLI: ui_apply_but_NUM(C, but, data); break; - case TOG3: - ui_apply_but_TOG3(C, but, data); - break; case MENU: - case ICONROW: - case ICONTEXTROW: case BLOCK: case PULLDOWN: ui_apply_but_BLOCK(C, but, data); @@ -1342,14 +1249,6 @@ static void ui_apply_button(bContext *C, uiBlock *block, uiBut *but, uiHandleBut case BUT_CURVE: ui_apply_but_CURVE(C, but, data); break; - case IDPOIN: - ui_apply_but_IDPOIN(C, but, data); - break; -#ifdef WITH_INTERNATIONAL - case CHARTAB: - ui_apply_but_CHARTAB(C, but, data); - break; -#endif case KEYEVT: case HOTKEYEVT: ui_apply_but_BUT(C, but, data); @@ -1392,7 +1291,7 @@ static void ui_but_drop(bContext *C, const wmEvent *event, uiBut *but, uiHandleB for (wmd = drags->first; wmd; wmd = wmd->next) { if (wmd->type == WM_DRAG_ID) { /* align these types with UI_but_active_drop_name */ - if (ELEM4(but->type, TEX, IDPOIN, SEARCH_MENU, SEARCH_MENU_UNLINK)) { + if (ELEM3(but->type, TEX, SEARCH_MENU, SEARCH_MENU_UNLINK)) { ID *id = (ID *)wmd->poin; if (but->poin == NULL && but->rnapoin.data == NULL) {} @@ -1433,7 +1332,7 @@ static void ui_but_copy_paste(bContext *C, uiBut *but, uiHandleButtonData *data, } /* numeric value */ - if (ELEM3(but->type, NUM, NUMABS, NUMSLI)) { + if (ELEM(but->type, NUM, NUMSLI)) { if (but->poin == NULL && but->rnapoin.data == NULL) { /* pass */ @@ -1497,7 +1396,7 @@ static void ui_but_copy_paste(bContext *C, uiBut *but, uiHandleButtonData *data, } /* text/string and ID data */ - else if (ELEM4(but->type, TEX, IDPOIN, SEARCH_MENU, SEARCH_MENU_UNLINK)) { + else if (ELEM3(but->type, TEX, SEARCH_MENU, SEARCH_MENU_UNLINK)) { uiHandleButtonData *active_data = but->active; if (but->poin == NULL && but->rnapoin.data == NULL) { @@ -2041,7 +1940,7 @@ static void ui_textedit_begin(bContext *C, uiBut *but, uiHandleButtonData *data) BLI_str_rstrip_float_zero(data->str, '\0'); } - if (ELEM3(but->type, NUM, NUMABS, NUMSLI)) { + if (ELEM(but->type, NUM, NUMSLI)) { ui_convert_to_unit_alt_name(but, data->str, data->maxlen); } @@ -2113,7 +2012,7 @@ static void ui_textedit_next_but(uiBlock *block, uiBut *actbut, uiHandleButtonDa return; for (but = actbut->next; but; but = but->next) { - if (ELEM7(but->type, TEX, NUM, NUMABS, NUMSLI, IDPOIN, SEARCH_MENU, SEARCH_MENU_UNLINK)) { + if (ELEM5(but->type, TEX, NUM, NUMSLI, SEARCH_MENU, SEARCH_MENU_UNLINK)) { if (!(but->flag & UI_BUT_DISABLED)) { data->postbut = but; data->posttype = BUTTON_ACTIVATE_TEXT_EDITING; @@ -2122,7 +2021,7 @@ static void ui_textedit_next_but(uiBlock *block, uiBut *actbut, uiHandleButtonDa } } for (but = block->buttons.first; but != actbut; but = but->next) { - if (ELEM7(but->type, TEX, NUM, NUMABS, NUMSLI, IDPOIN, SEARCH_MENU, SEARCH_MENU_UNLINK)) { + if (ELEM5(but->type, TEX, NUM, NUMSLI, SEARCH_MENU, SEARCH_MENU_UNLINK)) { if (!(but->flag & UI_BUT_DISABLED)) { data->postbut = but; data->posttype = BUTTON_ACTIVATE_TEXT_EDITING; @@ -2141,7 +2040,7 @@ static void ui_textedit_prev_but(uiBlock *block, uiBut *actbut, uiHandleButtonDa return; for (but = actbut->prev; but; but = but->prev) { - if (ELEM7(but->type, TEX, NUM, NUMABS, NUMSLI, IDPOIN, SEARCH_MENU, SEARCH_MENU_UNLINK)) { + if (ELEM5(but->type, TEX, NUM, NUMSLI, SEARCH_MENU, SEARCH_MENU_UNLINK)) { if (!(but->flag & UI_BUT_DISABLED)) { data->postbut = but; data->posttype = BUTTON_ACTIVATE_TEXT_EDITING; @@ -2150,7 +2049,7 @@ static void ui_textedit_prev_but(uiBlock *block, uiBut *actbut, uiHandleButtonDa } } for (but = block->buttons.last; but != actbut; but = but->prev) { - if (ELEM7(but->type, TEX, NUM, NUMABS, NUMSLI, IDPOIN, SEARCH_MENU, SEARCH_MENU_UNLINK)) { + if (ELEM5(but->type, TEX, NUM, NUMSLI, SEARCH_MENU, SEARCH_MENU_UNLINK)) { if (!(but->flag & UI_BUT_DISABLED)) { data->postbut = but; data->posttype = BUTTON_ACTIVATE_TEXT_EDITING; @@ -2345,7 +2244,7 @@ static void ui_do_but_textedit(bContext *C, uiBlock *block, uiBut *but, uiHandle /* exception that's useful for number buttons, some keyboard * numpads have a comma instead of a period */ - if (ELEM3(but->type, NUM, NUMABS, NUMSLI)) { /* could use data->min*/ + if (ELEM(but->type, NUM, NUMSLI)) { /* could use data->min*/ if (event->type == PADPERIOD && ascii == ',') { ascii = '.'; utf8_buf = NULL; /* force ascii fallback */ @@ -2517,14 +2416,6 @@ static void ui_blockopen_begin(bContext *C, uiBut *but, uiHandleButtonData *data menustr = but->str; } break; - case ICONROW: - menufunc = ui_block_func_ICONROW; - arg = but; - break; - case ICONTEXTROW: - menufunc = ui_block_func_ICONTEXTROW; - arg = but; - break; case COLOR: ui_get_but_vectorf(but, data->origvec); copy_v3_v3(data->vec, data->origvec); @@ -3530,7 +3421,7 @@ static int ui_do_but_BLOCK(bContext *C, uiBut *but, uiHandleButtonData *data, co button_activate_state(C, but, BUTTON_STATE_MENU_OPEN); return WM_UI_HANDLER_BREAK; } - else if (ELEM3(but->type, MENU, ICONROW, ICONTEXTROW)) { + else if (but->type == MENU) { if (ELEM(event->type, WHEELDOWNMOUSE, WHEELUPMOUSE) && event->alt) { const int direction = (event->type == WHEELDOWNMOUSE) ? -1 : 1; @@ -4793,112 +4684,6 @@ static int ui_do_but_VECTORSCOPE(bContext *C, uiBlock *block, uiBut *but, uiHand return WM_UI_HANDLER_CONTINUE; } -#ifdef WITH_INTERNATIONAL -static int ui_do_but_CHARTAB(bContext *UNUSED(C), uiBlock *UNUSED(block), uiBut *UNUSED(but), uiHandleButtonData *UNUSED(data), const wmEvent *UNUSED(event)) -{ - /* XXX 2.50 bad global and state access */ -#if 0 - float sx, sy, ex, ey; - float width, height; - float butw, buth; - int mx, my, x, y, cs, che; - - mx = event->x; - my = event->y; - ui_window_to_block(data->region, block, &mx, &my); - - if (data->state == BUTTON_STATE_HIGHLIGHT) { - if (ELEM3(event->type, LEFTMOUSE, PADENTER, RETKEY) && event->val == KM_PRESS) { - /* Calculate the size of the button */ - width = abs(BLI_rctf_size_x(&but->rect)); - height = abs(BLI_rctf_size_y(&but->rect)); - - butw = floor(width / 12); - buth = floor(height / 6); - - /* Initialize variables */ - sx = but->rect.xmin; - ex = but->rect.xmin + butw; - sy = but->rect.ymin + height - buth; - ey = but->rect.ymin + height; - - cs = G.charstart; - - /* And the character is */ - x = (int) ((mx / butw) - 0.5); - y = (int) (6 - ((my / buth) - 0.5)); - - che = cs + (y * 12) + x; - - if (che > G.charmax) - che = 0; - - if (G.obedit) { - do_textedit(0, 0, che); - } - - button_activate_state(C, but, BUTTON_STATE_EXIT); - return WM_UI_HANDLER_BREAK; - } - else if (ELEM(event->type, WHEELUPMOUSE, PAGEUPKEY)) { - for (but = block->buttons.first; but; but = but->next) { - if (but->type == CHARTAB) { - G.charstart = G.charstart - (12 * 6); - if (G.charstart < 0) - G.charstart = 0; - if (G.charstart < G.charmin) - G.charstart = G.charmin; - ui_draw_but(but); - - //Really nasty... to update the num button from the same butblock - for (bt = block->buttons.first; bt; bt = bt->next) - { - if (ELEM(bt->type, NUM, NUMABS)) { - ui_check_but(bt); - ui_draw_but(bt); - } - } - retval = UI_CONT; - break; - } - } - - return WM_UI_HANDLER_BREAK; - } - else if (ELEM(event->type, WHEELDOWNMOUSE, PAGEDOWNKEY)) { - for (but = block->buttons.first; but; but = but->next) { - if (but->type == CHARTAB) { - G.charstart = G.charstart + (12 * 6); - if (G.charstart > (0xffff - 12 * 6)) - G.charstart = 0xffff - (12 * 6); - if (G.charstart > G.charmax - 12 * 6) - G.charstart = G.charmax - 12 * 6; - ui_draw_but(but); - - for (bt = block->buttons.first; bt; bt = bt->next) - { - if (ELEM(bt->type, NUM, NUMABS)) { - ui_check_but(bt); - ui_draw_but(bt); - } - } - - but->flag |= UI_ACTIVE; - retval = UI_RETURN_OK; - break; - } - } - - return WM_UI_HANDLER_BREAK; - } - } -#endif - - return WM_UI_HANDLER_CONTINUE; -} -#endif - - static int ui_do_but_LINK(bContext *C, uiBut *but, uiHandleButtonData *data, const wmEvent *event) { VECCOPY2D(but->linkto, event->mval); @@ -5552,11 +5337,9 @@ static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, const wmEvent * break; case TOGBUT: case TOG: - case TOGR: case ICONTOG: case ICONTOGN: case TOGN: - case BUT_TOGDUAL: case OPTION: case OPTIONN: retval = ui_do_but_TOG(C, but, data, event); @@ -5565,17 +5348,14 @@ static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, const wmEvent * retval = ui_do_but_SCROLL(C, block, but, data, event); break; case NUM: - case NUMABS: retval = ui_do_but_NUM(C, block, but, data, event); break; - case SLI: case NUMSLI: retval = ui_do_but_SLI(C, block, but, data, event); break; case ROUNDBOX: case LISTBOX: case LABEL: - case TOG3: case ROW: case LISTROW: case BUT_IMAGE: @@ -5593,7 +5373,6 @@ static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, const wmEvent * retval = ui_do_but_VECTORSCOPE(C, block, but, data, event); break; case TEX: - case IDPOIN: case SEARCH_MENU: retval = ui_do_but_TEX(C, block, but, data, event); break; @@ -5601,8 +5380,6 @@ static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, const wmEvent * retval = ui_do_but_SEARCH_UNLINK(C, block, but, data, event); break; case MENU: - case ICONROW: - case ICONTEXTROW: case BLOCK: case PULLDOWN: retval = ui_do_but_BLOCK(C, but, data, event); @@ -5631,16 +5408,6 @@ static int ui_do_button(bContext *C, uiBlock *block, uiBut *but, const wmEvent * case HSVCIRCLE: retval = ui_do_but_HSVCIRCLE(C, block, but, data, event); break; -#ifdef WITH_INTERNATIONAL - case CHARTAB: - retval = ui_do_but_CHARTAB(C, block, but, data, event); - break; -#else - /* do nothing */ - case CHARTAB: - break; -#endif - case LINK: case INLINK: retval = ui_do_but_LINK(C, but, data, event); @@ -5713,7 +5480,7 @@ int UI_but_active_drop_name(bContext *C) uiBut *but = ui_but_find_activated(ar); if (but) { - if (ELEM4(but->type, TEX, IDPOIN, SEARCH_MENU, SEARCH_MENU_UNLINK)) + if (ELEM3(but->type, TEX, SEARCH_MENU, SEARCH_MENU_UNLINK)) return 1; } @@ -5923,7 +5690,7 @@ static void button_activate_state(bContext *C, uiBut *but, uiHandleButtonState s button_tooltip_timer_reset(C, but); /* automatic open pulldown block timer */ - if (ELEM3(but->type, BLOCK, PULLDOWN, ICONTEXTROW)) { + if (ELEM(but->type, BLOCK, PULLDOWN)) { if (data->used_mouse && !data->autoopentimer) { int time; @@ -6733,7 +6500,7 @@ static void ui_handle_button_return_submenu(bContext *C, const wmEvent *event, u if ((menu->menuretval & UI_RETURN_OK) || (menu->menuretval & UI_RETURN_UPDATE)) { if (but->type == COLOR) copy_v3_v3(data->vec, menu->retvec); - else if (ELEM3(but->type, MENU, ICONROW, ICONTEXTROW)) + else if (but->type == MENU) data->value = menu->retvalue; } @@ -7207,11 +6974,6 @@ static int ui_handle_menu_event(bContext *C, const wmEvent *event, uiPopupBlockH doit = TRUE; } } - /* exception for menus like layer buts, with button aligning they're not drawn in order */ - else if (but->type == TOGR) { - if (but->bitnr == act - 1) - doit = TRUE; - } else if (count == act) { doit = TRUE; } diff --git a/source/blender/editors/interface/interface_intern.h b/source/blender/editors/interface/interface_intern.h index 5621aa2d0cc..14a4d42946c 100644 --- a/source/blender/editors/interface/interface_intern.h +++ b/source/blender/editors/interface/interface_intern.h @@ -230,10 +230,6 @@ struct uiBut { short modifier_key; short iconadd; - /* IDPOIN data */ - uiIDPoinFuncFP idpoin_func; - ID **idpoin_idpp; - /* BLOCK data */ uiBlockCreateFunc block_create_func; @@ -460,8 +456,6 @@ struct uiPopupBlockHandle { }; uiBlock *ui_block_func_COLOR(struct bContext *C, uiPopupBlockHandle *handle, void *arg_but); -void ui_block_func_ICONROW(struct bContext *C, uiLayout *layout, void *arg_but); -void ui_block_func_ICONTEXTROW(struct bContext *C, uiLayout *layout, void *arg_but); struct ARegion *ui_tooltip_create(struct bContext *C, struct ARegion *butregion, uiBut *but); void ui_tooltip_free(struct bContext *C, struct ARegion *ar); diff --git a/source/blender/editors/interface/interface_regions.c b/source/blender/editors/interface/interface_regions.c index 3b9574156eb..8621a61a2d1 100644 --- a/source/blender/editors/interface/interface_regions.c +++ b/source/blender/editors/interface/interface_regions.c @@ -481,7 +481,7 @@ ARegion *ui_tooltip_create(bContext *C, ARegion *butregion, uiBut *but) data->totline++; } - if (ELEM4(but->type, TEX, IDPOIN, SEARCH_MENU, SEARCH_MENU_UNLINK)) { + if (ELEM3(but->type, TEX, SEARCH_MENU, SEARCH_MENU_UNLINK)) { /* full string */ ui_get_but_string(but, buf, sizeof(buf)); if (buf[0]) { @@ -1866,53 +1866,6 @@ static void ui_block_func_MENUSTR(bContext *UNUSED(C), uiLayout *layout, void *a menudata_free(md); } -void ui_block_func_ICONROW(bContext *UNUSED(C), uiLayout *layout, void *arg_but) -{ - uiBlock *block = uiLayoutGetBlock(layout); - uiPopupBlockHandle *handle = block->handle; - uiBut *but = arg_but; - int a; - - uiBlockSetFlag(block, UI_BLOCK_MOVEMOUSE_QUIT); - - for (a = (int)but->hardmin; a <= (int)but->hardmax; a++) - uiDefIconButF(block, BUTM, B_NOP, but->icon + (a - but->hardmin), 0, 0, UI_UNIT_X * 5, UI_UNIT_Y, - &handle->retvalue, (float)a, 0.0, 0, -1, ""); -} - -void ui_block_func_ICONTEXTROW(bContext *UNUSED(C), uiLayout *layout, void *arg_but) -{ - uiBlock *block = uiLayoutGetBlock(layout); - uiPopupBlockHandle *handle = block->handle; - uiBut *but = arg_but, *bt; - MenuData *md; - MenuEntry *entry; - int a; - - uiBlockSetFlag(block, UI_BLOCK_MOVEMOUSE_QUIT); - - md = decompose_menu_string(but->str); - - /* title */ - if (md->title) { - bt = uiDefBut(block, LABEL, 0, md->title, 0, 0, UI_UNIT_X * 5, UI_UNIT_Y, NULL, 0.0, 0.0, 0, 0, ""); - bt->flag = UI_TEXT_LEFT; - } - - /* loop through the menu options and draw them out with icons & text labels */ - for (a = 0; a < md->nitems; a++) { - entry = &md->items[md->nitems - a - 1]; - - if (entry->sepr) - uiItemS(layout); - else - uiDefIconTextButF(block, BUTM, B_NOP, (short)((but->icon) + (entry->retval - but->hardmin)), entry->str, - 0, 0, UI_UNIT_X * 5, UI_UNIT_Y, &handle->retvalue, (float) entry->retval, 0.0, 0, -1, ""); - } - - menudata_free(md); -} - #if 0 static void ui_warp_pointer(int x, int y) { diff --git a/source/blender/editors/interface/interface_utils.c b/source/blender/editors/interface/interface_utils.c index 3bf1a1a7701..7da12277372 100644 --- a/source/blender/editors/interface/interface_utils.c +++ b/source/blender/editors/interface/interface_utils.c @@ -113,7 +113,7 @@ uiBut *uiDefAutoButR(uiBlock *block, PointerRNA *ptr, PropertyRNA *prop, int ind if (icon == ICON_DOT) icon = 0; - but = uiDefIconTextButR_prop(block, IDPOIN, 0, icon, name, x1, y1, x2, y2, ptr, prop, index, 0, 0, -1, -1, NULL); + but = uiDefIconTextButR_prop(block, SEARCH_MENU, 0, icon, name, x1, y1, x2, y2, ptr, prop, index, 0, 0, -1, -1, NULL); break; } case PROP_COLLECTION: diff --git a/source/blender/editors/interface/interface_widgets.c b/source/blender/editors/interface/interface_widgets.c index c8062cd3ed2..00eabad729e 100644 --- a/source/blender/editors/interface/interface_widgets.c +++ b/source/blender/editors/interface/interface_widgets.c @@ -891,23 +891,12 @@ static void widget_draw_icon(uiBut *but, BIFIconID icon, float alpha, const rcti float ofs = 1.0f / aspect; if (but->flag & UI_ICON_LEFT) { - if (but->type == BUT_TOGDUAL) { - if (but->drawstr[0]) { - xs = rect->xmin - ofs; - } - else { - xs = (rect->xmin + rect->xmax - height) / 2.0f; - } - } - else if (but->block->flag & UI_BLOCK_LOOP) { + if (but->block->flag & UI_BLOCK_LOOP) { if (ELEM(but->type, SEARCH_MENU, SEARCH_MENU_UNLINK)) xs = rect->xmin + 4.0f * ofs; else xs = rect->xmin + ofs; } - else if ((but->type == ICONROW) || (but->type == ICONTEXTROW)) { - xs = rect->xmin + 3.0f * ofs; - } else { xs = rect->xmin + 4.0f * ofs; } @@ -1220,13 +1209,12 @@ static void widget_draw_text(uiFontStyle *fstyle, uiWidgetColors *wcol, uiBut *b #if 0 ui_rasterpos_safe(x, y, but->aspect); - if (but->type == IDPOIN) transopts = 0; /* no translation, of course! */ - else transopts = ui_translate_buttons(); + transopts = ui_translate_buttons(); #endif /* cut string in 2 parts - only for menu entries */ if ((but->block->flag & UI_BLOCK_LOOP)) { - if (ELEM5(but->type, SLI, NUM, TEX, NUMSLI, NUMABS) == 0) { + if (ELEM3(but->type, NUM, TEX, NUMSLI) == 0) { cpoin = strchr(but->drawstr, '|'); if (cpoin) *cpoin = 0; } @@ -1292,7 +1280,7 @@ static void widget_draw_text_icon(uiFontStyle *fstyle, uiWidgetColors *wcol, uiB if (but->editstr && but->pos >= 0) { ui_text_clip_cursor(fstyle, but, rect); } - else if (ELEM4(but->type, NUM, NUMABS, NUMSLI, SLI)) { + else if (ELEM(but->type, NUM, NUMSLI)) { ui_text_clip_right_label(fstyle, but, rect); } else if (ELEM3(but->type, TEX, SEARCH_MENU, SEARCH_MENU_UNLINK)) { @@ -1306,64 +1294,46 @@ static void widget_draw_text_icon(uiFontStyle *fstyle, uiWidgetColors *wcol, uiB } /* check for button text label */ - if (but->type == ICONTEXTROW) { - widget_draw_icon(but, (BIFIconID) (but->icon + but->iconadd), 1.0f, rect); + if (but->type == MENU && (but->flag & UI_BUT_NODE_LINK)) { + int tmp = rect->xmin; + rect->xmin = rect->xmax - BLI_rcti_size_y(rect) - 1; + widget_draw_icon(but, ICON_LAYER_USED, alpha, rect); + rect->xmin = tmp; } - else { - if (but->type == BUT_TOGDUAL) { - int dualset = 0; - if (but->pointype == UI_BUT_POIN_SHORT) { - dualset = UI_BITBUT_TEST(*(((short *)but->poin) + 1), but->bitnr); - } - else if (but->pointype == UI_BUT_POIN_INT) { - dualset = UI_BITBUT_TEST(*(((int *)but->poin) + 1), but->bitnr); - } + /* If there's an icon too (made with uiDefIconTextBut) then draw the icon + * and offset the text label to accommodate it */ - widget_draw_icon(but, ICON_DOT, dualset ? alpha : 0.25f, rect); - } - else if (but->type == MENU && (but->flag & UI_BUT_NODE_LINK)) { - int tmp = rect->xmin; - rect->xmin = rect->xmax - BLI_rcti_size_y(rect) - 1; - widget_draw_icon(but, ICON_LAYER_USED, alpha, rect); - rect->xmin = tmp; - } + if (but->flag & UI_HAS_ICON) { + widget_draw_icon(but, but->icon + but->iconadd, alpha, rect); + + /* icons default draw 0.8f x height */ + rect->xmin += (int)(0.8f * BLI_rcti_size_y(rect)); - /* If there's an icon too (made with uiDefIconTextBut) then draw the icon - * and offset the text label to accommodate it */ - - if (but->flag & UI_HAS_ICON) { - widget_draw_icon(but, but->icon + but->iconadd, alpha, rect); - - /* icons default draw 0.8f x height */ - rect->xmin += (int)(0.8f * BLI_rcti_size_y(rect)); - - if (but->editstr || (but->flag & UI_TEXT_LEFT)) { - rect->xmin += (UI_TEXT_MARGIN_X * U.widget_unit) / but->block->aspect; - } - else if ((but->flag & UI_TEXT_RIGHT)) { - rect->xmax -= (UI_TEXT_MARGIN_X * U.widget_unit) / but->block->aspect; - } - } - else if ((but->flag & UI_TEXT_LEFT)) { + if (but->editstr || (but->flag & UI_TEXT_LEFT)) { rect->xmin += (UI_TEXT_MARGIN_X * U.widget_unit) / but->block->aspect; } else if ((but->flag & UI_TEXT_RIGHT)) { rect->xmax -= (UI_TEXT_MARGIN_X * U.widget_unit) / but->block->aspect; } - - /* unlink icon for this button type */ - if (but->type == SEARCH_MENU_UNLINK && !but->editstr && but->drawstr[0]) { - rcti temp = *rect; - - temp.xmin = temp.xmax - (BLI_rcti_size_y(rect) * 1.08f); - widget_draw_icon(but, ICON_X, alpha, &temp); - } - - /* always draw text for textbutton cursor */ - widget_draw_text(fstyle, wcol, but, rect); - } + else if ((but->flag & UI_TEXT_LEFT)) { + rect->xmin += (UI_TEXT_MARGIN_X * U.widget_unit) / but->block->aspect; + } + else if ((but->flag & UI_TEXT_RIGHT)) { + rect->xmax -= (UI_TEXT_MARGIN_X * U.widget_unit) / but->block->aspect; + } + + /* unlink icon for this button type */ + if (but->type == SEARCH_MENU_UNLINK && !but->editstr && but->drawstr[0]) { + rcti temp = *rect; + + temp.xmin = temp.xmax - (BLI_rcti_size_y(rect) * 1.08f); + widget_draw_icon(but, ICON_X, alpha, &temp); + } + + /* always draw text for textbutton cursor */ + widget_draw_text(fstyle, wcol, but, rect); ui_button_text_password_hide(password_str, but, TRUE); } @@ -3279,7 +3249,6 @@ void ui_draw_but(const bContext *C, ARegion *ar, uiStyle *style, uiBut *but, rct case TOGBUT: case TOG: case TOGN: - case TOG3: wt = widget_type(UI_WTYPE_TOGGLE); break; @@ -3300,7 +3269,6 @@ void ui_draw_but(const bContext *C, ARegion *ar, uiStyle *style, uiBut *but, rct case MENU: case BLOCK: - case ICONTEXTROW: /* new node-link button, not active yet XXX */ if (but->flag & UI_BUT_NODE_LINK) wt = widget_type(UI_WTYPE_MENU_NODE_LINK); diff --git a/source/blender/editors/mesh/editface.c b/source/blender/editors/mesh/editface.c index a7afa3f108b..234a45856d2 100644 --- a/source/blender/editors/mesh/editface.c +++ b/source/blender/editors/mesh/editface.c @@ -395,79 +395,6 @@ bool paintface_minmax(Object *ob, float r_min[3], float r_max[3]) return ok; } -/* *************************************** */ -#if 0 -static void seam_edgehash_insert_face(EdgeHash *ehash, MPoly *mp, MLoop *loopstart) -{ - MLoop *ml1, *ml2; - int a; - - for (a = 0; a < mp->totloop; a++) { - ml1 = loopstart + a; - ml2 = loopstart + (a + 1) % mp->totloop; - - BLI_edgehash_insert(ehash, ml1->v, ml2->v, NULL); - } -} - -void seam_mark_clear_tface(Scene *scene, short mode) -{ - Mesh *me; - MPoly *mp; - MLoop *ml1, *ml2; - MEdge *med; - int a, b; - - me = BKE_mesh_from_object(OBACT); - if (me == 0 || me->totpoly == 0) return; - - if (mode == 0) - mode = pupmenu(IFACE_("Seams %t|Mark Border Seam %x1|Clear Seam %x2")); - - if (mode != 1 && mode != 2) - return; - - if (mode == 2) { - EdgeHash *ehash = BLI_edgehash_new(); - - for (a = 0, mp = me->mpoly; a < me->totpoly; a++, mp++) - if (!(mp->flag & ME_HIDE) && (mp->flag & ME_FACE_SEL)) - seam_edgehash_insert_face(ehash, mp, me->mloop + mp->loopstart); - - for (a = 0, med = me->medge; a < me->totedge; a++, med++) - if (BLI_edgehash_haskey(ehash, med->v1, med->v2)) - med->flag &= ~ME_SEAM; - - BLI_edgehash_free(ehash, NULL); - } - else { - /* mark edges that are on both selected and deselected faces */ - EdgeHash *ehash1 = BLI_edgehash_new(); - EdgeHash *ehash2 = BLI_edgehash_new(); - - for (a = 0, mp = me->mpoly; a < me->totpoly; a++, mp++) { - if ((mp->flag & ME_HIDE) || !(mp->flag & ME_FACE_SEL)) - seam_edgehash_insert_face(ehash1, mp, me->mloop + mp->loopstart); - else - seam_edgehash_insert_face(ehash2, mp, me->mloop + mp->loopstart); - } - - for (a = 0, med = me->medge; a < me->totedge; a++, med++) - if (BLI_edgehash_haskey(ehash1, med->v1, med->v2) && - BLI_edgehash_haskey(ehash2, med->v1, med->v2)) - med->flag |= ME_SEAM; - - BLI_edgehash_free(ehash1, NULL); - BLI_edgehash_free(ehash2, NULL); - } - -// XXX if (G.debug_value == 8) -// unwrap_lscm(1); - - me->drawflag |= ME_DRAWSEAMS; -} -#endif - bool paintface_mouse_select(struct bContext *C, Object *ob, const int mval[2], bool extend, bool deselect, bool toggle) { Mesh *me; diff --git a/source/blender/editors/mesh/editmesh_extrude.c b/source/blender/editors/mesh/editmesh_extrude.c index c1017dfce7c..cccf08cfe1a 100644 --- a/source/blender/editors/mesh/editmesh_extrude.c +++ b/source/blender/editors/mesh/editmesh_extrude.c @@ -329,36 +329,27 @@ static int edbm_extrude_mesh(Scene *scene, Object *obedit, BMEditMesh *em, wmOpe zero_v3(nor); - /* XXX If those popup menus were to be enabled again, please get rid of this "menu string" syntax! */ if (em->selectmode & SCE_SELECT_VERTEX) { if (em->bm->totvertsel == 0) nr = 0; else if (em->bm->totvertsel == 1) nr = 4; else if (em->bm->totedgesel == 0) nr = 4; else if (em->bm->totfacesel == 0) - nr = 3; /* pupmenu("Extrude %t|Only Edges %x3|Only Vertices %x4"); */ + nr = 3; else if (em->bm->totfacesel == 1) - nr = 1; /* pupmenu("Extrude %t|Region %x1|Only Edges% x3|Only Vertices %x4"); */ + nr = 1; else - nr = 1; /* pupmenu("Extrude %t|Region %x1|Individual Faces %x2|Only Edges %x3|Only Vertices %x4"); */ + nr = 1; } else if (em->selectmode & SCE_SELECT_EDGE) { if (em->bm->totedgesel == 0) nr = 0; nr = 1; -#if 0 - else if (em->totedgesel == 1) nr = 3; - else if (em->totfacesel == 0) nr = 3; - else if (em->totfacesel == 1) - nr = 1; /* pupmenu("Extrude %t|Region %x1|Only Edges %x3"); */ - else - nr = 1; /* pupmenu("Extrude %t|Region %x1|Individual Faces %x2|Only Edges %x3"); */ -#endif } else { if (em->bm->totfacesel == 0) nr = 0; else if (em->bm->totfacesel == 1) nr = 1; else - nr = 1; /* pupmenu("Extrude %t|Region %x1|Individual Faces %x2"); */ + nr = 1; } if (nr < 1) return 'g';