Exemple #1
0
def register_widgets():
    for gobj, editor, data_type in [
        (ProxyEntry, EntryDataType, DataType),
        (ProxyDateEntry, None, DateOnlyDataType),
        (ProxyButton, ButtonDataType, DataType),
        (ProxyColorButton, ButtonDataType, DataType),
        (ProxyCheckButton, None, BoolOnlyDataType),
        (ProxyLabel, LabelDataType, DataType),
        (ProxyComboBox, ComboBoxDataType, DataType),
        (ProxyComboBoxEntry, ComboBoxEntryDataType, DataType),
        (ProxyComboEntry, ComboEntryDataType, DataType),
        (ProxySpinButton, SpinBtnDataType, DataType),
        (ProxyHScale, HScaleDataType, DataType),
        (ProxyVScale, VScaleDataType, DataType),
        (ProxyRadioButton, None, BoolOnlyDataType),
        (ProxyTextView, TextViewDataType, DataType)
    ]:
        # Property overrides, used in the editor
        type_name = gobject.type_name(gobj)

        data_name = type_name + '::data-type'
        if editor:
            prop_registry.override_simple(data_name,
                                          data_type,
                                          custom_editor=editor)
        else:
            prop_registry.override_simple(data_name, data_type)

        prop_registry.override_simple(type_name + '::model-attribute',
                                      ModelProperty)

        if issubclass(gobj, ProxyRadioButton):
            prop_registry.override_simple(type_name + '::data-value',
                                          DataValueProperty)
        # Register custom adapters, since gobject.new is broken in 2.6
        # Used by loader, eg in gazpacho and in applications
        # ComboBox is registered above
        if gobj == ProxyComboBox:
            continue

        adapter_name = 'Kiwi%sAdapter' % gobj.__name__
        klass = type(adapter_name, (PythonWidgetAdapter, ),
                     dict(object_type=gobj, __name__=adapter_name))
        adapter_registry.register_adapter(klass)
Exemple #2
0
def register_widgets():
    for gobj, editor, data_type in [
        (ProxyEntry, EntryDataType, DataType),
        (ProxyDateEntry, None, DateOnlyDataType),
        (ProxyButton, ButtonDataType, DataType),
        (ProxyColorButton, ButtonDataType, DataType),
        (ProxyCheckButton, None, BoolOnlyDataType),
        (ProxyLabel, LabelDataType, DataType),
        (ProxyComboBox, ComboBoxDataType, DataType),
        (ProxyComboBoxEntry, ComboBoxEntryDataType, DataType),
        (ProxyComboEntry, ComboEntryDataType, DataType),
        (ProxySpinButton, SpinBtnDataType, DataType),
        (ProxyHScale, HScaleDataType, DataType),
        (ProxyVScale, VScaleDataType, DataType),
        (ProxyRadioButton, None, BoolOnlyDataType),
        (ProxyTextView, TextViewDataType, DataType)
        ]:
        # Property overrides, used in the editor
        type_name = gobject.type_name(gobj)

        data_name = type_name + '::data-type'
        if editor:
            prop_registry.override_simple(data_name, data_type, custom_editor=editor)
        else:
            prop_registry.override_simple(data_name, data_type)

        prop_registry.override_simple(type_name + '::model-attribute',
                                      ModelProperty)

        if issubclass(gobj, ProxyRadioButton):
            prop_registry.override_simple(type_name + '::data-value',
                                          DataValueProperty)
        # Register custom adapters, since gobject.new is broken in 2.6
        # Used by loader, eg in gazpacho and in applications
        # ComboBox is registered above
        if gobj == ProxyComboBox:
            continue

        adapter_name = 'Kiwi%sAdapter' % gobj.__name__
        klass = type(adapter_name, (PythonWidgetAdapter,),
                     dict(object_type=gobj,
                          __name__=adapter_name))
        adapter_registry.register_adapter(klass)
    def add(self, parent, child, properties, type):
        # This is a hack, remove when the button saving/loading code
        # is improved
        for cur_child in parent.get_children():
            parent.remove(cur_child)
        ButtonAdapter.add(self, parent, child, properties, type)

class GazpachoWindowAdapter(WindowAdapter):
    object_type = gtk.Window
    def prop_set_visible(self, window, value):
        window.set_data('gazpacho::visible', str2bool(value))

    def prop_set_modal(self, window, value):
        window.set_data('gazpacho::modal', str2bool(value))

adapter_registry.register_adapter(GazpachoWindowAdapter)

# FIXME: This is quite strange, but apparently we need this too.
class GazpachoDialogAdapter(DialogAdapter):
    object_type = gtk.Dialog
    def prop_set_modal(self, window, value):
        window.set_data('gazpacho::modal', str2bool(value))

adapter_registry.register_adapter(GazpachoDialogAdapter)

class GazpachoObjectBuilder(ObjectBuilder):
    def __init__(self, **kwargs):
        self._app = kwargs.pop('app', None)
        kwargs['placeholder'] = self.create_placeholder
        kwargs['custom'] = Custom
Exemple #4
0
    Adapter, PythonWidgetAdapter, adapter_registry)


# Schevo widgets.
from schevogtk2.entitygrid import EntityGrid
from schevogtk2.extentgrid import ExtentGrid
from schevogtk2.field import FieldLabel
from schevogtk2.field import DynamicField
from schevogtk2.relatedgrid import RelatedGrid


class EntityGridAdapter(PythonWidgetAdapter):
    object_type = EntityGrid
    def construct(self, name, gtype, properties):
        return PythonWidgetAdapter.construct(self, name, gtype, properties)
adapter_registry.register_adapter(EntityGridAdapter)


class ExtentGridAdapter(PythonWidgetAdapter):
    object_type = ExtentGrid
    def construct(self, name, gtype, properties):
        return PythonWidgetAdapter.construct(self, name, gtype, properties)
adapter_registry.register_adapter(ExtentGridAdapter)


class FieldLabelAdapter(PythonWidgetAdapter):
    object_type = FieldLabel
    def construct(self, name, gtype, properties):
        return PythonWidgetAdapter.construct(self, name, gtype, properties)
adapter_registry.register_adapter(FieldLabelAdapter)
Exemple #5
0
        return []


class DateEntryAdaptor(BoxAdaptor):
    def get_children(self, context, comboentry):
        return []


class KiwiColumnAdapter(Adapter):
    object_type = Column

    def construct(self, name, gtype, properties):
        return Column(name)


adapter_registry.register_adapter(KiwiColumnAdapter)


class ObjectListAdapter(PythonWidgetAdapter):
    object_type = ObjectList

    def construct(self, name, gtype, properties):
        if gtype == List:
            gtype == ObjectList
        return super(ObjectListAdapter,
                     self).construct(name, gtype, properties)


adapter_registry.register_adapter(ObjectListAdapter)

Exemple #6
0
    def post_create(self, context, widget, interactive):
        widget.set_text(widget.get_name())

class ComboEntryAdaptor(BoxAdaptor):
    def get_children(self, context, comboentry):
        return []

class DateEntryAdaptor(BoxAdaptor):
    def get_children(self, context, comboentry):
        return []

class KiwiColumnAdapter(Adapter):
    object_type = Column
    def construct(self, name, gtype, properties):
        return Column(name)
adapter_registry.register_adapter(KiwiColumnAdapter)

class ObjectListAdapter(PythonWidgetAdapter):
    object_type = ObjectList
    def construct(self, name, gtype, properties):
        if gtype == List:
            gtype == ObjectList
        return super(ObjectListAdapter, self).construct(name, gtype,
                                                        properties)
adapter_registry.register_adapter(ObjectListAdapter)

class ObjectTreeAdapter(PythonWidgetAdapter):
    object_type = ObjectTree
adapter_registry.register_adapter(ObjectTreeAdapter)

# Framework widgets
Exemple #7
0
                                (w - fontw) / 2,
                                (h - fonth) / 2,
                                self._layout)
        return False

# Adapter
class CustomAdaptor(WidgetAdaptor):
    type = Custom
    name = 'Custom'

# Loader
class CustomLoaderAdapter(LoaderAdapter):
    object_type = Custom
    def construct(self, name, gtype, properties):
        return Custom()
adapter_registry.register_adapter(CustomLoaderAdapter)

CUSTOM_TYPE = 'gazpacho+widgets+base+custom+Custom'
prop_registry.override_simple(CUSTOM_TYPE + '::int1',
                              translatable=False, minimum=-1)
prop_registry.override_simple(CUSTOM_TYPE + '::int2',
                              translatable=False, minimum=-1)
prop_registry.override_simple(CUSTOM_TYPE + '::string1',
                              translatable=False)
prop_registry.override_simple(CUSTOM_TYPE + '::string2',
                              translatable=False)
prop_registry.override_simple(CUSTOM_TYPE + '::creation-function',
                              translatable=False)
prop_registry.override_simple(CUSTOM_TYPE + '::last-modification-time',
                              translatable=False, editable=False)