124 self._recurseTree(lib_dir, self.root, []) |
124 self._recurseTree(lib_dir, self.root, []) |
125 self.Expand(self.root) |
125 self.Expand(self.root) |
126 |
126 |
127 self.Thaw() |
127 self.Thaw() |
128 |
128 |
|
129 class PathEditor(wx.Panel): |
|
130 def __init__(self, parent, path): |
|
131 |
|
132 wx.Panel.__init__(self, parent) |
|
133 label = path.get("name") + ": " + path.text + "(" + path.get("accepts") + ")" |
|
134 self.desc = wx.StaticText(self, label=label) |
|
135 self.focus_sbmp = wx.StaticBitmap(self, -1, wx.ArtProvider.GetBitmap(wx.ART_GO_FORWARD, wx.ART_TOOLBAR, (32,32))) |
|
136 self.valid_bmp = wx.ArtProvider.GetBitmap(wx.ART_TICK_MARK, wx.ART_TOOLBAR, (32,32)) |
|
137 self.invalid_bmp = wx.ArtProvider.GetBitmap(wx.ART_CROSS_MARK, wx.ART_TOOLBAR, (32,32)) |
|
138 self.validity_sbmp = wx.StaticBitmap(self, -1, self.invalid_bmp) |
|
139 self.edit = wx.TextCtrl(self) |
|
140 self.edit_sizer = wx.FlexGridSizer(cols=3, hgap=0, rows=1, vgap=0) |
|
141 self.edit_sizer.AddGrowableCol(1) |
|
142 self.edit_sizer.AddGrowableRow(0) |
|
143 self.edit_sizer.Add(self.focus_sbmp, flag=wx.GROW) |
|
144 self.edit_sizer.Add(self.edit, flag=wx.GROW) |
|
145 self.edit_sizer.Add(self.validity_sbmp, flag=wx.GROW) |
|
146 self.main_sizer = wx.BoxSizer(wx.VERTICAL) |
|
147 self.main_sizer.Add(self.desc, flag=wx.GROW) |
|
148 self.main_sizer.Add(self.edit_sizer, flag=wx.GROW) |
|
149 self.SetSizer(self.main_sizer) |
|
150 self.main_sizer.Fit(self) |
|
151 |
129 _conf_key = "SVGHMIWidgetLib" |
152 _conf_key = "SVGHMIWidgetLib" |
130 _preview_height = 200 |
153 _preview_height = 200 |
131 _preview_margin = 5 |
154 _preview_margin = 5 |
132 class WidgetLibBrowser(wx.Panel): |
155 class WidgetLibBrowser(wx.SplitterWindow): |
133 def __init__(self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, |
156 def __init__(self, parent, id=wx.ID_ANY, pos=wx.DefaultPosition, |
134 size=wx.DefaultSize): |
157 size=wx.DefaultSize): |
135 |
158 |
136 wx.Panel.__init__(self, parent, id, pos, size) |
159 wx.SplitterWindow.__init__(self, parent, |
|
160 style=wx.SUNKEN_BORDER | wx.SP_3D) |
137 |
161 |
138 self.bmp = None |
162 self.bmp = None |
139 self.msg = None |
163 self.msg = None |
140 self.hmitree_node = None |
164 self.hmitree_node = None |
141 self.selected_SVG = None |
165 self.selected_SVG = None |
142 |
166 |
143 self.Config = wx.ConfigBase.Get() |
167 self.Config = wx.ConfigBase.Get() |
144 self.libdir = self.RecallLibDir() |
168 self.libdir = self.RecallLibDir() |
145 |
169 |
146 self.main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=5, vgap=0) |
170 self.picker_panel = wx.Panel(self) |
|
171 self.picker_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=2, vgap=0) |
|
172 self.picker_sizer.AddGrowableCol(0) |
|
173 self.picker_sizer.AddGrowableRow(1) |
|
174 |
|
175 self.widgetpicker = WidgetPicker(self.picker_panel, self.libdir) |
|
176 self.libbutton = wx.Button(self.picker_panel, -1, _("Select SVG widget library")) |
|
177 |
|
178 self.picker_sizer.Add(self.libbutton, flag=wx.GROW) |
|
179 self.picker_sizer.Add(self.widgetpicker, flag=wx.GROW) |
|
180 self.picker_sizer.Layout() |
|
181 self.picker_panel.SetAutoLayout(True) |
|
182 self.picker_panel.SetSizer(self.picker_sizer) |
|
183 |
|
184 self.Bind(wx.EVT_TREE_SEL_CHANGED, self.OnWidgetSelection, self.widgetpicker) |
|
185 self.Bind(wx.EVT_BUTTON, self.OnSelectLibDir, self.libbutton) |
|
186 |
|
187 |
|
188 |
|
189 self.main_panel = wx.Panel(self) |
|
190 |
|
191 self.main_sizer = wx.FlexGridSizer(cols=1, hgap=0, rows=3, vgap=0) |
147 self.main_sizer.AddGrowableCol(0) |
192 self.main_sizer.AddGrowableCol(0) |
148 self.main_sizer.AddGrowableRow(1) |
193 self.main_sizer.AddGrowableRow(2) |
149 self.libbutton = wx.Button(self, -1, _("Select SVG widget library")) |
194 |
150 self.widgetpicker = WidgetPicker(self, self.libdir) |
195 self.preview = wx.Panel(self.main_panel, size=(-1, _preview_height + _preview_margin*2)) |
151 self.preview = wx.Panel(self, size=(-1, _preview_height + _preview_margin*2)) |
196 self.desc = wx.TextCtrl(self.main_panel, size=wx.Size(-1, 160), |
152 self.desc = wx.TextCtrl(self, size=wx.Size(-1, 160), |
|
153 style=wx.TE_READONLY | wx.TE_MULTILINE) |
197 style=wx.TE_READONLY | wx.TE_MULTILINE) |
154 self.signature_sizer = wx.BoxSizer(wx.VERTICAL) |
198 self.signature_sizer = wx.BoxSizer(wx.VERTICAL) |
155 self.main_sizer.Add(self.libbutton, flag=wx.GROW) |
|
156 self.main_sizer.Add(self.widgetpicker, flag=wx.GROW) |
|
157 self.main_sizer.Add(self.preview, flag=wx.GROW) |
199 self.main_sizer.Add(self.preview, flag=wx.GROW) |
|
200 self.main_sizer.Add(self.signature_sizer, flag=wx.GROW) |
158 self.main_sizer.Add(self.desc, flag=wx.GROW) |
201 self.main_sizer.Add(self.desc, flag=wx.GROW) |
159 self.main_sizer.Add(self.signature_sizer, flag=wx.GROW) |
|
160 self.main_sizer.Layout() |
202 self.main_sizer.Layout() |
161 self.SetAutoLayout(True) |
203 self.main_panel.SetAutoLayout(True) |
162 self.SetSizer(self.main_sizer) |
204 self.main_panel.SetSizer(self.main_sizer) |
163 self.main_sizer.Fit(self) |
205 self.main_sizer.Fit(self.main_panel) |
164 self.Bind(wx.EVT_BUTTON, self.OnSelectLibDir, self.libbutton) |
|
165 self.preview.Bind(wx.EVT_PAINT, self.OnPaint) |
206 self.preview.Bind(wx.EVT_PAINT, self.OnPaint) |
166 self.preview.Bind(wx.EVT_LEFT_DOWN, self.OnLeftDown) |
207 self.preview.Bind(wx.EVT_LEFT_DOWN, self.OnLeftDown) |
167 |
208 |
168 self.Bind(wx.EVT_TREE_SEL_CHANGED, self.OnWidgetSelection, self.widgetpicker) |
209 self.SplitVertically(self.picker_panel, self.main_panel, 300) |
169 |
210 |
170 self.msg = _("Drag selected Widget from here to Inkscape") |
211 self.msg = _("Drag selected Widget from here to Inkscape") |
171 self.tempf = None |
212 self.tempf = None |
172 |
213 |
173 self.paths_editors = [] |
214 self.paths_editors = [] |