Example #1
0
def PopupOk(text, title='', btn_text='Continue', input=None, callback=None):
    btnclose = Button(text=btn_text, size_hint_y=None, height='50sp')
    content = BoxLayout(orientation='vertical')
    p = Popup(title=title, content=content, size=('300dp', '300dp'),
                size_hint=(None, None), pos_hint={'top':.95})
    content.add_widget(Label(text=text))
    if input is not None:
        assert callback is not None
        ti = TextInput(height='50sp', font_size='30sp', input_type=input,
                        multiline=False, size_hint_y = None, focus=True)
        content.add_widget(ti)
        def _callback(*args):
            try:
                ti.hide_keyboard()
            except AttributeError:
                # On a real computer, not the phone
                pass
            if ti.text == '':
                callback(None)
            else:
                callback(ti.text)
        p.bind(on_dismiss=_callback)
        p.is_visable = True

    content.add_widget(btnclose)

    btnclose.bind(on_release=p.dismiss)
    p.open()
    if input is not None:
        while not p.is_visable:
            EventLoop.idle()
        return ti.text