#!/usr/bin/env python3 from qtpy import QtGui from qtpy.QtDesigner import QPyDesignerCustomWidgetPlugin from qtvcp.widgets.simple_widgets import IndicatedPushButton from qtvcp.widgets.simple_widgets import PushButton from qtvcp.widgets.simple_widgets import CheckBox from qtvcp.widgets.simple_widgets import RadioButton from qtvcp.widgets.simple_widgets import LCDNumber from qtvcp.widgets.simple_widgets import Slider from qtvcp.widgets.simple_widgets import GridLayout from qtvcp.widgets.simple_widgets import Dial from qtvcp.widgets.simple_widgets import DoubleScale from qtvcp.widgets.general_hal_output import GeneralHALOutput from qtvcp.widgets.general_hal_input import GeneralHALInput from qtvcp.widgets.xembed import XEmbed from qtvcp.widgets.radio_axis_selector import RadioAxisSelector from qtvcp.widgets.axis_tool_button import AxisToolButton from qtvcp.widgets.offset_tool_button import OffsetToolButton from qtvcp.widgets.file_manager import FileManager from qtvcp.widgets.image_switcher import ImageSwitcher from qtvcp.widgets.image_switcher import StatusImageSwitcher from qtvcp.widgets.machine_log import MachineLog from qtvcp.widgets.qtvcp_icons import Icon ICON = Icon() #################################### # IndicatedPushBUTTON #################################### class IndicatedPushButtonPlugin(QPyDesignerCustomWidgetPlugin): # The __init__() method is only used to set up the plugin and define its # initialized variable. def __init__(self, parent=None): super(IndicatedPushButtonPlugin, self).__init__(parent) self.initialized = False # The initialize() and isInitialized() methods allow the plugin to set up # any required resources, ensuring that this can only happen once for each # plugin. def initialize(self, formEditor): if self.initialized: return self.initialized = True def isInitialized(self): return self.initialized # This factory method creates new instances of our custom widget def createWidget(self, parent): return IndicatedPushButton(parent) # This method returns the name of the custom widget class def name(self): return "IndicatedPushButton" # Returns the name of the group in Qt Designer's widget box def group(self): return "Linuxcnc - Widgets" # Returns the icon def icon(self): return QtGui.QIcon(QtGui.QPixmap(ICON.get_path('IndicatedPushButton'))) # Returns a tool tip short description def toolTip(self): return "Push button widget with indicator LED" # Returns a short description of the custom widget for use in a "What's # This?" help message for the widget. def whatsThis(self): return "" # Returns True if the custom widget acts as a container for other widgets; def isContainer(self): return False # Returns an XML description of a custom widget instance that describes # default values for its properties. def domXml(self): return '\n' # Returns the module containing the custom widget class. It may include # a module path. def includeFile(self): return "qtvcp.widgets.simple_widgets" #################################### # PUSHBUTTON #################################### class PushButtonPlugin(QPyDesignerCustomWidgetPlugin): # The __init__() method is only used to set up the plugin and define its # initialized variable. def __init__(self, parent=None): super(PushButtonPlugin, self).__init__(parent) self.initialized = False # The initialize() and isInitialized() methods allow the plugin to set up # any required resources, ensuring that this can only happen once for each # plugin. def initialize(self, formEditor): if self.initialized: return self.initialized = True def isInitialized(self): return self.initialized # This factory method creates new instances of our custom widget def createWidget(self, parent): return PushButton(parent) # This method returns the name of the custom widget class def name(self): return "PushButton" # Returns the name of the group in Qt Designer's widget box def group(self): return "Linuxcnc - HAL" # Returns the icon def icon(self): return QtGui.QIcon(QtGui.QPixmap(ICON.get_path('pushbutton'))) # Returns a tool tip short description def toolTip(self): return "Push button widget" # Returns a short description of the custom widget for use in a "What's # This?" help message for the widget. def whatsThis(self): return "" # Returns True if the custom widget acts as a container for other widgets; def isContainer(self): return False # Returns an XML description of a custom widget instance that describes # default values for its properties. def domXml(self): return '\n' # Returns the module containing the custom widget class. It may include # a module path. def includeFile(self): return "qtvcp.widgets.simple_widgets" #################################### # CHECKBUTTON #################################### class CheckBoxPlugin(QPyDesignerCustomWidgetPlugin): def __init__(self, parent=None): super(CheckBoxPlugin, self).__init__(parent) self.initialized = False def initialize(self, formEditor): if self.initialized: return self.initialized = True def isInitialized(self): return self.initialized def createWidget(self, parent): return CheckBox(parent) def name(self): return "CheckBox" def group(self): return "Linuxcnc - HAL" def icon(self): return QtGui.QIcon(QtGui.QPixmap(ICON.get_path('checkbox'))) def toolTip(self): return "HAL Checkbox widget" def whatsThis(self): return "" def isContainer(self): return False def domXml(self): return '\n' def includeFile(self): return "qtvcp.widgets.simple_widgets" #################################### # RADIOBUTTON #################################### class RadioButtonPlugin(QPyDesignerCustomWidgetPlugin): def __init__(self, parent=None): super(RadioButtonPlugin, self).__init__(parent) self.initialized = False def initialize(self, formEditor): if self.initialized: return self.initialized = True def isInitialized(self): return self.initialized def createWidget(self, parent): return RadioButton(parent) def name(self): return "RadioButton" def group(self): return "Linuxcnc - HAL" def icon(self): return QtGui.QIcon(QtGui.QPixmap(ICON.get_path('radiobutton'))) def toolTip(self): return "HAL Radiobutton widget" def whatsThis(self): return "" def isContainer(self): return False def domXml(self): return '\n' def includeFile(self): return "qtvcp.widgets.simple_widgets" #################################### # LCD Display #################################### class LCDNumberPlugin(QPyDesignerCustomWidgetPlugin): def __init__(self, parent=None): super(LCDNumberPlugin, self).__init__(parent) self.initialized = False def initialize(self, formEditor): if self.initialized: return self.initialized = True def isInitialized(self): return self.initialized def createWidget(self, parent): return LCDNumber(parent) def name(self): return "LCDNumber" def group(self): return "Linuxcnc - HAL" def icon(self): return QtGui.QIcon(QtGui.QPixmap(ICON.get_path('lcdnumber'))) def toolTip(self): return "HAL LCD Display widget" def whatsThis(self): return "" def isContainer(self): return False def domXml(self): return '\n' def includeFile(self): return "qtvcp.widgets.simple_widgets" #################################### # Slider #################################### class SliderPlugin(QPyDesignerCustomWidgetPlugin): def __init__(self, parent=None): super(SliderPlugin, self).__init__(parent) self.initialized = False def initialize(self, formEditor): if self.initialized: return self.initialized = True def isInitialized(self): return self.initialized def createWidget(self, parent): return Slider(parent) def name(self): return "Slider" def group(self): return "Linuxcnc - HAL" def icon(self): return QtGui.QIcon(QtGui.QPixmap(ICON.get_path('slider'))) def toolTip(self): return "HAL Slider widget" def whatsThis(self): return "" def isContainer(self): return False def domXml(self): return (""" 100 Qt::Horizontal """) def includeFile(self): return "qtvcp.widgets.simple_widgets" #################################### # GridLayout #################################### class LcncGridLayoutPlugin(QPyDesignerCustomWidgetPlugin): def __init__(self, parent=None): super(LcncGridLayoutPlugin, self).__init__(parent) self.initialized = False def initialize(self, formEditor): if self.initialized: return self.initialized = True def isInitialized(self): return self.initialized def createWidget(self, parent): return GridLayout(parent) def name(self): return "GridLayout" def group(self): return "Linuxcnc - HAL" def icon(self): return QtGui.QIcon(QtGui.QPixmap(ICON.get_path('gridlayout'))) def toolTip(self): return "HAL enable/disable GridLayout widget" def whatsThis(self): return "" def isContainer(self): return True def domXml(self): return '\n' def includeFile(self): return "qtvcp.widgets.simple_widgets" #################################### # GeneralHALOutput #################################### class GeneralHALOutputPlugin(QPyDesignerCustomWidgetPlugin): def __init__(self, parent=None): super(GeneralHALOutputPlugin, self).__init__(parent) self.initialized = False def initialize(self, formEditor): if self.initialized: return self.initialized = True def isInitialized(self): return self.initialized def createWidget(self, parent): return GeneralHALOutput(parent) def name(self): return "GeneralHALOutput" def group(self): return "Linuxcnc - HAL" def icon(self): return QtGui.QIcon(QtGui.QPixmap(ICON.get_path('generalhaloutput'))) def toolTip(self): return "Generalized HAL Output Pin Widget" def whatsThis(self): return "Used to add HAl Pins to Arbitrary widgets" def isContainer(self): return True def domXml(self): return '\n' def includeFile(self): return "qtvcp.widgets.general_hal_output" #################################### # GeneralHALInput #################################### class GeneralHALInputPlugin(QPyDesignerCustomWidgetPlugin): def __init__(self, parent=None): super(GeneralHALInputPlugin, self).__init__(parent) self.initialized = False def initialize(self, formEditor): if self.initialized: return self.initialized = True def isInitialized(self): return self.initialized def createWidget(self, parent): return GeneralHALInput(parent) def name(self): return "GeneralHALInput" def group(self): return "Linuxcnc - HAL" def icon(self): return QtGui.QIcon(QtGui.QPixmap(ICON.get_path('generalhalinput'))) def toolTip(self): return "Generalized HAL Input Pin Widget" def whatsThis(self): return "Used to add HAl Pins to Arbitrary widgets" def isContainer(self): return True def domXml(self): return '\n' def includeFile(self): return "qtvcp.widgets.general_hal_input" #################################### # XEmbed #################################### class XEmbedPlugin(QPyDesignerCustomWidgetPlugin): def __init__(self, parent=None): super(XEmbedPlugin, self).__init__(parent) self.initialized = False def initialize(self, formEditor): if self.initialized: return self.initialized = True def isInitialized(self): return self.initialized def createWidget(self, parent): return XEmbed(parent) def name(self): return "XEmbed" def group(self): return "Linuxcnc - HAL" def icon(self): return QtGui.QIcon(QtGui.QPixmap(ICON.get_path('xembed'))) def toolTip(self): return "Widget for embedding thirdparty programs" def whatsThis(self): return "" def isContainer(self): return True def domXml(self): return '\n' def includeFile(self): return "qtvcp.widgets.xembed" #################################### # RadioAxisSelector #################################### class RadioAxisSelectorPlugin(QPyDesignerCustomWidgetPlugin): def __init__(self, parent=None): super(RadioAxisSelectorPlugin, self).__init__(parent) self.initialized = False def initialize(self, formEditor): if self.initialized: return self.initialized = True def isInitialized(self): return self.initialized def createWidget(self, parent): return RadioAxisSelector(parent) def name(self): return "RadioAxisSelector" def group(self): return "Linuxcnc - Controller" def icon(self): return QtGui.QIcon(QtGui.QPixmap(ICON.get_path('radioaxisselector'))) def toolTip(self): return "RadioAxisSelector widget" def whatsThis(self): return "" def isContainer(self): return False def domXml(self): return '\n' def includeFile(self): return "qtvcp.widgets.radio_axis_selector" #################################### # AxisToolButton #################################### class AxisToolButtonPlugin(QPyDesignerCustomWidgetPlugin): def __init__(self, parent=None): super(AxisToolButtonPlugin, self).__init__(parent) self.initialized = False def initialize(self, formEditor): if self.initialized: return self.initialized = True def isInitialized(self): return self.initialized def createWidget(self, parent): return AxisToolButton(parent) def name(self): return "AxisToolButton" def group(self): return "Linuxcnc - Controller" def icon(self): return QtGui.QIcon(QtGui.QPixmap(ICON.get_path('axistoolbutton'))) def toolTip(self): return "Button for selecting an Axis and setting the Origin" def whatsThis(self): return "" def isContainer(self): return False def domXml(self): return '\n' def includeFile(self): return "qtvcp.widgets.axis_tool_button" #################################### # OffsetToolButton #################################### class OffsetToolButtonPlugin(QPyDesignerCustomWidgetPlugin): def __init__(self, parent=None): super(OffsetToolButtonPlugin, self).__init__(parent) self.initialized = False def initialize(self, formEditor): if self.initialized: return self.initialized = True def isInitialized(self): return self.initialized def createWidget(self, parent): return OffsetToolButton(parent) def name(self): return "OffsetToolButton" def group(self): return "Linuxcnc - Controller" def icon(self): return QtGui.QIcon(QtGui.QPixmap(ICON.get_path('offsettoolbutton'))) def toolTip(self): return "Button for selecting an Axis and setting the Origin" def whatsThis(self): return "" def isContainer(self): return False def domXml(self): return '\n' def includeFile(self): return "qtvcp.widgets.offset_tool_button" #################################### # FileManager #################################### class FileManagerPlugin(QPyDesignerCustomWidgetPlugin): def __init__(self, parent=None): super(FileManagerPlugin, self).__init__(parent) self.initialized = False def initialize(self, formEditor): if self.initialized: return self.initialized = True def isInitialized(self): return self.initialized def createWidget(self, parent): return FileManager(parent) def name(self): return "FileManager" def group(self): return "Linuxcnc - Controller" def icon(self): return QtGui.QIcon(QtGui.QPixmap(ICON.get_path('filemanager'))) def toolTip(self): return "Button for selecting an Axis and setting the Origin" def whatsThis(self): return "" def isContainer(self): return False def domXml(self): return '\n' def includeFile(self): return "qtvcp.widgets.file_manager" #################################### # ImageSwitcher #################################### class ImageSwitcherPlugin(QPyDesignerCustomWidgetPlugin): def __init__(self, parent=None): super(ImageSwitcherPlugin, self).__init__(parent) self.initialized = False def initialize(self, formEditor): if self.initialized: return self.initialized = True def isInitialized(self): return self.initialized def createWidget(self, parent): w = ImageSwitcher(parent) w._designerInit() return w def name(self): return "ImageSwitcher" def group(self): return "Linuxcnc - HAL" def icon(self): return QtGui.QIcon(QtGui.QPixmap(ICON.get_path('imageswitcher'))) def toolTip(self): return "Label that switches between different images" def whatsThis(self): return "" def isContainer(self): return False def domXml(self): return ''' 10 0 50 50 ''' def includeFile(self): return "qtvcp.widgets.image_switcher" #################################### # StatusImageSwitcher #################################### class StatusImageSwitcherPlugin(QPyDesignerCustomWidgetPlugin): def __init__(self, parent=None): super(StatusImageSwitcherPlugin, self).__init__(parent) self.initialized = False def initialize(self, formEditor): if self.initialized: return self.initialized = True def isInitialized(self): return self.initialized def createWidget(self, parent): w = StatusImageSwitcher(parent) w._designerInit() return w def name(self): return "StatusImageSwitcher" def group(self): return "Linuxcnc - Controller" def icon(self): return QtGui.QIcon(QtGui.QPixmap(ICON.get_path('statusimageswitcher'))) def toolTip(self): return "Label that switches between different Images based on status" def whatsThis(self): return "" def isContainer(self): return False def domXml(self): return '''''' def includeFile(self): return "qtvcp.widgets.image_switcher" #################################### # Dial #################################### class DialPlugin(QPyDesignerCustomWidgetPlugin): def __init__(self, parent=None): super(DialPlugin, self).__init__(parent) self.initialized = False def initialize(self, formEditor): if self.initialized: return self.initialized = True def isInitialized(self): return self.initialized def createWidget(self, parent): return Dial(parent) def name(self): return "Dial" def group(self): return "Linuxcnc - HAL" def icon(self): return QtGui.QIcon(QtGui.QPixmap(ICON.get_path('dial'))) def toolTip(self): return "Handwheel Widget" def whatsThis(self): return "" def isContainer(self): return False def domXml(self): return '''''' def includeFile(self): return "qtvcp.widgets.simple_widgets" #################################### # DoubleScale #################################### class DoubleScalePlugin(QPyDesignerCustomWidgetPlugin): def __init__(self, parent=None): super(DoubleScalePlugin, self).__init__(parent) self.initialized = False def initialize(self, formEditor): if self.initialized: return self.initialized = True def isInitialized(self): return self.initialized def createWidget(self, parent): return DoubleScale(parent) def name(self): return "DoubleScale" def group(self): return "Linuxcnc - HAL" def icon(self): return QtGui.QIcon(QtGui.QPixmap(ICON.get_path('doublescale'))) def toolTip(self): return "Scaling Hal Widget" def whatsThis(self): return "" def isContainer(self): return False def domXml(self): return '''''' def includeFile(self): return "qtvcp.widgets.simple_widgets" #################################### # MachineLog #################################### class MachineLogPlugin(QPyDesignerCustomWidgetPlugin): def __init__(self, parent=None): super(MachineLogPlugin, self).__init__(parent) self.initialized = False def initialize(self, formEditor): if self.initialized: return self.initialized = True def isInitialized(self): return self.initialized def createWidget(self, parent): return MachineLog(parent) def name(self): return "MachineLog" def group(self): return "Linuxcnc - Controller" def icon(self): return QtGui.QIcon(QtGui.QPixmap(ICON.get_path('machinelog'))) def toolTip(self): return "Machine Log Display Widget" def whatsThis(self): return "" def isContainer(self): return False def domXml(self): return '''''' def includeFile(self): return "qtvcp.widgets.machine_log"