Commit: d35c6cb50716b7104d0094e10f9de2d766bd3d22
Author: Hans Goudey
Date:   Thu Aug 1 09:27:16 2019 -0400
Branches: soc-2019-bevel-profiles
https://developer.blender.org/rBd35c6cb50716b7104d0094e10f9de2d766bd3d22

Profile Widget: Sometimes disable move / delete buttons

The position and delete sliders are disabled for the last and first buttons.

===================================================================

M       source/blender/editors/interface/interface_templates.c

===================================================================

diff --git a/source/blender/editors/interface/interface_templates.c 
b/source/blender/editors/interface/interface_templates.c
index 5e6e90f8a57..47bf88119aa 100644
--- a/source/blender/editors/interface/interface_templates.c
+++ b/source/blender/editors/interface/interface_templates.c
@@ -4531,7 +4531,7 @@ static void profilewidget_buttons_layout(uiLayout 
*layout, PointerRNA *ptr, RNAU
   uiBlock *block;
   uiBut *bt;
   int i, icon, path_width, path_height;
-  bool point_last_or_first;
+  bool point_last_or_first = false;
   rctf bounds;
 
   block = uiLayoutGetBlock(layout);
@@ -4618,6 +4618,7 @@ static void profilewidget_buttons_layout(uiLayout 
*layout, PointerRNA *ptr, RNAU
     }
 
     uiLayoutRow(layout, true);
+    UI_block_funcN_set(block, profilewidget_buttons_update, MEM_dupallocN(cb), 
prwdgt);
 
     /* Sharp / Smooth */
     bt = uiDefIconBut(block, UI_BTYPE_BUT, 0, ICON_LINCURVE, 0, 0, UI_UNIT_X, 
UI_UNIT_X, NULL,
@@ -4627,25 +4628,26 @@ static void profilewidget_buttons_layout(uiLayout 
*layout, PointerRNA *ptr, RNAU
                       0.0, 0.0, 0.0, 0.0, TIP_("Set the point's handle type to 
sharp."));
     UI_but_funcN_set(bt, profilewidget_buttons_setcurved, MEM_dupallocN(cb), 
prwdgt);
 
+    /* Position */
+    bt = uiDefButF(block, UI_BTYPE_NUM, 0, "X:", 0, 2 * UI_UNIT_Y, UI_UNIT_X * 
10, UI_UNIT_Y,
+              &point->x, bounds.xmin, bounds.xmax, 1, 5, "");
+    if (point_last_or_first) {
+      UI_but_flag_enable(bt, UI_BUT_DISABLED);
+    }
 
-    UI_block_funcN_set(block, profilewidget_buttons_update, MEM_dupallocN(cb), 
prwdgt);
-    /* HANS-QUESTION: I haven't been able to find out how to disable these 
buttons instead of
-     * not drawing them. */
-    if (!point_last_or_first) {
-
-      /* Position */
-      bt = uiDefButF(block, UI_BTYPE_NUM, 0, "X:", 0, 2 * UI_UNIT_Y, UI_UNIT_X 
* 10, UI_UNIT_Y,
-                &point->x, bounds.xmin, bounds.xmax, 1, 5, "");
-
-      uiDefButF(block, UI_BTYPE_NUM, 0, "Y:", 0, 1 * UI_UNIT_Y, UI_UNIT_X * 
10, UI_UNIT_Y,
-                &point->y, bounds.ymin, bounds.ymax, 1, 5, "");
-
-      /* Delete points */
-      bt = uiDefIconBut(block, UI_BTYPE_BUT, 0, ICON_X, 0, 0, UI_UNIT_X, 
UI_UNIT_X, NULL, 0.0, 0.0,
-                        0.0, 0.0, TIP_("Delete points"));
-      UI_but_funcN_set(bt, profilewidget_buttons_delete, MEM_dupallocN(cb), 
prwdgt);
+    bt = uiDefButF(block, UI_BTYPE_NUM, 0, "Y:", 0, 1 * UI_UNIT_Y, UI_UNIT_X * 
10, UI_UNIT_Y,
+              &point->y, bounds.ymin, bounds.ymax, 1, 5, "");
+    if (point_last_or_first) {
+      UI_but_flag_enable(bt, UI_BUT_DISABLED);
     }
 
+    /* Delete points */
+    bt = uiDefIconBut(block, UI_BTYPE_BUT, 0, ICON_X, 0, 0, UI_UNIT_X, 
UI_UNIT_X, NULL, 0.0, 0.0,
+                      0.0, 0.0, TIP_("Delete points"));
+    UI_but_funcN_set(bt, profilewidget_buttons_delete, MEM_dupallocN(cb), 
prwdgt);
+    if (point_last_or_first) {
+      UI_but_flag_enable(bt, UI_BUT_DISABLED);
+    }
   }
 
   uiItemR(layout, ptr, "sample_straight_edges", 0, NULL, ICON_NONE);

_______________________________________________
Bf-blender-cvs mailing list
Bf-blender-cvs@blender.org
https://lists.blender.org/mailman/listinfo/bf-blender-cvs

Reply via email to