[Bf-extensions-cvs] SVN commit: /data/svn/bf-extensions [1464] trunk/py/scripts/addons/ development_icon_get.py: Renaming of category for Icon script.

Bart Crouch bartius.crouch at gmail.com
Fri Jan 21 13:34:48 CET 2011


Revision: 1464
          http://projects.blender.org/scm/viewvc.php?view=rev&root=bf-extensions&revision=1464
Author:   crouch
Date:     2011-01-21 12:34:48 +0000 (Fri, 21 Jan 2011)
Log Message:
-----------
Renaming of category for Icon script.

Added Paths:
-----------
    trunk/py/scripts/addons/development_icon_get.py

Copied: trunk/py/scripts/addons/development_icon_get.py (from rev 1463, trunk/py/scripts/addons/system_icon_get.py)
===================================================================
--- trunk/py/scripts/addons/development_icon_get.py	                        (rev 0)
+++ trunk/py/scripts/addons/development_icon_get.py	2011-01-21 12:34:48 UTC (rev 1464)
@@ -0,0 +1,171 @@
+# ##### BEGIN GPL LICENSE BLOCK #####
+#
+#  This program is free software; you can redistribute it and/or
+#  modify it under the terms of the GNU General Public License
+#  as published by the Free Software Foundation; either version 2
+#  of the License, or (at your option) any later version.
+#
+#  This program is distributed in the hope that it will be useful,
+#  but WITHOUT ANY WARRANTY; without even the implied warranty of
+#  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+#  GNU General Public License for more details.
+#
+#  You should have received a copy of the GNU General Public License
+#  along with this program; if not, write to the Free Software Foundation,
+#  Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+#
+# ##### END GPL LICENSE BLOCK #####
+
+# <pep8 compliant>
+
+
+bl_info = {
+    'name': 'Icons',
+    'author': 'Crouch, N.tox, PKHG, Campbell Barton, Dany Lebel',
+    'version': (1, 4, 2),
+    'blender': (2, 5, 6),
+    'api': 33928,
+    'location': 'Text window > Properties panel (ctrl+F) or '\
+        'Console > Console menu',
+    'warning': '',
+    'description': 'Click an icon to display its name and copy it '\
+        'to the clipboard',
+    'wiki_url': 'http://wiki.blender.org/index.php/Extensions:2.5/'\
+        'Py/Scripts/System/Display_All_Icons',
+    'tracker_url': 'http://projects.blender.org/tracker/index.php?'\
+        'func=detail&aid=22011',
+    'category': 'System'}
+
+
+import bpy
+
+
+def create_icon_list():
+    list = bpy.types.UILayout.bl_rna.functions['prop'].\
+        parameters['icon'].items.keys()
+    list.remove("BLENDER")
+    return list
+
+
+class IconProps(bpy.types.IDPropertyGroup):
+    """
+    Fake module like class
+    bpy.context.scene.icon_props
+    """
+    pass
+
+
+class WM_OT_icon_info(bpy.types.Operator):
+    bl_label = "Icon Info"
+    bl_description = "Click to copy this icon name to the clipboard"
+    icon = bpy.props.StringProperty()
+    icon_scroll = bpy.props.IntProperty()
+        
+    def invoke(self, context, event):
+        bpy.data.window_managers['WinMan'].clipboard = self.icon
+        self.report({'INFO'}, "Icon ID: %s" % self.icon)
+        return {'FINISHED'}
+
+
+class OBJECT_PT_icons(bpy.types.Panel):
+    bl_space_type = "TEXT_EDITOR"
+    bl_region_type = "UI"
+    bl_label = "All icons"
+    
+    def __init__(self, x):
+        self.amount = 10
+        self.icon_list = create_icon_list()
+    
+    def draw(self, context):
+        box = self.layout.box()
+        
+        # scroll view
+        if not context.scene.icon_props.expand:
+            row = box.row()
+            row.prop(context.scene.icon_props, "expand",
+                icon="TRIA_RIGHT", icon_only=True, emboss=False)
+            row.prop(context.scene.icon_props, "scroll")
+
+            row = box.row(align=True)
+            for icon in self.icon_list[context.scene.icon_props.scroll-1:
+            context.scene.icon_props.scroll-1+self.amount]:
+                row.operator("wm.icon_info", text=" ", icon=icon,
+                    emboss=False).icon = icon
+        
+        # expanded view
+        else:
+            row = box.row()
+            row.prop(context.scene.icon_props, "expand",
+                icon="TRIA_DOWN", icon_only=True, emboss=False)
+            row = row.row()
+            row.active = False
+            row.prop(context.scene.icon_props, "scroll")
+
+            col = box.column(align=True)
+            row = col.row(align=True)
+            for i, icon in enumerate(self.icon_list):
+                if i % self.amount == 0:
+                    row = col.row(align=True)
+                row.operator("wm.icon_info", text=" ", icon=icon,
+                    emboss=False).icon = icon
+
+
+class CONSOLE_HT_icons(bpy.types.Header):
+    bl_space_type = 'CONSOLE'
+    
+    def __init__(self, x):
+        self.amount = 10
+        self.icon_list = create_icon_list()
+    
+    def draw(self, context):
+        # scroll view
+        if context.scene.icon_props.console:
+            layout = self.layout
+            layout.separator()
+            row = layout.row()
+            row.prop(context.scene.icon_props, "scroll")
+            row = layout.row(align=True)
+            
+            for icon in self.icon_list[context.scene.icon_props.scroll-1:
+            context.scene.icon_props.scroll-1+self.amount]:
+                row.operator("wm.icon_info", text="", icon=icon,
+                    emboss=False).icon = icon
+
+
+def menu_func(self, context):
+    self.layout.prop(bpy.context.scene.icon_props, 'console')
+
+
+def register():
+    icons_total = len(create_icon_list())
+    icons_per_row = 10
+    
+    bpy.types.Scene.icon_props = bpy.props.PointerProperty(type = IconProps)
+    IconProps.console = bpy.props.BoolProperty(
+        name='Show System Icons',
+        description='Display the Icons in the console header', default=False)
+    IconProps.expand = bpy.props.BoolProperty(default=False,
+        description="Expand, to display all icons at once")
+    IconProps.scroll = bpy.props.IntProperty(default=1, min=1,
+        max=icons_total - icons_per_row + 1,
+        description="Drag to scroll icons")
+    
+    bpy.types.CONSOLE_MT_console.append(menu_func)
+
+
+def unregister():
+    if bpy.context.scene.get('icon_props') != None:
+        del bpy.context.scene['icon_props']
+    try:
+        del bpy.types.Scene.icon_props
+        bpy.types.CONSOLE_MT_console.remove(menu_func)
+    except:
+        pass
+    if __name__ == "__main__":
+        # unregistering is only done automatically when run as add-on
+        bpy.types.unregister(OBJECT_PT_icons)
+        bpy.types.unregister(CONSOLE_HT_icons)
+
+
+if __name__ == "__main__":
+    register()



More information about the Bf-extensions-cvs mailing list