X-Git-Url: https://git.saurik.com/wxWidgets.git/blobdiff_plain/b09afc93f54d646adddcc7f57b60cf80eaa77b2d..3d2d9036037d9ee51f47d878c3dcef4af4a6ef41:/wxPython/wx/tools/XRCed/params.py diff --git a/wxPython/wx/tools/XRCed/params.py b/wxPython/wx/tools/XRCed/params.py index 5c97a4e005..2c3e02d278 100644 --- a/wxPython/wx/tools/XRCed/params.py +++ b/wxPython/wx/tools/XRCed/params.py @@ -10,11 +10,25 @@ from globals import * from types import * from wxPython.xrc import * -genericStyles = ['wxSIMPLE_BORDER', 'wxDOUBLE_BORDER', - 'wxSUNKEN_BORDER', 'wxRAISED_BORDER', - 'wxSTATIC_BORDER', 'wxNO_BORDER', - 'wxTRANSPARENT_WINDOW', 'wxWANTS_CHARS', - 'wxNO_FULL_REPAINT_ON_RESIZE'] +genericStyles = [ + 'wxSIMPLE_BORDER', 'wxDOUBLE_BORDER', 'wxSUNKEN_BORDER', + 'wxRAISED_BORDER', 'wxSTATIC_BORDER', 'wxNO_BORDER', + 'wxTRANSPARENT_WINDOW', 'wxTAB_TRAVERSAL', + 'wxWANTS_CHARS', + 'wxNO_FULL_REPAINT_ON_RESIZE', + 'wxVSCROLL', 'wxHSCROLL', 'wxALWAYS_SHOW_SB', + 'wxCLIP_CHILDREN', + 'wxFULL_REPAINT_ON_RESIZE' + ] + +genericExStyles = [ + 'wxWS_EX_VALIDATE_RECURSIVELY', + 'wxWS_EX_BLOCK_EVENTS', + 'wxWS_EX_TRANSIENT', + 'wxFRAME_EX_CONTEXTHELP', + 'wxWS_EX_PROCESS_IDLE', + 'wxWS_EX_PROCESS_UI_UPDATES' + ] buttonSize = (35,-1) # in dialog units, transformed to pixels in panel ctor @@ -94,8 +108,10 @@ class ParamBinaryOr(PPanel): class ParamFlag(ParamBinaryOr): values = ['wxTOP', 'wxBOTTOM', 'wxLEFT', 'wxRIGHT', 'wxALL', 'wxEXPAND', 'wxGROW', 'wxSHAPED', 'wxALIGN_CENTRE', 'wxALIGN_RIGHT', + 'wxFIXED_MINSIZE', 'wxALIGN_BOTTOM', 'wxALIGN_CENTRE_VERTICAL', - 'wxALIGN_CENTRE_HORIZONTAL'] + 'wxALIGN_CENTRE_HORIZONTAL', + ] equal = {'wxALIGN_CENTER': 'wxALIGN_CENTRE', 'wxALIGN_CENTER_VERTICAL': 'wxALIGN_CENTRE_VERTICAL', 'wxALIGN_CENTER_HORIZONTAL': 'wxALIGN_CENTRE_HORIZONTAL'} @@ -116,7 +132,7 @@ class ParamNonGenericStyle(ParamBinaryOr): class ParamExStyle(ParamBinaryOr): def __init__(self, parent, name): if g.currentXXX: - self.values = g.currentXXX.exStyles # constant at the moment + self.values = g.currentXXX.exStyles + genericExStyles else: self.values = [] ParamBinaryOr.__init__(self, parent, name) @@ -234,20 +250,21 @@ class ParamFont(PPanel): error = False try: try: size = int(self.value[0]) - except ValueError: error = True + except ValueError: error = True; wxLogError('Invalid size specification') try: family = fontFamiliesXml2wx[self.value[1]] - except KeyError: error = True + except KeyError: error = True; wxLogError('Invalid family specification') try: style = fontStylesXml2wx[self.value[2]] - except KeyError: error = True + except KeyError: error = True; wxLogError('Invalid style specification') try: weight = fontWeightsXml2wx[self.value[3]] - except KeyError: error = True - try: underlined = int(self.value[4]) - except ValueError: error = True + except KeyError: error = True; wxLogError('Invalid weight specification') + try: underlined = bool(self.value[4]) + except ValueError: error = True; wxLogError('Invalid underlined flag specification') face = self.value[5] - mapper = wxFontMapper() - if not self.value[6]: enc = mapper.CharsetToEncoding(self.value[6]) except IndexError: error = True + mapper = wxFontMapper() + if not self.value[6]: enc = mapper.CharsetToEncoding(self.value[6]) + if error: wxLogError('Invalid font specification') if enc == wxFONTENCODING_DEFAULT: enc = wxFONTENCODING_SYSTEM font = wxFont(size, family, style, weight, underlined, face, enc) @@ -256,13 +273,18 @@ class ParamFont(PPanel): dlg = wxFontDialog(self, data) if dlg.ShowModal() == wxID_OK: font = dlg.GetFontData().GetChosenFont() + print font.GetEncoding() + if font.GetEncoding() == wxFONTENCODING_SYSTEM: + encName = '' + else: + encName = wxFontMapper_GetEncodingName(font.GetEncoding()).encode() value = [str(font.GetPointSize()), fontFamiliesWx2Xml.get(font.GetFamily(), "default"), fontStylesWx2Xml.get(font.GetStyle(), "normal"), fontWeightsWx2Xml.get(font.GetWeight(), "normal"), - str(font.GetUnderlined()), + str(int(font.GetUnderlined())), font.GetFaceName().encode(), - wxFontMapper_GetEncodingName(font.GetEncoding()).encode() + encName ] # Add ignored flags self.SetValue(value) @@ -405,10 +427,10 @@ class ParamEncoding(ParamText): class ContentDialog(wxDialog): def __init__(self, parent, value): # Load from resource - pre = wxPreDialog() + pre = wxPreDialog() g.frame.res.LoadOnDialog(pre, parent, 'DIALOG_CONTENT') self.this = pre.this - self._setOORInfo(self) + self._setOORInfo(self) self.list = XRCCTRL(self, 'LIST') # Set list items for v in value: @@ -455,10 +477,10 @@ class ContentDialog(wxDialog): class ContentCheckListDialog(wxDialog): def __init__(self, parent, value): - pre = wxPreDialog() + pre = wxPreDialog() g.frame.res.LoadOnDialog(pre, parent, 'DIALOG_CONTENT_CHECK_LIST') self.this = pre.this - self._setOORInfo(self) + self._setOORInfo(self) self.list = XRCCTRL(self, 'CHECK_LIST') # Set list items i = 0 @@ -587,10 +609,10 @@ class ParamContentCheckList(ParamContent): class IntListDialog(wxDialog): def __init__(self, parent, value): - pre = wxPreDialog() + pre = wxPreDialog() g.frame.res.LoadOnDialog(pre, parent, 'DIALOG_INTLIST') self.this = pre.this - self._setOORInfo(self) + self._setOORInfo(self) self.list = XRCCTRL(self, 'LIST') # Set list items value.sort() @@ -704,6 +726,17 @@ class ParamOrient(RadioBox): if not value: value = 'wxHORIZONTAL' self.SetStringSelection(self.seulav[value]) +class ParamOrientation(RadioBox): + values = {'horizontal': 'horizontal', 'vertical': 'vertical'} + seulav = {'horizontal': 'horizontal', 'vertical': 'vertical'} + def __init__(self, parent, name): + RadioBox.__init__(self, parent, -1, choices=self.values.keys(), name=name) + def GetValue(self): + return self.values[self.GetStringSelection()] + def SetValue(self, value): + if not value: value = 'vertical' + self.SetStringSelection(self.seulav[value]) + class ParamFile(PPanel): def __init__(self, parent, name): PPanel.__init__(self, parent, name) @@ -752,10 +785,10 @@ class ParamFile(PPanel): class ParamBitmap(PPanel): def __init__(self, parent, name): - pre = wxPrePanel() + pre = wxPrePanel() g.frame.res.LoadOnPanel(pre, parent, 'PANEL_BITMAP') self.this = pre.this - self._setOORInfo(self) + self._setOORInfo(self) self.SetBackgroundColour(parent.GetBackgroundColour()) self.SetForegroundColour(parent.GetForegroundColour()) self.modified = self.freeze = False @@ -839,6 +872,7 @@ paramDict = { 'flag': ParamFlag, 'style': ParamStyle, 'exstyle': ParamExStyle, 'pos': ParamPosSize, 'size': ParamPosSize, + 'cellpos': ParamPosSize, 'cellspan': ParamPosSize, 'border': ParamUnit, 'cols': ParamInt, 'rows': ParamInt, 'vgap': ParamUnit, 'hgap': ParamUnit, 'checkable': ParamBool, 'checked': ParamBool, 'radio': ParamBool,