# Path: kano_profile_gui/paths.py

# 
# Path: kano_profile_gui/ProgressDot.py
# class ProgressDot(Gtk.Fixed):
#     '''
#     A filled or unfilled spot.
#     '''
# 
#     def __init__(self, filled=False, color='orange'):
#         '''
#         Args:
#             color (str): "orange", "green" or "grey"
#         '''
# 
#         Gtk.Fixed.__init__(self)
#         self.set_size_request(60, 60)
# 
#         white_ring = Gtk.EventBox()
#         white_ring.get_style_context().add_class('progress_outer_ring')
#         white_ring.set_size_request(44, 44)
#         self.put(white_ring, 0, 10)
# 
#         align1 = Gtk.Alignment(xscale=0, yscale=0, xalign=0.5, yalign=0.5)
#         white_ring.add(align1)
# 
#         brown_ring = Gtk.EventBox()
#         brown_ring.get_style_context().add_class('progress_scroll_section')
#         brown_ring.set_size_request(34, 34)
# 
#         align1.add(brown_ring)
# 
#         align2 = Gtk.Alignment(xscale=0, yscale=0, xalign=0.5, yalign=0.5)
#         brown_ring.add(align2)
# 
#         tick_background = Gtk.EventBox()
#         tick_background.get_style_context().add_class('transparent')
#         self.put(tick_background, 5, 0)
# 
#         if filled:
#             self._tick = Tick(50, 50)
#             tick_background.add(self._tick)
# 
#     @property
#     def tick(self):
#         return self._tick


import os
from gi.repository import Gtk, GdkPixbuf
from kano.gtk3.apply_styles import apply_styling_to_screen
from kano_profile_gui.paths import css_dir, image_dir
from kano_profile_gui.ProgressDot import ProgressDot

        vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
        vbox.set_margin_left(10)
        text_background = Gtk.EventBox()
        text_background.add(vbox)
        fixed.put(text_background, 50, 50)
        text_background.set_size_request(405, 350)

        title_label = Gtk.Label(self.quest.title)
        title_label.get_style_context().add_class('quest_info_title')
        title_label.set_alignment(yalign=0.5, xalign=0)

        quest_pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(self.quest.icon, 80, 80)
        quest_image = Gtk.Image.new_from_pixbuf(quest_pixbuf)

        header_box = Gtk.Box()
        header_box.pack_start(quest_image, False, False, 5)
        header_box.pack_start(title_label, False, False, 5)
        header_box.set_margin_top(10)
        header_box.set_margin_left(10)

        vbox.pack_start(header_box, True, False, 0)

        steps = self.quest.steps
        self.progress_dots = []

        for step in steps:
            quest_step_label = Gtk.Label(step.title)

            fulfilled = step.is_fulfilled()

# Path: kano_profile_gui/paths.py

# 
# Path: kano_profile_gui/ProgressDot.py
# class ProgressDot(Gtk.Fixed):
#     '''
#     A filled or unfilled spot.
#     '''
# 
#     def __init__(self, filled=False, color='orange'):
#         '''
#         Args:
#             color (str): "orange", "green" or "grey"
#         '''
# 
#         Gtk.Fixed.__init__(self)
#         self.set_size_request(60, 60)
# 
#         white_ring = Gtk.EventBox()
#         white_ring.get_style_context().add_class('progress_outer_ring')
#         white_ring.set_size_request(44, 44)
#         self.put(white_ring, 0, 10)
# 
#         align1 = Gtk.Alignment(xscale=0, yscale=0, xalign=0.5, yalign=0.5)
#         white_ring.add(align1)
# 
#         brown_ring = Gtk.EventBox()
#         brown_ring.get_style_context().add_class('progress_scroll_section')
#         brown_ring.set_size_request(34, 34)
# 
#         align1.add(brown_ring)
# 
#         align2 = Gtk.Alignment(xscale=0, yscale=0, xalign=0.5, yalign=0.5)
#         brown_ring.add(align2)
# 
#         tick_background = Gtk.EventBox()
#         tick_background.get_style_context().add_class('transparent')
#         self.put(tick_background, 5, 0)
# 
#         if filled:
#             self._tick = Tick(50, 50)
#             tick_background.add(self._tick)
# 
#     @property
#     def tick(self):
#         return self._tick


# Path: kano_profile_gui/QuestInfo.py
import os
from gi.repository import Gtk, GdkPixbuf
from kano.gtk3.apply_styles import apply_styling_to_screen
from kano_profile_gui.paths import css_dir, image_dir
from kano_profile_gui.ProgressDot import ProgressDot


        vbox = Gtk.Box(orientation=Gtk.Orientation.VERTICAL)
        vbox.set_margin_left(10)
        text_background = Gtk.EventBox()
        text_background.add(vbox)
        fixed.put(text_background, 50, 50)
        text_background.set_size_request(405, 350)

        title_label = Gtk.Label(self.quest.title)
        title_label.get_style_context().add_class('quest_info_title')
        title_label.set_alignment(yalign=0.5, xalign=0)

        quest_pixbuf = GdkPixbuf.Pixbuf.new_from_file_at_size(self.quest.icon, 80, 80)
        quest_image = Gtk.Image.new_from_pixbuf(quest_pixbuf)

        header_box = Gtk.Box()
        header_box.pack_start(quest_image, False, False, 5)
        header_box.pack_start(title_label, False, False, 5)
        header_box.set_margin_top(10)
        header_box.set_margin_left(10)

        vbox.pack_start(header_box, True, False, 0)

        steps = self.quest.steps
        self.progress_dots = []

        for step in steps:
            quest_step_label = Gtk.Label(step.title)

            fulfilled = step.is_fulfilled()

            progress_dot = ProgressDot(fulfilled)