Esempio n. 1
0
def start_gui(html):
    #----------------------------------------------------------------------------------------------
    root = tk.Tk()
    text = HTMLText(root)
    text.pack(fill="both", expand=True)
    text.set_html(html)
    text.fit_height()
    return root.mainloop()
Esempio n. 2
0
    def load_track_content(self):
        # load message text
        # print 'show canvas',self.show_canvas_x1,self.show_canvas_y1,self.show_canvas_x2,self.show_canvas_y2
        #  print 'canvas width/height/centre',self.show_canvas_width,self.show_canvas_height,self.show_canvas_centre_x,self.show_canvas_centre_y
        #  print

        self.message_html_background_colour = self.track_params[
            'message-html-background-colour']
        if self.track_params['message-html-width'] == '':
            self.message_html_width = self.show_canvas_x2 - self.show_canvas_x1
        else:
            self.message_html_width = self.track_params['message-html-width']

        if self.track_params['message-html-height'] == '':
            self.message_html_height = self.show_canvas_y2 - self.show_canvas_y1
        else:
            self.message_html_height = self.track_params['message-html-height']

        self.message_text_type = self.track_params['message-text-type']

        if self.track_params['message-text-location'] != '':
            text_path = self.complete_path(
                self.track_params['message-text-location'])
            if not os.path.exists(text_path):
                return 'error', "Message Text file not found " + text_path
            with open(text_path) as f:
                message_text = f.read()
        else:
            message_text = self.track

        x, y, anchor, justify = calculate_text_position(
            self.track_params['message-x'], self.track_params['message-y'],
            self.show_canvas_x1, self.show_canvas_y1,
            self.show_canvas_centre_x, self.show_canvas_centre_y,
            self.show_canvas_x2, self.show_canvas_y2,
            self.track_params['message-justify'])

        if self.message_text_type == 'html':
            self.html_message_text_obj = HTMLText(
                self.canvas,
                background=self.message_html_background_colour,
                relief=FLAT)
            # self.html_text.pack(fill="both", expand=True)
            self.html_message_text_obj.set_html(message_text, self.pp_home,
                                                self.pp_profile)
            # self.html_text.fit_height()
            self.track_obj = self.canvas.create_window(
                x,
                y,
                window=self.html_message_text_obj,
                anchor=anchor,
                width=self.message_html_width,
                height=self.message_html_height)

        else:

            self.track_obj = self.canvas.create_text(
                x,
                y,
                text=message_text.rstrip('\n'),
                fill=self.track_params['message-colour'],
                font=self.track_params['message-font'],
                justify=justify,
                anchor=anchor)

        self.canvas.itemconfig(self.track_obj, state='hidden')
        return 'normal', 'message loaded'
Esempio n. 3
0
    def load_x_content(self, enable_menu):
        self.mon.trace(self, '')
        self.background_obj = None
        self.background = None
        self.track_text_obj = None
        self.show_text_obj = None
        self.hint_obj = None
        self.track_obj = None
        text_type = 'html'

        # background image
        if self.background_file != '':
            background_img_file = self.complete_path(self.background_file)
            if not os.path.exists(background_img_file):
                return 'error', "Track background file not found " + background_img_file
            else:
                try:
                    pil_background_img = Image.open(background_img_file)
                except:
                    pil_background_img = None
                    self.background = None
                    self.background_obj = None
                    return 'error', 'Track background, not a recognised image format ' + background_img_file
                # print 'pil_background_img ',pil_background_img
                image_width, image_height = pil_background_img.size
                window_width = self.show_canvas_width
                window_height = self.show_canvas_height
                if image_width != window_width or image_height != window_height:
                    pil_background_img = pil_background_img.resize(
                        (window_width, window_height))
                self.background = ImageTk.PhotoImage(pil_background_img)
                del pil_background_img
                self.background_obj = self.canvas.create_image(
                    self.show_canvas_x1,
                    self.show_canvas_y1,
                    image=self.background,
                    anchor=NW)
                # print '\nloaded background_obj: ',self.background_obj

        # load the track content.  Dummy function below is overridden in players
        status, message = self.load_track_content()
        if status == 'error':
            return 'error', message

        self.show_html_background_colour = self.show_params[
            'show-html-background-colour']
        if self.show_params['show-html-width'] == '':
            self.show_html_width = self.show_canvas_x2 - self.show_canvas_x1
        else:
            self.show_html_width = self.show_params['show-html-width']

        if self.show_params['show-html-height'] == '':
            self.show_html_height = self.show_canvas_y2 - self.show_canvas_y1
        else:
            self.show_html_height = self.show_params['show-html-height']

        self.show_text_type = self.show_params['show-text-type']

        if self.show_params['show-text-location'] != '':
            text_path = self.complete_path(
                self.show_params['show-text-location'])
            if not os.path.exists(text_path):
                return 'error', "Show Text file not found " + text_path
            with open(text_path) as f:
                show_text = f.read()
        else:
            show_text = self.show_params['show-text']

        # load show text if enabled
        if show_text != '' and self.track_params['display-show-text'] == 'yes':

            x, y, anchor, justify = calculate_text_position(
                self.show_params['show-text-x'],
                self.show_params['show-text-y'], self.show_canvas_x1,
                self.show_canvas_y1, self.show_canvas_centre_x,
                self.show_canvas_centre_y, self.show_canvas_x2,
                self.show_canvas_y2, self.show_params['show-text-justify'])
            if self.show_text_type == 'html':
                self.html_show_text_obj = HTMLText(
                    self.canvas,
                    background=self.show_html_background_colour,
                    relief=FLAT)

                self.html_show_text_obj.set_html(show_text, self.pp_home,
                                                 self.pp_profile)

                self.show_text_obj = self.canvas.create_window(
                    x,
                    y,
                    window=self.html_show_text_obj,
                    anchor=anchor,
                    width=self.show_html_width,
                    height=self.show_html_height)

            else:
                self.show_text_obj = self.canvas.create_text(
                    x,
                    y,
                    anchor=anchor,
                    justify=justify,
                    text=show_text,
                    fill=self.show_params['show-text-colour'],
                    font=self.show_params['show-text-font'])

        # load track text if enabled

        if self.track_params['track-text-x'] == '':
            track_text_x = self.show_params['track-text-x']
        else:
            track_text_x = self.track_params['track-text-x']

        if self.track_params['track-text-y'] == '':
            track_text_y = self.show_params['track-text-y']
        else:
            track_text_y = self.track_params['track-text-y']

        if self.track_params['track-text-justify'] == '':
            track_text_justify = self.show_params['track-text-justify']
        else:
            track_text_justify = self.track_params['track-text-justify']

        if self.track_params['track-text-font'] == '':
            track_text_font = self.show_params['track-text-font']
        else:
            track_text_font = self.track_params['track-text-font']

        if self.track_params['track-text-colour'] == '':
            track_text_colour = self.show_params['track-text-colour']
        else:
            track_text_colour = self.track_params['track-text-colour']

        self.track_html_background_colour = self.track_params[
            'track-html-background-colour']

        if self.track_params['track-html-width'] == '':
            self.track_html_width = self.show_canvas_x2 - self.show_canvas_x1
        else:
            self.track_html_width = self.track_params['track-html-width']

        if self.track_params['track-html-height'] == '':
            self.track_html_height = self.show_canvas_y2 - self.show_canvas_y1
        else:
            self.track_html_height = self.track_params['track-html-height']

        self.track_text_type = self.track_params['track-text-type']

        if self.track_params['track-text-location'] != '':
            text_path = self.complete_path(
                self.track_params['track-text-location'])
            if not os.path.exists(text_path):
                return 'error', "Track Text file not found " + text_path
            with open(text_path) as f:
                track_text = f.read()
        else:
            track_text = self.track_params['track-text']

        if track_text != '':

            x, y, anchor, justify = calculate_text_position(
                track_text_x, track_text_y, self.show_canvas_x1,
                self.show_canvas_y1, self.show_canvas_centre_x,
                self.show_canvas_centre_y, self.show_canvas_x2,
                self.show_canvas_y2, track_text_justify)

            if self.track_text_type == 'html':
                self.html_track_text_obj = HTMLText(
                    self.canvas,
                    background=self.track_html_background_colour,
                    relief=FLAT)
                # self.html_text.pack(fill="both", expand=True)
                self.html_track_text_obj.set_html(track_text, self.pp_home,
                                                  self.pp_profile)
                # self.html_text.fit_height()
                self.track_text_obj = self.canvas.create_window(
                    x,
                    y,
                    window=self.html_track_text_obj,
                    anchor=anchor,
                    width=self.track_html_width,
                    height=self.track_html_height)
            else:
                self.track_text_obj = self.canvas.create_text(
                    x,
                    y,
                    anchor=anchor,
                    justify=justify,
                    text=track_text,
                    fill=track_text_colour,
                    font=track_text_font)
        # load instructions if enabled
        if enable_menu is True:

            x, y, anchor, justify = calculate_text_position(
                self.show_params['hint-x'], self.show_params['hint-y'],
                self.show_canvas_x1, self.show_canvas_y1,
                self.show_canvas_centre_x, self.show_canvas_centre_y,
                self.show_canvas_x2, self.show_canvas_y2,
                self.show_params['hint-justify'])

            self.hint_obj = self.canvas.create_text(
                x,
                y,
                justify=justify,
                text=self.show_params['hint-text'],
                fill=self.show_params['hint-colour'],
                font=self.show_params['hint-font'],
                anchor=anchor)

        self.display_show_canvas_rectangle()

        self.canvas.tag_raise('pp-click-area')
        self.canvas.itemconfig(self.background_obj, state='hidden')
        self.canvas.itemconfig(self.show_text_obj, state='hidden')
        self.canvas.itemconfig(self.track_text_obj, state='hidden')
        self.canvas.itemconfig(self.hint_obj, state='hidden')
        self.canvas.update_idletasks()
        return 'normal', 'x-content loaded'