import cairo
from .page import Page
import datetime

class System(Page):

    def __init__(self, pageno, cfg, appdata, boatdata):
        super().__init__(pageno, cfg, appdata, boatdata)
        self.buttonlabel[1] = 'MODE'
        self.buttonlabel[2] = 'STBY'
        self.mode = ('I', 'N') # (I)nformation (N)MEA2000 Device List
        self.modeindex = 1
        self.standby = False

    def handle_key(self, buttonid):
        if self.standby and buttonid != 1:
            return True
        if buttonid == 1:
            if self.standby:
                self.standby = False
                self.buttonlabel[1] = 'MODE'
                self.buttonlabel[2] = 'STBY'
                self.header = True
                self.footer = True
            else:
                if self.modeindex < len(self.mode):
                    self.modeindex += 1
                else:
                    self.modeindex = 0
            return True
        if buttonid == 2:
            self.buttonlabel[1] = None
            self.buttonlabel[2] = None
            self.header = False
            self.footer = False
            self.standby = True
        return False

    def draw_stby(self, ctx):
        # Standby
        # TODO Kopf und Fußzeile ausschalten
        # Ein Klick auf die Mode-Taste weckt das System wieder auf
        pass

    def draw_info(self, ctx):

        # Bezeichnung
        ctx.select_font_face("Ubuntu", cairo.FontSlant.NORMAL, cairo.FontWeight.BOLD)
        ctx.set_font_size(32)
        self.draw_text_center(ctx, 200, 40 , "System Info")

        ctx.set_font_size(16)

        # System name
        # Software version

        # Linke Seite
        ctx.move_to(2, 80)
        ctx.show_text("Simulation: ")
        ctx.move_to(140, 80)
        ctx.show_text('On' if self.cfg['simulation'] else 'Off')

        ctx.move_to(2, 100)
        ctx.show_text("BME280/BMP280: ")
        ctx.move_to(140, 100)
        ctx.show_text('On' if self.cfg['bme280'] else 'Off')

        ctx.move_to(2, 120)
        ctx.show_text("GPS: ")
        ctx.move_to(140, 120)
        ctx.show_text('On' if self.cfg['gps'] else 'Off')

        # Rechte Seite
        ctx.move_to(202, 80)
        ctx.show_text("Wifi: ")
        ctx.move_to(340, 80)
        ctx.show_text('On')

        ctx.move_to(202, 100)
        ctx.show_text("Buzzer: ")
        ctx.move_to(340, 100)
        ctx.show_text('60%')

        ctx.move_to(202, 120)
        ctx.show_text("Timezone: ")
        ctx.move_to(340, 120)
        ctx.show_text(datetime.datetime.now().astimezone().tzname())

        ctx.stroke()

        # Geräteliste
        ctx.move_to(2, 150)
        ctx.show_text("NMEA2000 Device List")

        ctx.set_line_width(1.5)
        ctx.rectangle(2, 155, 394, 100)
        ctx.stroke()

    def draw_devlist(self, ctx):
        # NMEA2000 Geräteliste, Vollbild
        # scrollen mit Up/Down
        pass

    def draw(self, ctx):
        if self.standby:
            return
        self.draw_info(ctx)
