Toggle-Drag UI Feature

Dragging on toggle buttons can now be used to press multiple buttons at once, especially useful for layer and outliner buttons.


notes:
- automatically enabled for all toggle buttons
  (may change this if it becomes a problem).
- only buttons of the same type are pressed
  (helps avoid annoyances eg; dragging past layer buttons onto other 3d header buttons and pressing by accident).
- automatic axis locking - dragging will lock to X/Y depending on the initial drag direction,
  makes swipe motions work better, especially with the outliner.


implementation details:
- may re-implement as a region handler (currently its a modal operator).
- checking buttons in-between cursor motion events could be more efficient (but currently works ok).
- button execution needs to be improved
  (currently executing a button thats not under the mouse needed a workaround for passing uiHandleButtonData),
  requires further changes to UI code, will do next.
This commit is contained in:
2013-02-22 05:56:20 +00:00
parent b00c3b801b
commit a9e25ac433
6 changed files with 309 additions and 10 deletions

View File

@@ -1060,7 +1060,7 @@ class VIEW3D_PT_tools_weightpaint_options(Panel, View3DPaintPanel):
col.label("Show Zero Weights:")
rowsub = col.row()
rowsub.active = (not tool_settings.use_multipaint)
rowsub.prop(tool_settings, "vertex_group_user", text="Show Group Use", expand=True)
rowsub.prop(tool_settings, "vertex_group_user", expand=True)
self.unified_paint_settings(col, context)