Exemple #1
0
class KeypressTesterPopup(BasePopup, view_name='keypress_tester_popup', primary=False):
    def __init__(self, title: str = 'Test', size=(120, 30), **kwargs):
        super().__init__(title=title)
        self.kwargs = kwargs
        self.size = size
        self.output = Multiline('', key='output', size=self.size, disabled=True, autoscroll=True)
        # self.binds['<Control-Left>'] = 'bound'
        # self.binds['<Control-Right>'] = 'bound'
        # self.binds['<Control-Button-1>'] = 'bound'

    def get_render_args(self) -> tuple[list[list[Element]], dict[str, Any]]:
        layout = [[self.output]]
        return layout, {'title': self.title, 'return_keyboard_events': True, 'resizable': True, **self.kwargs}

    def render(self):
        super().render()
        self.output.TKText.bind('<Button-1>', self.bound)
        self.output.TKText.bind('<Button-2>', self.bound)
        self.output.TKText.bind('<Button-3>', self.bound)

    @event_handler(default=True)
    def default(self, event: Event, data: EventData):
        self.output.update(f'{event}\n', append=True)

    @event_handler
    def bound(self, event: Event, data: EventData = None):
        self.output.update(f'BOUND: [{event}]\n', append=True)
Exemple #2
0
def send_error_message(error: str, output: sg.Multiline):
    output.update("\nError: ",
                  text_color_for_value=DANGER,
                  append=True,
                  autoscroll=True)
    output.update(error,
                  text_color_for_value=DANGER,
                  append=True,
                  autoscroll=True)
    return
Exemple #3
0
def send_info_message(info: str, output: sg.Multiline):
    output.update("\nEnv: ",
                  text_color_for_value=INFO,
                  append=True,
                  autoscroll=True)
    output.update(info,
                  text_color_for_value=INFO,
                  append=True,
                  autoscroll=True)
    return
Exemple #4
0
def send_user_message(text: str, output: sg.Multiline):
    output.update("\nUser: ",
                  text_color_for_value=INFO,
                  append=True,
                  autoscroll=True)
    output.update(text,
                  text_color_for_value=WHITE,
                  append=True,
                  autoscroll=True)
    return