from kivy.uix.label import Label from kivy.lang import Builder from kivy.properties import ObjectProperty from kivy.uix.treeview import TreeViewLabel from kivy.clock import Clock from kivy.app import App from util import KeyboardListener from data.entry import Entry, EntryException from widgets.common import SingleLabel from widgets.status_bar import status from widgets.popup import question_dialog from widgets.util import widget_path Builder.load_file(widget_path('widgets/entry_widget.kv')) class EntryWidget(BoxLayout): entry = ObjectProperty(None) def __init__(self, **kwargs): super().__init__(**kwargs) self.app = App.get_running_app() self.ids.image_widget.load_entry(self.entry) def on_touch_down(self, touch): if super().on_touch_down(touch): return True if self.collide_point(*touch.pos): self.app.set_widget('edit', self.entry)
import weakref from kivy.uix.boxlayout import BoxLayout from kivy.uix.popup import Popup from kivy.properties import StringProperty from kivy.lang import Builder from widgets.util import widget_path Builder.load_file(widget_path('widgets/popup.kv')) class PopupWidget(BoxLayout): def __init__(self, **kwargs): super().__init__(**kwargs) self.popup = None def set_popup(self, popup): self.popup = weakref.proxy(popup) class NotificationWidget(PopupWidget): text = StringProperty() def __init__(self, **kwargs): super().__init__(**kwargs) self.text = kwargs.get('text', '') def on_close(self): if self.popup: self.popup.dismiss()
from kivy.lang import Builder from kivy.properties import ObjectProperty from kivy.uix.treeview import TreeViewLabel from kivy.clock import Clock from kivy.app import App from util import KeyboardListener from data.entry import Entry, EntryException from linktypes import manager from linktypes.settings import LinktypeException from widgets.common import SingleLabel from widgets.status_bar import status from widgets.util import widget_path Builder.load_file(widget_path('widgets/pyles_edit.kv')) class PylesEdit(BoxLayout): def __init__(self, entry = None, **kwargs): super(PylesEdit, self).__init__(**kwargs) self.app = App.get_running_app() self.linktypeconfig = None self.entry = entry if self.entry is None: self.on_linktypename(self.ids.linktype_selection.text) else: self.ids.linktype_selection.text = self.entry.linktype.name self.ids.name_input.text = self.entry.name self.ids.image_widget.load_entry(self.entry)
from kivy.graphics import Rectangle from kivy.properties import ObjectProperty from kivy.lang import Builder from widgets.common import DropWidget from data.icon import Icon, from_file, IconLoadError from widgets.util import widget_path from widgets.loading_widget import LoadingWidget Builder.load_file(widget_path('widgets/image_widget.kv')) class ImageWidget(DropWidget): icon = ObjectProperty(allownone = True) def __init__(self, **kwargs): super().__init__(**kwargs) self.bind(size=self.layout_callback) self.bind(pos=self.layout_callback) def layout_callback(self, instance, value): self.draw() def draw(self): if self.icon is not None: if self.icon.state == Icon.READY: self.canvas.clear() with self.canvas: self.icon.draw(self.pos, self.size) else:
import inspect from collections import namedtuple from kivy.uix.boxlayout import BoxLayout from kivy.properties import StringProperty, ListProperty from kivy.lang import Builder from kivy.clock import Clock from kivy.logger import Logger from widgets.util import widget_path Builder.load_file(widget_path('widgets/status_bar.kv')) DEFAULT_COLOR = [1, 1, 1, 1] ERROR_COLOR = [1, 0.2, 0.2, 1] Message = namedtuple('Message', ['text', 'duration', 'type', 'weak']) def get_caller(): frm = inspect.stack()[2] mod = inspect.getmodule(frm[0]) if mod: return mod.__name__.split('.')[-1] return 'Pyles' class StatusManager(): DEFAULT_INFO_DURATION = 5 def __init__(self): self.bar = None
from kivy.app import App from kivy.core.window import Window from kivy.uix.widget import Widget from kivy.uix.label import Label from kivy.uix.textinput import TextInput from kivy.uix.spinner import Spinner, SpinnerOption from kivy.lang import Builder from widgets.util import widget_path import widgets.definitions Builder.load_file(widget_path('widgets/common.kv')) class SingleLabel(Label): pass class SingleTextinput(TextInput): pass class SingleSpinnerOption(SpinnerOption): pass class SingleSpinner(Spinner): def __init__(self, **kwargs): super().__init__(option_cls=SingleSpinnerOption, **kwargs)
from kivy.uix.boxlayout import BoxLayout from kivy.uix.label import Label from kivy.lang import Builder from kivy.properties import ObjectProperty from kivy.uix.treeview import TreeViewLabel from kivy.clock import Clock from kivy.app import App from widgets.util import widget_path Builder.load_file(widget_path('widgets/settings_widget.kv')) class SettingsWidget(GridLayout): def __init__(self, **kwargs): super().__init__(**kwargs) self.app = App.get_running_app()