Mercurial > fife-parpg
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, |