comparison engine/extensions/pychan/widgets.py @ 177:3fb17daa1b27

* Added ToggleButton widget * Modified editor to use togglebuttons in toolbox
author cheesesucker@33b003aa-7bff-0310-803a-e67f0ece8222
date Sun, 25 Jan 2009 20:17:41 +0000
parents 81a222e7bd25
children 06dddc96ce54
comparison
equal deleted inserted replaced
176:542213eebe73 177:3fb17daa1b27
1205 1205
1206 def resizeToContent(self): 1206 def resizeToContent(self):
1207 self.height = max(self._upimage.getHeight(),self._downimage.getHeight(),self._hoverimage.getHeight()) + self.margins[1]*2 1207 self.height = max(self._upimage.getHeight(),self._downimage.getHeight(),self._hoverimage.getHeight()) + self.margins[1]*2
1208 self.width = max(self._upimage.getWidth(),self._downimage.getWidth(),self._hoverimage.getWidth()) + self.margins[1]*2 1208 self.width = max(self._upimage.getWidth(),self._downimage.getWidth(),self._hoverimage.getWidth()) + self.margins[1]*2
1209 1209
1210 class ToggleButton(BasicTextWidget):
1211 """
1212 A basic push button that can be toggled.
1213
1214 Unfortunately a bit of code duplication from ImageButton.
1215
1216 New Attributes
1217 ==============
1218
1219 - group: String: The group the button belongs to. Only one button in each group will be toggled at one time.
1220 - toggled: Boolean: Whether the button is toggled or not.
1221 """
1222
1223 ATTRIBUTES = BasicTextWidget.ATTRIBUTES + [Attr('up_image'),Attr('down_image'),PointAttr('offset'),Attr('helptext'),Attr('hover_image'),Attr('group')]
1224
1225 def __init__(self,up_image="",down_image="",hover_image="",offset=(0,0),group="",**kwargs):
1226
1227 self.real_widget = fife.ToggleButton()
1228 super(ToggleButton,self).__init__(**kwargs)
1229 self.group = group
1230 self.up_image = up_image
1231 self.down_image = down_image
1232 self.hover_image = hover_image
1233 self.offset = offset
1234
1235 def _setGroup(self,group):
1236 self.real_widget.setGroup( group )
1237
1238 def _getGroup(self):
1239 return self.real_widget.getGroup()
1240 group = property(_getGroup,_setGroup)
1241
1242 def _setToggled(self, toggled):
1243 self.real_widget.setToggled( toggled )
1244
1245 def _isToggled(self):
1246 return self.real_widget.isToggled()
1247 toggled = property(_isToggled, _setToggled)
1248
1249 ###
1250 # I didn't want to do this, but this is just cut and paste from the ImageButton class:
1251 ###
1252
1253 def _setUpImage(self,image):
1254 self._upimage_source = image
1255 try:
1256 self._upimage = get_manager().loadImage(image)
1257 self.real_widget.setUpImage( self._upimage )
1258 except:
1259 self._upimage = _DummyImage()
1260 def _getUpImage(self): return self._upimage_source
1261 up_image = property(_getUpImage,_setUpImage)
1262
1263 def _setDownImage(self,image):
1264 self._downimage_source = image
1265 try:
1266 self._downimage = get_manager().loadImage(image)
1267 self.real_widget.setDownImage( self._downimage )
1268 except:
1269 self._downimage = _DummyImage()
1270 def _getDownImage(self): return self._downimage_source
1271 down_image = property(_getDownImage,_setDownImage)
1272
1273 def _setHoverImage(self,image):
1274 self._hoverimage_source = image
1275 try:
1276 self._hoverimage = get_manager().loadImage(image)
1277 self.real_widget.setHoverImage( self._hoverimage )
1278 except:
1279 self._hoverimage = _DummyImage()
1280 def _getHoverImage(self): return self._hoverimage_source
1281 hover_image = property(_getHoverImage,_setHoverImage)
1282
1283 def _setOffset(self, offset):
1284 self.real_widget.setDownOffset(offset[0], offset[1])
1285 def _getOffset(self):
1286 return (self.real_widget.getDownXOffset(), self.real_widget.getDownYOffset())
1287 offset = property(_getOffset,_setOffset)
1288
1289 def _setHelpText(self, txt):
1290 self.real_widget.setHelpText(txt)
1291 def _getHelpText(self):
1292 return self.real_widget.getHelpText()
1293 helptext = property(_getHelpText,_setHelpText)
1294
1295 def resizeToContent(self):
1296 self.height = max(self._upimage.getHeight(),self._downimage.getHeight(),self._hoverimage.getHeight()) + self.margins[1]*2
1297 self.width = max(self._upimage.getWidth(),self._downimage.getWidth(),self._hoverimage.getWidth()) + self.margins[1]*2
1210 1298
1211 class CheckBox(BasicTextWidget): 1299 class CheckBox(BasicTextWidget):
1212 """ 1300 """
1213 A basic checkbox. 1301 A basic checkbox.
1214 1302
1727 # Button Widgets 1815 # Button Widgets
1728 "Button" : Button, 1816 "Button" : Button,
1729 "CheckBox" : CheckBox, 1817 "CheckBox" : CheckBox,
1730 "RadioButton" : RadioButton, 1818 "RadioButton" : RadioButton,
1731 "ImageButton" : ImageButton, 1819 "ImageButton" : ImageButton,
1820 "ToggleButton" : ToggleButton,
1732 1821
1733 #Complexer Widgets / Text io 1822 #Complexer Widgets / Text io
1734 "TextField" : TextField, 1823 "TextField" : TextField,
1735 "TextBox" : TextBox, 1824 "TextBox" : TextBox,
1736 "ListBox" : ListBox, 1825 "ListBox" : ListBox,