git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@3345 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
		
			
				
	
	
		
			60 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			60 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #
 | |
| # htmlhelper.py 
 | |
| # 
 | |
| # A few helper functions for putting wxPython widgets in html pages
 | |
| #
 | |
| # Harm van der Heijden, 11 aug 1999.
 | |
| 
 | |
| import wx
 | |
| import string
 | |
| import htmlc
 | |
| 
 | |
| # Function to parse a param string (of the form 'item=value item2="value etc"'
 | |
| # and creates a dictionary
 | |
| def _param2dict(param):
 | |
|     i = 0; j = 0; s = len(param); d = {}
 | |
|     d['param_str'] = param
 | |
|     while 1:
 | |
| 	while i<s and param[i] == " " : i = i+1
 | |
| 	if i>=s: break
 | |
| 	j = i
 | |
| 	while j<s and param[j] != "=": j=j+1
 | |
| 	if j+1>=s:
 | |
| 	    break
 | |
| 	word = param[i:j]
 | |
| 	i=j+1
 | |
| 	if (param[i] == '"'):
 | |
| 	    j=i+1
 | |
| 	    while j<s and param[j] != '"' : j=j+1
 | |
| 	    if j == s: break
 | |
| 	    val = param[i+1:j]
 | |
| 	elif (param[i] != " "):
 | |
| 	    j=i+1
 | |
| 	    while j<s and param[j] != " " : j=j+1
 | |
| 	    val = param[i:j]
 | |
| 	else:
 | |
| 	    val = ""
 | |
| 	i=j+1
 | |
| 	d[string.lower(word)] = val
 | |
|     return d
 | |
| 
 | |
| # This function gets called by the <python> tag handler.
 | |
| # Arguments are the parent (wxHtmlWindow) SWIG pointer (in python, a string)
 | |
| # and a string containing the parameters.
 | |
| # The return value must be the SWIG pointer of the created widget (the 'this'
 | |
| # attribute in python). The widget must be derived from a wxWindow or one
 | |
| # of its descendants.
 | |
| def _WidgetStarter(parentptr, param):
 | |
|     # create a python instance of the parent
 | |
|     parent = wx.wxWindowPtr(parentptr)
 | |
|     # try to find the widget class in the htmlwinc (=htmlwidget) module
 | |
|     dict = _param2dict(param)
 | |
|     classname = dict['class']
 | |
|     obj = htmlc.__dict__[classname]
 | |
|     # now create the class with arguments parent, dictionary
 | |
|     cls = apply(obj, (parent, dict))
 | |
|     # return the class instance's pointer
 | |
|     return cls.this
 | |
| 
 | |
| htmlc.WidgetStarter = _WidgetStarter
 |