Completed
Push — master ( 0d93d1...88297e )
by Jerome
47s
created

Presenter.__init__()   A

Complexity

Conditions 1

Size

Total Lines 3

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
c 1
b 0
f 0
dl 0
loc 3
rs 10
1
from sys import version_info
2
3
if version_info[0] == 2:
4
    # We are using Python 2.x
5
    import Tkinter as tk
6
    import ttk
7
    import tkFileDialog as filedialog
8
elif version_info[0] == 3:
9
    # We are using Python 3.x
10
    import tkinter as tk
11
    from tkinter import ttk
12
    from tkinter import filedialog
13
14
from msquaredc.ui.interfaces import AbstractPresenter
15
from msquaredc.ui.gui.menu import GUIMenu
16
17
18
class GUIPresenter(AbstractPresenter):
19
    def __init__(self, *args, **kwargs):
20
        self.tk = tk.Tk()
21
        super(GUIPresenter, self).__init__(name=__class__.__name__, *args, **kwargs)
22
        self.logger.info("Building the GUI presenter.")
23
        self.init_tk()
24
        self.logger.info("The GUI presenter has been build.")
25
26
    def init_tk(self):
27
        self.logger.info("Initializing Tk")
28
        self.tk.title("M²C")
29
        self.tk.geometry("640x480")
30
        self.tk.style = ttk.Style()
31
        self.tk.style.theme_use("clam")
32
        self.logger.debug("Loading Keybindings")
33
        self.tk.bind("<F11>", self.toggle_fullscreen)
34
        self.tk.bind("<Escape>", self.end_fullscreen)
35
        self.logger.debug("Keybindings loaded")
36
        self.__is_fullscreen = False
37
        self.logger.info("Tk initialized")
38
39
    def toggle_fullscreen(self, event=None):
40
        self.logger.debug("Toggling Fullscreen to {}.".format(not self.__is_fullscreen))
41
        self.__is_fullscreen = not self.__is_fullscreen  # Just toggling the boolean
42
        self.tk.attributes('-fullscreen', self.__is_fullscreen)
43
        self.tk.overrideredirect(self.__is_fullscreen)
44
        return "break"
45
46
    def end_fullscreen(self, event=None):
47
        if self.__is_fullscreen:
48
            self.logger.debug("Leaving fullscreen mode.")
49
            self.__is_fullscreen = False
50
            self.tk.attributes("-fullscreen", False)
51
            self.tk.overrideredirect(False)
52
        return "break"
53
54
    def new_project_wizard(self, path=None):
55
        self.logger.info("Creating a new Project.")
56
57
    def load_mainframe(self, *args, **kwargs):
58
        self.logger.info("Loading Mainframe.")
59
60
    def run(self):
61
        self.tk.mainloop()
62