55 'size' : 18, |
57 'size' : 18, |
56 } |
58 } |
57 |
59 |
58 CWD = os.path.split(os.path.realpath(__file__))[0] |
60 CWD = os.path.split(os.path.realpath(__file__))[0] |
59 |
61 |
60 gen_mini_GetBackgroundBrush = lambda obj:lambda dc: wx.Brush(obj.faceDnClr, wx.SOLID) |
62 gen_mini_GetBackgroundBrush = lambda obj:lambda dc: wx.Brush(obj.GetParent().GetBackgroundColour(), wx.SOLID) |
61 gen_mini_GetLabelSize = lambda obj:lambda:(wx.lib.buttons.GenBitmapTextButton._GetLabelSize(obj)[:-1] + (False,)) |
63 gen_mini_GetLabelSize = lambda obj:lambda:(wx.lib.buttons.GenBitmapTextButton._GetLabelSize(obj)[:-1] + (False,)) |
62 gen_textbutton_GetLabelSize = lambda obj:lambda:(wx.lib.buttons.GenButton._GetLabelSize(obj)[:-1] + (False,)) |
64 gen_textbutton_GetLabelSize = lambda obj:lambda:(wx.lib.buttons.GenButton._GetLabelSize(obj)[:-1] + (False,)) |
63 |
65 |
64 def GenerateEmptyBitmap(width, height): |
66 def make_genbitmaptogglebutton_flat(button): |
65 bitmap = wx.EmptyBitmap(width, height) |
67 button.GetBackgroundBrush = gen_mini_GetBackgroundBrush(button) |
66 dc = wx.MemoryDC(bitmap) |
68 button.labelDelta = 0 |
67 dc.SetPen(wx.Pen(WINDOW_COLOUR)) |
69 button.SetBezelWidth(0) |
68 dc.SetBrush(wx.Brush(WINDOW_COLOUR)) |
70 button.SetUseFocusIndicator(False) |
69 dc.DrawRectangle(0, 0, width, height) |
71 |
70 return bitmap |
72 def GenerateEmptyBitmap(width, height, color): |
|
73 # bitmap = wx.EmptyBitmap(width, height) |
|
74 # dc = wx.MemoryDC(bitmap) |
|
75 # dc.SetPen(wx.Pen(color)) |
|
76 # dc.SetBrush(wx.Brush(color)) |
|
77 # dc.DrawRectangle(0, 0, width, height) |
|
78 # return bitmap |
|
79 return wx.Bitmap(os.path.join(CWD, "images", "empty.png")) |
|
80 |
|
81 class GenStaticBitmap(wx.lib.statbmp.GenStaticBitmap): |
|
82 def __init__(self, parent, ID, bitmapname, |
|
83 pos = wx.DefaultPosition, size = wx.DefaultSize, |
|
84 style = 0, |
|
85 name = "genstatbmp"): |
|
86 |
|
87 bitmappath = os.path.join(CWD, "images", bitmapname) |
|
88 if os.path.isfile(bitmappath): |
|
89 bitmap = wx.Bitmap(bitmappath) |
|
90 else: |
|
91 bitmap = None |
|
92 wx.lib.statbmp.GenStaticBitmap.__init__(self, parent, ID, bitmap, |
|
93 pos, size, |
|
94 style, |
|
95 name) |
|
96 |
|
97 def OnPaint(self, event): |
|
98 dc = wx.PaintDC(self) |
|
99 colour = self.GetParent().GetBackgroundColour() |
|
100 dc.SetPen(wx.Pen(colour)) |
|
101 dc.SetBrush(wx.Brush(colour )) |
|
102 dc.DrawRectangle(0, 0, *dc.GetSizeTuple()) |
|
103 if self._bitmap: |
|
104 dc.DrawBitmap(self._bitmap, 0, 0, True) |
|
105 |
71 |
106 |
72 class LogPseudoFile: |
107 class LogPseudoFile: |
73 """ Base class for file like objects to facilitate StdOut for the Shell.""" |
108 """ Base class for file like objects to facilitate StdOut for the Shell.""" |
74 def __init__(self, output = None): |
109 def __init__(self, output = None): |
75 self.red_white = wx.TextAttr("RED", "WHITE") |
110 self.red_white = wx.TextAttr("RED", "WHITE") |
373 def RefreshPLCParams(self): |
409 def RefreshPLCParams(self): |
374 self.ClearSizer(self.PLCParamsSizer) |
410 self.ClearSizer(self.PLCParamsSizer) |
375 |
411 |
376 if self.PluginRoot.HasProjectOpened(): |
412 if self.PluginRoot.HasProjectOpened(): |
377 plcwindow = wx.Panel(self.PLCConfig, -1, size=wx.Size(-1, -1)) |
413 plcwindow = wx.Panel(self.PLCConfig, -1, size=wx.Size(-1, -1)) |
378 plcwindow.SetBackgroundColour(WINDOW_COLOUR) |
414 plcwindow.SetBackgroundColour(TITLE_COLOUR) |
379 self.PLCParamsSizer.AddWindow(plcwindow, 0, border=0, flag=wx.GROW) |
415 self.PLCParamsSizer.AddWindow(plcwindow, 0, border=0, flag=wx.GROW) |
380 |
416 |
381 plcwindowsizer = wx.BoxSizer(wx.HORIZONTAL) |
417 plcwindowsizer = wx.BoxSizer(wx.HORIZONTAL) |
382 plcwindow.SetSizer(plcwindowsizer) |
418 plcwindow.SetSizer(plcwindowsizer) |
383 |
419 |
384 st = wx.StaticText(plcwindow, -1) |
420 st = wx.StaticText(plcwindow, -1) |
385 st.SetFont(wx.Font(faces["size"], wx.DEFAULT, wx.NORMAL, wx.BOLD, faceName = faces["helv"])) |
421 st.SetFont(wx.Font(faces["size"], wx.DEFAULT, wx.NORMAL, wx.BOLD, faceName = faces["helv"])) |
386 st.SetLabel(self.PluginRoot.GetProjectName()) |
422 st.SetLabel(self.PluginRoot.GetProjectName()) |
387 plcwindowsizer.AddWindow(st, 0, border=5, flag=wx.ALL|wx.ALIGN_CENTER) |
423 plcwindowsizer.AddWindow(st, 0, border=5, flag=wx.ALL|wx.ALIGN_CENTER) |
388 |
424 |
|
425 addbutton_id = wx.NewId() |
|
426 addbutton = wx.lib.buttons.GenBitmapButton(id=addbutton_id, bitmap=wx.Bitmap(os.path.join(CWD, 'images', 'Add16x16.png')), |
|
427 name='AddBusButton', parent=plcwindow, pos=wx.Point(0, 0), |
|
428 size=wx.Size(16, 16), style=wx.NO_BORDER) |
|
429 addbutton.SetToolTipString("Add a sub plugin") |
|
430 addbutton.Bind(wx.EVT_BUTTON, self.Gen_AddPluginMenu(self.PluginRoot), id=addbutton_id) |
|
431 plcwindowsizer.AddWindow(addbutton, 0, border=5, flag=wx.RIGHT|wx.ALIGN_CENTER) |
|
432 |
389 plcwindowmainsizer = wx.BoxSizer(wx.VERTICAL) |
433 plcwindowmainsizer = wx.BoxSizer(wx.VERTICAL) |
390 plcwindowsizer.AddSizer(plcwindowmainsizer, 0, border=5, flag=wx.ALL) |
434 plcwindowsizer.AddSizer(plcwindowmainsizer, 0, border=5, flag=wx.ALL) |
391 |
435 |
392 plcwindowbuttonsizer = wx.BoxSizer(wx.HORIZONTAL) |
436 plcwindowbuttonsizer = wx.BoxSizer(wx.HORIZONTAL) |
393 plcwindowmainsizer.AddSizer(plcwindowbuttonsizer, 0, border=0, flag=wx.ALIGN_CENTER) |
437 plcwindowmainsizer.AddSizer(plcwindowbuttonsizer, 0, border=0, flag=wx.ALIGN_CENTER) |
394 |
438 |
395 msizer = self.GenerateMethodButtonSizer(self.PluginRoot, plcwindow) |
439 msizer = self.GenerateMethodButtonSizer(self.PluginRoot, plcwindow) |
396 plcwindowbuttonsizer.AddSizer(msizer, 0, border=0, flag=wx.GROW) |
440 plcwindowbuttonsizer.AddSizer(msizer, 0, border=0, flag=wx.GROW) |
397 |
441 |
398 paramswindow = wx.Panel(plcwindow, -1, size=wx.Size(-1, -1)) |
442 paramswindow = wx.Panel(plcwindow, -1, size=wx.Size(-1, -1)) |
399 paramswindow.SetBackgroundColour(WINDOW_COLOUR) |
443 paramswindow.SetBackgroundColour(TITLE_COLOUR) |
400 plcwindowbuttonsizer.AddWindow(paramswindow, 0, border=0, flag=0) |
444 plcwindowbuttonsizer.AddWindow(paramswindow, 0, border=0, flag=0) |
401 |
445 |
402 psizer = wx.BoxSizer(wx.HORIZONTAL) |
446 psizer = wx.BoxSizer(wx.HORIZONTAL) |
403 paramswindow.SetSizer(psizer) |
447 paramswindow.SetSizer(psizer) |
404 |
448 |
409 |
453 |
410 minimizebutton_id = wx.NewId() |
454 minimizebutton_id = wx.NewId() |
411 minimizebutton = wx.lib.buttons.GenBitmapToggleButton(id=minimizebutton_id, bitmap=wx.Bitmap(os.path.join(CWD, 'images', 'Maximize.png')), |
455 minimizebutton = wx.lib.buttons.GenBitmapToggleButton(id=minimizebutton_id, bitmap=wx.Bitmap(os.path.join(CWD, 'images', 'Maximize.png')), |
412 name='MinimizeButton', parent=plcwindow, pos=wx.Point(0, 0), |
456 name='MinimizeButton', parent=plcwindow, pos=wx.Point(0, 0), |
413 size=wx.Size(24, 24), style=wx.NO_BORDER) |
457 size=wx.Size(24, 24), style=wx.NO_BORDER) |
414 minimizebutton.GetBackgroundBrush = gen_mini_GetBackgroundBrush(minimizebutton) |
458 make_genbitmaptogglebutton_flat(minimizebutton) |
415 minimizebutton.SetBackgroundColour(wx.Colour(208, 208, 208)) |
|
416 minimizebutton.labelDelta = 0 |
|
417 minimizebutton.SetBezelWidth(0) |
|
418 minimizebutton.SetUseFocusIndicator(False) |
|
419 minimizebutton.SetBitmapSelected(wx.Bitmap(os.path.join(CWD, 'images', 'Minimize.png'))) |
459 minimizebutton.SetBitmapSelected(wx.Bitmap(os.path.join(CWD, 'images', 'Minimize.png'))) |
420 plcwindowbuttonsizer.AddWindow(minimizebutton, 0, border=5, flag=wx.ALL) |
460 plcwindowbuttonsizer.AddWindow(minimizebutton, 0, border=5, flag=wx.ALL) |
421 |
461 |
422 if len(self.PluginRoot.PlugChildsTypes) > 0: |
462 # if len(self.PluginRoot.PlugChildsTypes) > 0: |
423 addsizer = self.GenerateAddButtonSizer(self.PluginRoot, plcwindow) |
463 # addsizer = self.GenerateAddButtonSizer(self.PluginRoot, plcwindow) |
424 plcwindowbuttonsizer.AddSizer(addsizer, 0, border=0, flag=0) |
464 # plcwindowbuttonsizer.AddSizer(addsizer, 0, border=0, flag=0) |
425 else: |
465 # else: |
426 addsizer = None |
466 # addsizer = None |
427 |
467 |
428 def togglewindow(event): |
468 def togglewindow(event): |
429 if minimizebutton.GetToggle(): |
469 if minimizebutton.GetToggle(): |
430 paramswindow.Show() |
470 paramswindow.Show() |
431 msizer.SetCols(1) |
471 msizer.SetCols(1) |
432 if addsizer is not None: |
472 # if addsizer is not None: |
433 addsizer.SetCols(1) |
473 # addsizer.SetCols(1) |
434 else: |
474 else: |
435 paramswindow.Hide() |
475 paramswindow.Hide() |
436 msizer.SetCols(len(self.PluginRoot.PluginMethods)) |
476 msizer.SetCols(len(self.PluginRoot.PluginMethods)) |
437 if addsizer is not None: |
477 # if addsizer is not None: |
438 addsizer.SetCols(len(self.PluginRoot.PlugChildsTypes)) |
478 # addsizer.SetCols(len(self.PluginRoot.PlugChildsTypes)) |
439 self.PLCConfigMainSizer.Layout() |
479 self.PLCConfigMainSizer.Layout() |
440 self.RefreshScrollBars() |
480 self.RefreshScrollBars() |
441 event.Skip() |
481 event.Skip() |
442 minimizebutton.Bind(wx.EVT_BUTTON, togglewindow, id=minimizebutton_id) |
482 minimizebutton.Bind(wx.EVT_BUTTON, togglewindow, id=minimizebutton_id) |
443 |
483 |
444 self.PLCConfigMainSizer.Layout() |
484 self.PLCConfigMainSizer.Layout() |
445 self.RefreshScrollBars() |
485 self.RefreshScrollBars() |
446 |
486 |
447 def GenerateAddButtonSizer(self, plugin, parent, horizontal = True): |
487 # def GenerateAddButtonSizer(self, plugin, parent, horizontal = True): |
448 if horizontal: |
488 # if horizontal: |
449 addsizer = wx.FlexGridSizer(cols=len(plugin.PluginMethods)) |
489 # addsizer = wx.FlexGridSizer(cols=len(plugin.PluginMethods)) |
450 else: |
490 # else: |
451 addsizer = wx.FlexGridSizer(cols=1) |
491 # addsizer = wx.FlexGridSizer(cols=1) |
452 for name, XSDClass in plugin.PlugChildsTypes: |
492 # for name, XSDClass, help in plugin.PlugChildsTypes: |
453 addbutton_id = wx.NewId() |
493 # addbutton_id = wx.NewId() |
454 addbutton = wx.lib.buttons.GenButton(id=addbutton_id, label="Add %s"%name, |
494 # addbutton = wx.lib.buttons.GenButton(id=addbutton_id, label="Add %s"%help, |
455 name='AddBusButton', parent=parent, pos=wx.Point(0, 0), |
495 # name='AddBusButton', parent=parent, pos=wx.Point(0, 0), |
456 style=wx.NO_BORDER) |
496 # style=wx.NO_BORDER) |
457 font = addbutton.GetFont() |
497 # font = addbutton.GetFont() |
458 font.SetUnderlined(True) |
498 # font.SetUnderlined(True) |
459 addbutton.SetFont(font) |
499 # addbutton.SetFont(font) |
460 addbutton._GetLabelSize = gen_textbutton_GetLabelSize(addbutton) |
500 # addbutton._GetLabelSize = gen_textbutton_GetLabelSize(addbutton) |
461 addbutton.SetForegroundColour(wx.BLUE) |
501 # addbutton.SetForegroundColour(wx.BLUE) |
462 addbutton.SetToolTipString("Add a %s plugin to this one"%name) |
502 # addbutton.SetToolTipString("Add a \"%s\" plugin to this one"%name) |
463 addbutton.Bind(wx.EVT_BUTTON, self._GetAddPluginFunction(name, plugin), id=addbutton_id) |
503 # addbutton.Bind(wx.EVT_BUTTON, self._GetAddPluginFunction(name, plugin), id=addbutton_id) |
464 addsizer.AddWindow(addbutton, 0, border=0, flag=0) |
504 # addsizer.AddWindow(addbutton, 0, border=0, flag=0) |
465 return addsizer |
505 # return addsizer |
466 |
506 |
467 def GenerateMethodButtonSizer(self, plugin, parent, horizontal = True): |
507 def GenerateMethodButtonSizer(self, plugin, parent, horizontal = True): |
468 if horizontal: |
508 if horizontal: |
469 msizer = wx.FlexGridSizer(cols=len(plugin.PluginMethods)) |
509 msizer = wx.FlexGridSizer(cols=len(plugin.PluginMethods)) |
470 else: |
510 else: |
523 |
563 |
524 self.PluginInfos[plugin]["children"] = plugin.IECSortedChilds() |
564 self.PluginInfos[plugin]["children"] = plugin.IECSortedChilds() |
525 |
565 |
526 self.PluginTreeSizer.AddWindow(leftwindow, 0, border=0, flag=wx.GROW) |
566 self.PluginTreeSizer.AddWindow(leftwindow, 0, border=0, flag=wx.GROW) |
527 |
567 |
528 leftwindowsizer = wx.FlexGridSizer(cols=1, rows=2) |
568 leftwindowsizer = wx.FlexGridSizer(cols=1, rows=3) |
529 leftwindowsizer.AddGrowableCol(0) |
569 leftwindowsizer.AddGrowableCol(0) |
530 leftwindowsizer.AddGrowableRow(1) |
570 leftwindowsizer.AddGrowableRow(2) |
531 leftwindow.SetSizer(leftwindowsizer) |
571 leftwindow.SetSizer(leftwindowsizer) |
532 |
572 |
533 leftbuttonmainsizer = wx.FlexGridSizer(cols=3, rows=1) |
573 leftbuttonmainsizer = wx.FlexGridSizer(cols=3, rows=1) |
534 leftbuttonmainsizer.AddGrowableCol(0) |
574 leftbuttonmainsizer.AddGrowableCol(0) |
535 leftwindowsizer.AddSizer(leftbuttonmainsizer, 0, border=5, flag=wx.GROW|wx.LEFT|wx.RIGHT|wx.TOP) |
575 leftwindowsizer.AddSizer(leftbuttonmainsizer, 0, border=5, flag=wx.GROW|wx.LEFT|wx.RIGHT) #|wx.TOP |
536 |
576 |
537 leftbuttonsizer = wx.BoxSizer(wx.HORIZONTAL) |
577 leftbuttonsizer = wx.BoxSizer(wx.HORIZONTAL) |
538 leftbuttonmainsizer.AddSizer(leftbuttonsizer, 0, border=15, flag=wx.GROW|wx.RIGHT) |
578 leftbuttonmainsizer.AddSizer(leftbuttonsizer, 0, border=5, flag=wx.GROW|wx.RIGHT) |
539 |
579 |
540 ieccsizer = wx.BoxSizer(wx.VERTICAL) |
580 leftsizer = wx.BoxSizer(wx.VERTICAL) |
541 leftbuttonsizer.AddSizer(ieccsizer, 0, border=15, flag=wx.RIGHT|wx.ALIGN_CENTER_VERTICAL) |
581 leftbuttonsizer.AddSizer(leftsizer, 0, border=5, flag=wx.RIGHT|wx.ALIGN_CENTER_VERTICAL) |
|
582 |
|
583 rolesizer = wx.BoxSizer(wx.HORIZONTAL) |
|
584 leftsizer.AddSizer(rolesizer, 0, border=0, flag=wx.GROW|wx.RIGHT) |
|
585 |
|
586 roletext = wx.StaticText(leftwindow, -1) |
|
587 roletext.SetLabel(plugin.PlugHelp) |
|
588 rolesizer.AddWindow(roletext, 0, border=5, flag=wx.RIGHT|wx.ALIGN_LEFT) |
|
589 |
|
590 enablebutton_id = wx.NewId() |
|
591 enablebutton = wx.lib.buttons.GenBitmapToggleButton(id=enablebutton_id, bitmap=wx.Bitmap(os.path.join(CWD, 'images', 'Disabled.png')), |
|
592 name='EnableButton', parent=leftwindow, size=wx.Size(16, 16), pos=wx.Point(0, 0), style=0)#wx.NO_BORDER) |
|
593 enablebutton.SetToolTipString("Enable/Disable this plugin") |
|
594 make_genbitmaptogglebutton_flat(enablebutton) |
|
595 enablebutton.SetBitmapSelected(wx.Bitmap(os.path.join(CWD, 'images', 'Enabled.png'))) |
|
596 enablebutton.SetToggle(plugin.MandatoryParams[1].getEnabled()) |
|
597 def toggleenablebutton(event): |
|
598 res, StructChanged = plugin.SetParamsAttribute("BaseParams.Enabled", enablebutton.GetToggle(), self.Log) |
|
599 if StructChanged: wx.CallAfter(self.RefreshPluginTree) |
|
600 enablebutton.SetToggle(res) |
|
601 event.Skip() |
|
602 enablebutton.Bind(wx.EVT_BUTTON, toggleenablebutton, id=enablebutton_id) |
|
603 rolesizer.AddWindow(enablebutton, 0, border=0, flag=wx.RIGHT|wx.ALIGN_CENTER_VERTICAL) |
|
604 |
542 |
605 |
543 plugin_IECChannel = plugin.BaseParams.getIEC_Channel() |
606 plugin_IECChannel = plugin.BaseParams.getIEC_Channel() |
544 |
607 |
|
608 iecsizer = wx.BoxSizer(wx.HORIZONTAL) |
|
609 leftsizer.AddSizer(iecsizer, 0, border=5, flag=wx.RIGHT|wx.ALIGN_CENTER_VERTICAL) |
|
610 |
|
611 st = wx.StaticText(leftwindow, -1) |
|
612 st.SetFont(wx.Font(faces["size"], wx.DEFAULT, wx.NORMAL, wx.BOLD, faceName = faces["helv"])) |
|
613 st.SetLabel(plugin.GetFullIEC_Channel()) |
|
614 iecsizer.AddWindow(st, 0, border=0, flag=0) |
|
615 |
|
616 updownsizer = wx.BoxSizer(wx.VERTICAL) |
|
617 iecsizer.AddSizer(updownsizer, 0, border=5, flag=wx.LEFT|wx.ALIGN_CENTER_VERTICAL) |
|
618 |
545 if plugin_IECChannel > 0: |
619 if plugin_IECChannel > 0: |
546 ieccdownbutton_id = wx.NewId() |
620 ieccdownbutton_id = wx.NewId() |
547 ieccdownbutton = wx.lib.buttons.GenBitmapButton(id=ieccdownbutton_id, bitmap=wx.Bitmap(os.path.join(CWD, 'images', 'IECCDown.png')), |
621 ieccdownbutton = wx.lib.buttons.GenBitmapButton(id=ieccdownbutton_id, bitmap=wx.Bitmap(os.path.join(CWD, 'images', 'IECCDown.png')), |
548 name='IECCDownButton', parent=leftwindow, pos=wx.Point(0, 0), |
622 name='IECCDownButton', parent=leftwindow, pos=wx.Point(0, 0), |
549 size=wx.Size(16, 16), style=wx.NO_BORDER) |
623 size=wx.Size(16, 16), style=wx.NO_BORDER) |
550 ieccdownbutton.Bind(wx.EVT_BUTTON, self.GetItemChannelChangedFunction(plugin, plugin_IECChannel - 1), id=ieccdownbutton_id) |
624 ieccdownbutton.Bind(wx.EVT_BUTTON, self.GetItemChannelChangedFunction(plugin, plugin_IECChannel - 1), id=ieccdownbutton_id) |
551 ieccsizer.AddWindow(ieccdownbutton, 0, border=0, flag=wx.ALIGN_CENTER) |
625 updownsizer.AddWindow(ieccdownbutton, 0, border=0, flag=wx.ALIGN_LEFT) |
552 else: |
626 |
553 staticbitmap = wx.StaticBitmap(id=-1, bitmap=GenerateEmptyBitmap(16, 16), |
|
554 name="staticBitmap", parent=leftwindow, |
|
555 pos=wx.Point(0, 0), size=wx.Size(16, 16), style=0) |
|
556 ieccsizer.AddWindow(staticbitmap, 0, border=0, flag=wx.ALIGN_CENTER) |
|
557 |
|
558 st = wx.StaticText(leftwindow, -1) |
|
559 st.SetFont(wx.Font(faces["size"], wx.DEFAULT, wx.NORMAL, wx.BOLD, faceName = faces["helv"])) |
|
560 st.SetLabel(plugin.GetFullIEC_Channel()) |
|
561 ieccsizer.AddWindow(st, 0, border=0, flag=0) |
|
562 |
|
563 ieccupbutton_id = wx.NewId() |
627 ieccupbutton_id = wx.NewId() |
564 ieccupbutton = wx.lib.buttons.GenBitmapTextButton(id=ieccupbutton_id, bitmap=wx.Bitmap(os.path.join(CWD, 'images', 'IECCUp.png')), |
628 ieccupbutton = wx.lib.buttons.GenBitmapTextButton(id=ieccupbutton_id, bitmap=wx.Bitmap(os.path.join(CWD, 'images', 'IECCUp.png')), |
565 name='IECCUpButton', parent=leftwindow, pos=wx.Point(0, 0), |
629 name='IECCUpButton', parent=leftwindow, pos=wx.Point(0, 0), |
566 size=wx.Size(16, 16), style=wx.NO_BORDER) |
630 size=wx.Size(16, 16), style=wx.NO_BORDER) |
567 ieccupbutton.Bind(wx.EVT_BUTTON, self.GetItemChannelChangedFunction(plugin, plugin_IECChannel + 1), id=ieccupbutton_id) |
631 ieccupbutton.Bind(wx.EVT_BUTTON, self.GetItemChannelChangedFunction(plugin, plugin_IECChannel + 1), id=ieccupbutton_id) |
568 ieccsizer.AddWindow(ieccupbutton, 0, border=0, flag=wx.ALIGN_CENTER) |
632 updownsizer.AddWindow(ieccupbutton, 0, border=0, flag=wx.ALIGN_LEFT) |
|
633 |
|
634 adddeletesizer = wx.BoxSizer(wx.VERTICAL) |
|
635 iecsizer.AddSizer(adddeletesizer, 0, border=5, flag=wx.LEFT|wx.ALIGN_CENTER_VERTICAL) |
|
636 |
|
637 deletebutton_id = wx.NewId() |
|
638 deletebutton = wx.lib.buttons.GenBitmapButton(id=deletebutton_id, bitmap=wx.Bitmap(os.path.join(CWD, 'images', 'Delete16x16.png')), |
|
639 name='DeleteBusButton', parent=leftwindow, pos=wx.Point(0, 0), |
|
640 size=wx.Size(16, 16), style=wx.NO_BORDER) |
|
641 deletebutton.SetToolTipString("Delete this plugin") |
|
642 deletebutton.Bind(wx.EVT_BUTTON, self.GetDeleteButtonFunction(plugin), id=deletebutton_id) |
|
643 adddeletesizer.AddWindow(deletebutton, 0, border=5, flag=wx.RIGHT|wx.ALIGN_CENTER) |
|
644 |
|
645 if len(plugin.PlugChildsTypes) > 0: |
|
646 addbutton_id = wx.NewId() |
|
647 addbutton = wx.lib.buttons.GenBitmapButton(id=addbutton_id, bitmap=wx.Bitmap(os.path.join(CWD, 'images', 'Add16x16.png')), |
|
648 name='AddBusButton', parent=leftwindow, pos=wx.Point(0, 0), |
|
649 size=wx.Size(16, 16), style=wx.NO_BORDER) |
|
650 addbutton.SetToolTipString("Add a sub plugin") |
|
651 addbutton.Bind(wx.EVT_BUTTON, self.Gen_AddPluginMenu(plugin), id=addbutton_id) |
|
652 adddeletesizer.AddWindow(addbutton, 0, border=5, flag=wx.RIGHT|wx.ALIGN_CENTER) |
569 |
653 |
570 if len(self.PluginInfos[plugin]["children"]) > 0: |
654 if len(self.PluginInfos[plugin]["children"]) > 0: |
571 expandbutton_id = wx.NewId() |
655 expandbutton_id = wx.NewId() |
572 expandbutton = wx.lib.buttons.GenBitmapToggleButton(id=expandbutton_id, bitmap=wx.Bitmap(os.path.join(CWD, 'images', 'plus.png')), |
656 expandbutton = wx.lib.buttons.GenBitmapToggleButton(id=expandbutton_id, bitmap=wx.Bitmap(os.path.join(CWD, 'images', 'plus.png')), |
573 name='ExpandButton', parent=leftwindow, pos=wx.Point(0, 0), |
657 name='ExpandButton', parent=leftwindow, pos=wx.Point(0, 0), |
594 tc = wx.TextCtrl(leftwindow, tc_id, size=wx.Size(150, 35), style=wx.TE_PROCESS_ENTER|wx.NO_BORDER) |
678 tc = wx.TextCtrl(leftwindow, tc_id, size=wx.Size(150, 35), style=wx.TE_PROCESS_ENTER|wx.NO_BORDER) |
595 tc.SetFont(wx.Font(faces["size"] * 0.75, wx.DEFAULT, wx.NORMAL, wx.BOLD, faceName = faces["helv"])) |
679 tc.SetFont(wx.Font(faces["size"] * 0.75, wx.DEFAULT, wx.NORMAL, wx.BOLD, faceName = faces["helv"])) |
596 tc.SetValue(plugin.MandatoryParams[1].getName()) |
680 tc.SetValue(plugin.MandatoryParams[1].getName()) |
597 tc.Bind(wx.EVT_TEXT_ENTER, self.GetTextCtrlCallBackFunction(tc, plugin, "BaseParams.Name"), id=tc_id) |
681 tc.Bind(wx.EVT_TEXT_ENTER, self.GetTextCtrlCallBackFunction(tc, plugin, "BaseParams.Name"), id=tc_id) |
598 leftbuttonsizer.AddWindow(tc, 0, border=5, flag=wx.RIGHT|wx.ALIGN_CENTER_VERTICAL) |
682 leftbuttonsizer.AddWindow(tc, 0, border=5, flag=wx.RIGHT|wx.ALIGN_CENTER_VERTICAL) |
599 |
683 |
600 enablebutton_id = wx.NewId() |
|
601 enablebutton = wx.lib.buttons.GenBitmapToggleButton(id=enablebutton_id, bitmap=wx.Bitmap(os.path.join(CWD, 'images', 'Disabled.png')), |
|
602 name='EnableButton', parent=leftwindow, pos=wx.Point(0, 0), style=wx.NO_BORDER) |
|
603 enablebutton.SetToolTipString("Enable/Disable this plugin") |
|
604 enablebutton.GetBackgroundBrush = gen_mini_GetBackgroundBrush(enablebutton) |
|
605 enablebutton.SetBackgroundColour(wx.Colour(208, 208, 208)) |
|
606 enablebutton.labelDelta = 0 |
|
607 enablebutton.SetBezelWidth(0) |
|
608 enablebutton.SetUseFocusIndicator(False) |
|
609 enablebutton.SetBitmapSelected(wx.Bitmap(os.path.join(CWD, 'images', 'Enabled.png'))) |
|
610 enablebutton.SetToggle(plugin.MandatoryParams[1].getEnabled()) |
|
611 def toggleenablebutton(event): |
|
612 res, StructChanged = plugin.SetParamsAttribute("BaseParams.Enabled", enablebutton.GetToggle(), self.Log) |
|
613 if StructChanged: wx.CallAfter(self.RefreshPluginTree) |
|
614 enablebutton.SetToggle(res) |
|
615 event.Skip() |
|
616 enablebutton.Bind(wx.EVT_BUTTON, toggleenablebutton, id=enablebutton_id) |
|
617 leftbuttonsizer.AddWindow(enablebutton, 0, border=5, flag=wx.RIGHT|wx.ALIGN_CENTER_VERTICAL) |
|
618 |
684 |
619 leftminimizebutton_id = wx.NewId() |
685 leftminimizebutton_id = wx.NewId() |
620 leftminimizebutton = wx.lib.buttons.GenBitmapToggleButton(id=leftminimizebutton_id, bitmap=wx.Bitmap(os.path.join(CWD, 'images', 'Maximize.png')), |
686 leftminimizebutton = wx.lib.buttons.GenBitmapToggleButton(id=leftminimizebutton_id, bitmap=wx.Bitmap(os.path.join(CWD, 'images', 'ShowVars.png')), |
621 name='MinimizeButton', parent=leftwindow, pos=wx.Point(0, 0), |
687 name='MinimizeButton', parent=leftwindow, pos=wx.Point(0, 0), |
622 size=wx.Size(24, 24), style=wx.NO_BORDER) |
688 size=wx.Size(24, 24), style=wx.NO_BORDER) |
623 leftminimizebutton.GetBackgroundBrush = gen_mini_GetBackgroundBrush(leftminimizebutton) |
689 make_genbitmaptogglebutton_flat(leftminimizebutton) |
624 leftminimizebutton.SetBackgroundColour(wx.Colour(208, 208, 208)) |
690 leftminimizebutton.SetBitmapSelected(wx.Bitmap(os.path.join(CWD, 'images', 'HideVars.png'))) |
625 leftminimizebutton.labelDelta = 0 |
|
626 leftminimizebutton.SetBezelWidth(0) |
|
627 leftminimizebutton.SetUseFocusIndicator(False) |
|
628 leftminimizebutton.SetBitmapSelected(wx.Bitmap(os.path.join(CWD, 'images', 'Minimize.png'))) |
|
629 leftminimizebutton.SetToggle(self.PluginInfos[plugin]["left_visible"]) |
691 leftminimizebutton.SetToggle(self.PluginInfos[plugin]["left_visible"]) |
630 def toggleleftwindow(event): |
692 def toggleleftwindow(event): |
631 if leftminimizebutton.GetToggle(): |
693 if leftminimizebutton.GetToggle(): |
632 leftwindowsizer.Show(1) |
694 leftwindowsizer.Show(1) |
633 else: |
695 else: |
637 self.RefreshScrollBars() |
699 self.RefreshScrollBars() |
638 event.Skip() |
700 event.Skip() |
639 leftminimizebutton.Bind(wx.EVT_BUTTON, toggleleftwindow, id=leftminimizebutton_id) |
701 leftminimizebutton.Bind(wx.EVT_BUTTON, toggleleftwindow, id=leftminimizebutton_id) |
640 leftbuttonmainsizer.AddWindow(leftminimizebutton, 0, border=5, flag=wx.RIGHT|wx.ALIGN_CENTER) |
702 leftbuttonmainsizer.AddWindow(leftminimizebutton, 0, border=5, flag=wx.RIGHT|wx.ALIGN_CENTER) |
641 |
703 |
642 deletebutton_id = wx.NewId() |
|
643 deletebutton = wx.lib.buttons.GenBitmapButton(id=deletebutton_id, bitmap=wx.Bitmap(os.path.join(CWD, 'images', 'Delete24x24.png')), |
|
644 name='DeleteBusButton', parent=leftwindow, pos=wx.Point(0, 0), |
|
645 size=wx.Size(24, 24), style=wx.NO_BORDER) |
|
646 deletebutton.SetToolTipString("Delete this plugin") |
|
647 deletebutton.Bind(wx.EVT_BUTTON, self.GetDeleteButtonFunction(plugin), id=deletebutton_id) |
|
648 leftbuttonmainsizer.AddWindow(deletebutton, 0, border=5, flag=wx.RIGHT|wx.ALIGN_CENTER) |
|
649 |
|
650 locations = plugin.GetLocations() |
704 locations = plugin.GetLocations() |
651 lb = wx.ListBox(leftwindow, -1, size=wx.Size(-1, max(1, min(len(locations), 4)) * 25), style=wx.NO_BORDER) |
705 lb = wx.ListBox(leftwindow, -1, size=wx.Size(-1, max(1, min(len(locations), 4)) * 25), style=wx.NO_BORDER) |
652 for location in locations: |
706 for location in locations: |
653 lb.Append(location["NAME"].replace("__", "%").replace("_", ".")) |
707 lb.Append(location["NAME"].replace("__", "%").replace("_", ".")) |
654 if not self.PluginInfos[plugin]["left_visible"]: |
708 if not self.PluginInfos[plugin]["left_visible"]: |
691 |
745 |
692 middleminimizebutton_id = wx.NewId() |
746 middleminimizebutton_id = wx.NewId() |
693 middleminimizebutton = wx.lib.buttons.GenBitmapToggleButton(id=middleminimizebutton_id, bitmap=wx.Bitmap(os.path.join(CWD, 'images', 'Maximize.png')), |
747 middleminimizebutton = wx.lib.buttons.GenBitmapToggleButton(id=middleminimizebutton_id, bitmap=wx.Bitmap(os.path.join(CWD, 'images', 'Maximize.png')), |
694 name='MinimizeButton', parent=middlewindow, pos=wx.Point(0, 0), |
748 name='MinimizeButton', parent=middlewindow, pos=wx.Point(0, 0), |
695 size=wx.Size(24, 24), style=wx.NO_BORDER) |
749 size=wx.Size(24, 24), style=wx.NO_BORDER) |
696 middleminimizebutton.GetBackgroundBrush = gen_mini_GetBackgroundBrush(middleminimizebutton) |
750 make_genbitmaptogglebutton_flat(middleminimizebutton) |
697 middleminimizebutton.SetBackgroundColour(wx.Colour(208, 208, 208)) |
|
698 middleminimizebutton.labelDelta = 0 |
|
699 middleminimizebutton.SetBezelWidth(0) |
|
700 middleminimizebutton.SetUseFocusIndicator(False) |
|
701 middleminimizebutton.SetBitmapSelected(wx.Bitmap(os.path.join(CWD, 'images', 'Minimize.png'))) |
751 middleminimizebutton.SetBitmapSelected(wx.Bitmap(os.path.join(CWD, 'images', 'Minimize.png'))) |
702 middleminimizebutton.SetToggle(self.PluginInfos[plugin]["middle_visible"]) |
752 middleminimizebutton.SetToggle(self.PluginInfos[plugin]["middle_visible"]) |
703 middleparamssizer.AddWindow(middleminimizebutton, 0, border=5, flag=wx.ALL) |
753 middleparamssizer.AddWindow(middleminimizebutton, 0, border=5, flag=wx.ALL) |
704 |
754 |
705 rightwindow = wx.Panel(self.PLCConfig, -1, size=wx.Size(-1, -1)) |
755 # rightwindow = wx.Panel(self.PLCConfig, -1, size=wx.Size(-1, -1)) |
706 rightwindow.SetBackgroundColour(wx.Colour(240,240,240)) |
756 # rightwindow.SetBackgroundColour(wx.Colour(240,240,240)) |
707 |
757 # |
708 self.PluginTreeSizer.AddWindow(rightwindow, 0, border=0, flag=wx.GROW) |
758 # self.PluginTreeSizer.AddWindow(rightwindow, 0, border=0, flag=wx.GROW) |
709 |
759 # |
710 rightsizer = wx.BoxSizer(wx.VERTICAL) |
760 # rightsizer = wx.BoxSizer(wx.VERTICAL) |
711 rightwindow.SetSizer(rightsizer) |
761 # rightwindow.SetSizer(rightsizer) |
712 |
762 # |
713 rightmainsizer = wx.BoxSizer(wx.VERTICAL) |
763 # rightmainsizer = wx.BoxSizer(wx.VERTICAL) |
714 rightsizer.AddSizer(rightmainsizer, 0, border=5, flag=wx.ALL) |
764 # rightsizer.AddSizer(rightmainsizer, 0, border=5, flag=wx.ALL) |
715 |
765 # |
716 if len(plugin.PlugChildsTypes) > 0: |
766 # if len(plugin.PlugChildsTypes) > 0: |
717 addsizer = self.GenerateAddButtonSizer(plugin, rightwindow) |
767 # addsizer = self.GenerateAddButtonSizer(plugin, rightwindow) |
718 rightmainsizer.AddSizer(addsizer, 0, border=12, flag=wx.TOP) |
768 # rightmainsizer.AddSizer(addsizer, 0, border=4, flag=wx.TOP) |
719 else: |
769 # else: |
720 addsizer = None |
770 # addsizer = None |
721 |
771 |
722 def togglemiddlerightwindow(event): |
772 def togglemiddlerightwindow(event): |
723 if middleminimizebutton.GetToggle(): |
773 if middleminimizebutton.GetToggle(): |
724 middleparamssizer.Show(0) |
774 middleparamssizer.Show(0) |
725 msizer.SetCols(1) |
775 msizer.SetCols(1) |
726 if addsizer is not None: |
776 # if addsizer is not None: |
727 addsizer.SetCols(1) |
777 # addsizer.SetCols(1) |
728 else: |
778 else: |
729 middleparamssizer.Hide(0) |
779 middleparamssizer.Hide(0) |
730 msizer.SetCols(len(plugin.PluginMethods)) |
780 msizer.SetCols(len(plugin.PluginMethods)) |
731 if addsizer is not None: |
781 # if addsizer is not None: |
732 addsizer.SetCols(len(plugin.PlugChildsTypes)) |
782 # addsizer.SetCols(len(plugin.PlugChildsTypes)) |
733 self.PluginInfos[plugin]["middle_visible"] = middleminimizebutton.GetToggle() |
783 self.PluginInfos[plugin]["middle_visible"] = middleminimizebutton.GetToggle() |
734 self.PLCConfigMainSizer.Layout() |
784 self.PLCConfigMainSizer.Layout() |
735 self.RefreshScrollBars() |
785 self.RefreshScrollBars() |
736 event.Skip() |
786 event.Skip() |
737 middleminimizebutton.Bind(wx.EVT_BUTTON, togglemiddlerightwindow, id=middleminimizebutton_id) |
787 middleminimizebutton.Bind(wx.EVT_BUTTON, togglemiddlerightwindow, id=middleminimizebutton_id) |
738 |
788 |
739 self.PluginInfos[plugin]["left"] = index[0] |
789 self.PluginInfos[plugin]["left"] = index[0] |
740 self.PluginInfos[plugin]["middle"] = index[0] + 1 |
790 self.PluginInfos[plugin]["middle"] = index[0] + 1 |
741 self.PluginInfos[plugin]["right"] = index[0] + 2 |
791 # self.PluginInfos[plugin]["right"] = index[0] + 2 |
742 index[0] += 3 |
792 # index[0] += 3 |
|
793 index[0] += 2 |
743 for child in self.PluginInfos[plugin]["children"]: |
794 for child in self.PluginInfos[plugin]["children"]: |
744 self.GenerateTreeBranch(child, index) |
795 self.GenerateTreeBranch(child, index) |
745 if not self.PluginInfos[child]["expanded"]: |
796 if not self.PluginInfos[child]["expanded"]: |
746 self.CollapsePlugin(child) |
797 self.CollapsePlugin(child) |
747 |
798 |
766 def OnPluginMenu(event): |
817 def OnPluginMenu(event): |
767 wx.CallAfter(self.AddPlugin, name, plugin) |
818 wx.CallAfter(self.AddPlugin, name, plugin) |
768 event.Skip() |
819 event.Skip() |
769 return OnPluginMenu |
820 return OnPluginMenu |
770 |
821 |
771 def OnPluginTreeRightUp(self, event): |
822 def Gen_AddPluginMenu(self, plugin): |
772 plugin = self.GetSelectedPlugin() |
823 def AddPluginMenu(event): |
773 if plugin: |
|
774 main_menu = wx.Menu(title='') |
824 main_menu = wx.Menu(title='') |
775 if len(plugin.PlugChildsTypes) > 0: |
825 if len(plugin.PlugChildsTypes) > 0: |
776 plugin_menu = wx.Menu(title='') |
826 for name, XSDClass, help in plugin.PlugChildsTypes: |
777 for name, XSDClass in plugin.PlugChildsTypes: |
|
778 new_id = wx.NewId() |
827 new_id = wx.NewId() |
779 plugin_menu.Append(help='', id=new_id, kind=wx.ITEM_NORMAL, text=name) |
828 main_menu.Append(help=help, id=new_id, kind=wx.ITEM_NORMAL, text="Append "+help) |
780 self.Bind(wx.EVT_MENU, self._GetAddPluginFunction(name), id=new_id) |
829 self.Bind(wx.EVT_MENU, self._GetAddPluginFunction(name, plugin), id=new_id) |
781 main_menu.AppendMenu(-1, "Add", plugin_menu, '') |
830 self.PopupMenuXY(main_menu) |
782 new_id = wx.NewId() |
831 event.Skip() |
783 main_menu.Append(help='', id=new_id, kind=wx.ITEM_NORMAL, text="Delete") |
832 return AddPluginMenu |
784 self.Bind(wx.EVT_MENU, self.OnDeleteButton, id=new_id) |
|
785 pos_x, pos_y = event.GetPosition() |
|
786 self.PluginTree.PopupMenuXY(main_menu, pos_x, pos_y) |
|
787 event.Skip() |
|
788 |
833 |
789 def GetButtonCallBackFunction(self, plugin, method): |
834 def GetButtonCallBackFunction(self, plugin, method): |
790 def OnButtonClick(event): |
835 def OnButtonClick(event): |
791 getattr(plugin,method)(self.Log) |
836 getattr(plugin,method)(self.Log) |
792 self.RefreshVariableLists() |
837 self.RefreshVariableLists() |
864 boxsizer = wx.BoxSizer(wx.HORIZONTAL) |
909 boxsizer = wx.BoxSizer(wx.HORIZONTAL) |
865 if first: |
910 if first: |
866 sizer.AddSizer(boxsizer, 0, border=5, flag=wx.GROW|wx.ALL) |
911 sizer.AddSizer(boxsizer, 0, border=5, flag=wx.GROW|wx.ALL) |
867 else: |
912 else: |
868 sizer.AddSizer(boxsizer, 0, border=5, flag=wx.GROW|wx.LEFT|wx.RIGHT|wx.BOTTOM) |
913 sizer.AddSizer(boxsizer, 0, border=5, flag=wx.GROW|wx.LEFT|wx.RIGHT|wx.BOTTOM) |
869 bitmappath = os.path.join("images", "%s.png"%element_infos["name"]) |
914 staticbitmap = GenStaticBitmap(ID=-1, bitmapname="%s.png"%element_infos["name"], |
870 if os.path.isfile(bitmappath): |
915 name="%s_bitmap"%element_infos["name"], parent=parent, |
871 staticbitmap = wx.StaticBitmap(id=-1, bitmap=wx.Bitmap(bitmappath), |
916 pos=wx.Point(0, 0), size=wx.Size(24, 24), style=0) |
872 name="%s_bitmap"%element_infos["name"], parent=parent, |
917 boxsizer.AddWindow(staticbitmap, 0, border=5, flag=wx.RIGHT) |
873 pos=wx.Point(0, 0), size=wx.Size(24, 24), style=0) |
|
874 boxsizer.AddWindow(staticbitmap, 0, border=5, flag=wx.RIGHT) |
|
875 else: |
|
876 staticbitmap = wx.StaticBitmap(id=-1, bitmap=GenerateEmptyBitmap(24, 24), |
|
877 name="%s_bitmap"%element_infos["name"], parent=parent, |
|
878 pos=wx.Point(0, 0), size=wx.Size(24, 24), style=0) |
|
879 boxsizer.AddWindow(staticbitmap, 0, border=5, flag=wx.RIGHT) |
|
880 statictext = wx.StaticText(id=-1, label="%s:"%element_infos["name"], |
918 statictext = wx.StaticText(id=-1, label="%s:"%element_infos["name"], |
881 name="%s_label"%element_infos["name"], parent=parent, |
919 name="%s_label"%element_infos["name"], parent=parent, |
882 pos=wx.Point(0, 0), size=wx.Size(100, 17), style=0) |
920 pos=wx.Point(0, 0), size=wx.Size(100, 17), style=0) |
883 boxsizer.AddWindow(statictext, 0, border=4, flag=wx.TOP) |
921 boxsizer.AddWindow(statictext, 0, border=4, flag=wx.TOP) |
884 id = wx.NewId() |
922 id = wx.NewId() |
907 boxsizer = wx.BoxSizer(wx.HORIZONTAL) |
945 boxsizer = wx.BoxSizer(wx.HORIZONTAL) |
908 if first: |
946 if first: |
909 sizer.AddSizer(boxsizer, 0, border=5, flag=wx.GROW|wx.ALL) |
947 sizer.AddSizer(boxsizer, 0, border=5, flag=wx.GROW|wx.ALL) |
910 else: |
948 else: |
911 sizer.AddSizer(boxsizer, 0, border=5, flag=wx.GROW|wx.LEFT|wx.RIGHT|wx.BOTTOM) |
949 sizer.AddSizer(boxsizer, 0, border=5, flag=wx.GROW|wx.LEFT|wx.RIGHT|wx.BOTTOM) |
912 bitmappath = os.path.join("images", "%s.png"%element_infos["name"]) |
950 staticbitmap = GenStaticBitmap(ID=-1, bitmapname="%s.png"%element_infos["name"], |
913 if os.path.isfile(bitmappath): |
951 name="%s_bitmap"%element_infos["name"], parent=parent, |
914 staticbitmap = wx.StaticBitmap(id=-1, bitmap=wx.Bitmap(bitmappath), |
952 pos=wx.Point(0, 0), size=wx.Size(24, 24), style=0) |
915 name="%s_bitmap"%element_infos["name"], parent=parent, |
953 boxsizer.AddWindow(staticbitmap, 0, border=5, flag=wx.RIGHT) |
916 pos=wx.Point(0, 0), size=wx.Size(24, 24), style=0) |
|
917 boxsizer.AddWindow(staticbitmap, 0, border=5, flag=wx.RIGHT) |
|
918 else: |
|
919 staticbitmap = wx.StaticBitmap(id=-1, bitmap=GenerateEmptyBitmap(24, 24), |
|
920 name="%s_bitmap"%element_infos["name"], parent=parent, |
|
921 pos=wx.Point(0, 0), size=wx.Size(24, 24), style=0) |
|
922 boxsizer.AddWindow(staticbitmap, 0, border=5, flag=wx.RIGHT) |
|
923 statictext = wx.StaticText(id=-1, label="%s:"%element_infos["name"], |
954 statictext = wx.StaticText(id=-1, label="%s:"%element_infos["name"], |
924 name="%s_label"%element_infos["name"], parent=parent, |
955 name="%s_label"%element_infos["name"], parent=parent, |
925 pos=wx.Point(0, 0), size=wx.Size(100, 17), style=0) |
956 pos=wx.Point(0, 0), size=wx.Size(100, 17), style=0) |
926 boxsizer.AddWindow(statictext, 0, border=4, flag=wx.TOP) |
957 boxsizer.AddWindow(statictext, 0, border=4, flag=wx.TOP) |
927 id = wx.NewId() |
958 id = wx.NewId() |
951 boxsizer = wx.BoxSizer(wx.HORIZONTAL) |
982 boxsizer = wx.BoxSizer(wx.HORIZONTAL) |
952 if first: |
983 if first: |
953 sizer.AddSizer(boxsizer, 0, border=5, flag=wx.GROW|wx.ALL) |
984 sizer.AddSizer(boxsizer, 0, border=5, flag=wx.GROW|wx.ALL) |
954 else: |
985 else: |
955 sizer.AddSizer(boxsizer, 0, border=5, flag=wx.GROW|wx.LEFT|wx.RIGHT|wx.BOTTOM) |
986 sizer.AddSizer(boxsizer, 0, border=5, flag=wx.GROW|wx.LEFT|wx.RIGHT|wx.BOTTOM) |
956 bitmappath = os.path.join("images", "%s.png"%element_infos["name"]) |
987 staticbitmap = GenStaticBitmap(ID=-1, bitmapname="%s.png"%element_infos["name"], |
957 if os.path.isfile(bitmappath): |
988 name="%s_bitmap"%element_infos["name"], parent=parent, |
958 staticbitmap = wx.StaticBitmap(id=-1, bitmap=wx.Bitmap(bitmappath), |
989 pos=wx.Point(0, 0), size=wx.Size(24, 24), style=0) |
959 name="%s_bitmap"%element_infos["name"], parent=parent, |
990 boxsizer.AddWindow(staticbitmap, 0, border=5, flag=wx.RIGHT) |
960 pos=wx.Point(0, 0), size=wx.Size(24, 24), style=0) |
|
961 boxsizer.AddWindow(staticbitmap, 0, border=5, flag=wx.RIGHT) |
|
962 else: |
|
963 staticbitmap = wx.StaticBitmap(id=-1, bitmap=GenerateEmptyBitmap(24, 24), |
|
964 name="%s_bitmap"%element_infos["name"], parent=parent, |
|
965 pos=wx.Point(0, 0), size=wx.Size(24, 24), style=0) |
|
966 boxsizer.AddWindow(staticbitmap, 0, border=5, flag=wx.RIGHT) |
|
967 |
991 |
968 statictext = wx.StaticText(id=-1, label="%s:"%element_infos["name"], |
992 statictext = wx.StaticText(id=-1, label="%s:"%element_infos["name"], |
969 name="%s_label"%element_infos["name"], parent=parent, |
993 name="%s_label"%element_infos["name"], parent=parent, |
970 pos=wx.Point(0, 0), size=wx.Size(100, 17), style=0) |
994 pos=wx.Point(0, 0), size=wx.Size(100, 17), style=0) |
971 boxsizer.AddWindow(statictext, 0, border=4, flag=wx.TOP) |
995 boxsizer.AddWindow(statictext, 0, border=4, flag=wx.TOP) |