Пример #1
0
def background(buttons):
    s = pygame.Surface((1000, 1000))

    r = s.fill((100, 100, 100), pygame.Rect(200, 100, 600, 800))

    # Draw on buttons
    i = -1
    for b_text, b_func, b_args in buttons:
        i += 1

        # Test for invisible buttons
        # r = s.fill((100, 0, 0), pygame.Rect(300, 110 + i*60, 400, 40))

        # Centre the text
        font_obj = pygame.font.SysFont("Helvetica", 24)
        left_margin = (600 - font_obj.size(b_text)[0]) / 2
        button_pos = (200 + left_margin, 120 + i * 60)

        controls.draw_text(s,
                           b_text,
                           button_pos,
                           colour=(255, 255, 255),
                           font_obj=font_obj)

    return s
Пример #2
0
 def draw(self):
     if self.network == None:
         self._image = pygame.Surface(self.rect.size)
         self._image.fill(self.fill_colour, pygame.Rect(0, 0, self.rect.width, self.rect.height))
         return
     
     if self._last_node_drawn == (self.network.selected_node, self.selected):
         return
     
     self._last_node_drawn = self.network.selected_node
     self._image = pygame.Surface(self.rect.size)
     self._image.fill(self.fill_colour, pygame.Rect(0, 0, self.rect.width, self.rect.height))
     
     if self.network.selected_node < 0:
         return
     
     the_node = self.network.nodes[self.network.selected_node]
     
     controls.draw_text(self._image, "%s [%s]" % (the_node.name, self.network.selected_node),
         (15, 5), self.text_colour, size=22)
     
     controls.draw_text(self._image, "Program", (5, row_height + 5), self.text_colour, size=header_size)
     controls.draw_text(self._image, "Version", (170, row_height + 5), self.text_colour, size=header_size)
     
     keys = list(the_node.programs.keys())
     keys.sort()
     
     for i, prog in enumerate(keys):
         ver = the_node.programs[prog]
         
         if i == self.selected:
             self._image.fill(self.selected_colour, pygame.Rect(0, (i+2) * row_height + 5, self.rect.width, row_height))
         
         controls.draw_text(self._image, prog, (5, 5 + row_height*2 + i*row_height), self.text_colour, size=row_size)
         controls.draw_text(self._image, str(float(ver)), (170, 5 + row_height*2 + i*row_height), self.text_colour, size=row_size)
Пример #3
0
 def draw(self):
     if self.kill: return
     
     self._image = pygame.Surface(self.rect.size)
     self._image.fill(self.fill_colour, pygame.Rect(0, 0, self.rect.width, self.rect.height))
     
     i = -1
     for row_text, callback in self.options:
         i += 1
         controls.draw_text(self._image, str(row_text),
             (5, 5 + i*row_height), self.text_colour, size=row_size)
     
     # Close window button
     self._image.fill((200, 0, 0), pygame.Rect(self.rect.width-25, 0, 25, 25))
     pygame.draw.aaline(self._image, (255, 100, 100), (self.rect.width - 23, 2), (self.rect.width - 2, 23))
     pygame.draw.aaline(self._image, (255, 100, 100), (self.rect.width - 23, 23), (self.rect.width - 2, 2))
Пример #4
0
def make_bg_image(buttons):
    s = pygame.Surface((1000, 1000))
    
    r = s.fill((100, 100, 100), pygame.Rect(200, 100, 600, 800))

    # Draw on buttons
    i = -1
    for b_text, b_func, b_args in buttons:
        i += 1
        # Test for invisible buttons
        # r = s.fill((100, 0, 0), pygame.Rect(300, 110 + i*60, 400, 40))
        
        # Centre the text
        font_obj = pygame.font.SysFont("Helvetica Bold", 24)
        left_margin = (600 - font_obj.size(b_text)[0])/2
        button_pos = (200 + left_margin, 120 + i*60)
        
        controls.draw_text(s, b_text, button_pos, colour=(255,255,255), font_obj = font_obj)
    
    return s
Пример #5
0
 def draw_for_node(self):
     if self.network.selected_node < 0:
         return
     
     controls.draw_text(self._image, "Job", (5, 5), self.text_colour, size=header_size, bold=True)
     controls.draw_text(self._image, "Owner", (60, 5), self.text_colour, size=header_size-1, bold=True)
     controls.draw_text(self._image, "App", (130, 5), self.text_colour, size=header_size, bold=True)
     controls.draw_text(self._image, "%", (245, 5), self.text_colour, size=header_size, bold=True)
     
     key_list = list(self.network.nodes[self.network.selected_node].jobs)
     key_list.sort()
     
     i = 0
     for job_id in key_list:
         the_job = self.network.jobs[job_id]
         i += 1
         
         # Job ID
         controls.draw_text(self._image, str(job_id),
             (5, 5+i*row_height+2), self.text_colour, size=row_size-2)
         
         # Node ID
         controls.draw_text(self._image, str(the_job.owner),
             (60, 5+i*row_height), self.text_colour, size=row_size)
         
         # App name
         controls.draw_text(self._image, "%s%s" % (the_job.short_name, the_job.version),
             (130, 5+i*row_height), self.text_colour, size=row_size)
         
         # Progress
         progress = int(the_job.get_progress())
         if progress == -1:
             progress_text = ""
         else:
             progress_text = "%s%%" % progress
         
         controls.draw_text(self._image, progress_text,
             (245, 5+i*row_height), self.text_colour, size=row_size)
Пример #6
0
 def draw_for_owner(self):
     controls.draw_text(self._image, "Job", (5, 5), self.text_colour, size=header_size, bold=True)
     controls.draw_text(self._image, "Node", (70, 5), self.text_colour, size=header_size, bold=True)
     controls.draw_text(self._image, "App", (130, 5), self.text_colour, size=header_size, bold=True)
     controls.draw_text(self._image, "%", (245, 5), self.text_colour, size=header_size, bold=True)
     
     key_list = list(self.network.jobs.keys())
     key_list.sort()
     
     i = 0
     for job_id in key_list:
         the_job = self.network.jobs[job_id]
         if the_job.owner != self.screen.player: continue
         i += 1
         
         # Job ID
         controls.draw_text(self._image, str(job_id),
             (5, 5+i*row_height+2), self.text_colour, size=row_size-2)
         
         # Node ID
         controls.draw_text(self._image, str(the_job.node),
             (70, 5+i*row_height), self.text_colour, size=row_size)
         
         # App name
         controls.draw_text(self._image, "%s%s" % (the_job.short_name, the_job.version),
             (130, 5+i*row_height), self.text_colour, size=row_size)
         
         # Progress
         progress = int(the_job.get_progress())
         if progress == -1:
             progress_text = ""
         else:
             progress_text = "%s%%" % progress
         
         controls.draw_text(self._image, progress_text,
             (245, 5+i*row_height), self.text_colour, size=row_size)