Changeset 1874

Show
Ignore:
Timestamp:
10/11/08 20:17:07 (2 months ago)
Author:
duncan
svm:headrev:

cc3e1ea1-1e01-0410-8d68-8b121e83a9d5:11156
Message:

[ 2255527 ] Add alphablending dialog to osd
Patch from Adam Charrett applied

Location:
freevo
Files:
5 modified

Legend:

Unmodified
Added
Removed
  • freevo/ChangeLog

    r1873 r1874  
    2222 * Updated Italian translation (F#2153010) 
    2323 * Updated mouse support so that it is optional (F#2089306) 
     24 * Updated OSD with alpha-blending dialog (F#2255527) 
    2425 * Updated RTVE video plug-in to allow videos from the archive to be played (F#2104431) 
    2526 * Updated youtube plug-in to allow standard and locale specific feeds (F#2099147) 
     
    3334 * Fixed menu selecting methods using ENTER instead of SELECT (B#2214605) 
    3435 * Fixed mplayer crash when auto cropping is enabled (B#2089592) 
    35  * Fixed mplayer when playlist is enabled (B#2219657) 
    36  * Fixed mplayer when playing a DVD iso (B#2249030) 
     36 * Fixed mplayer when play list is enabled (B#2219657) 
     37 * Fixed mplayer when playing a DVD ISO (B#2249030) 
    3738 * Fixed record server auto re-encode show title (B#2193796) 
    3839 * Fixed record server generic record module to allow a group_type to be given (B#2017200) 
  • freevo/src/gui/GUIObject.py

    r1819 r1874  
    231231        self.visible = 0 
    232232        if self.parent and self.parent.visible and self.bg_surface: 
    233             self.osd.screenblit(self.bg_surface, self.get_position()) 
     233            self.osd.dialog_layer.blit(self.bg_surface, self.get_position()) 
    234234            self.osd.update(self.get_rect()) 
    235235 
     
    350350                self.bg_surface.blit(self.parent.surface, (0,0), self.get_rect()) 
    351351            else: 
    352                 self.bg_surface.blit(self.osd.screen, (0,0), self.get_rect()) 
     352                self.bg_surface.blit(self.osd.dialog_layer, (0,0), self.get_rect()) 
    353353        elif restore: 
    354354            if p: 
    355355                self.parent.surface.blit(self.bg_surface, (self.left, self.top)) 
    356356            else: 
    357                 self.osd.screenblit(self.bg_surface, (self.left, self.top)) 
     357                self.osd.dialog_layer.blit(self.bg_surface, (self.left, self.top)) 
     358 
    358359 
    359360        if p: 
    360361            self.parent.surface.blit(self.surface, self.get_position()) 
    361362        else: 
    362             self.osd.screenblit(self.surface, self.get_position()) 
     363            self.osd.dialog_layer.blit(self.surface, self.get_position()) 
     364            self.osd.dialog_layer_enabled = True 
    363365            self.osd.update(self.get_rect()) 
    364366 
  • freevo/src/gui/Window.py

    r1819 r1874  
    7676 
    7777        self.refresh_abs_position() 
     78 
     79    def show(self): 
     80        self.visible = 1 
     81        self.osd.dialog_layer.fill((0,0,0,96)) 
     82        self.draw() 
     83        self.osd.update() 
     84 
     85    def hide(self): 
     86        self.visible = 0 
     87        self.osd.dialog_layer_enabled = False 
     88        self.osd.update() 
    7889 
    7990    def add_child(self, child): 
  • freevo/src/osd.py

    r1813 r1874  
    383383        self.depth     = self.screen.get_bitsize() 
    384384        self.must_lock = self.screen.mustlock() 
     385        self.main_layer = pygame.Surface((self.width, self.height)) 
     386        self.dialog_layer_enabled = False 
     387        self.dialog_layer = self.screen.convert_alpha() 
     388        self.dialog_layer.fill((0,0,0,128)) 
    385389 
    386390        if config.CONF.display == 'x11' and config.START_FULLSCREEN_X == 1: 
     
    681685        self.mutex.acquire() 
    682686        try: 
    683             self.screen.fill(self._sdlcol(color)) 
     687            self.main_layer.fill(self._sdlcol(color)) 
    684688        finally: 
    685689            self.mutex.release() 
     
    842846                layer.blit(image, (x, y)) 
    843847            else: 
    844                 self.screen.blit(image, (x, y)) 
     848                self.main_layer.blit(image, (x, y)) 
    845849        finally: 
    846850            self.mutex.release() 
     
    910914                    layer.blit(box, (x0, y0)) 
    911915                else: 
    912                     self.screen.blit(box, (x0, y0)) 
     916                    self.main_layer.blit(box, (x0, y0)) 
    913917            else: 
    914918                c = self._sdlcol(color) 
    915919                if not layer: 
    916                     layer = self.screen 
     920                    layer = self.main_layer 
    917921                for i in range(0, width): 
    918922                    # looks strange, but sometimes thinkness doesn't work 
     
    929933        try: 
    930934            if rect != None: 
    931                 return self.screen.subsurface(rect).convert() 
     935                return self.main_layer.subsurface(rect).convert() 
    932936            else: 
    933                 return self.screen.subsurface( (x, y, width, height) ).convert() 
     937                return self.main_layer.subsurface( (x, y, width, height) ).convert() 
    934938        finally: 
    935939            self.mutex.release() 
     
    942946        self.mutex.acquire() 
    943947        try: 
    944             self.screen.blit(surface, (x, y)) 
     948            self.main_layer.blit(surface, (x, y)) 
    945949        finally: 
    946950            self.mutex.release() 
     
    956960                w = sourcerect[2] 
    957961                h = sourcerect[3] 
    958                 ret = self.screen.blit(source, destpos, sourcerect) 
     962                ret = self.main_layer.blit(source, destpos, sourcerect) 
    959963            else: 
    960964                w, h = source.get_size() 
    961                 ret = self.screen.blit(source, destpos) 
     965                ret = self.main_layer.blit(source, destpos) 
    962966 
    963967            if self.render: 
     
    12221226 
    12231227        if not layer and layer != '': 
    1224             layer = self.screen 
     1228            layer = self.main_layer 
    12251229 
    12261230        fgcolor  = self._sdlcol(fgcolor) 
     
    14711475 
    14721476            if not layer: 
    1473                 self.screen.blit(box, (x0, y0)) 
     1477                self.main_layer.blit(box, (x0, y0)) 
    14741478        finally: 
    14751479            self.mutex.release() 
     
    14921496 
    14931497            if rect and not (stop_busyicon and self.busyicon.rect): 
     1498                if isinstance(rect[0], list) or isinstance(rect[0], tuple) or isinstance(rect[0], pygame.Rect): 
     1499                    for sub_rect in rect: 
     1500                        self.screen.blit(self.main_layer, (sub_rect[0], sub_rect[1]), sub_rect) 
     1501                    if self.dialog_layer_enabled: 
     1502                        for sub_rect in rect: 
     1503                            self.screen.blit(self.dialog_layer, (sub_rect[0], sub_rect[1]), sub_rect) 
     1504                else: 
     1505                    try: 
     1506                        self.screen.blit(self.main_layer, (rect[0], rect[1]), rect) 
     1507                    except: 
     1508                        traceback.print_exc() 
     1509                    if self.dialog_layer_enabled: 
     1510                        self.screen.blit(self.dialog_layer, (rect[0], rect[1]), rect) 
    14941511                try: 
    14951512                    pygame.display.update(rect) 
     
    14981515                    pygame.display.flip() 
    14991516            else: 
     1517                self.screen.blit(self.main_layer, (0,0)) 
     1518                if self.dialog_layer_enabled: 
     1519                    self.screen.blit(self.dialog_layer, (0,0)) 
    15001520                pygame.display.flip() 
    15011521 
  • freevo/src/skins/main/main.py

    r1792 r1874  
    561561    @benchmark(benchmarking) 
    562562    def do_blending(self): 
    563         screen = osd.screen.convert() 
     563        screen = osd.main_layer.convert() 
    564564 
    565565        self.screen.show(True) 
    566          
    567         blend = Transition(screen, osd.screen, 0, speed=4) 
     566 
     567        blend = Transition(screen, osd.main_layer, 0, speed=4) 
    568568 
    569569        clock = pygame.time.Clock()