]> git.saurik.com Git - wxWidgets.git/blobdiff - wxPython/tools/img2py.py
cache return value of wxGetOsVersion
[wxWidgets.git] / wxPython / tools / img2py.py
index 5a3ad806ccaaadf579e368b3b8b22a2694d363ce..863de24d42749faf2c00c3e69f5cbe462595c9a9 100644 (file)
@@ -28,6 +28,8 @@ Options:
 
     -u             Don't use compression.  Leaves the data uncompressed.
 
+    -i             Also output a function to return the image as a wxIcon.
+
 """
 
 
@@ -38,7 +40,7 @@ import img2xpm
 
 
 def crunch_data(data, compressed):
-    # convert the lines to a Python list, pickle it and compress the result.
+    # convert the lines to a Python list, pickle it and optionally compress the result.
     lines = []
     for line in data:
         if line[0] == "\"":
@@ -68,6 +70,7 @@ def crunch_data(data, compressed):
     c = i = 0
     word = ""
     octdigits = "01234567"
+    hexdigits = "0123456789abcdef"
     while i < len(data):
         if data[i] != "\\":
             word = data[i]
@@ -79,9 +82,16 @@ def crunch_data(data, compressed):
                         break
                 word = data[i:i+n]
                 i = i + n
+            elif data[i+1] == 'x':
+                for n in range(2, 5):
+                    if data[i+n] not in hexdigits:
+                        break
+                word = data[i:i+n]
+                i = i + n
             else:
                 word = data[i:i+2]
                 i = i + 2
+
         l = len(word)
         if c + l >= 78-1:
             fp.write("\\\n")
@@ -103,9 +113,10 @@ def main(args):
     compressed = 1
     maskClr = None
     imgName = ""
+    icon = 0
 
     try:
-        opts, fileArgs = getopt.getopt(args, "aun:m:")
+        opts, fileArgs = getopt.getopt(args, "auin:m:")
     except getopt.GetoptError:
         print __doc__
         return
@@ -119,6 +130,8 @@ def main(args):
             imgName = val
         elif opt == "-m":
             maskClr = val
+        elif opt == "-i":
+            icon = 1
 
     if len(fileArgs) != 2:
         print __doc__
@@ -146,6 +159,8 @@ def main(args):
     if not append:
         out.write("# This file was generated by %s\n#\n" % sys.argv[0])
         out.write("from wxPython.wx import wxBitmapFromXPMData, wxImageFromBitmap\n")
+        if icon:
+            out.write("from wxPython.wx import wxIconFromXPMData\n")
         if compressed:
             out.write("import cPickle, zlib\n\n\n")
         else:
@@ -166,6 +181,11 @@ def main(args):
               "def get%sImage():\n"
               "    return wxImageFromBitmap(get%sBitmap())\n\n"
               % tuple([imgName] * 4))
+    if icon:
+        out.write("def get%sIcon():\n"
+                  "    return wxIconFromXPMData(get%sData())\n\n"
+                  % tuple([imgName] * 2))
+
 
     if imgName:
         n_msg = ' using "%s"' % imgName