Exemplo n.º 1
0
    def render_facts(self, date=None):
        date = date or self._date

        self.container.edit_box.hide()
        facts = self.storage.get_facts(date)
        self.fragments.sprites = []
        self.connectors.sprites = []
        self.entries.sprites = []

        self.date_label.text = date.strftime("%d. %b %Y")

        for i, fact in enumerate(facts):
            if fact.activity not in fact_names:
                fact_names.append(fact.activity)

            color_index = fact_names.index(fact.activity) % len(colors)
            color = colors[color_index]

            fragment_height = int(
                delta_minutes(fact.start_time, fact.end_time) *
                self.pixels_in_minute)
            self.fragments.add_child(
                graphics.Rectangle(self.fragments.width,
                                   fragment_height,
                                   fill=color))

            entry = Entry(self.entries.width, fact, entry_colors[color_index])
            self.entries.add_child(entry)
            entry.connect("on-activate", self.on_entry_click)

        self.position_entries(date)
Exemplo n.º 2
0
    def __init__(self):
        window = gtk.Window(gtk.WINDOW_TOPLEVEL)
        window.set_default_size(600, 500)
        window.connect("delete_event", lambda *args: gtk.main_quit())

        self.liststore = gtk.ListStore(gobject.TYPE_PYOBJECT)
        self.liststore.append(['Open'])
        self.liststore.append(['New'])
        self.liststore.append(['Plint'])
        self.liststore.append(['Open'])
        self.liststore.append(['New'])
        self.liststore.append(['Plint'])

        self.treeview = gtk.TreeView(self.liststore)

        fact_cell = MagicCellRenderer()
        fact_cell.connect("on-enter-frame", self.on_enter_frame)
        fact_column = gtk.TreeViewColumn("", fact_cell, data=0)
        self.treeview.append_column(fact_column)

        self.rect = graphics.Rectangle(10, 10, stroke = "#000")
        fact_cell.add_child(self.rect)



        window.add(self.treeview)
        window.show_all()
Exemplo n.º 3
0
    def __init__(self, letter = "", width = None, interactive = False, border = False, **kwargs):
        graphics.Sprite.__init__(self, **kwargs)
        self.interactive = interactive

        self.width = width

        padding = self.width * 0.1
        cell_size = self.width / 2 - padding

        inner_padding = self.width * 0.08
        cell_radius = cell_size - inner_padding * 2

        self.cells = []
        for x in range(2):
            for y in range(3):
                cell = graphics.Circle(cell_radius,
                                       cell_radius,
                                       interactive = interactive,
                                       stroke = "#333",
                                       x = padding + x * cell_size + inner_padding,
                                       y = padding + y * cell_size + inner_padding)
                if interactive:
                    cell.connect("on-mouse-over", self.on_mouse_over)
                    cell.connect("on-mouse-out", self.on_mouse_out)

                self.add_child(cell)
                self.cells.append(cell) # keep a separate track so we don't mix up with other sprites


        if border:
            self.add_child(graphics.Rectangle(cell_size * 2 + padding * 2,
                                              cell_size * 3 + padding * 2,
                                              stroke="#000"))

        self.letter = letter
Exemplo n.º 4
0
 def create_bar(self, tarea, alto_bar, cur_x, j):
     # bar per area
     duracion_tarea_segundos = tarea.duracion.days * 24 * 60 * 60
     duracion_tarea_segundos += tarea.duracion.seconds
     duracion_tarea_horas = duracion_tarea_segundos / 60 / 60
     bar_ancho = self.hour_pixel * duracion_tarea_horas
     bar = graphics.Rectangle(bar_ancho, alto_bar, 
             fill = color_tarea(tarea, j), 
             stroke = "#FFEFEF00", #FIXME:El alpha pasa completamente de mí
             line_width = max(0, 4 - int(self.zoom_level / 31)), 
             corner_radius = 10)
     # cur_x está siempre en las 00:00. Avanzo hasta la hora de 
     # inicio real. 
     bar.x = cur_x + (tarea.fecha.hour * self.hour_pixel)
     bar.y = 27 + self.lineas.index(tarea.area) * alto_bar 
     bar.tarea = tarea
     if tarea.area in self.lineas:
         bar.area = self.lineas.index(tarea.area)
     else:
         bar.area = len(self.lineas)
     if DEBUG:
         print j, tarea, "(%d, %d) - (%d, %d)" % (
             bar.x, bar.y, bar.x + bar.width, bar.y + bar.height)
     self.add_child(bar)
     self.bars[tarea] = bar
def TY_House():
    """Paint house"""
    TY_House_Roof = gr.Circle(gr.Point(350, 150), 50)
    TY_House_Roof.setFill('Brown')
    TY_House_Roof.draw(window)

    TY_House_Wall = gr.Rectangle(gr.Point(300, 300), gr.Point(400, 150))
    TY_House_Wall.setFill('Gray')
    TY_House_Wall.draw(window)

    TY_House_Step = gr.Rectangle(gr.Point(320, 300), gr.Point(380, 280))
    TY_House_Step.setFill('Black')
    TY_House_Step.draw(window)

    TY_House_Door = gr.Rectangle(gr.Point(330, 280), gr.Point(370, 220))
    TY_House_Door.setFill('Orange')
    TY_House_Door.draw(window)

    TY_House_Tube = gr.Rectangle(gr.Point(370, 130), gr.Point(390, 90))
    TY_House_Tube.setFill('Black')
    TY_House_Tube.draw(window)
Exemplo n.º 6
0
 def create_portion_carga_linea(self, cur_x, numtarea_del_dia, pixel_width):
     """
     Dibuja un rectángulo que representa la porción de barra vertical del 
     número de empleados trabajando en una línea (área) simultáneamente el 
     mismo día (no necesariamente en el mismo turno).
     Todas las porciones, que se dibujan justo después de la barra de la 
     tarea de cada empleado, al apilarse forman la barra vertical total.
     """
     # number of empleados simultáneos en líneas
     alto = 10
     portion = graphics.Rectangle(pixel_width, alto, fill = "#ad0")
     portion.x = cur_x
     portion.y = self.height - 5 * (numtarea_del_dia + 1)
     self.add_child(portion)
Exemplo n.º 7
0
    def __init__(self):
        graphics.Scene.__init__(self)

        for i in range(14):
            self.add_child(
                graphics.Rectangle(40,
                                   40,
                                   3,
                                   y=420,
                                   x=i * 45 + 6,
                                   fill="#999",
                                   stroke="#444",
                                   interactive=True))

        self.connect("on-mouse-over", self.on_mouse_over)
Exemplo n.º 8
0
    def __init__(self, letter, cell_width, **kwargs):
        graphics.Sprite.__init__(self, **kwargs)

        self.letter = letter

        mouse_rectangle = graphics.Rectangle(cell_width, cell_width * 1.4, 7, stroke="#000", interactive = True)
        self.add_child(mouse_rectangle)

        mouse_rectangle.connect("on-mouse-over", self.on_mouse_over)
        mouse_rectangle.connect("on-mouse-out", self.on_mouse_out)
        mouse_rectangle.connect("on-click", self.on_click)

        self.add_child(BrailCell(letter, width = cell_width))
        self.add_child(graphics.Label(letter, size = 14, color="#000",
                                      x = 12, y = cell_width * 1.4 + 5))
def TY_House1(place):
    TY_House_Roof = gr.Circle(gr.Point(350 + place, 150), 50)
    TY_House_Roof.setFill('Brown')
    TY_House_Roof.draw(window)

    TY_House_Wall = gr.Rectangle(gr.Point(300 + place, 300),
                                 gr.Point(400 + place, 150))
    TY_House_Wall.setFill('Gray')
    TY_House_Wall.draw(window)

    TY_House_Step = gr.Rectangle(gr.Point(320 + place, 300),
                                 gr.Point(380 + place, 280))
    TY_House_Step.setFill('Black')
    TY_House_Step.draw(window)

    TY_House_Door = gr.Rectangle(gr.Point(330 + place, 280),
                                 gr.Point(370 + place, 220))
    TY_House_Door.setFill('Orange')
    TY_House_Door.draw(window)

    TY_House_Tube = gr.Rectangle(gr.Point(370 + place, 130),
                                 gr.Point(390 + place, 90))
    TY_House_Tube.setFill('Black')
    TY_House_Tube.draw(window)
Exemplo n.º 10
0
 def pintar_linea_vertical(self, cur_x, altura = None, label = None, 
                           label_center = False):
     if altura is None:
         altura = self.height
     vline = graphics.Rectangle(1, altura, fill= "#000")
     vline.x = cur_x
     vline.y = self.height - altura
     self.grid.append(vline)
     self.add_child(vline)
     if label:   # Añado arriba del todo una etiqueta con el texto recibido.
         ldia = graphics.Label(label, 10, "#999", visible = True)
         self.labels["días"][label] = ldia
         self.add_child(ldia)
         if not label_center:
             ldia.x = cur_x + 2
             ldia.y = 3
         else:
             ldia.x = cur_x - (ldia.measure(label)[0] / 2)
             ldia.y = 13
Exemplo n.º 11
0
 def create_label_empleado(self, empleado, alto_label, alto_bar, 
                           offset_totales):
     """
     Crea y coloca tanto el label del empleado como la línea horizontal.
     """
     nombre = empleado.nombre
     lnombre = graphics.Label(nombre, alto_label, "#333", visible = True)
     self.labels["empleados"][empleado] = lnombre
     lnombre.x = 0
     lnombre.y = 27 + self.empleados.index(empleado) * alto_bar
     self.add_child(lnombre)
     hline = graphics.Rectangle(self.width +  offset_totales, 1, 
                                fill = "#000")
     hline.x = 0
     hline.y = lnombre.y
     self.grid.append(hline)
     self.add_child(hline)
     ancho_label_nombre = lnombre.measure(nombre)[0]
     self.coords_y[lnombre.y] = empleado
     return ancho_label_nombre
Exemplo n.º 12
0
 def create_label_area(self, area, alto_label, alto_bar, 
                           offset_totales):
     """
     Crea y coloca tanto el label del area como la línea horizontal.
     """
     nombre = area.nombre or ""
     lnombre = graphics.Label(nombre, alto_label, "#333", visible = True)
     self.labels["lineas"][area] = lnombre
     lnombre.x = 0
     lnombre.y = 27 + self.lineas.index(area) * alto_bar
     self.add_child(lnombre)
     hline = graphics.Rectangle(self.width +  offset_totales, 1, 
                                fill = "#000")
     hline.x = 0
     hline.y = lnombre.y
     self.grid.append(hline)
     self.add_child(hline)
     ancho_label_nombre = lnombre.measure(nombre)[0]
     self.coords_y[lnombre.y] = area
     return ancho_label_nombre
Exemplo n.º 13
0
    def __init__(self):
        graphics.Scene.__init__(self)

        self.connect("on-mouse-over", self.on_mouse_over)
        self.connect("on-mouse-out", self.on_mouse_out)
        self.connect("on-mouse-up", self.on_mouse_up)
        self.connect("on-mouse-move", self.on_mouse_move)
        self.connect("on-enter-frame", self.on_enter_frame)
        self.cache_as_bitmap = True
        self.paint_color = None
        self.add_child(
            graphics.Rectangle(600, 40, 4, "#666", opacity=0.8,
                               z_order=999998))
        self.fps_label = graphics.Label(size=20,
                                        color="#fff",
                                        z_order=999999,
                                        x=10,
                                        y=4)
        self.add_child(self.fps_label)
        self.bubbles = []
        self.max_zorder = 1
Exemplo n.º 14
0
def TY_Tree1(mesto):
    TY_Tree_Wood = gr.Rectangle(gr.Point(50 + mesto, 220),
                                gr.Point(80 + mesto, 170))
    TY_Tree_Wood.setFill('Brown')
    TY_Tree_Wood.draw(window)

    TY_Tree_Leafs = gr.Circle(gr.Point(65 + mesto, 145), 50)
    TY_Tree_Leafs.setFill('Green')
    TY_Tree_Leafs.draw(window)

    TY_Tree_Apple1 = gr.Circle(gr.Point(80 + mesto, 155), 10)
    TY_Tree_Apple1.setFill('Yellow')
    TY_Tree_Apple1.draw(window)

    TY_Tree_Apple2 = gr.Circle(gr.Point(60 + mesto, 115), 10)
    TY_Tree_Apple2.setFill('Yellow')
    TY_Tree_Apple2.draw(window)

    TY_Tree_Apple3 = gr.Circle(gr.Point(90 + mesto, 125), 10)
    TY_Tree_Apple3.setFill('Yellow')
    TY_Tree_Apple3.draw(window)
Exemplo n.º 15
0
def TY_Tree():
    """Paint Tree"""
    TY_Tree_Wood = gr.Rectangle(gr.Point(50, 220), gr.Point(80, 170))
    TY_Tree_Wood.setFill('Brown')
    TY_Tree_Wood.draw(window)

    TY_Tree_Leafs = gr.Circle(gr.Point(65, 145), 50)
    TY_Tree_Leafs.setFill('Green')
    TY_Tree_Leafs.draw(window)

    TY_Tree_Apple1 = gr.Circle(gr.Point(80, 155), 10)
    TY_Tree_Apple1.setFill('Yellow')
    TY_Tree_Apple1.draw(window)

    TY_Tree_Apple2 = gr.Circle(gr.Point(60, 115), 10)
    TY_Tree_Apple2.setFill('Yellow')
    TY_Tree_Apple2.draw(window)

    TY_Tree_Apple3 = gr.Circle(gr.Point(90, 125), 10)
    TY_Tree_Apple3.setFill('Yellow')
    TY_Tree_Apple3.draw(window)
Exemplo n.º 16
0
 def create_bar(self, tarea, alto_bar, cur_x, j):
     # bar per empleado
     duracion_tarea_segundos = tarea.duracion.days * 24 * 60 * 60
     duracion_tarea_segundos += tarea.duracion.seconds
     duracion_tarea_horas = duracion_tarea_segundos / 60 / 60
     bar_ancho = self.hour_pixel * duracion_tarea_horas
     bar = graphics.Rectangle(bar_ancho, alto_bar, 
             fill = color_por_area(tarea.area, self.lineas, 
                                   tarea.fecha.hour), 
             stroke = "#aaa")
     # cur_x está siempre en las 00:00. Avanzo hasta la hora de 
     # inicio real. 
     bar.x = cur_x + (tarea.fecha.hour * self.hour_pixel)
     bar.y = 27 + self.empleados.index(tarea.empleado) * alto_bar 
     bar.tarea = tarea
     if tarea.empleado in self.empleados:
         bar.empleado = self.empleados.index(tarea.empleado)
     else:
         bar.empleado = len(self.empleados)
     if DEBUG:
         print j, tarea, "(%d, %d) - (%d, %d)" % (
             bar.x, bar.y, bar.x + bar.width, bar.y + bar.height)
     self.add_child(bar)
     self.bars[tarea] = bar
Exemplo n.º 17
0
    def __init__(self, x, y, **kwargs):
        graphics.Sprite.__init__(self, x=x, y=y, opacity=0.5, **kwargs)
        self.graphics.fill_area(0, 0, 50, 200, "#f00")

        self.add_child(graphics.Rectangle(50, 200, fill="#0f0", y=50))
Exemplo n.º 18
0
 def __init__(self, x, y, color, follow=None):
     graphics.Sprite.__init__(self, x=x, y=y)
     self.follow = follow
     self.color = color
     self.add_child(graphics.Rectangle(20, 20, 3, color, x=-10, y=-10))
     self.graphics.fill(color)
Exemplo n.º 19
0
    def __init__(self):
        now = dt.datetime.now()

        graphics.Scene.__init__(self)

        self.notebook = ui.Notebook(tab_position = "top-left", scroll_position="end", show_scroll = "auto_invisible", scroll_selects_tab = False)

        # boxes packed and nested horizontally and vertically, with a draggable corner
        self.box = ui.HBox(spacing = 3, x=10, y=10)
        self.button = ui.Button("My image changes position", image = graphics.Image("assets/hamster.png"), fill = False)
        self.button.connect("on-click", self.on_button_click)

        self.box.add_child(*[ui.VBox([self.button,
                                      ui.ToggleButton("I'm a toggle button! Have a tooltip too!", image = graphics.Image("assets/day.png"), fill = True, tooltip="Oh hey there, i'm a tooltip!"),
                                      ui.Label("I'm a label \nand we all can wrap", image = graphics.Image("assets/week.png"), spacing = 5, padding = 5, x_align = 0),
                                      ui.Entry("Feel free to edit me! I'm a rather long text that will scroll nicely perhaps. No guarantees though!", expand = False),
                                      ui.Entry("And me too perhaps", expand = False)],
                                     spacing = 5, padding = 10),
                             Rectangle(20, expand = False),
                             graphics.Label("rrrr", color="#666"),
                             Rectangle(20, expand = False),
                             ui.VBox([Rectangle(fill = False), Rectangle(), Rectangle()], spacing = 3)
                             ])


        box_w, box_h = self.box.get_min_size()
        self.corner = graphics.Rectangle(10, 10, fill="#666",
                                         x = self.box.x + box_w,
                                         y = self.box.y + box_h,
                                         draggable=True,
                                         interactive=True,
                                         z_order = 100)
        self.corner.connect("on-drag", self.on_corner_drag)


        # a table
        self.table = ui.Table(3, 3, snap_to_pixel = False, padding=10)
        self.table.attach(Rectangle(fill_color = "#f00", expand_vert = False), 0, 3, 0, 1) # top
        self.table.attach(Rectangle(fill_color = "#0f0", expand = False), 2, 3, 1, 2)      # right
        self.table.attach(Rectangle(fill_color = "#f0f", expand_vert = False), 0, 3, 2, 3) # bottom
        self.table.attach(Rectangle(fill_color = "#0ff", expand = False), 0, 1, 1, 2)      # left
        center = Rectangle()
        center.connect("on-mouse-over", self.on_table_mouse_over)
        center.connect("on-mouse-out", self.on_table_mouse_out)
        self.table.attach(center, 1, 2, 1, 2)


        # a scroll area with something to scroll in it
        self.scroll = ui.ScrollArea(border = 0)
        self.scroll.add_child(ui.Container(ui.Button("Scroll me if you can!", width = 1000, height = 300, fill=False), fill = False, padding=15))


        # bunch of different input elements
        inputs = ui.Panes(padding=10)
        listitem = ui.ListItem(["Sugar", "Spice", "Everything Nice", "--", "Feel",
                                "Free", "To", "Click", "On", "Me", {'markup': "<span color='red'>And</span>"},
                                "Use", "The", "Arrows!", "Ah", "And", "It", "Seems",
                                "That", "There", "Are", "So", "Many", "Elements"])

        def print_selection(listitem, item):
            print "selection", item

        def print_change(listitem, item):
            print "change", item

        listitem.connect("on-change", print_change)
        listitem.connect("on-select", print_selection)
        inputs.add_child(listitem)

        one = ui.ToggleButton("One", margin=[15, 10, 20, 30], id="one")

        group1 = ui.Group([one,
                           ui.ToggleButton("Two", scale_x = 0.5, scale_y = 0.5, expand=False, id="two"),
                           ui.ToggleButton("Three", id="three"),
                           ui.ToggleButton("Four", id="four")],
                          expand = False, allow_no_selection=True)
        label1 = ui.Label("Current value: none selected", x_align=0, expand = False)
        def on_toggle1(group, current_item):
            if current_item:
                label1.text = "Current value: %s" % current_item.label
            else:
                label1.text = "No item selected"
        group1.connect("on-change", on_toggle1)

        group2 = ui.Group([ui.RadioButton("One"),
                           ui.RadioButton("Two"),
                           ui.RadioButton("Three"),
                           ui.RadioButton("Four")],
                          horizontal = False)
        label2 = ui.Label("Current value: none selected", x_align = 0, expand=False)
        def on_toggle2(group, current_item):
            label2.text = "Current value: %s" % current_item.label
        group2.connect("on-change", on_toggle2)

        slider = ui.Slider(range(100),
                           expand = False,
                           snap_to_ticks = False,
                           range=True,
                           selection=(23, 80),
                           grips_can_cross = False,
                           snap_points = [5, 20, 50, 75],
                           snap_on_release = True)
        slider_value = ui.Label(" ")
        def on_slider_change(slider, value):
            slider_value.text = str(value)
        slider.connect("on_change", on_slider_change)

        spinner = ui.Spinner(active = False, expand=False, width = 40)
        spinner_button = ui.Button("Toggle spin", expand=False)
        spinner_button.spinner = spinner

        def on_spinner_button_click(button, event):
            button.spinner.active = not button.spinner.active
        spinner_button.connect("on-click", on_spinner_button_click)

        combo = ui.ComboBox(["Sugar", "Spice", "Everything Nice", "And", "Other", "Nice", "Things"],
                             open_below=True,
                             expand = False)
        inputs.add_child(ui.VBox([combo,
                                  group1, label1,
                                  ui.HBox([group2,
                                           ui.VBox([ui.CheckButton("And a few of those", expand = False),
                                                    ui.CheckButton("Check boxes", expand = False),
                                                    ui.CheckButton("Which don't work for groups", expand = False)])
                                          ]),
                                  label2,
                                  slider,
                                  slider_value,
                                  ui.HBox([spinner, spinner_button], expand=False, spacing = 10),
                                  ui.HBox([ui.ScrollArea(ui.Label(sample_text * 3, overflow = pango.WrapMode.WORD, fill=True, padding=[2, 5]), height=45, scroll_horizontal=False),
                                           ui.SpinButton(expand = False, fill=False)], expand = False),
                                  ],
                                 expand = False, spacing = 10))

        combo.rows = ["some", "things", "are", "made", "of", "bananas", "and", "icecream"]


        menu = ui.Menu([ui.MenuItem(label="One", menu=ui.Menu([ui.MenuItem(label="One one", menu=ui.Menu([ui.MenuItem(label="One one one"),
                                                                                                          ui.MenuItem(label="One one two"),
                                                                                                          ui.MenuSeparator(),
                                                                                                          ui.MenuItem(label="One one three")])),
                                                               ui.MenuSeparator(),
                                                               ui.MenuItem(label="One two", mnemonic="Ctrl+1"),
                                                               ui.MenuItem(label="One three", mnemonic="Alt+1")])),

                        ui.MenuItem(label="Two", menu=ui.Menu([ui.MenuItem(label="Two one", mnemonic="Ctrl+Alt+2"),
                                                               ui.MenuItem(label="Two two", mnemonic="Ctrl+2"),
                                                               ui.MenuSeparator(),
                                                               ui.MenuItem(label="Two three", mnemonic="Alt+2")])),

                        ui.MenuItem(label="Three", menu=ui.Menu([ui.MenuItem(label="Three one", mnemonic="Ctrl+Alt+3"),
                                                                 ui.MenuItem(label="Three two", mnemonic="Ctrl+3"),
                                                                 ui.MenuSeparator(),
                                                                 ui.MenuItem(label="Three three", mnemonic="Alt+3")])),
                        ui.MenuItem(label="Four", menu=ui.Menu([ui.MenuItem(label="Four one", mnemonic="Ctrl+Alt+4"),
                                                                ui.MenuItem(label="Four two", mnemonic="Ctrl+4"),
                                                                ui.MenuSeparator(),
                                                                ui.MenuItem(label="Four three", mnemonic="Alt+4")])),
                       ], horizontal=True)

        self.menu_selection_label = ui.Label("Pick a menu item!", expand = False, x_align = 1)
        def on_menuitem_selected(menu, item, event):
            self.menu_selection_label.text = item.label
        menu.connect("selected", on_menuitem_selected)

        # adding notebook and attaching pages
        self.notebook.add_page(ui.NotebookTab(image=graphics.Image("assets/day.png"), label="boxes", padding=[1,5]),
                               ui.Fixed([self.box, self.corner], x = 10, y = 10))
        self.notebook.add_page(ui.NotebookTab("Table", tooltip="Oh hey, i'm a table!"), self.table)
        self.notebook.add_page("Scroll Area", self.scroll)
        self.notebook.add_page("Input Elements", inputs)

        self.notebook.add_page("Menu", ui.VBox([menu, self.menu_selection_label,
                                                ui.HBox(ui.Menu([ui.MenuItem(label="", image = graphics.Image("assets/day.png"), submenu_offset_x = 0, submenu_offset_y = 0,
                                                                       menu=ui.Menu([ui.MenuItem(label="", image = graphics.Image("assets/month.png")),
                                                                                     ui.MenuItem(label="", image = graphics.Image("assets/hamster.png")),
                                                                                     ui.MenuSeparator(),
                                                                                     ui.MenuItem(label="", image = graphics.Image("assets/hamster.png")),
                                                                                     ui.MenuItem(label="", image = graphics.Image("assets/month.png"))], horizontal=True)),
                                                                 ui.MenuItem(label="", image = graphics.Image("assets/hamster.png"),submenu_offset_x = 0, submenu_offset_y = 0,
                                                                       menu=ui.Menu([ui.MenuItem(label="", image = graphics.Image("assets/month.png")),
                                                                                     ui.MenuItem(label="", image = graphics.Image("assets/month.png")),
                                                                                     ui.MenuItem(label="", image = graphics.Image("assets/week.png")),
                                                                                     ui.MenuSeparator(),
                                                                                     ui.MenuItem(label="", image = graphics.Image("assets/month.png"))], horizontal=True)),
                                                                 ui.MenuItem(label="", image = graphics.Image("assets/month.png"), submenu_offset_x = 0, submenu_offset_y = 0,
                                                                       menu=ui.Menu([ui.MenuItem(label="", image = graphics.Image("assets/week.png")),
                                                                                     ui.MenuItem(label="", image = graphics.Image("assets/week.png")),
                                                                                     ui.MenuSeparator(),
                                                                                     ui.MenuItem(label="", image = graphics.Image("assets/week.png")),
                                                                                     ui.MenuItem(label="", image = graphics.Image("assets/month.png"))], horizontal=True)),
                                                                ], horizontal=False, spacing=50, hide_on_leave = True, open_on_hover = 0.01), expand=False),
                                                ui.Box()], padding=10))



        self.slice_image = ui.Image('assets/slice9.png', fill=True, slice_left = 35, slice_right = 230, slice_top = 35, slice_bottom = 220)

        data = []
        image = graphics.Image("assets/day.png")
        for i in range(10):
            data.append(["aasdf asdfasdf asdfasdf", "basdfasdf asdfasdf asdfasdf", image, "rrr"])
            data.append(["1", "2", None, "rrr"])
            data.append(["4", "5", None, "rrr"])

        tree = ui.ListItem(data,
                           [ui.LabelRenderer(editable=True),
                            ui.LabelRenderer(editable=True),
                            ui.ImageRenderer(expand=False, width=90)],
                           headers=["Text", "More text", "An icon!"],
                           fixed_headers = False,
                           scroll_border = 0
                           )
        self.notebook.add_page("Tree View", tree)

        #tree.data[0][1] = "I was actually modified afterwards!"


        self.notebook.add_page("Accordion", ui.Accordion([
            ui.AccordionPage("I'm am the first in the row", [ui.Label(accordion_text, overflow = pango.WrapMode.WORD, padding=5)]),
            ui.AccordionPage("I'm am the first in the row", [ui.Label(accordion_text, overflow = pango.WrapMode.WORD, padding=5)]),
            ui.AccordionPage("I'm am the first in the row", [ui.Label(accordion_text, overflow = pango.WrapMode.WORD, padding=5)]),
            ui.AccordionPage("I'm am the first in the row", [ui.Label(accordion_text, overflow = pango.WrapMode.WORD, padding=5)]),
            ui.AccordionPage("I'm am the first in the row", [ui.Label(accordion_text, overflow = pango.WrapMode.WORD, padding=5)]),
            ui.AccordionPage("I'm am the first in the row", [ui.Label(accordion_text, overflow = pango.WrapMode.WORD, padding=5)]),
            ui.AccordionPage("I'm am the first in the row", [ui.Label(accordion_text, overflow = pango.WrapMode.WORD, padding=5)]),
            ui.AccordionPage("I'm am the first in the row", [ui.Label(accordion_text, overflow = pango.WrapMode.WORD, padding=5)]),
            ui.AccordionPage("I'm am the first in the row", [ui.Label(accordion_text, overflow = pango.WrapMode.WORD, padding=5)]),
            ui.AccordionPage("I'm am the first in the row", [ui.Label(accordion_text, overflow = pango.WrapMode.WORD, padding=5)]),
            ui.AccordionPage("I'm am the first in the row", [ui.Label(accordion_text, overflow = pango.WrapMode.WORD, padding=5)]),
            ui.AccordionPage("I'm different!", [
                ui.VBox([
                    ui.Button("I'm a button", fill=False, expand=False),
                    ui.Button("I'm another one", fill=False, expand=False),
                    ui.Group([
                        ui.ToggleButton("We"),
                        ui.ToggleButton("Are"),
                        ui.ToggleButton("Brothers"),
                        ui.ToggleButton("Radio Brothers"),
                    ], expand=False)
                ], expand=False)
            ]),
        ], padding_top = 1, padding_left = 1))

        from pie_menu import Menu
        pie_menu = Menu(0, 0)
        pie_menu.y_align = 0.45

        self.magic_box = ui.VBox([ui.HBox([ui.Button("Hello", expand=False),
                                           ui.Button("Thar", expand=False),
                                           ui.Label("Drag the white area around", x_align=1)], expand=False, padding=5),
                                  pie_menu], x=50, y=50, spacing=50, draggable=True)
        self.magic_box.width = 500
        self.magic_box.height = 400
        def just_fill():
            box = self.magic_box
            box.graphics.fill_area(0, 0, box.width, box.height, "#fefefe")
        self.magic_box.do_render = just_fill
        self.notebook.add_page("Ordinary Sprite", ui.Fixed(self.magic_box))

        for i in range(5):
            self.notebook.add_page("Tab %d" % i)


        self.notebook.current_page = 3


        # a little button to change tab orientation
        self.tab_orient_switch = ui.Button("Change tab attachment", expand=False, tooltip="change")
        self.tab_orient_switch.connect("on-click", self.on_tab_orient_click)

        self.page_disablist = ui.Button("Enable/Disable current tab", expand=False, tooltip="disable")
        self.page_disablist.connect("on-click", self.on_page_disablist_click)

        self.dialog_button = ui.Button("Show a dialog", expand=False, tooltip="show")
        self.dialog_button.connect("on-click", self.on_dialog_button_click)


        top_menu = ui.Menu([ui.MenuItem(label="One", menu=ui.Menu([ui.MenuItem(label="One one oh one oh one etc etc",
                                                                               menu=ui.Menu([ui.MenuItem(label="One one one"),
                                                                                    ui.MenuItem(label="One one two"),
                                                                                    ui.MenuItem(label="One one three")])),
                                                                   ui.MenuItem(label="One two"),
                                                                   ui.MenuItem(label="One three")])),
                            ui.MenuItem(label="Two", menu=ui.Menu([ui.MenuItem(label="Two one"),
                                                        ui.MenuItem(label="Two two"),
                                                        ui.MenuItem(label="Two three")])),
                            ui.MenuItem(label="Three", menu=ui.Menu([ui.MenuItem(label="Three one"),
                                                          ui.MenuItem(label="Three two"),
                                                          ui.MenuItem(label="Three three")])),
                            ui.MenuItem(label="Four", menu=ui.Menu([ui.MenuItem(label="Four one"),
                                                         ui.MenuItem(label="Four two"),
                                                         ui.MenuItem(label="Four three")])),
                            ui.MenuItem(label="Five")
                            ], horizontal=True, disable_toggling=True)


        # not sure how elegant but let's override the flow for now for demo purposes!
        dummy_flow = ui.Flow()
        def flow_resize():
            dummy_flow.alloc_w, dummy_flow.alloc_h = top_menu.alloc_w, top_menu.alloc_h
            dummy_flow.sprites = top_menu.sprites
            dummy_flow.resize_children()
            top_menu.height = top_menu.sprites[-1].y + top_menu.sprites[-1].height

        def flow_height_for_width_size():
            dummy_flow.alloc_w, dummy_flow.alloc_h = top_menu.alloc_w, top_menu.alloc_h
            dummy_flow.sprites = top_menu.sprites
            w, h = dummy_flow.get_height_for_width_size()
            return w, h

        def flow_min_size():
            dummy_flow.sprites = top_menu.sprites
            w, h = dummy_flow.get_min_size()
            return w+ top_menu.horizontal_padding, h  + top_menu.vertical_padding

        # flow if b0rken ATM
        for i in range(20):
            top_menu.add_child(ui.MenuItem(label="flow %d" % i))
        top_menu.resize_children = flow_resize
        #top_menu.get_height_for_width_size = flow_height_for_width_size
        top_menu.get_min_size = flow_min_size





        self.add_child(ui.VBox([top_menu, ui.VBox([self.notebook,
                                                   ui.HBox([self.tab_orient_switch,
                                                            self.page_disablist,
                                                            self.dialog_button], expand = False, fill=False, x_align=1),
                               ], padding=20, spacing=10)], spacing = 10))






        self.connect("on-click", self.on_click)

        self.notebook.after_tabs.add_child(ui.Button("Yohoho"))
        print dt.datetime.now() - now
Exemplo n.º 20
0
"""MIPT Python Course. Contest4"""
from lib import graphics as gr
window = gr.GraphWin("TY_Picture", 500, 350)
print('Задание 1')  # Exercise 1
TY_Field1 = gr.Rectangle(gr.Point(0, 350), gr.Point(500, 200))
TY_Field1.draw(window)
TY_Field1.setFill('Green')

TY_Flower1 = gr.Circle(gr.Point(80, 300), 15)
TY_Flower1.setFill('Red')
TY_Flower1.draw(window)

TY_Flower2 = gr.Circle(gr.Point(160, 280), 15)
TY_Flower2.setFill('Red')
TY_Flower2.draw(window)

TY_Flower3 = gr.Circle(gr.Point(240, 320), 15)
TY_Flower3.setFill('Red')
TY_Flower3.draw(window)

TY_Flower3 = gr.Circle(gr.Point(210, 240), 15)
TY_Flower3.setFill('Red')
TY_Flower3.draw(window)

TY_House_Roof = gr.Circle(gr.Point(350, 150), 50)
TY_House_Roof.setFill('Brown')
TY_House_Roof.draw(window)

TY_House_Wall = gr.Rectangle(gr.Point(300, 300), gr.Point(400, 150))
TY_House_Wall.setFill('Gray')
TY_House_Wall.draw(window)
Exemplo n.º 21
0
def clear_window():
    """Функция, очищающая поле"""
    rectangle = gr.Rectangle(gr.Point(0, 0), gr.Point(SIZE_X, SIZE_Y))
    rectangle.setFill('green')
    rectangle.draw(window)
Exemplo n.º 22
0
 def on_enter_frame(self, scene, context):
     if not self.data and not self.show_empty:
         return
     g = graphics.Graphics(context)
     g.set_line_style(width=1)
     days = (self.end_date - self.start_date).days
     full_days = []
     self.clrscr()
     alto_bar = 15
     alto_label = 8
     anchos_areas = []
     anchos_totales = []
     for area in self.lineas:
         # Totales. Necesito duplicar el bucle porque el ancho de los 
         # totales me hará falta después para las líneas horizontales.
         ancho_label_total = self.create_label_total(area, alto_label, 
                                                     alto_bar)
         anchos_totales.append(ancho_label_total)
     offset_totales = max(anchos_totales) + 5    # Por la derecha.
     for area in self.lineas:
         ancho_label_nombre = self.create_label_area(area, 
                                                     alto_label, 
                                                     alto_bar, 
                                                     offset_totales)
         anchos_areas.append(ancho_label_nombre)
     if self.lineas:  # Una línea más debajo del último area
         hline = graphics.Rectangle(self.width + offset_totales, 1, 
                                    fill = "#000")
         hline.x = 0
         hline.y = 27 + len(self.lineas) * alto_bar
         self.grid.append(hline)
         self.add_child(hline)
     offset_labels = max(anchos_areas) + 5 # píxeles. Pero reales, no 
         # los píxeles de la escena (day_pixel & co.), que no van 1:1. 
     lanno = graphics.Label(`self.start_date.year`, 16, "#999")
     offset_labels = max(offset_labels, 
                         lanno.measure(`self.start_date.year`)[0])
     lanno.y = 0
     lanno.x = offset_labels - lanno.measure(`self.start_date.year`)[0]
     self.add_child(lanno)
     # Cuento el número de barras que tendré que dibujar cada día:
     for day in range(days):
         current_date = self.start_date + dt.timedelta(days = day)
         #if not self.day_counts[current_date]:
         #    continue   # "Comprime" la gráfica ignorando días vacíos.
         full_days.append(self.day_counts[current_date])
     # Y ahora calculo las dimensiones en función de los días a representar.
     # El +1 es porque al haber tantos datos representados, la división 
     # sale a veces (las más) un poco al alza, provocando que las barras 
     # vayan más allá del borde del canvas. 
     self.day_pixel = (float(self.width 
                        - offset_labels 
                        - offset_totales) / (len(full_days) + 1))
     self.hour_pixel = self.day_pixel / 24 
     cur_x = offset_labels
     pixel_width = max(round(self.day_pixel), 1)
     dia = self.start_date
     for lista_tareas_day in full_days:
         #cur_x += round(self.hour_pixel)
         #print "lista_tareas_day", lista_tareas_day
         self.create_vlines(full_days, cur_x, dia)
         # "Pinto" de la más larga a la más corta para distinguir cómo se 
         # superponen.
         zbuffer = calculate_zbuffer(lista_tareas_day)
         for numtarea_del_dia, tarea in enumerate(lista_tareas_day):
             self.create_bar(tarea, alto_bar, cur_x, zbuffer[tarea]) 
             self.create_portion_carga_linea(cur_x, numtarea_del_dia, 
                                             pixel_width)
         dia += dt.timedelta(days = 1)
         cur_x += round(pixel_width)
     # Una vez que está todo "pintado", es hora de ajustar bien el ancho y 
     # calcular la x donde se renderizarán los totales:
     for area in self.labels['totales']:
         ltotal = self.labels['totales'][area]
         ltotal.x = self.width - offset_totales
     if DEBUG:
         print "-" * 80