Images can now be embedded in Python source files.

Added tools to do the embedding.
Added Constructors/methods where needed.
Updated the demo to use mostly embedded images.


git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@9693 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Robin Dunn
2001-04-09 19:36:36 +00:00
parent 28af3deb9f
commit 96bfd05319
50 changed files with 6077 additions and 156 deletions

View File

@@ -3,6 +3,7 @@ from wxPython.wx import *
from wxPython.lib.buttons import wxGenButton, wxGenBitmapButton, \ from wxPython.lib.buttons import wxGenButton, wxGenBitmapButton, \
wxGenToggleButton, wxGenBitmapToggleButton wxGenToggleButton, wxGenBitmapToggleButton
import images
#---------------------------------------------------------------------- #----------------------------------------------------------------------
@@ -34,18 +35,18 @@ class TestPanel(wxPanel):
#b.SetUseFocusIndicator(false) #b.SetUseFocusIndicator(false)
b.SetToolTipString("This is a BIG button...") b.SetToolTipString("This is a BIG button...")
bmp = wxBitmap('bitmaps/test2.bmp', wxBITMAP_TYPE_BMP) bmp = images.getTest2Bitmap()
b = wxGenBitmapButton(self, -1, bmp, (10, 130)) b = wxGenBitmapButton(self, -1, bmp, (10, 130))
EVT_BUTTON(self, b.GetId(), self.OnButton) EVT_BUTTON(self, b.GetId(), self.OnButton)
b = wxGenBitmapButton(self, -1, None, (140, 130)) b = wxGenBitmapButton(self, -1, None, (140, 130))
EVT_BUTTON(self, b.GetId(), self.OnButton) EVT_BUTTON(self, b.GetId(), self.OnButton)
bmp = wxBitmap('bitmaps/lb1.bmp', wxBITMAP_TYPE_BMP) bmp = images.getBulb1Bitmap()
mask = wxMaskColour(bmp, wxBLUE) mask = wxMaskColour(bmp, wxBLUE)
bmp.SetMask(mask) bmp.SetMask(mask)
b.SetBitmapLabel(bmp) b.SetBitmapLabel(bmp)
bmp = wxBitmap('bitmaps/lb2.bmp', wxBITMAP_TYPE_BMP) bmp = images.getBulb2Bitmap()
mask = wxMaskColour(bmp, wxBLUE) mask = wxMaskColour(bmp, wxBLUE)
bmp.SetMask(mask) bmp.SetMask(mask)
b.SetBitmapSelected(bmp) b.SetBitmapSelected(bmp)
@@ -57,11 +58,11 @@ class TestPanel(wxPanel):
b = wxGenBitmapToggleButton(self, -1, None, (140, 230)) b = wxGenBitmapToggleButton(self, -1, None, (140, 230))
EVT_BUTTON(self, b.GetId(), self.OnToggleButton) EVT_BUTTON(self, b.GetId(), self.OnToggleButton)
bmp = wxBitmap('bitmaps/lb1.bmp', wxBITMAP_TYPE_BMP) bmp = images.getBulb1Bitmap()
mask = wxMaskColour(bmp, wxBLUE) mask = wxMaskColour(bmp, wxBLUE)
bmp.SetMask(mask) bmp.SetMask(mask)
b.SetBitmapLabel(bmp) b.SetBitmapLabel(bmp)
bmp = wxBitmap('bitmaps/lb2.bmp', wxBITMAP_TYPE_BMP) bmp = images.getBulb2Bitmap()
mask = wxMaskColour(bmp, wxBLUE) mask = wxMaskColour(bmp, wxBLUE)
bmp.SetMask(mask) bmp.SetMask(mask)
b.SetBitmapSelected(bmp) b.SetBitmapSelected(bmp)

View File

@@ -211,6 +211,7 @@ class GridEditorTest(wxGrid):
self.SetColSize(1, 150) self.SetColSize(1, 150)
self.SetColSize(2, 150) self.SetColSize(2, 150)
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
class TestFrame(wxFrame): class TestFrame(wxFrame):

View File

@@ -16,6 +16,8 @@ from wxPython.wx import *
from wxPython.lib.splashscreen import SplashScreen from wxPython.lib.splashscreen import SplashScreen
from wxPython.html import wxHtmlWindow from wxPython.html import wxHtmlWindow
import images
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
@@ -75,10 +77,10 @@ class wxPythonDemo(wxFrame):
self.cwd = os.getcwd() self.cwd = os.getcwd()
self.curOverview = "" self.curOverview = ""
if wxPlatform == '__WXMSW__': icon = wxIconFromXPMData(images.getMondrianData())
icon = wxIcon('bitmaps/mondrian.ico', wxBITMAP_TYPE_ICO) self.SetIcon(icon)
self.SetIcon(icon)
if wxPlatform == '__WXMSW__':
# setup a taskbar icon, and catch some events from it # setup a taskbar icon, and catch some events from it
self.tbicon = wxTaskBarIcon() self.tbicon = wxTaskBarIcon()
self.tbicon.SetIcon(icon, "wxPython Demo") self.tbicon.SetIcon(icon, "wxPython Demo")

View File

Before

Width:  |  Height:  |  Size: 545 B

After

Width:  |  Height:  |  Size: 545 B

View File

Before

Width:  |  Height:  |  Size: 990 B

After

Width:  |  Height:  |  Size: 990 B

View File

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

Before

Width:  |  Height:  |  Size: 630 B

After

Width:  |  Height:  |  Size: 630 B

View File

Before

Width:  |  Height:  |  Size: 630 B

After

Width:  |  Height:  |  Size: 630 B

View File

Before

Width:  |  Height:  |  Size: 630 B

After

Width:  |  Height:  |  Size: 630 B

View File

Before

Width:  |  Height:  |  Size: 630 B

After

Width:  |  Height:  |  Size: 630 B

View File

Before

Width:  |  Height:  |  Size: 630 B

After

Width:  |  Height:  |  Size: 630 B

View File

Before

Width:  |  Height:  |  Size: 630 B

After

Width:  |  Height:  |  Size: 630 B

View File

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

Before

Width:  |  Height:  |  Size: 238 B

After

Width:  |  Height:  |  Size: 238 B

View File

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.6 KiB

View File

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

Before

Width:  |  Height:  |  Size: 766 B

After

Width:  |  Height:  |  Size: 766 B

View File

Before

Width:  |  Height:  |  Size: 238 B

After

Width:  |  Height:  |  Size: 238 B

View File

Before

Width:  |  Height:  |  Size: 238 B

After

Width:  |  Height:  |  Size: 238 B

View File

Before

Width:  |  Height:  |  Size: 238 B

After

Width:  |  Height:  |  Size: 238 B

View File

Before

Width:  |  Height:  |  Size: 4.7 KiB

After

Width:  |  Height:  |  Size: 4.7 KiB

View File

Before

Width:  |  Height:  |  Size: 246 B

After

Width:  |  Height:  |  Size: 246 B

View File

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

View File

Before

Width:  |  Height:  |  Size: 1.0 KiB

After

Width:  |  Height:  |  Size: 1.0 KiB

View File

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

Before

Width:  |  Height:  |  Size: 238 B

After

Width:  |  Height:  |  Size: 238 B

View File

Before

Width:  |  Height:  |  Size: 238 B

After

Width:  |  Height:  |  Size: 238 B

View File

@@ -0,0 +1,56 @@
#!/usr/bin/env python
#----------------------------------------------------------------------
"""
This is a way to save the startup time when running img2py on lots of
files...
"""
import sys, string
sys.path.insert(0, "../tools")
import img2py
command_lines = [
" -n Mondrian bmp_source/mondrian.ico images.py",
"-a -n _10s_ bmp_source/10s.gif images.py",
"-a -n _01c_ bmp_source/01c.gif images.py",
"-a -n _12h_ bmp_source/12h.gif images.py",
"-a -n _13d_ bmp_source/13d.gif images.py",
"-a -n Background bmp_source/backgrnd.png images.py",
"-a -n TestStar -m #FFFFFF bmp_source/teststar.png images.py",
"-a -n TestStar2 bmp_source/teststar.png images.py",
"-a -n TestMask bmp_source/testmask.bmp images.py",
"-a -n Test2 bmp_source/test2.bmp images.py",
"-a -n Robin bmp_source/robin.jpg images.py",
"-a -n Bulb1 bmp_source/lb1.bmp images.py",
"-a -n Bulb2 bmp_source/lb2.bmp images.py",
"-a -n Calendar bmp_source/Calend.bmp images.py",
"-a -n DbDec bmp_source/DbDec.bmp images.py",
"-a -n Dec bmp_source/Dec.bmp images.py",
"-a -n Pt bmp_source/Pt.bmp images.py",
"-a -n DbInc bmp_source/DbInc.bmp images.py",
"-a -n Inc bmp_source/Inc.bmp images.py",
"-a -n New bmp_source/new.bmp images.py",
"-a -n Open bmp_source/open.bmp images.py",
"-a -n Copy bmp_source/copy.bmp images.py",
"-a -n Paste bmp_source/paste.bmp images.py",
"-a -n Tog1 bmp_source/tog1.bmp images.py",
"-a -n Tog2 bmp_source/tog2.bmp images.py",
"-a -n Smiles bmp_source/smiles.bmp images.py",
#"-a -n bmp_source/ images.py",
]
for line in command_lines:
args = string.split(line)
img2py.main(args)

5183
wxPython/demo/images.py Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -24,7 +24,7 @@ beautifully documented...
""" """
from wxPython import wx from wxPython import wx
import string # Don't use it, but it's fun expanding :-) import sys, string # Don't use it, but it's fun expanding :-)
#---------------------------------------------------------------------- #----------------------------------------------------------------------
@@ -161,7 +161,8 @@ def runTest(frame, nb, log):
This method is used by the wxPython Demo Framework for integrating This method is used by the wxPython Demo Framework for integrating
this demo with the rest. this demo with the rest.
""" """
thisModule = __import__(__name__, globals()) #thisModule = __import__(__name__, globals())
thisModule = sys.modules[__name__]
win = wx.wxFrame(frame, -1, "PyTreeItemData Test") win = wx.wxFrame(frame, -1, "PyTreeItemData Test")
split = wx.wxSplitterWindow(win, -1) split = wx.wxSplitterWindow(win, -1)
tree = pyTree(split, -1, thisModule) tree = pyTree(split, -1, thisModule)

View File

@@ -1,6 +1,8 @@
from wxPython.wx import * from wxPython.wx import *
import images
#---------------------------------------------------------------------- #----------------------------------------------------------------------
class TestPanel(wxPanel): class TestPanel(wxPanel):
@@ -19,8 +21,7 @@ class TestPanel(wxPanel):
b.SetToolTipString("This is a Hello button...") b.SetToolTipString("This is a Hello button...")
bmp = wxBitmap('bitmaps/test2.bmp', wxBITMAP_TYPE_BMP) bmp = images.getTest2Bitmap()
mask = wxMaskColour(bmp, wxBLUE) mask = wxMaskColour(bmp, wxBLUE)
bmp.SetMask(mask) bmp.SetMask(mask)

View File

@@ -4,7 +4,7 @@
# #
# Author: Lorne White (email: lwhite1@planet.eon.net) # Author: Lorne White (email: lwhite1@planet.eon.net)
# #
# Version 0.9 # Version 0.9
# Date: Feb 26, 2001 # Date: Feb 26, 2001
# Licence: wxWindows license # Licence: wxWindows license
#---------------------------------------------------------------------------- #----------------------------------------------------------------------------
@@ -12,8 +12,8 @@
from wxPython.wx import * from wxPython.wx import *
from wxPython.lib.calendar import wxCalendar, Month, PrtCalDraw, CalenDlg from wxPython.lib.calendar import wxCalendar, Month, PrtCalDraw, CalenDlg
import images
import os import os
dir_path = os.getcwd()
# highlighted days in month # highlighted days in month
@@ -107,7 +107,7 @@ class TestPanel(wxPanel):
wxStaticText(self, -1, "Test Calendar Dialog", wxPoint(350, 50), wxSize(150, -1)) wxStaticText(self, -1, "Test Calendar Dialog", wxPoint(350, 50), wxSize(150, -1))
mID = NewId() mID = NewId()
bmp = wxBitmap('bitmaps/Calend.bmp', wxBITMAP_TYPE_BMP) bmp = images.getCalendarBitmap()
self.but = wxBitmapButton(self, mID, bmp, wxPoint(380, 80))#, wxSize(30, 30)) self.but = wxBitmapButton(self, mID, bmp, wxPoint(380, 80))#, wxSize(30, 30))
EVT_BUTTON(self, mID, self.TestDlg) EVT_BUTTON(self, mID, self.TestDlg)
@@ -116,14 +116,12 @@ class TestPanel(wxPanel):
wxStaticText(self, -1, "Test Calendar Window", wxPoint(350, 150), wxSize(150, -1)) wxStaticText(self, -1, "Test Calendar Window", wxPoint(350, 150), wxSize(150, -1))
mID = NewId() mID = NewId()
bmp = wxBitmap('bitmaps/Calend.bmp', wxBITMAP_TYPE_BMP)
self.but = wxBitmapButton(self, mID, bmp, wxPoint(380, 180))#, wxSize(30, 30)) self.but = wxBitmapButton(self, mID, bmp, wxPoint(380, 180))#, wxSize(30, 30))
EVT_BUTTON(self, mID, self.TestFrame) EVT_BUTTON(self, mID, self.TestFrame)
wxStaticText(self, -1, "Test Calendar Print", wxPoint(350, 250), wxSize(150, -1)) wxStaticText(self, -1, "Test Calendar Print", wxPoint(350, 250), wxSize(150, -1))
mID = NewId() mID = NewId()
bmp = wxBitmap('bitmaps/Calend.bmp', wxBITMAP_TYPE_BMP)
self.but = wxBitmapButton(self, mID, bmp, wxPoint(380, 280))#, wxSize(30, 30)) self.but = wxBitmapButton(self, mID, bmp, wxPoint(380, 280))#, wxSize(30, 30))
EVT_BUTTON(self, mID, self.OnPreview) EVT_BUTTON(self, mID, self.OnPreview)
@@ -316,26 +314,24 @@ class CalendFrame(wxFrame):
def MakeToolMenu(self): def MakeToolMenu(self):
tb = self.CreateToolBar(wxTB_HORIZONTAL|wxNO_BORDER) tb = self.CreateToolBar(wxTB_HORIZONTAL|wxNO_BORDER)
bmp_path = 'bitmaps/'
mID = NewId() mID = NewId()
SetToolPath(self, tb, mID, bmp_path + 'DbDec.bmp', 'Dec Year') SetToolPath(self, tb, mID, images.getDbDecBitmap(), 'Dec Year')
EVT_TOOL(self, mID, self.OnDecYear) EVT_TOOL(self, mID, self.OnDecYear)
mID = NewId() mID = NewId()
SetToolPath(self, tb, mID, bmp_path + 'Dec.bmp', 'Dec Month') SetToolPath(self, tb, mID, images.getDecBitmap(), 'Dec Month')
EVT_TOOL(self, mID, self.OnDecMonth) EVT_TOOL(self, mID, self.OnDecMonth)
mID = NewId() mID = NewId()
SetToolPath(self, tb, mID, bmp_path + 'Pt.bmp', 'Current Month') SetToolPath(self, tb, mID, images.getPtBitmap(), 'Current Month')
EVT_TOOL(self, mID, self.OnCurrent) EVT_TOOL(self, mID, self.OnCurrent)
mID = NewId() mID = NewId()
SetToolPath(self, tb, mID, bmp_path + 'Inc.bmp', 'Inc Month') SetToolPath(self, tb, mID, images.getIncBitmap(), 'Inc Month')
EVT_TOOL(self, mID, self.OnIncMonth) EVT_TOOL(self, mID, self.OnIncMonth)
mID = NewId() mID = NewId()
SetToolPath(self, tb, mID, bmp_path + 'DbInc.bmp', 'Inc Year') SetToolPath(self, tb, mID, images.getDbIncBitmap(), 'Inc Year')
EVT_TOOL(self, mID, self.OnIncYear) EVT_TOOL(self, mID, self.OnIncYear)
tb.Realize() tb.Realize()
@@ -518,9 +514,7 @@ class PrintCalend:
self.ptheight = height self.ptheight = height
def SetToolPath(self, tb, id, bmp, title): def SetToolPath(self, tb, id, bmp, title):
global dir_path tb.AddSimpleTool(id, bmp, title, title)
tb.AddSimpleTool(id, wxBitmap(os.path.join(dir_path, bmp), wxBITMAP_TYPE_BMP),
title, title)
class SetPrintout(wxPrintout): class SetPrintout(wxPrintout):
def __init__(self, canvas): def __init__(self, canvas):

View File

@@ -1,6 +1,8 @@
from wxPython.wx import * from wxPython.wx import *
import images
#---------------------------------------------------------------------- #----------------------------------------------------------------------
class DragShape: class DragShape:
@@ -47,14 +49,14 @@ class DragCanvas(wxScrolledWindow):
self.dragShape = None self.dragShape = None
self.SetCursor(wxStockCursor(wxCURSOR_ARROW)) self.SetCursor(wxStockCursor(wxCURSOR_ARROW))
self.bg_bmp = wxBitmap('bitmaps/backgrnd.png', wxBITMAP_TYPE_PNG) self.bg_bmp = images.getBackgroundBitmap()
# Make a shape from an image and mask. This one will demo # Make a shape from an image and mask. This one will demo
# dragging outside the window # dragging outside the window
bmp = wxBitmap('bitmaps/test_image.png', wxBITMAP_TYPE_PNG) bmp = images.getTestStarBitmap()
mask = wxMaskColour(bmp, wxWHITE) #mask = wxMaskColour(bmp, wxWHITE)
bmp.SetMask(mask) #bmp.SetMask(mask)
shape = DragShape(bmp) shape = DragShape(bmp)
shape.pos = wxPoint(5, 5) shape.pos = wxPoint(5, 5)
shape.fullscreen = true shape.fullscreen = true
@@ -84,8 +86,9 @@ class DragCanvas(wxScrolledWindow):
# Make some shapes from some playing card images. # Make some shapes from some playing card images.
x = 200 x = 200
for card in ['01c.gif', '10s.gif', '12h.gif', '13d.gif']: for card in ['_01c_', '_12h_', '_13d_', '_10s_']:
bmp = wxBitmap('bitmaps/'+card, wxBITMAP_TYPE_GIF) bmpFunc = getattr(images, "get%sBitmap" % card)
bmp = bmpFunc()
shape = DragShape(bmp) shape = DragShape(bmp)
shape.pos = wxPoint(x, 5) shape.pos = wxPoint(x, 5)
self.shapes.append(shape) self.shapes.append(shape)

View File

@@ -1,6 +1,9 @@
from wxPython.wx import * from wxPython.wx import *
from wxPython.lib.floatbar import * from wxPython.lib.floatbar import *
import images
class TestFloatBar(wxFrame): class TestFloatBar(wxFrame):
def __init__(self, parent, log): def __init__(self, parent, log):
wxFrame.__init__(self, parent, -1, 'Test ToolBar', wxFrame.__init__(self, parent, -1, 'Test ToolBar',
@@ -17,32 +20,28 @@ class TestFloatBar(wxFrame):
tb.SetFloatable(1) tb.SetFloatable(1)
tb.SetTitle("Floating!") tb.SetTitle("Floating!")
self.CreateStatusBar() self.CreateStatusBar()
tb.AddSimpleTool(10, wxBitmap('bitmaps/new.bmp', wxBITMAP_TYPE_BMP),
"New", "Long help for 'New'") tb.AddSimpleTool(10, images.getNewBitmap(), "New", "Long help for 'New'")
EVT_TOOL(self, 10, self.OnToolClick) EVT_TOOL(self, 10, self.OnToolClick)
EVT_TOOL_RCLICKED(self, 10, self.OnToolRClick) EVT_TOOL_RCLICKED(self, 10, self.OnToolRClick)
tb.AddSimpleTool(20, wxBitmap('bitmaps/open.bmp', wxBITMAP_TYPE_BMP), tb.AddSimpleTool(20, images.getOpenBitmap(), "Open")
"Open")
EVT_TOOL(self, 20, self.OnToolClick) EVT_TOOL(self, 20, self.OnToolClick)
EVT_TOOL_RCLICKED(self, 20, self.OnToolRClick) EVT_TOOL_RCLICKED(self, 20, self.OnToolRClick)
tb.AddSeparator() tb.AddSeparator()
tb.AddSimpleTool(30, wxBitmap('bitmaps/copy.bmp', wxBITMAP_TYPE_BMP), tb.AddSimpleTool(30, images.getCopyBitmap(), "Copy")
"Copy")
EVT_TOOL(self, 30, self.OnToolClick) EVT_TOOL(self, 30, self.OnToolClick)
EVT_TOOL_RCLICKED(self, 30, self.OnToolRClick) EVT_TOOL_RCLICKED(self, 30, self.OnToolRClick)
tb.AddSimpleTool(40, wxBitmap('bitmaps/paste.bmp', wxBITMAP_TYPE_BMP), tb.AddSimpleTool(40, images.getPasteBitmap(), "Paste")
"Paste")
EVT_TOOL(self, 40, self.OnToolClick) EVT_TOOL(self, 40, self.OnToolClick)
EVT_TOOL_RCLICKED(self, 40, self.OnToolRClick) EVT_TOOL_RCLICKED(self, 40, self.OnToolRClick)
tb.AddSeparator() tb.AddSeparator()
tb.AddTool(60, wxBitmap('bitmaps/tog1.bmp', wxBITMAP_TYPE_BMP), tb.AddTool(60, images.getTog1Bitmap(), images.getTog2Bitmap(),
wxBitmap('bitmaps/tog2.bmp', wxBITMAP_TYPE_BMP),
shortHelpString="Toggle with 2 bitmaps", isToggle=true) shortHelpString="Toggle with 2 bitmaps", isToggle=true)
EVT_TOOL(self, 60, self.OnToolClick) EVT_TOOL(self, 60, self.OnToolClick)
EVT_TOOL_RCLICKED(self, 60, self.OnToolRClick) EVT_TOOL_RCLICKED(self, 60, self.OnToolRClick)

View File

@@ -57,6 +57,7 @@ musicdata = {
39: ("Yes", "Rhythm Of Love", "Rock"), 39: ("Yes", "Rhythm Of Love", "Rock"),
} }
import images
class TestListCtrlPanel(wxPanel): class TestListCtrlPanel(wxPanel):
def __init__(self, parent, log): def __init__(self, parent, log):
@@ -66,7 +67,7 @@ class TestListCtrlPanel(wxPanel):
tID = wxNewId() tID = wxNewId()
self.il = wxImageList(16, 16) self.il = wxImageList(16, 16)
bmp = wxBitmap('bitmaps/smiles.bmp', wxBITMAP_TYPE_BMP) bmp = images.getSmilesBitmap()
idx1 = self.il.AddWithColourMask(bmp, wxWHITE) idx1 = self.il.AddWithColourMask(bmp, wxWHITE)
self.list = wxListCtrl(self, tID, self.list = wxListCtrl(self, tID,

View File

@@ -26,19 +26,21 @@ logicList = [
('wxXOR', wxXOR), ('wxXOR', wxXOR),
] ]
import images
class TestMaskWindow(wxScrolledWindow): class TestMaskWindow(wxScrolledWindow):
def __init__(self, parent): def __init__(self, parent):
wxScrolledWindow.__init__(self, parent, -1) wxScrolledWindow.__init__(self, parent, -1)
self.SetBackgroundColour(wxColour(0,128,0)) self.SetBackgroundColour(wxColour(0,128,0))
# A reference bitmap that we won't mask # A reference bitmap that we won't mask
self.bmp_nomask = wxBitmap('bitmaps/test_image.png', wxBITMAP_TYPE_PNG) self.bmp_nomask = images.getTestStar2Bitmap()
# One that we will # One that we will
self.bmp_withmask = wxBitmap('bitmaps/test_image.png', wxBITMAP_TYPE_PNG) self.bmp_withmask = images.getTestStar2Bitmap()
# this mask comes from a monochrome bitmap # this mask comes from a monochrome bitmap
self.bmp_themask = wxBitmap('bitmaps/test_mask.bmp', wxBITMAP_TYPE_BMP) self.bmp_themask = images.getTestMaskBitmap()
self.bmp_themask.SetDepth(1) self.bmp_themask.SetDepth(1)
mask = wxMask(self.bmp_themask) mask = wxMask(self.bmp_themask)
@@ -47,7 +49,7 @@ class TestMaskWindow(wxScrolledWindow):
# Now we'll create a mask in a bit of an easier way, by picking a # Now we'll create a mask in a bit of an easier way, by picking a
# colour in the image that is to be the transparent colour. # colour in the image that is to be the transparent colour.
self.bmp_withcolourmask = wxBitmap('bitmaps/test_image.png', wxBITMAP_TYPE_PNG) self.bmp_withcolourmask = images.getTestStar2Bitmap()
mask = wxMaskColour(self.bmp_withcolourmask, wxWHITE) mask = wxMaskColour(self.bmp_withcolourmask, wxWHITE)
self.bmp_withcolourmask.SetMask(mask) self.bmp_withcolourmask.SetMask(mask)

View File

@@ -2,6 +2,8 @@
from wxPython.wx import * from wxPython.wx import *
from wxPython.ogl import * from wxPython.ogl import *
import images
#---------------------------------------------------------------------- #----------------------------------------------------------------------
# This creates some pens and brushes that the OGL library uses. # This creates some pens and brushes that the OGL library uses.
@@ -41,40 +43,6 @@ class RoundedRectangleShape(wxRectangleShape):
self.SetCornerRadius(-0.3) self.SetCornerRadius(-0.3)
#----------------------------------------------------------------------
## class LabeledBitmapShape(wxBitmapShape):
## def __init__(self, bmp, text):
## wxBitmapShape.__init__(self)
## self.SetBitmap(bmp)
## self.region = r = wxShapeRegion()
## r.SetPosition(0, 0) #bmp.GetHeight())
## r.SetSize(bmp.GetWidth(), bmp.GetHeight())
## r.SetText(text)
## self.AddRegion(r)
## def OnMovePost(self, dc, x, y, old_x, old_y, display):
## self.region.SetPosition(x, y)
## self.base_OnMovePost(dc, x, y, old_x, old_y, display)
## class LabeledBitmapShape(wxCompositeShape):
## def __init__(self, canvas, bmp, text):
## wxCompositeShape.__init__(self)
## self.bs = wxBitmapShape()
## self.bs.SetBitmap(bmp)
## self.ts = wxTextShape()
## self.ts.AddText(text)
## self.AddChild(self.bs)
## self.AddChild(self.ts, self.bs)
## self.AddConstrainedShapes(gyCONSTRAINT_CENTRED_VERTICALLY, self, [self.bs, self.ts])
## self.AddSimpleConstraint(gyCONSTRAINT_BELOW, self.bs, self.ts)
## self.AddSimpleConstraint(gyCONSTRAINT_ALIGNED_TOP, self, self.bs)
## self.AddSimpleConstraint(gyCONSTRAINT_ALIGNED_BOTTOM, self, self.ts)
#---------------------------------------------------------------------- #----------------------------------------------------------------------
class MyEvtHandler(wxShapeEvtHandler): class MyEvtHandler(wxShapeEvtHandler):
@@ -168,19 +136,9 @@ class TestWindow(wxShapeCanvas):
self.MyAddShape(DiamondShape(90, 90), 345, 235, wxPen(wxBLUE, 3, wxDOT), wxRED_BRUSH, "Polygon") self.MyAddShape(DiamondShape(90, 90), 345, 235, wxPen(wxBLUE, 3, wxDOT), wxRED_BRUSH, "Polygon")
self.MyAddShape(RoundedRectangleShape(95,70), 140, 255, wxPen(wxRED, 1), rRectBrush, "Rounded Rect") self.MyAddShape(RoundedRectangleShape(95,70), 140, 255, wxPen(wxRED, 1), rRectBrush, "Rounded Rect")
bmp = wxBitmap('bitmaps/test2.bmp', wxBITMAP_TYPE_BMP) bmp = images.getTest2Bitmap()
mask = wxMaskColour(bmp, wxBLUE) mask = wxMaskColour(bmp, wxBLUE)
bmp.SetMask(mask) bmp.SetMask(mask)
## s = LabeledBitmapShape(self, bmp, "Hello")
## self.MyAddShape(s, 225, 150, None, None, None)
## print s.Recompute()
## s.CalculateSize()
## print s.GetX(), s.GetY()
## s.SetSize(225)
## s.SetY(150)
## s.SetSize(80, 80)
## print s.GetX(), s.GetY()
## #print s.GetSize()
s = wxBitmapShape() s = wxBitmapShape()
s.SetBitmap(bmp) s.SetBitmap(bmp)

View File

@@ -1,6 +1,8 @@
from wxPython.wx import * from wxPython.wx import *
import images
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
class MyCanvas(wxScrolledWindow): class MyCanvas(wxScrolledWindow):
@@ -20,7 +22,7 @@ class MyCanvas(wxScrolledWindow):
self.SetCursor(wxStockCursor(wxCURSOR_PENCIL)) self.SetCursor(wxStockCursor(wxCURSOR_PENCIL))
bmp = wxBitmap('bitmaps/test2.bmp', wxBITMAP_TYPE_BMP) bmp = images.getTest2Bitmap()
mask = wxMaskColour(bmp, wxBLUE) mask = wxMaskColour(bmp, wxBLUE)
bmp.SetMask(mask) bmp.SetMask(mask)
self.bmp = bmp self.bmp = bmp

View File

@@ -2,6 +2,7 @@
from wxPython.wx import * from wxPython.wx import *
import string import string
import images
#---------------------------------------------------------------------- #----------------------------------------------------------------------
@@ -13,13 +14,13 @@ class TestPanel(wxPanel):
wxStaticText(self, -1, "This is a wxStaticBitmap.", wxPoint(45, 15)) wxStaticText(self, -1, "This is a wxStaticBitmap.", wxPoint(45, 15))
bmp = wxBitmap('bitmaps/test2.bmp', wxBITMAP_TYPE_BMP) bmp = images.getTest2Bitmap()
mask = wxMaskColour(bmp, wxBLUE) mask = wxMaskColour(bmp, wxBLUE)
bmp.SetMask(mask) bmp.SetMask(mask)
wxStaticBitmap(self, -1, bmp, wxPoint(80, 50), wxStaticBitmap(self, -1, bmp, wxPoint(80, 50),
wxSize(bmp.GetWidth(), bmp.GetHeight())) wxSize(bmp.GetWidth(), bmp.GetHeight()))
bmp = wxBitmap('bitmaps/robin.jpg', wxBITMAP_TYPE_JPEG) bmp = images.getRobinBitmap()
wxStaticBitmap(self, -1, bmp, (80, 150)) wxStaticBitmap(self, -1, bmp, (80, 150))
wxStaticText(self, -1, "Hey, if Ousterhout can do it, so can I.", wxStaticText(self, -1, "Hey, if Ousterhout can do it, so can I.",

View File

@@ -1,6 +1,8 @@
from wxPython.wx import * from wxPython.wx import *
import images
#--------------------------------------------------------------------------- #---------------------------------------------------------------------------
class TestToolBar(wxFrame): class TestToolBar(wxFrame):
@@ -20,31 +22,30 @@ class TestToolBar(wxFrame):
self.CreateStatusBar() self.CreateStatusBar()
tb.AddSimpleTool(10, wxBitmap('bitmaps/new.bmp', wxBITMAP_TYPE_BMP), tb.AddSimpleTool(10, images.getNewBitmap(), "New", "Long help for 'New'")
"New", "Long help for 'New'")
EVT_TOOL(self, 10, self.OnToolClick) EVT_TOOL(self, 10, self.OnToolClick)
EVT_TOOL_RCLICKED(self, 10, self.OnToolRClick)
tb.AddSimpleTool(20, wxBitmap('bitmaps/open.bmp', wxBITMAP_TYPE_BMP), tb.AddSimpleTool(20, images.getOpenBitmap(), "Open")
"Open", "Long help for 'Open'")
EVT_TOOL(self, 20, self.OnToolClick) EVT_TOOL(self, 20, self.OnToolClick)
EVT_TOOL_RCLICKED(self, 20, self.OnToolRClick)
tb.AddSeparator() tb.AddSeparator()
tb.AddSimpleTool(30, wxBitmap('bitmaps/copy.bmp', wxBITMAP_TYPE_BMP), tb.AddSimpleTool(30, images.getCopyBitmap(), "Copy")
"Copy", "Long help for 'Copy'")
EVT_TOOL(self, 30, self.OnToolClick) EVT_TOOL(self, 30, self.OnToolClick)
EVT_TOOL_RCLICKED(self, 30, self.OnToolRClick)
tb.AddSimpleTool(40, wxBitmap('bitmaps/paste.bmp', wxBITMAP_TYPE_BMP), tb.AddSimpleTool(40, images.getPasteBitmap(), "Paste")
"Paste", "Long help for 'Paste'")
EVT_TOOL(self, 40, self.OnToolClick) EVT_TOOL(self, 40, self.OnToolClick)
EVT_TOOL_RCLICKED(self, 40, self.OnToolRClick)
tb.AddSeparator() tb.AddSeparator()
tool = tb.AddTool(50, wxBitmap('bitmaps/tog1.bmp', wxBITMAP_TYPE_BMP), tool = tb.AddTool(50, images.getTog1Bitmap(),
shortHelpString="Toggle this", isToggle=true) shortHelpString="Toggle this", isToggle=true)
EVT_TOOL(self, 50, self.OnToolClick) EVT_TOOL(self, 50, self.OnToolClick)
tb.AddTool(60, wxBitmap('bitmaps/tog1.bmp', wxBITMAP_TYPE_BMP), tb.AddTool(60, images.getTog1Bitmap(), images.getTog2Bitmap(),
wxBitmap('bitmaps/tog2.bmp', wxBITMAP_TYPE_BMP),
shortHelpString="Toggle with 2 bitmaps", isToggle=true) shortHelpString="Toggle with 2 bitmaps", isToggle=true)
EVT_TOOL(self, 60, self.OnToolClick) EVT_TOOL(self, 60, self.OnToolClick)

View File

@@ -31,12 +31,13 @@ class TestTreeCtrlPanel(wxPanel):
self.tree = MyTreeCtrl(self, tID, wxDefaultPosition, wxDefaultSize, self.tree = MyTreeCtrl(self, tID, wxDefaultPosition, wxDefaultSize,
wxTR_HAS_BUTTONS | wxTR_EDIT_LABELS)# | wxTR_MULTIPLE) wxTR_HAS_BUTTONS | wxTR_EDIT_LABELS)# | wxTR_MULTIPLE)
#import images
#il = wxImageList(16, 16) #il = wxImageList(16, 16)
#idx1 = il.Add(wxBitmap('bitmaps/smiles.bmp', wxBITMAP_TYPE_BMP)) #idx1 = il.Add(images.getSmilesBitmap())
#idx2 = il.Add(wxBitmap('bitmaps/open.bmp', wxBITMAP_TYPE_BMP)) #idx2 = il.Add(images.getOpenBitmap())
#idx3 = il.Add(wxBitmap('bitmaps/new.bmp', wxBITMAP_TYPE_BMP)) #idx3 = il.Add(images.getNewBitmap())
#idx4 = il.Add(wxBitmap('bitmaps/copy.bmp', wxBITMAP_TYPE_BMP)) #idx4 = il.Add(images.getCopyBitmap())
#idx5 = il.Add(wxBitmap('bitmaps/paste.bmp', wxBITMAP_TYPE_BMP)) #idx5 = il.Add(images.getPasteBitmap())
#self.tree.SetImageList(il) #self.tree.SetImageList(il)
#self.il = il #self.il = il

View File

@@ -105,18 +105,60 @@ public:
}; };
// Declarations of some alternate "constructors"
%new wxBitmap* wxEmptyBitmap(int width, int height, int depth=-1); %new wxBitmap* wxEmptyBitmap(int width, int height, int depth=-1);
%new wxBitmap* wxBitmapFromXPMData(PyObject* listOfStrings);
%new wxBitmap* wxBitmapFromIcon(const wxIcon& icon);
#ifdef __WXMSW__ #ifdef __WXMSW__
%new wxBitmap* wxBitmapFromData(PyObject* data, long type, %new wxBitmap* wxBitmapFromData(PyObject* data, long type,
int width, int height, int depth = 1); int width, int height, int depth = 1);
#endif #endif
%{ // Alternate 'constructor'
%{ // Implementations of some alternate "constructors"
wxBitmap* wxEmptyBitmap(int width, int height, int depth=-1) { wxBitmap* wxEmptyBitmap(int width, int height, int depth=-1) {
return new wxBitmap(width, height, depth); return new wxBitmap(width, height, depth);
} }
static char** ConvertListOfStrings(PyObject* listOfStrings) {
char** cArray = NULL;
int count;
if (!PyList_Check(listOfStrings)) {
PyErr_SetString(PyExc_TypeError, "Expected a list of strings.");
return NULL;
}
count = PyList_Size(listOfStrings);
cArray = new char*[count];
for(int x=0; x<count; x++) {
// TODO: Need some validation and error checking here
cArray[x] = PyString_AsString(PyList_GET_ITEM(listOfStrings, x));
}
return cArray;
}
wxBitmap* wxBitmapFromXPMData(PyObject* listOfStrings) {
char** cArray = NULL;
wxBitmap* bmp;
cArray = ConvertListOfStrings(listOfStrings);
if (! cArray)
return NULL;
bmp = new wxBitmap(cArray);
delete [] cArray;
return bmp;
}
wxBitmap* wxBitmapFromIcon(const wxIcon& icon) {
return new wxBitmap(icon);
}
#ifdef __WXMSW__ #ifdef __WXMSW__
wxBitmap* wxBitmapFromData(PyObject* data, long type, wxBitmap* wxBitmapFromData(PyObject* data, long type,
int width, int height, int depth = 1) { int width, int height, int depth = 1) {
@@ -136,6 +178,8 @@ class wxMask {
public: public:
wxMask(const wxBitmap& bitmap); wxMask(const wxBitmap& bitmap);
//~wxMask(); //~wxMask();
%addmethods { void Destroy() { delete self; } }
}; };
%new wxMask* wxMaskColour(const wxBitmap& bitmap, const wxColour& colour); %new wxMask* wxMaskColour(const wxBitmap& bitmap, const wxColour& colour);
@@ -174,6 +218,8 @@ public:
#ifdef __WXMSW__ #ifdef __WXMSW__
void SetSize(const wxSize& size); void SetSize(const wxSize& size);
#endif #endif
void CopyFromBitmap(const wxBitmap& bmp);
%pragma(python) addtoclass = " %pragma(python) addtoclass = "
def __del__(self,gdic=gdic): def __del__(self,gdic=gdic):
try: try:
@@ -182,10 +228,31 @@ public:
except: except:
pass pass
" "
}; };
// Declarations of some alternate "constructors"
%new wxIcon* wxEmptyIcon();
%new wxIcon* wxIconFromXPMData(PyObject* listOfStrings);
%{ // Implementations of some alternate "constructors"
wxIcon* wxEmptyIcon() {
return new wxIcon();
}
wxIcon* wxIconFromXPMData(PyObject* listOfStrings) {
char** cArray = NULL;
wxIcon* icon;
cArray = ConvertListOfStrings(listOfStrings);
if (! cArray)
return NULL;
icon = new wxIcon(cArray);
delete [] cArray;
return icon;
}
%}
//--------------------------------------------------------------------------- //---------------------------------------------------------------------------
class wxCursor class wxCursor

View File

@@ -106,7 +106,8 @@ public:
unsigned char GetGreen( int x, int y ); unsigned char GetGreen( int x, int y );
unsigned char GetBlue( int x, int y ); unsigned char GetBlue( int x, int y );
bool LoadFile( const wxString& name, long type = wxBITMAP_TYPE_PNG ); static bool CanRead( const wxString& name );
bool LoadFile( const wxString& name, long type = wxBITMAP_TYPE_ANY );
%name(LoadMimeFile)bool LoadFile( const wxString& name, const wxString& mimetype ); %name(LoadMimeFile)bool LoadFile( const wxString& name, const wxString& mimetype );
bool SaveFile( const wxString& name, int type ); bool SaveFile( const wxString& name, int type );
@@ -163,6 +164,9 @@ public:
unsigned long CountColours( unsigned long stopafter = (unsigned long) -1 ); unsigned long CountColours( unsigned long stopafter = (unsigned long) -1 );
// TODO: unsigned long ComputeHistogram( wxHashTable &h ); // TODO: unsigned long ComputeHistogram( wxHashTable &h );
static void AddHandler( wxImageHandler *handler );
static void InsertHandler( wxImageHandler *handler );
static bool RemoveHandler( const wxString& name );
}; };
// Alternate constructors // Alternate constructors
@@ -188,13 +192,6 @@ public:
} }
%} %}
// Static Methods
void wxImage_AddHandler(wxImageHandler *handler);
%{
void wxImage_AddHandler(wxImageHandler *handler) {
wxImage::AddHandler(handler);
}
%}
void wxInitAllImageHandlers(); void wxInitAllImageHandlers();

View File

@@ -111,11 +111,48 @@ static PyObject* t_output_helper(PyObject* target, PyObject* o) {
static char* wxStringErrorMsg = "string type is required for parameter"; static char* wxStringErrorMsg = "string type is required for parameter";
static wxString wxPyEmptyStr(""); static wxString wxPyEmptyStr("");
// Alternate 'constructor' // Implementations of some alternate "constructors"
wxBitmap* wxEmptyBitmap(int width, int height, int depth=-1) { wxBitmap* wxEmptyBitmap(int width, int height, int depth=-1) {
return new wxBitmap(width, height, depth); return new wxBitmap(width, height, depth);
} }
static char** ConvertListOfStrings(PyObject* listOfStrings) {
char** cArray = NULL;
int count;
if (!PyList_Check(listOfStrings)) {
PyErr_SetString(PyExc_TypeError, "Expected a list of strings.");
return NULL;
}
count = PyList_Size(listOfStrings);
cArray = new char*[count];
for(int x=0; x<count; x++) {
// TODO: Need some validation and error checking here
cArray[x] = PyString_AsString(PyList_GET_ITEM(listOfStrings, x));
}
return cArray;
}
wxBitmap* wxBitmapFromXPMData(PyObject* listOfStrings) {
char** cArray = NULL;
wxBitmap* bmp;
cArray = ConvertListOfStrings(listOfStrings);
if (! cArray)
return NULL;
bmp = new wxBitmap(cArray);
delete [] cArray;
return bmp;
}
wxBitmap* wxBitmapFromIcon(const wxIcon& icon) {
return new wxBitmap(icon);
}
#ifdef __WXMSW__ #ifdef __WXMSW__
wxBitmap* wxBitmapFromData(PyObject* data, long type, wxBitmap* wxBitmapFromData(PyObject* data, long type,
int width, int height, int depth = 1) { int width, int height, int depth = 1) {
@@ -130,6 +167,22 @@ static char* wxStringErrorMsg = "string type is required for parameter";
wxMask* wxMaskColour(const wxBitmap& bitmap, const wxColour& colour) { wxMask* wxMaskColour(const wxBitmap& bitmap, const wxColour& colour) {
return new wxMask(bitmap, colour); return new wxMask(bitmap, colour);
}
// Implementations of some alternate "constructors"
wxIcon* wxEmptyIcon() {
return new wxIcon();
}
wxIcon* wxIconFromXPMData(PyObject* listOfStrings) {
char** cArray = NULL;
wxIcon* icon;
cArray = ConvertListOfStrings(listOfStrings);
if (! cArray)
return NULL;
icon = new wxIcon(cArray);
delete [] cArray;
return icon;
} }
// Alternate 'constructor' // Alternate 'constructor'
wxCursor* wxPyStockCursor(int id) { wxCursor* wxPyStockCursor(int id) {
@@ -231,6 +284,68 @@ static PyObject *_wrap_wxEmptyBitmap(PyObject *self, PyObject *args, PyObject *k
return _resultobj; return _resultobj;
} }
static PyObject *_wrap_wxBitmapFromXPMData(PyObject *self, PyObject *args, PyObject *kwargs) {
PyObject * _resultobj;
wxBitmap * _result;
PyObject * _arg0;
PyObject * _obj0 = 0;
char *_kwnames[] = { "listOfStrings", NULL };
char _ptemp[128];
self = self;
if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxBitmapFromXPMData",_kwnames,&_obj0))
return NULL;
{
_arg0 = _obj0;
}
{
wxPy_BEGIN_ALLOW_THREADS;
_result = (wxBitmap *)wxBitmapFromXPMData(_arg0);
wxPy_END_ALLOW_THREADS;
} if (_result) {
SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p");
_resultobj = Py_BuildValue("s",_ptemp);
} else {
Py_INCREF(Py_None);
_resultobj = Py_None;
}
return _resultobj;
}
static PyObject *_wrap_wxBitmapFromIcon(PyObject *self, PyObject *args, PyObject *kwargs) {
PyObject * _resultobj;
wxBitmap * _result;
wxIcon * _arg0;
PyObject * _argo0 = 0;
char *_kwnames[] = { "icon", NULL };
char _ptemp[128];
self = self;
if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxBitmapFromIcon",_kwnames,&_argo0))
return NULL;
if (_argo0) {
if (_argo0 == Py_None) { _arg0 = NULL; }
else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxIcon_p")) {
PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxBitmapFromIcon. Expected _wxIcon_p.");
return NULL;
}
}
{
wxPy_BEGIN_ALLOW_THREADS;
_result = (wxBitmap *)wxBitmapFromIcon(*_arg0);
wxPy_END_ALLOW_THREADS;
} if (_result) {
SWIG_MakePtr(_ptemp, (char *) _result,"_wxBitmap_p");
_resultobj = Py_BuildValue("s",_ptemp);
} else {
Py_INCREF(Py_None);
_resultobj = Py_None;
}
return _resultobj;
}
static PyObject *_wrap_wxBitmapFromData(PyObject *self, PyObject *args, PyObject *kwargs) { static PyObject *_wrap_wxBitmapFromData(PyObject *self, PyObject *args, PyObject *kwargs) {
PyObject * _resultobj; PyObject * _resultobj;
wxBitmap * _result; wxBitmap * _result;
@@ -305,6 +420,59 @@ static PyObject *_wrap_wxMaskColour(PyObject *self, PyObject *args, PyObject *kw
return _resultobj; return _resultobj;
} }
static PyObject *_wrap_wxEmptyIcon(PyObject *self, PyObject *args, PyObject *kwargs) {
PyObject * _resultobj;
wxIcon * _result;
char *_kwnames[] = { NULL };
char _ptemp[128];
self = self;
if(!PyArg_ParseTupleAndKeywords(args,kwargs,":wxEmptyIcon",_kwnames))
return NULL;
{
wxPy_BEGIN_ALLOW_THREADS;
_result = (wxIcon *)wxEmptyIcon();
wxPy_END_ALLOW_THREADS;
} if (_result) {
SWIG_MakePtr(_ptemp, (char *) _result,"_wxIcon_p");
_resultobj = Py_BuildValue("s",_ptemp);
} else {
Py_INCREF(Py_None);
_resultobj = Py_None;
}
return _resultobj;
}
static PyObject *_wrap_wxIconFromXPMData(PyObject *self, PyObject *args, PyObject *kwargs) {
PyObject * _resultobj;
wxIcon * _result;
PyObject * _arg0;
PyObject * _obj0 = 0;
char *_kwnames[] = { "listOfStrings", NULL };
char _ptemp[128];
self = self;
if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxIconFromXPMData",_kwnames,&_obj0))
return NULL;
{
_arg0 = _obj0;
}
{
wxPy_BEGIN_ALLOW_THREADS;
_result = (wxIcon *)wxIconFromXPMData(_arg0);
wxPy_END_ALLOW_THREADS;
} if (_result) {
SWIG_MakePtr(_ptemp, (char *) _result,"_wxIcon_p");
_resultobj = Py_BuildValue("s",_ptemp);
} else {
Py_INCREF(Py_None);
_resultobj = Py_None;
}
return _resultobj;
}
static PyObject *_wrap_wxStockCursor(PyObject *self, PyObject *args, PyObject *kwargs) { static PyObject *_wrap_wxStockCursor(PyObject *self, PyObject *args, PyObject *kwargs) {
PyObject * _resultobj; PyObject * _resultobj;
wxCursor * _result; wxCursor * _result;
@@ -1946,6 +2114,33 @@ static PyObject *_wrap_new_wxMask(PyObject *self, PyObject *args, PyObject *kwar
return _resultobj; return _resultobj;
} }
static void wxMask_Destroy(wxMask *self) { delete self; }
static PyObject *_wrap_wxMask_Destroy(PyObject *self, PyObject *args, PyObject *kwargs) {
PyObject * _resultobj;
wxMask * _arg0;
PyObject * _argo0 = 0;
char *_kwnames[] = { "self", NULL };
self = self;
if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxMask_Destroy",_kwnames,&_argo0))
return NULL;
if (_argo0) {
if (_argo0 == Py_None) { _arg0 = NULL; }
else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxMask_p")) {
PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxMask_Destroy. Expected _wxMask_p.");
return NULL;
}
}
{
wxPy_BEGIN_ALLOW_THREADS;
wxMask_Destroy(_arg0);
wxPy_END_ALLOW_THREADS;
} Py_INCREF(Py_None);
_resultobj = Py_None;
return _resultobj;
}
#define new_wxIcon(_swigarg0,_swigarg1,_swigarg2,_swigarg3) (new wxIcon(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) #define new_wxIcon(_swigarg0,_swigarg1,_swigarg2,_swigarg3) (new wxIcon(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
static PyObject *_wrap_new_wxIcon(PyObject *self, PyObject *args, PyObject *kwargs) { static PyObject *_wrap_new_wxIcon(PyObject *self, PyObject *args, PyObject *kwargs) {
PyObject * _resultobj; PyObject * _resultobj;
@@ -2359,6 +2554,42 @@ static PyObject *_wrap_wxIcon_SetSize(PyObject *self, PyObject *args, PyObject *
return _resultobj; return _resultobj;
} }
#define wxIcon_CopyFromBitmap(_swigobj,_swigarg0) (_swigobj->CopyFromBitmap(_swigarg0))
static PyObject *_wrap_wxIcon_CopyFromBitmap(PyObject *self, PyObject *args, PyObject *kwargs) {
PyObject * _resultobj;
wxIcon * _arg0;
wxBitmap * _arg1;
PyObject * _argo0 = 0;
PyObject * _argo1 = 0;
char *_kwnames[] = { "self","bmp", NULL };
self = self;
if(!PyArg_ParseTupleAndKeywords(args,kwargs,"OO:wxIcon_CopyFromBitmap",_kwnames,&_argo0,&_argo1))
return NULL;
if (_argo0) {
if (_argo0 == Py_None) { _arg0 = NULL; }
else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxIcon_p")) {
PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxIcon_CopyFromBitmap. Expected _wxIcon_p.");
return NULL;
}
}
if (_argo1) {
if (_argo1 == Py_None) { _arg1 = NULL; }
else if (SWIG_GetPtrObj(_argo1,(void **) &_arg1,"_wxBitmap_p")) {
PyErr_SetString(PyExc_TypeError,"Type error in argument 2 of wxIcon_CopyFromBitmap. Expected _wxBitmap_p.");
return NULL;
}
}
{
wxPy_BEGIN_ALLOW_THREADS;
wxIcon_CopyFromBitmap(_arg0,*_arg1);
wxPy_END_ALLOW_THREADS;
} Py_INCREF(Py_None);
_resultobj = Py_None;
return _resultobj;
}
#define new_wxCursor(_swigarg0,_swigarg1,_swigarg2,_swigarg3) (new wxCursor(_swigarg0,_swigarg1,_swigarg2,_swigarg3)) #define new_wxCursor(_swigarg0,_swigarg1,_swigarg2,_swigarg3) (new wxCursor(_swigarg0,_swigarg1,_swigarg2,_swigarg3))
static PyObject *_wrap_new_wxCursor(PyObject *self, PyObject *args, PyObject *kwargs) { static PyObject *_wrap_new_wxCursor(PyObject *self, PyObject *args, PyObject *kwargs) {
PyObject * _resultobj; PyObject * _resultobj;
@@ -9033,6 +9264,7 @@ static PyMethodDef gdicMethods[] = {
{ "wxCursor_GetHandle", (PyCFunction) _wrap_wxCursor_GetHandle, METH_VARARGS | METH_KEYWORDS }, { "wxCursor_GetHandle", (PyCFunction) _wrap_wxCursor_GetHandle, METH_VARARGS | METH_KEYWORDS },
{ "delete_wxCursor", (PyCFunction) _wrap_delete_wxCursor, METH_VARARGS | METH_KEYWORDS }, { "delete_wxCursor", (PyCFunction) _wrap_delete_wxCursor, METH_VARARGS | METH_KEYWORDS },
{ "new_wxCursor", (PyCFunction) _wrap_new_wxCursor, METH_VARARGS | METH_KEYWORDS }, { "new_wxCursor", (PyCFunction) _wrap_new_wxCursor, METH_VARARGS | METH_KEYWORDS },
{ "wxIcon_CopyFromBitmap", (PyCFunction) _wrap_wxIcon_CopyFromBitmap, METH_VARARGS | METH_KEYWORDS },
{ "wxIcon_SetSize", (PyCFunction) _wrap_wxIcon_SetSize, METH_VARARGS | METH_KEYWORDS }, { "wxIcon_SetSize", (PyCFunction) _wrap_wxIcon_SetSize, METH_VARARGS | METH_KEYWORDS },
{ "wxIcon_SetDepth", (PyCFunction) _wrap_wxIcon_SetDepth, METH_VARARGS | METH_KEYWORDS }, { "wxIcon_SetDepth", (PyCFunction) _wrap_wxIcon_SetDepth, METH_VARARGS | METH_KEYWORDS },
{ "wxIcon_SetHeight", (PyCFunction) _wrap_wxIcon_SetHeight, METH_VARARGS | METH_KEYWORDS }, { "wxIcon_SetHeight", (PyCFunction) _wrap_wxIcon_SetHeight, METH_VARARGS | METH_KEYWORDS },
@@ -9046,6 +9278,7 @@ static PyMethodDef gdicMethods[] = {
{ "wxIcon_LoadFile", (PyCFunction) _wrap_wxIcon_LoadFile, METH_VARARGS | METH_KEYWORDS }, { "wxIcon_LoadFile", (PyCFunction) _wrap_wxIcon_LoadFile, METH_VARARGS | METH_KEYWORDS },
{ "delete_wxIcon", (PyCFunction) _wrap_delete_wxIcon, METH_VARARGS | METH_KEYWORDS }, { "delete_wxIcon", (PyCFunction) _wrap_delete_wxIcon, METH_VARARGS | METH_KEYWORDS },
{ "new_wxIcon", (PyCFunction) _wrap_new_wxIcon, METH_VARARGS | METH_KEYWORDS }, { "new_wxIcon", (PyCFunction) _wrap_new_wxIcon, METH_VARARGS | METH_KEYWORDS },
{ "wxMask_Destroy", (PyCFunction) _wrap_wxMask_Destroy, METH_VARARGS | METH_KEYWORDS },
{ "new_wxMask", (PyCFunction) _wrap_new_wxMask, METH_VARARGS | METH_KEYWORDS }, { "new_wxMask", (PyCFunction) _wrap_new_wxMask, METH_VARARGS | METH_KEYWORDS },
{ "wxBitmap_SetQuality", (PyCFunction) _wrap_wxBitmap_SetQuality, METH_VARARGS | METH_KEYWORDS }, { "wxBitmap_SetQuality", (PyCFunction) _wrap_wxBitmap_SetQuality, METH_VARARGS | METH_KEYWORDS },
{ "wxBitmap_GetQuality", (PyCFunction) _wrap_wxBitmap_GetQuality, METH_VARARGS | METH_KEYWORDS }, { "wxBitmap_GetQuality", (PyCFunction) _wrap_wxBitmap_GetQuality, METH_VARARGS | METH_KEYWORDS },
@@ -9075,8 +9308,12 @@ static PyMethodDef gdicMethods[] = {
{ "wxFont_SetDefaultEncoding", (PyCFunction) _wrap_wxFont_SetDefaultEncoding, METH_VARARGS | METH_KEYWORDS }, { "wxFont_SetDefaultEncoding", (PyCFunction) _wrap_wxFont_SetDefaultEncoding, METH_VARARGS | METH_KEYWORDS },
{ "wxFont_GetDefaultEncoding", (PyCFunction) _wrap_wxFont_GetDefaultEncoding, METH_VARARGS | METH_KEYWORDS }, { "wxFont_GetDefaultEncoding", (PyCFunction) _wrap_wxFont_GetDefaultEncoding, METH_VARARGS | METH_KEYWORDS },
{ "wxStockCursor", (PyCFunction) _wrap_wxStockCursor, METH_VARARGS | METH_KEYWORDS }, { "wxStockCursor", (PyCFunction) _wrap_wxStockCursor, METH_VARARGS | METH_KEYWORDS },
{ "wxIconFromXPMData", (PyCFunction) _wrap_wxIconFromXPMData, METH_VARARGS | METH_KEYWORDS },
{ "wxEmptyIcon", (PyCFunction) _wrap_wxEmptyIcon, METH_VARARGS | METH_KEYWORDS },
{ "wxMaskColour", (PyCFunction) _wrap_wxMaskColour, METH_VARARGS | METH_KEYWORDS }, { "wxMaskColour", (PyCFunction) _wrap_wxMaskColour, METH_VARARGS | METH_KEYWORDS },
{ "wxBitmapFromData", (PyCFunction) _wrap_wxBitmapFromData, METH_VARARGS | METH_KEYWORDS }, { "wxBitmapFromData", (PyCFunction) _wrap_wxBitmapFromData, METH_VARARGS | METH_KEYWORDS },
{ "wxBitmapFromIcon", (PyCFunction) _wrap_wxBitmapFromIcon, METH_VARARGS | METH_KEYWORDS },
{ "wxBitmapFromXPMData", (PyCFunction) _wrap_wxBitmapFromXPMData, METH_VARARGS | METH_KEYWORDS },
{ "wxEmptyBitmap", (PyCFunction) _wrap_wxEmptyBitmap, METH_VARARGS | METH_KEYWORDS }, { "wxEmptyBitmap", (PyCFunction) _wrap_wxEmptyBitmap, METH_VARARGS | METH_KEYWORDS },
{ NULL, NULL } { NULL, NULL }
}; };

View File

@@ -97,6 +97,9 @@ class wxMaskPtr :
def __init__(self,this): def __init__(self,this):
self.this = this self.this = this
self.thisown = 0 self.thisown = 0
def Destroy(self, *_args, **_kwargs):
val = apply(gdic.wxMask_Destroy,(self,) + _args, _kwargs)
return val
def __repr__(self): def __repr__(self):
return "<C wxMask instance at %s>" % (self.this,) return "<C wxMask instance at %s>" % (self.this,)
class wxMask(wxMaskPtr): class wxMask(wxMaskPtr):
@@ -147,6 +150,9 @@ class wxIconPtr :
def SetSize(self, *_args, **_kwargs): def SetSize(self, *_args, **_kwargs):
val = apply(gdic.wxIcon_SetSize,(self,) + _args, _kwargs) val = apply(gdic.wxIcon_SetSize,(self,) + _args, _kwargs)
return val return val
def CopyFromBitmap(self, *_args, **_kwargs):
val = apply(gdic.wxIcon_CopyFromBitmap,(self,) + _args, _kwargs)
return val
def __repr__(self): def __repr__(self):
return "<C wxIcon instance at %s>" % (self.this,) return "<C wxIcon instance at %s>" % (self.this,)
@@ -976,6 +982,16 @@ def wxEmptyBitmap(*_args, **_kwargs):
if val: val = wxBitmapPtr(val); val.thisown = 1 if val: val = wxBitmapPtr(val); val.thisown = 1
return val return val
def wxBitmapFromXPMData(*_args, **_kwargs):
val = apply(gdic.wxBitmapFromXPMData,_args,_kwargs)
if val: val = wxBitmapPtr(val); val.thisown = 1
return val
def wxBitmapFromIcon(*_args, **_kwargs):
val = apply(gdic.wxBitmapFromIcon,_args,_kwargs)
if val: val = wxBitmapPtr(val); val.thisown = 1
return val
def wxBitmapFromData(*_args, **_kwargs): def wxBitmapFromData(*_args, **_kwargs):
val = apply(gdic.wxBitmapFromData,_args,_kwargs) val = apply(gdic.wxBitmapFromData,_args,_kwargs)
if val: val = wxBitmapPtr(val); val.thisown = 1 if val: val = wxBitmapPtr(val); val.thisown = 1
@@ -986,6 +1002,16 @@ def wxMaskColour(*_args, **_kwargs):
if val: val = wxMaskPtr(val); val.thisown = 1 if val: val = wxMaskPtr(val); val.thisown = 1
return val return val
def wxEmptyIcon(*_args, **_kwargs):
val = apply(gdic.wxEmptyIcon,_args,_kwargs)
if val: val = wxIconPtr(val); val.thisown = 1
return val
def wxIconFromXPMData(*_args, **_kwargs):
val = apply(gdic.wxIconFromXPMData,_args,_kwargs)
if val: val = wxIconPtr(val); val.thisown = 1
return val
def wxStockCursor(*_args, **_kwargs): def wxStockCursor(*_args, **_kwargs):
val = apply(gdic.wxStockCursor,_args,_kwargs) val = apply(gdic.wxStockCursor,_args,_kwargs)
if val: val = wxCursorPtr(val); val.thisown = 1 if val: val = wxCursorPtr(val); val.thisown = 1

View File

@@ -121,10 +121,6 @@ static char* wxStringErrorMsg = "string type is required for parameter";
wxImage* wxImageFromBitmap(const wxBitmap &bitmap) { wxImage* wxImageFromBitmap(const wxBitmap &bitmap) {
return new wxImage(bitmap); return new wxImage(bitmap);
} }
void wxImage_AddHandler(wxImageHandler *handler) {
wxImage::AddHandler(handler);
}
#ifdef __cplusplus #ifdef __cplusplus
extern "C" { extern "C" {
#endif #endif
@@ -283,32 +279,6 @@ static PyObject *_wrap_wxImageFromBitmap(PyObject *self, PyObject *args, PyObjec
return _resultobj; return _resultobj;
} }
static PyObject *_wrap_wxImage_AddHandler(PyObject *self, PyObject *args, PyObject *kwargs) {
PyObject * _resultobj;
wxImageHandler * _arg0;
PyObject * _argo0 = 0;
char *_kwnames[] = { "handler", NULL };
self = self;
if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxImage_AddHandler",_kwnames,&_argo0))
return NULL;
if (_argo0) {
if (_argo0 == Py_None) { _arg0 = NULL; }
else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxImageHandler_p")) {
PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_AddHandler. Expected _wxImageHandler_p.");
return NULL;
}
}
{
wxPy_BEGIN_ALLOW_THREADS;
wxImage_AddHandler(_arg0);
wxPy_END_ALLOW_THREADS;
} Py_INCREF(Py_None);
_resultobj = Py_None;
return _resultobj;
}
static PyObject *_wrap_wxInitAllImageHandlers(PyObject *self, PyObject *args, PyObject *kwargs) { static PyObject *_wrap_wxInitAllImageHandlers(PyObject *self, PyObject *args, PyObject *kwargs) {
PyObject * _resultobj; PyObject * _resultobj;
char *_kwnames[] = { NULL }; char *_kwnames[] = { NULL };
@@ -1210,13 +1180,54 @@ static PyObject *_wrap_wxImage_GetBlue(PyObject *self, PyObject *args, PyObject
return _resultobj; return _resultobj;
} }
static PyObject *_wrap_wxImage_CanRead(PyObject *self, PyObject *args, PyObject *kwargs) {
PyObject * _resultobj;
bool _result;
wxString * _arg0;
PyObject * _obj0 = 0;
char *_kwnames[] = { "name", NULL };
self = self;
if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxImage_CanRead",_kwnames,&_obj0))
return NULL;
{
#if PYTHON_API_VERSION >= 1009
char* tmpPtr; int tmpSize;
if (!PyString_Check(_obj0) && !PyUnicode_Check(_obj0)) {
PyErr_SetString(PyExc_TypeError, "String or Unicode type required");
return NULL;
}
if (PyString_AsStringAndSize(_obj0, &tmpPtr, &tmpSize) == -1)
return NULL;
_arg0 = new wxString(tmpPtr, tmpSize);
#else
if (!PyString_Check(_obj0)) {
PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
return NULL;
}
_arg0 = new wxString(PyString_AS_STRING(_obj0), PyString_GET_SIZE(_obj0));
#endif
}
{
wxPy_BEGIN_ALLOW_THREADS;
_result = (bool )wxImage::CanRead(*_arg0);
wxPy_END_ALLOW_THREADS;
} _resultobj = Py_BuildValue("i",_result);
{
if (_obj0)
delete _arg0;
}
return _resultobj;
}
#define wxImage_LoadFile(_swigobj,_swigarg0,_swigarg1) (_swigobj->LoadFile(_swigarg0,_swigarg1)) #define wxImage_LoadFile(_swigobj,_swigarg0,_swigarg1) (_swigobj->LoadFile(_swigarg0,_swigarg1))
static PyObject *_wrap_wxImage_LoadFile(PyObject *self, PyObject *args, PyObject *kwargs) { static PyObject *_wrap_wxImage_LoadFile(PyObject *self, PyObject *args, PyObject *kwargs) {
PyObject * _resultobj; PyObject * _resultobj;
bool _result; bool _result;
wxImage * _arg0; wxImage * _arg0;
wxString * _arg1; wxString * _arg1;
long _arg2 = (long ) wxBITMAP_TYPE_PNG; long _arg2 = (long ) wxBITMAP_TYPE_ANY;
PyObject * _argo0 = 0; PyObject * _argo0 = 0;
PyObject * _obj1 = 0; PyObject * _obj1 = 0;
char *_kwnames[] = { "self","name","type", NULL }; char *_kwnames[] = { "self","name","type", NULL };
@@ -2069,7 +2080,103 @@ static PyObject *_wrap_wxImage_CountColours(PyObject *self, PyObject *args, PyOb
return _resultobj; return _resultobj;
} }
static PyObject *_wrap_wxImage_AddHandler(PyObject *self, PyObject *args, PyObject *kwargs) {
PyObject * _resultobj;
wxImageHandler * _arg0;
PyObject * _argo0 = 0;
char *_kwnames[] = { "handler", NULL };
self = self;
if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxImage_AddHandler",_kwnames,&_argo0))
return NULL;
if (_argo0) {
if (_argo0 == Py_None) { _arg0 = NULL; }
else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxImageHandler_p")) {
PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_AddHandler. Expected _wxImageHandler_p.");
return NULL;
}
}
{
wxPy_BEGIN_ALLOW_THREADS;
wxImage::AddHandler(_arg0);
wxPy_END_ALLOW_THREADS;
} Py_INCREF(Py_None);
_resultobj = Py_None;
return _resultobj;
}
static PyObject *_wrap_wxImage_InsertHandler(PyObject *self, PyObject *args, PyObject *kwargs) {
PyObject * _resultobj;
wxImageHandler * _arg0;
PyObject * _argo0 = 0;
char *_kwnames[] = { "handler", NULL };
self = self;
if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxImage_InsertHandler",_kwnames,&_argo0))
return NULL;
if (_argo0) {
if (_argo0 == Py_None) { _arg0 = NULL; }
else if (SWIG_GetPtrObj(_argo0,(void **) &_arg0,"_wxImageHandler_p")) {
PyErr_SetString(PyExc_TypeError,"Type error in argument 1 of wxImage_InsertHandler. Expected _wxImageHandler_p.");
return NULL;
}
}
{
wxPy_BEGIN_ALLOW_THREADS;
wxImage::InsertHandler(_arg0);
wxPy_END_ALLOW_THREADS;
} Py_INCREF(Py_None);
_resultobj = Py_None;
return _resultobj;
}
static PyObject *_wrap_wxImage_RemoveHandler(PyObject *self, PyObject *args, PyObject *kwargs) {
PyObject * _resultobj;
bool _result;
wxString * _arg0;
PyObject * _obj0 = 0;
char *_kwnames[] = { "name", NULL };
self = self;
if(!PyArg_ParseTupleAndKeywords(args,kwargs,"O:wxImage_RemoveHandler",_kwnames,&_obj0))
return NULL;
{
#if PYTHON_API_VERSION >= 1009
char* tmpPtr; int tmpSize;
if (!PyString_Check(_obj0) && !PyUnicode_Check(_obj0)) {
PyErr_SetString(PyExc_TypeError, "String or Unicode type required");
return NULL;
}
if (PyString_AsStringAndSize(_obj0, &tmpPtr, &tmpSize) == -1)
return NULL;
_arg0 = new wxString(tmpPtr, tmpSize);
#else
if (!PyString_Check(_obj0)) {
PyErr_SetString(PyExc_TypeError, wxStringErrorMsg);
return NULL;
}
_arg0 = new wxString(PyString_AS_STRING(_obj0), PyString_GET_SIZE(_obj0));
#endif
}
{
wxPy_BEGIN_ALLOW_THREADS;
_result = (bool )wxImage::RemoveHandler(*_arg0);
wxPy_END_ALLOW_THREADS;
} _resultobj = Py_BuildValue("i",_result);
{
if (_obj0)
delete _arg0;
}
return _resultobj;
}
static PyMethodDef imagecMethods[] = { static PyMethodDef imagecMethods[] = {
{ "wxImage_RemoveHandler", (PyCFunction) _wrap_wxImage_RemoveHandler, METH_VARARGS | METH_KEYWORDS },
{ "wxImage_InsertHandler", (PyCFunction) _wrap_wxImage_InsertHandler, METH_VARARGS | METH_KEYWORDS },
{ "wxImage_AddHandler", (PyCFunction) _wrap_wxImage_AddHandler, METH_VARARGS | METH_KEYWORDS },
{ "wxImage_CountColours", (PyCFunction) _wrap_wxImage_CountColours, METH_VARARGS | METH_KEYWORDS }, { "wxImage_CountColours", (PyCFunction) _wrap_wxImage_CountColours, METH_VARARGS | METH_KEYWORDS },
{ "wxImage_Replace", (PyCFunction) _wrap_wxImage_Replace, METH_VARARGS | METH_KEYWORDS }, { "wxImage_Replace", (PyCFunction) _wrap_wxImage_Replace, METH_VARARGS | METH_KEYWORDS },
{ "wxImage_Mirror", (PyCFunction) _wrap_wxImage_Mirror, METH_VARARGS | METH_KEYWORDS }, { "wxImage_Mirror", (PyCFunction) _wrap_wxImage_Mirror, METH_VARARGS | METH_KEYWORDS },
@@ -2093,6 +2200,7 @@ static PyMethodDef imagecMethods[] = {
{ "wxImage_SaveFile", (PyCFunction) _wrap_wxImage_SaveFile, METH_VARARGS | METH_KEYWORDS }, { "wxImage_SaveFile", (PyCFunction) _wrap_wxImage_SaveFile, METH_VARARGS | METH_KEYWORDS },
{ "wxImage_LoadMimeFile", (PyCFunction) _wrap_wxImage_LoadMimeFile, METH_VARARGS | METH_KEYWORDS }, { "wxImage_LoadMimeFile", (PyCFunction) _wrap_wxImage_LoadMimeFile, METH_VARARGS | METH_KEYWORDS },
{ "wxImage_LoadFile", (PyCFunction) _wrap_wxImage_LoadFile, METH_VARARGS | METH_KEYWORDS }, { "wxImage_LoadFile", (PyCFunction) _wrap_wxImage_LoadFile, METH_VARARGS | METH_KEYWORDS },
{ "wxImage_CanRead", (PyCFunction) _wrap_wxImage_CanRead, METH_VARARGS | METH_KEYWORDS },
{ "wxImage_GetBlue", (PyCFunction) _wrap_wxImage_GetBlue, METH_VARARGS | METH_KEYWORDS }, { "wxImage_GetBlue", (PyCFunction) _wrap_wxImage_GetBlue, METH_VARARGS | METH_KEYWORDS },
{ "wxImage_GetGreen", (PyCFunction) _wrap_wxImage_GetGreen, METH_VARARGS | METH_KEYWORDS }, { "wxImage_GetGreen", (PyCFunction) _wrap_wxImage_GetGreen, METH_VARARGS | METH_KEYWORDS },
{ "wxImage_GetRed", (PyCFunction) _wrap_wxImage_GetRed, METH_VARARGS | METH_KEYWORDS }, { "wxImage_GetRed", (PyCFunction) _wrap_wxImage_GetRed, METH_VARARGS | METH_KEYWORDS },
@@ -2120,7 +2228,6 @@ static PyMethodDef imagecMethods[] = {
{ "wxImageHandler_GetExtension", (PyCFunction) _wrap_wxImageHandler_GetExtension, METH_VARARGS | METH_KEYWORDS }, { "wxImageHandler_GetExtension", (PyCFunction) _wrap_wxImageHandler_GetExtension, METH_VARARGS | METH_KEYWORDS },
{ "wxImageHandler_GetName", (PyCFunction) _wrap_wxImageHandler_GetName, METH_VARARGS | METH_KEYWORDS }, { "wxImageHandler_GetName", (PyCFunction) _wrap_wxImageHandler_GetName, METH_VARARGS | METH_KEYWORDS },
{ "wxInitAllImageHandlers", (PyCFunction) _wrap_wxInitAllImageHandlers, METH_VARARGS | METH_KEYWORDS }, { "wxInitAllImageHandlers", (PyCFunction) _wrap_wxInitAllImageHandlers, METH_VARARGS | METH_KEYWORDS },
{ "wxImage_AddHandler", (PyCFunction) _wrap_wxImage_AddHandler, METH_VARARGS | METH_KEYWORDS },
{ "wxImageFromBitmap", (PyCFunction) _wrap_wxImageFromBitmap, METH_VARARGS | METH_KEYWORDS }, { "wxImageFromBitmap", (PyCFunction) _wrap_wxImageFromBitmap, METH_VARARGS | METH_KEYWORDS },
{ "wxImageFromMime", (PyCFunction) _wrap_wxImageFromMime, METH_VARARGS | METH_KEYWORDS }, { "wxImageFromMime", (PyCFunction) _wrap_wxImageFromMime, METH_VARARGS | METH_KEYWORDS },
{ "wxEmptyImage", (PyCFunction) _wrap_wxEmptyImage, METH_VARARGS | METH_KEYWORDS }, { "wxEmptyImage", (PyCFunction) _wrap_wxEmptyImage, METH_VARARGS | METH_KEYWORDS },

View File

@@ -284,9 +284,15 @@ def wxImageFromBitmap(*_args, **_kwargs):
if val: val = wxImagePtr(val); val.thisown = 1 if val: val = wxImagePtr(val); val.thisown = 1
return val return val
wxInitAllImageHandlers = imagec.wxInitAllImageHandlers
wxImage_CanRead = imagec.wxImage_CanRead
wxImage_AddHandler = imagec.wxImage_AddHandler wxImage_AddHandler = imagec.wxImage_AddHandler
wxInitAllImageHandlers = imagec.wxInitAllImageHandlers wxImage_InsertHandler = imagec.wxImage_InsertHandler
wxImage_RemoveHandler = imagec.wxImage_RemoveHandler

178
wxPython/tools/img2py.py Normal file
View File

@@ -0,0 +1,178 @@
#!/usr/bin/env python
"""
img2py.py -- Convert an image to XPM format and embed it in a Python
module with appropriate code so it can be loaded into
a program at runtime. The benefit is that since it is
Python source code it can be delivered as a .pyc or
'compiled' into the program using freeze, py2exe, etc.
Usage:
img2py.py [options] image_file python_file
Options:
-m <#rrggbb> If the original image has a mask or transparency defined
it will be used by default. You can use this option to
override the default or provide a new mask by specifying
a colour in the image to mark as transparent.
-n <name> Normally generic names (getBitmap, etc.) are used for the
image access functions. If you use this option you can
specify a name that should be used to customize the access
fucntions, (getNameBitmap, etc.)
-a This flag specifies that the python_file should be appended
to instead of overwritten. This in combination with -n will
allow you to put multiple images in one Python source file.
-u Don't use compression. Leaves the data uncompressed.
"""
import sys, os, glob, getopt, tempfile
import cPickle, cStringIO, zlib
import img2xpm
def crunch_data(data, compressed):
# convert the lines to a Python list, pickle it and compress the result.
lines = []
for line in data[2:]: # skip the first two lines
lines.append(line[1:-3]) # chop one char from the front and three from the end
# chop one extra char from the last line
lines[-1] = lines[-1][:-1]
# pickle, crunch and convert it to a form suitable for embedding in code
data = cPickle.dumps(lines)
if compressed:
data = zlib.compress(data, 9)
data = repr(data)
# This next bit is borrowed from PIL. It is used to wrap the text intelligently.
fp = cStringIO.StringIO()
data = data + " " # buffer for the +1 test
c = i = 0
word = ""
octdigits = "01234567"
while i < len(data):
if data[i] != "\\":
word = data[i]
i = i + 1
else:
if data[i+1] in octdigits:
for n in range(2, 5):
if data[i+n] not in octdigits:
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")
c = 0
fp.write(word)
c = c + l
# return the formatted compressed data
return fp.getvalue()
def main(args):
if not args or ("-h" in args):
print __doc__
return
append = 0
compressed = 1
maskClr = None
imgName = ""
try:
opts, fileArgs = getopt.getopt(args, "aun:m:")
except getopt.GetoptError:
print __doc__
return
for opt, val in opts:
if opt == "-a":
append = 1
elif opt == "-u":
compressed = 0
elif opt == "-n":
imgName = val
elif opt == "-m":
maskClr = val
if len(fileArgs) != 2:
print __doc__
return
image_file, python_file = fileArgs
# convert the image file to a temporary file
tfname = tempfile.mktemp()
ok, msg = img2xpm.convert(image_file, maskClr, None, tfname)
if not ok:
print msg
return
data = open(tfname, "r").readlines()
data = crunch_data(data, compressed)
os.unlink(tfname)
if append:
out = open(python_file, "a")
else:
out = open(python_file, "w")
out.write("#" + "-" * 70 + "\n")
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 compressed:
out.write("import cPickle, zlib\n\n\n")
else:
out.write("import cPickle\n\n\n")
if compressed:
out.write("def get%sData():\n"
" return cPickle.loads(zlib.decompress(\n%s))\n\n"
% (imgName, data))
else:
out.write("def get%sData():\n"
" return cPickle.loads(\n%s)\n\n"
% (imgName, data))
out.write("def get%sBitmap():\n"
" return wxBitmapFromXPMData(get%sData())\n\n"
"def get%sImage():\n"
" return wxImageFromBitmap(get%sBitmap())\n\n"
% tuple([imgName] * 4))
if imgName:
n_msg = ' using "%s"' % imgName
else:
n_msg = ""
if maskClr:
m_msg = " with mask %s" % maskClr
else:
m_msg = ""
print "Embedded %s%s into %s%s" % (image_file, n_msg, python_file, m_msg)
if __name__ == "__main__":
main(sys.argv[1:])

96
wxPython/tools/img2xpm.py Normal file
View File

@@ -0,0 +1,96 @@
#!/usr/bin/env python
"""
img2xpm.py -- convert several image formats to XPM
Usage:
img2xpm.py [options] image_files...
Options:
-o <dir> The directory to place the .xmp file(s), defaults to
the current directory.
-m <#rrggbb> If the original image has a mask or transparency defined
it will be used by default. You can use this option to
override the default or provide a new mask by specifying
a colour in the image to mark as transparent.
-n <name> A filename to write the .xpm data to. Defaults to the
basename of the image file + '.xpm' This option overrides
the -o option.
"""
import sys, os, glob, getopt, string
from wxPython.wx import *
wxInitAllImageHandlers()
def convert(file, maskClr, outputDir, outputName):
if string.lower(os.path.splitext(file)[1]) == ".ico":
icon = wxIcon(file, wxBITMAP_TYPE_ICO)
img = wxBitmapFromIcon(icon)
else:
img = wxBitmap(file, wxBITMAP_TYPE_ANY)
if not img.Ok():
return 0, file + " failed to load!"
else:
if maskClr:
om = img.GetMask()
mask = wxMaskColour(img, maskClr)
img.SetMask(mask)
if om is not None:
om.Destroy()
if outputName:
newname = outputName
else:
newname = os.path.join(outputDir, os.path.basename(os.path.splitext(file)[0]) + ".xpm")
if img.SaveFile(newname, wxBITMAP_TYPE_XPM):
return 1, file + " converted to " + newname
else:
return 0, file + " failed to save!"
def main(args):
if not args or ("-h" in args):
print __doc__
return
outputDir = ""
maskClr = None
outputName = None
try:
opts, fileArgs = getopt.getopt(args, "m:n:o:")
except getopt.GetoptError:
print __doc__
return
for opt, val in opts:
if opt == "-m":
maskClr = val
elif opt == "-n":
outputName = val
elif opt == "-o":
outputDir = val
if not fileArgs:
print __doc__
return
for arg in fileArgs:
for file in glob.glob(arg):
if not os.path.isfile(file):
continue
ok, msg = convert(file, maskClr, outputDir, outputName)
print msg
if __name__ == "__main__":
main(sys.argv[1:])