예제 #1
0
    def __init__(self):
        Gtk.VBox.__init__(self)

        self.view_type = ViewType.NULL
        self.forward_view = ViewType.NULL

        self.client = Client()
        self.client.connect("profile-loaded", self.__profile_loaded_cb)
        self.client.connect("loading", self.__start_load)
        self.client.connect("loaded", self.__end_load)
        self.client.connect("thread-loaded", self.__thread_loaded_cb)
        self.client.connect("error", self.__error_cb)
        self.client.connect("login", self.__login_cb)
        self.client.connect("logged", self.__logged_cb)
        self.client.connect("mail-sent", self.__mail_sent_cb)

        self.view_box = Gtk.VBox()
        self.pack_start(self.view_box, True, True, 0)

        self.loading_view = LoadingView()

        self.mails_listbox = MailsListBox()
        self.mails_listbox.connect("label-selected", self.__label_selected_cb)
        self.mails_listbox.connect("thread-selected",
                                   self.__thread_selected_cb)
        self.mails_listbox.connect("favorite-clicked",
                                   self.__favorite_clicked_cb)

        self.mail_viewer = MailViewer()
        self.mail_viewer.connect("send", self.__send_cb)

        self.redactor = Redactor()
        self.redactor.connect("send", self.__send_cb)

        self.login_screen = LoginScreen()
        self.login_screen.connect("send-code", self.__send_code_cb)
        self.error_viewer = ErrorViewer()

        self.viewers = {
            ViewType.LOADING: self.loading_view,
            ViewType.MAILS_LIST: self.mails_listbox,
            ViewType.MAIL: self.mail_viewer,
            ViewType.REDACT: self.redactor,
            ViewType.LOGIN_SCREEN: self.login_screen,
            ViewType.ERROR: self.error_viewer,
        }

        self.connect("realize", self.__realize_cb)

        self.show_all()
예제 #2
0
 def login_screen(self, instance):
     signup_screen = APP.root.current_screen
     from login_screen import LoginScreen
     self.login_screen = LoginScreen()
     APP.root.add_widget(self.login_screen)
     APP.root.current = "login_screen"
     APP.root.remove_widget(signup_screen)
예제 #3
0
    def build(self):
        global tick_evnt

        tick_evnt = Clock.schedule_interval(networking.tick, 1.0 / TPS)
        sm.add_widget(LoginScreen(id='login', name='login_screen'))
        sm.add_widget(ChatScreen(id='chat_screen', name='chat_screen'))
        sm.add_widget(
            ServerCrashScreen(id='server_crash', name='server_crash_screen'))
        return sm
예제 #4
0
 def log_out(self, instance):
     with open("refresh_token.txt", "w") as f:
         f.write("")
     home_screen = APP.root.current_screen
     from login_screen import LoginScreen
     self.login_screen = LoginScreen()
     APP.root.add_widget(self.login_screen)
     APP.root.current = "login_screen"
     APP.root.remove_widget(home_screen)
예제 #5
0
    def build(self):
        self.title = "Advanced Civilization"
        self.screen_manager = ScreenManager(pos=(0, 0),
                                            pos_hint={
                                                'x': 0,
                                                'y': 0
                                            },
                                            size_hint=(1, 1))

        self.login_page = LoginScreen()
        screen = Screen(name="Login")
        screen.add_widget(self.login_page)
        self.screen_manager.add_widget(screen)
        self.login_page.bind(connected=self.handle_connect)

        self.nation_selection_page = NationSelectionScreen()
        screen = Screen(name="NationSelection")
        screen.add_widget(self.nation_selection_page)
        self.screen_manager.add_widget(screen)
        self.nation_selection_page.bind(finished=self.handle_finish)
        self.nation_selection_page.player_name = self.login_page.name
        self.nation_selection_page.server_url = self.login_page.url
        self.login_page.bind(
            name=self.nation_selection_page.setter('player_name'))
        self.login_page.bind(
            url=self.nation_selection_page.setter('server_url'))
        self.nation_selection_page.bind(nation=self.setter('active_nation'))

        self.civ_map_page = CivMapScreen(pos_hint={
            'x': 0,
            'y': 0
        },
                                         size_hint=(1, 1))
        screen = Screen(name="CivMap",
                        pos_hint={
                            'x': 0,
                            'y': 0
                        },
                        size_hint=(1, 1))
        screen.add_widget(self.civ_map_page)
        self.screen_manager.add_widget(screen)
        self.bind(active_nation=self.civ_map_page.st.setter('nation'))

        return self.screen_manager
예제 #6
0
    def log_out(self, instance):
        with open("resources/refresh_token.txt", "w") as f:
            f.write("")

        if not APP.root.has_screen("login_screen"):
            from login_screen import LoginScreen
            self.login_screen = LoginScreen()
            APP.root.add_widget(self.login_screen)
        APP.root.current = "login_screen"

        APP.root.remove_widget(APP.root.get_screen("navigation_screen"))
예제 #7
0
    def on_enter(self):
        from home_screen import HomeScreen
        from login_screen import LoginScreen

        home_screen = HomeScreen()
        login_screen = LoginScreen()
        self.app.root.add_widget(home_screen)
        self.app.root.add_widget(login_screen)

        try:
            with open("refresh_token.txt", "r") as f:
                refresh_token = f.read()
                self.my_firebase.exchange_refresh_token(refresh_token)
                Clock.schedule_once(lambda dt: self.load_home(), 1)
        except:
            Clock.schedule_once(lambda dt: self.load_login(), 1)
    def on_enter(self):
        pantalla_navegacion = NavigationScreen()
        pantalla_inicio = LoginScreen()
        self.app.root.add_widget(pantalla_navegacion)
        self.app.root.add_widget(pantalla_inicio)
        try:
            with open("info_paciente.txt", "r") as f:
                lineas_texto = f.readlines()
                nombre = lineas_texto[0]
                apellido = lineas_texto[1]
                num_dni = lineas_texto[2]
                centro = lineas_texto[3]
                f.close()
                self.mi_conexion.verificar_mi_conexion(nombre, apellido,
                                                       num_dni, centro)
                Clock.schedule_once(lambda dt: self.cargar_navegacion(), 2)

        except:
            Clock.schedule_once(lambda dt: self.cargar_login(), 2)
예제 #9
0
파일: main.py 프로젝트: pymike00/Articles
 def build(self):
     return LoginScreen()
예제 #10
0
파일: main.py 프로젝트: pymike00/Articles
 def build(self):
     # self.theme_cls.primary_palette = "Orange"
     return LoginScreen()
예제 #11
0
from kivy.app import App
from kivy.uix.screenmanager import *
from welcome_screen import WelcomeScreen
from login_screen import LoginScreen

sm = ScreenManager(transition=WipeTransition())
sm.add_widget(WelcomeScreen(name='welcome'))
sm.add_widget(LoginScreen(name='login'))


class ScreensApp(App):
    def build(self):
        return sm

    def on_pause(self):
        return True

    def on_resume(self):
        pass


if __name__ == '__main__':
    ScreensApp().run()
예제 #12
0
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton, QVBoxLayout
from login_screen import LoginScreen

app = QApplication([])
app.setStyle('Fusion')
login_screen = LoginScreen()
app.exec_()
예제 #13
0
파일: main.py 프로젝트: Mondobot/Bomberman
EAST = "1"
NORTH = "4"

pygame.init()

screen = pygame.display.set_mode( [WIDTH, HEIGHT] )
pygame.display.set_caption("Bomberman Game")

# Used to manage how fast the screen updates
clock = pygame.time.Clock()

done = False


world = PygameWorld(screen)
login_screen = LoginScreen(screen, width = WIDTH, height = HEIGHT)
game_select_screen = GameSelect(screen, width = WIDTH, height = HEIGHT)
game_lobby_screen = None
owner = None


# -------- Main Program Loop -----------
while not done:

    
    for event in pygame.event.get(): # User did something
        if event.type == pygame.QUIT: # If user clicked close
            done = True # Flag that we are done so we exit this loop

        elif state.in_game == True and event.type == pygame.KEYUP:
            if not world.players[world.me].walking:
예제 #14
0
class GmailCanvas(Gtk.VBox):

    __gsignals__ = {
        "update-buttons":
        (GObject.SIGNAL_RUN_LAST, GObject.TYPE_NONE, [GObject.TYPE_PYOBJECT]),
        "history-changed": (GObject.SIGNAL_RUN_LAST, GObject.TYPE_NONE, []),
    }

    def __init__(self):
        Gtk.VBox.__init__(self)

        self.view_type = ViewType.NULL
        self.forward_view = ViewType.NULL

        self.client = Client()
        self.client.connect("profile-loaded", self.__profile_loaded_cb)
        self.client.connect("loading", self.__start_load)
        self.client.connect("loaded", self.__end_load)
        self.client.connect("thread-loaded", self.__thread_loaded_cb)
        self.client.connect("error", self.__error_cb)
        self.client.connect("login", self.__login_cb)
        self.client.connect("logged", self.__logged_cb)
        self.client.connect("mail-sent", self.__mail_sent_cb)

        self.view_box = Gtk.VBox()
        self.pack_start(self.view_box, True, True, 0)

        self.loading_view = LoadingView()

        self.mails_listbox = MailsListBox()
        self.mails_listbox.connect("label-selected", self.__label_selected_cb)
        self.mails_listbox.connect("thread-selected",
                                   self.__thread_selected_cb)
        self.mails_listbox.connect("favorite-clicked",
                                   self.__favorite_clicked_cb)

        self.mail_viewer = MailViewer()
        self.mail_viewer.connect("send", self.__send_cb)

        self.redactor = Redactor()
        self.redactor.connect("send", self.__send_cb)

        self.login_screen = LoginScreen()
        self.login_screen.connect("send-code", self.__send_code_cb)
        self.error_viewer = ErrorViewer()

        self.viewers = {
            ViewType.LOADING: self.loading_view,
            ViewType.MAILS_LIST: self.mails_listbox,
            ViewType.MAIL: self.mail_viewer,
            ViewType.REDACT: self.redactor,
            ViewType.LOGIN_SCREEN: self.login_screen,
            ViewType.ERROR: self.error_viewer,
        }

        self.connect("realize", self.__realize_cb)

        self.show_all()

    def __realize_cb(self, widget):
        # thread = threading.Thread(target=self.client.start)
        # thread.start()
        self.client.start()

    def __profile_loaded_cb(self, client, profile):
        self.loading_view.set_profile(profile)
        self.mail_viewer.set_profile(profile)
        self.redactor.set_profile(profile)

    def __start_load(self, client):
        self.set_view(ViewType.LOADING)

    def __end_load(self, client, threads, labels):
        self.loading_view.stop()
        self.set_view(ViewType.MAILS_LIST)

        GLib.idle_add(self.mails_listbox.set_threads, threads)
        GLib.idle_add(self.mails_listbox.set_labels, labels)

    def __thread_loaded_cb(self, client, thread):
        self.mail_viewer.set_thread(thread)
        self.set_view(ViewType.MAIL)

    def __error_cb(self, client):
        self.set_view(ViewType.ERROR)

    def __login_cb(self, client, url):
        self.set_view(ViewType.LOGIN_SCREEN)
        self.login_screen.set_url(url)

    def __logged_cb(self, client):
        # thread = threading.Thread(target=self.client.load)
        # thread.start()
        self.client.load()

    def __mail_sent_cb(self, client, mail):
        self.client.request_thread(mail["threadId"])

    def __label_selected_cb(self, view, labelid):
        print "LABEL SELECTED", labelid

    def __thread_selected_cb(self, view, threadid):
        # thread = threading.Thread(target=self.client.request_thread, args=(threadid,))
        # thread.start()
        self.client.request_thread(threadid)

    def __favorite_clicked_cb(self, view, threadid, starred):
        self.client.set_star(threadid, starred)

    def __send_cb(self, widget, mail):
        # thread = threading.Thread(target=self.client.send, args=(mail,))
        # thread.start()
        self.client.send(mail)

    def __send_code_cb(self, screen, code):
        self.client.set_code(code)

    def __update_buttons(self):
        invalids = [ViewType.NULL, ViewType.LOADING]
        if self.view_type in invalids:
            self.forward_view = ViewType.NULL
        else:
            self.forward_view

        data = {
            "back": self.view_type in [ViewType.MAIL, ViewType.REDACT],
            "forward": self.forward_view
            not in [ViewType.NULL, ViewType.ERROR],
            "redact": self.view_type == ViewType.MAILS_LIST
        }

        self.emit("update-buttons", data)

    def show_redactor(self):
        self.set_view(ViewType.REDACT, False)
        self.forward_view = ViewType.NULL
        self.__update_buttons()

    def set_view(self, view_type, emit=True):
        if view_type == self.view_type:
            return

        self.view_type = view_type

        if self.view_box.get_children() != []:
            self.view_box.remove(self.view_box.get_children()[0])

        child = None
        if self.view_type in self.viewers.keys():
            child = self.viewers[self.view_type]

        if self.view_type == ViewType.LOADING:
            self.loading_view.start()
        else:
            self.loading_view.stop()

        if child is not None:
            self.view_box.pack_start(child, True, True, 0)

        if emit:
            self.__update_buttons()

        self.show_all()

    def go_back(self):
        current = self.view_type
        self.set_view(ViewType.MAILS_LIST, False)
        self.forward_view = current

        self.__update_buttons()

    def go_forward(self):
        self.set_view(self.forward_view)
        self.forward_view = ViewType.NULL

        self.__update_buttons()
예제 #15
0
class AdvCivClientApp(App):
    player = ''
    screen_manager = ObjectProperty(None)
    login_page = None
    nation_selection_page = None
    civ_map_page = None
    active_nation = StringProperty('')

    def update_buttons(self):
        pass

    def show_stuff(self, root=None):
        if not root:
            root = self.root

    def build(self):
        self.title = "Advanced Civilization"
        self.screen_manager = ScreenManager(pos=(0, 0),
                                            pos_hint={
                                                'x': 0,
                                                'y': 0
                                            },
                                            size_hint=(1, 1))

        self.login_page = LoginScreen()
        screen = Screen(name="Login")
        screen.add_widget(self.login_page)
        self.screen_manager.add_widget(screen)
        self.login_page.bind(connected=self.handle_connect)

        self.nation_selection_page = NationSelectionScreen()
        screen = Screen(name="NationSelection")
        screen.add_widget(self.nation_selection_page)
        self.screen_manager.add_widget(screen)
        self.nation_selection_page.bind(finished=self.handle_finish)
        self.nation_selection_page.player_name = self.login_page.name
        self.nation_selection_page.server_url = self.login_page.url
        self.login_page.bind(
            name=self.nation_selection_page.setter('player_name'))
        self.login_page.bind(
            url=self.nation_selection_page.setter('server_url'))
        self.nation_selection_page.bind(nation=self.setter('active_nation'))

        self.civ_map_page = CivMapScreen(pos_hint={
            'x': 0,
            'y': 0
        },
                                         size_hint=(1, 1))
        screen = Screen(name="CivMap",
                        pos_hint={
                            'x': 0,
                            'y': 0
                        },
                        size_hint=(1, 1))
        screen.add_widget(self.civ_map_page)
        self.screen_manager.add_widget(screen)
        self.bind(active_nation=self.civ_map_page.st.setter('nation'))

        return self.screen_manager

    def handle_connect(self, instance, connected):
        if connected:
            print('Login screen connected successfully')
            print(self.nation_selection_page.player_name)
            print(self.nation_selection_page.server_url)
            self.nation_selection_page.request_update()
            self.screen_manager.current = "NationSelection"

    def handle_finish(self, instance, finished):
        if finished:
            self.active_nation = self.nation_selection_page.nation
            print(
                f"Nation Selection finished successfully (I'm {self.active_nation})"
            )
            self.screen_manager.current = "CivMap"
            snap_map = SnapMap(self.civ_map_page.ms)

            fl = self.civ_map_page.fl
            for n in self.nation_selection_page.get_selected_nations():
                self.civ_map_page.nations.append(Nation(n, fl, snap_map))

            for n in self.civ_map_page.nations:
                n.show_or_hide_stock(self.active_nation)

            self.update_board(0)
            Clock.schedule_interval(self.update_board, 1)

    def update_board(self, dt):
        n = [
            n for n in self.civ_map_page.nations
            if n.name == self.active_nation
        ][0]
        url = self.login_page.url
        if dt == 0:
            body = None
        else:
            body = json.dumps(n.get_dict())
        req = UrlRequest(url=f"{url}/civ_board",
                         on_success=self.handle_update,
                         on_failure=self.show_error_msg,
                         on_error=self.show_error_msg,
                         req_body=body,
                         req_headers={'Content-Type': 'application/json'},
                         timeout=None,
                         decode=True,
                         debug=False,
                         file_path=None,
                         ca_file=None,
                         verify=False)

    def handle_update(self, req, res):
        res_list = json.loads(res)
        for n in self.civ_map_page.nations:
            if n.name not in res_list:
                print(f"{n.name} not listed on server: {res_list.keys()}")
                return
            if n.name == self.active_nation:
                if res_list[n.name] == n.get_dict():
                    pass
                else:
                    print(f"Client {n.name} doesn't match server!")
            if res_list[n.name] == {}:
                continue
            else:
                for i in range(len(res_list[n.name]['tokens'])):
                    if n.name == self.active_nation:
                        if res_list[n.name]['tokens'][i] == 'HiddenUnitStock':
                            res_list[n.name]['tokens'][i] = 'UnitStock'
                        if res_list[n.name]['tokens'][i] == 'HiddenCityStock':
                            res_list[n.name]['tokens'][i] = 'CityStock'
                        if res_list[n.name]['tokens'][i] == 'HiddenBoatStock':
                            res_list[n.name]['tokens'][i] = 'BoatStock'
                    else:
                        if res_list[n.name]['tokens'][i] == 'UnitStock':
                            res_list[n.name]['tokens'][i] = 'HiddenUnitStock'
                        if res_list[n.name]['tokens'][i] == 'CityStock':
                            res_list[n.name]['tokens'][i] = 'HiddenCityStock'
                        if res_list[n.name]['tokens'][i] == 'BoatStock':
                            res_list[n.name]['tokens'][i] = 'HiddenBoatStock'
            n.update(res_list[n.name])

    @staticmethod
    def show_error_msg(request, error):
        print('Error')
        print(error)
 def load_login_screen(self):
     login_screen = LoginScreen()
     APP.root.add_widget(login_screen)
     APP.root.current = "login_screen"
     self.remove_screen()
 def load_login_screen(self):
     login_screen = LoginScreen()
     self.app.root.add_widget(login_screen)
     self.app.root.current = "login_screen"