Commit Graph

27 Commits

Author SHA1 Message Date
Antony Riakiotakis
028fd29eeb Pie Menus C code backend.
This commit merges the code in the pie-menu branch.

As per decisions taken the last few days, there are no pie menus
included and there will be an official add-on including overrides of
some keys with pie menus. However, people will now be able to use the
new code in python.

Full Documentation is in http://wiki.blender.org/index.php/Dev:Ref/

Thanks:
Campbell Barton, Dalai Felinto and Ton Roosendaal for the code review
and design comments

Jonathan Williamson, Pawel Lyczkowski, Pablo Vazquez among others for
suggestions during the development.

Special Thanks to Sean Olson, for his support, suggestions, testing and
merciless bugging so that I would finish the pie menu code. Without him
we wouldn't be here. Also to the rest of the developers of the original
python add-on, Patrick Moore and Dan Eicher and finally to Matt Ebb, who
did the research and first implementation and whose code I used to get
started.
2014-08-11 11:02:26 +02:00
Campbell Barton
ea610e655c Style cleanup: C & pep8 2014-04-15 13:11:48 +10:00
Bastien Montagne
de147a907f Fix T38008: Bug in templates operator_nodes.py 2014-01-01 12:02:43 +01:00
Bastien Montagne
4c52e737df Add ctrl-click rename to most lists in Blender UI and templates/examples.
Notes:
* Did not touch to addons, that's up to the authors. ;)
* Did not removed any "name" field below lists. We might want to do this in some cases (less UI clutter), but probably not always, so will let maintainers of the related areas decide here.
2013-11-23 20:54:32 +01:00
f546c7a889 Addons: remove tracker URL from addon template, as this is no longer used,
and link to the new Addons bug reporting page.
2013-11-16 03:15:17 +01:00
Lukas Toenne
8db4f87546 Small example for dynamic node labels in the custom_nodes.py template script. 2013-11-12 18:18:06 +00:00
Campbell Barton
7267221715 remove return argument from wmOperatorType->cancel, was only ever returning OPERATOR_CANCELLED. 2013-10-30 23:08:53 +00:00
Campbell Barton
383da79d63 minor changes to templates 2013-10-22 00:25:15 +00:00
Lukas Toenne
3b7d5a8a40 Change to node output socket drawing: Instead of always drawing only the socket label for outputs, leave this check up to the socket type draw function. This gives custom node scripts more flexibility in
how to draw socket values by allowing buttons on output sockets as well.

http://wiki.blender.org/index.php/Extensions:2.6/Py/API_Changes#Python_Node_Output_Drawing
2013-10-10 12:58:35 +00:00
Bastien Montagne
a6789a7f2e Fix broken example, reported by Codemanx on IRC, thanks. 2013-09-29 14:57:47 +00:00
Bastien Montagne
b7e2cd5948 UIList: update examples and templates. 2013-08-29 13:34:36 +00:00
Campbell Barton
2633488877 use 'with' keyword for script stub (recommended with py3). 2013-08-17 05:27:58 +00:00
Lukas Toenne
7e02d82036 Minor change to the custom_nodes.py template that has some consequences for addons: use bpy.types.* base classes instead of bpy_types.*
The bpy_types classes cause issues when used in addons when loading on Blender startup (subclasses cannot be properly registered).
2013-07-30 08:30:15 +00:00
Lukas Toenne
9c5729e672 Fix for unintended commit of python template file ... 2013-06-09 09:51:19 +00:00
Lukas Toenne
3fe01ecfd9 Removed the unused draw_add_menu function from pynodes template. This was previously used to extend the node Add menu, now the node categories system is used instead. 2013-06-09 09:49:44 +00:00
Lukas Toenne
6e55460a8d Removed deprecated XXX comment from custom_nodes.py, importing node base types works now (this comment was causing some confusion in the past). 2013-06-09 09:42:34 +00:00
Lukas Toenne
90cbf5d591 Added an example for using the new node categories system to the custom_nodes.py template script. 2013-06-09 08:46:48 +00:00
Lukas Toenne
fd2e3999bb Removed the 'custom node group' example from the pynodes template script. This does not work properly due to the fact that node groups don't have a single registerable base class any more. The reason for
that is that RNA does not support multiple inheritance so the actual node group subtypes (ShaderNodeGroup, CompositorNodeGroup, TextureNodeGroup) can not be derived from both the
ShaderNode/CompositorNode/TextureNode base types as well as a common NodeGroup type ... It is possible however to define node group types entirely in python which avoids the limitations of the RNA system
and is much more flexible, example for this will follow later.
2013-06-09 08:46:47 +00:00
Lukas Toenne
a3c82d4cde Updated the custom_nodes.py template script to reflect socket draw API changes in r56584 and r56585. 2013-05-08 16:17:04 +00:00
Campbell Barton
c97983c9de correction for uv template, also some doxygen comment corrections. 2013-05-05 18:41:45 +00:00
Campbell Barton
998b9241be correct bmesh api crossref and update uv-operator template. 2013-05-05 05:54:29 +00:00
Lukas Toenne
a00eda0835 Fix for the custom_nodes.py template. Socket classes now return their drawing color in a callback instead of a simple property, this makes it possible to change a socket color e.g. based on data type. 2013-03-22 13:17:16 +00:00
Lukas Toenne
4638e5f99a Merge of the PyNodes branch (aka "custom nodes") into trunk.
PyNodes opens up the node system in Blender to scripters and adds a number of UI-level improvements.

=== Dynamic node type registration ===
Node types can now be added at runtime, using the RNA registration mechanism from python. This enables addons such as render engines to create a complete user interface with nodes.

Examples of how such nodes can be defined can be found in my personal wiki docs atm [1] and as a script template in release/scripts/templates_py/custom_nodes.py [2].

=== Node group improvements ===
Each node editor now has a tree history of edited node groups, which allows opening and editing nested node groups. The node editor also supports pinning now, so that different spaces can be used to edit different node groups simultaneously. For more ramblings and rationale see (really old) blog post on code.blender.org [3].

The interface of node groups has been overhauled. Sockets of a node group are no longer displayed in columns on either side, but instead special input/output nodes are used to mirror group sockets inside a node tree. This solves the problem of long node lines in groups and allows more adaptable node layout. Internal sockets can be exposed from a group by either connecting to the extension sockets in input/output nodes (shown as empty circle) or by adding sockets from the node property bar in the "Interface" panel. Further details such as the socket name can also be changed there.

[1] http://wiki.blender.org/index.php/User:Phonybone/Python_Nodes
[2] http://projects.blender.org/scm/viewvc.php/trunk/blender/release/scripts/templates_py/custom_nodes.py?view=markup&root=bf-blender
[3] http://code.blender.org/index.php/2012/01/improving-node-group-interface-editing/
2013-03-18 16:34:57 +00:00
Antony Riakiotakis
6a55cd889c Missed instance of ThemeGeneric.back -> ThemeGradient.gradients.high_gradient 2013-02-23 12:55:19 +00:00
Bastien Montagne
23aa0c9067 Fix uilists showing data names translated (reported on bf-translations ML by Satoshi Yamasaki aka yamyam, thanks!). 2013-02-08 16:01:21 +00:00
Bastien Montagne
9b9da2820b Adding some example for new UIList... 2013-01-05 11:14:35 +00:00
Campbell Barton
33955940e4 add templates menu for OSL, use preprocessor directive color for decorators in python. 2012-12-30 01:39:55 +00:00