Documentation:
authorThomas Dinges <blender@dingto.org>
Sun, 29 Jul 2012 01:38:31 +0000 (01:38 +0000)
committerThomas Dinges <blender@dingto.org>
Sun, 29 Jul 2012 01:38:31 +0000 (01:38 +0000)
* Some UI docs for the Best Practise guide. Still WIP.

doc/python_api/rst/info_best_practice.rst

index 481555d412a8e186d71597f2ef6d0e9913f8d171..37de8fa381d50dd91a150cfe3034d1fadd1e87e4 100644 (file)
@@ -56,7 +56,69 @@ To enable line length checks use this instead.
 User Interface Layout
 =====================
 
-TODO: Thomas
+Some notes to keep in mind when writing UI layouts:
+
+* UI code is quite simple. Layout declarations are there to easily create a decent layout. 
+
+  General rule here: If you need more code for the layout declaration, then for the actual properties, you do it wrong. 
+  
+Example layouts:
+
+* layout()
+
+  The basic layout is a simple Top -> Bottom layout. 
+  
+  .. code-block:: python
+
+        layout.prop()
+        layout.prop()
+
+* layout.row()
+
+  Use row(), when you want more than 1 propertey in one line. 
+  
+  .. code-block:: python
+        
+        row = layout.row()
+        row.prop()
+        row.prop()
+
+* layout.column()
+
+  Use column(), when you want your properties in a column.
+  
+  .. code-block:: python
+  
+        col = layout.column()
+        col.prop()
+        col.prop()
+
+* layout.split()
+
+  This can be used to create more complex layouts. For example you can split the layout and create two column() layouts next to each other.
+  Don't use split, when you simply want two properties in a row. Use row() for that.
+  
+  .. code-block:: python
+  
+        split = layout.split()
+        
+        col = split.column()
+        col.prop()
+        col.prop()
+        
+        col = split.column()
+        col.prop()
+        col.prop()
+        
+Declaration names:
+
+Try to only use these variable names for layout declarations:
+
+* row for a row() layout
+* col for a column() layout
+* split for a split() layout
+* flow for a column_flow() layout
+* sub for a sub layout (a column inside a column for example)
 
 
 Script Efficiency