Beispiel #1
0
def do_load_dir():
    "load the current directory"
    gl.SUBDIRS = 0
    wait_cursor()
    file = adjust_files(0)
    gl.PLAY_LIST_NAME = " "
    return file
Beispiel #2
0
def command_vert(new_img, screen, file, rect):
    "flip vertically"
    wait_cursor()
    new_img = flip(new_img, 90, 90)
    my_update_screen(new_img, rect, file)
    normal_cursor()
    return (new_img, new_img, rect)
Beispiel #3
0
def show_slideshow_img(screen, new_img, file, num_imgs, speed):
    start = start_timer()
    wait_cursor()
    new_img = next_img(file, new_img, screen)
    rect = get_center(screen, new_img)
    ns = check_timer(start)
    my_update_screen(new_img, screen, rect, file, num_imgs, ns)
    normal_cursor()
    if speed > 0:
        for i in range(speed):
            # trick delay into letting you escape anytime
            event = pygame.event.poll()
            pygame.time.wait(1)
            if event.type == KEYDOWN and event.key not in (K_LALT, K_RALT, K_LCTRL, K_RCTRL,\
                K_p, K_PAUSE, K_TAB, K_SPACE, K_BACKSPACE):
                stopped_msg(screen)
                my_update_screen(new_img, screen, rect, file, len(gl.files))
                return (new_img, file, rect, 1)
            if hit_key(event, K_p) or hit_key(event, K_PAUSE):
                pause(screen)
                my_update_screen(new_img, screen, rect, file, len(gl.files))
            if hit_key(event, K_SPACE):
                # skip forward an image immediately
                file = file + 1
                return (new_img, file, rect, 0)
            if hit_key(event, K_BACKSPACE):
                # skip backward an image immediately
                file = file - 1
                return (new_img, file, rect, 0)
            pygame.time.delay(1000) # check every second
    file = file + 1
    return (new_img, file, rect, 0)
Beispiel #4
0
def open_url(screen, img):
    gl.ISURL = 1
    num_imgs = len(gl.files)
    paint_screen(screen, gl.BLACK)
    set_caption("Extract from Web - imgv")
    normal_cursor()
    show_message(screen, "Enter a Web URL to extract images from", 20, 15, ("transparent"))
    gl.URL = ask(screen, "http://")
    if gl.URL != None:
        gl.files = []
        wait_cursor()
        show_message(screen, "Loading. Please wait..", 39, 42, ("transparent"))
        for ext in gl.IMG_TYPES:
            if gl.URL.endswith(ext):
                gl.files.append(str("".join(gl.URL)))
                return (load_img(gl.files[0], screen), 1)
    else:
        return (img, num_imgs)
    gl.files = []
    check_indexhtml()
    if gl.URL_ERROR:
        gl.files.append(gl.ERROR_IMG)
        return (load_img(gl.ERROR_IMG, screen), len(gl.files))
    if len(gl.files) < 1:
        gl.files.append(gl.ERROR_IMG)
    gl.files = [x.replace(" ", "%20") for x in gl.files]  # urls need %20 for spaces
    return (load_img(gl.files[0], screen), len(gl.files))
Beispiel #5
0
def square_four(screen, file):
    wait_cursor()
    draw_lines(screen)
    num_imgs = len(gl.files)
    if file >= num_imgs or file <= 0:
        file = 0
    img_four_name = gl.files[file]
    img_four_file = file
    img_four = load_img(img_four_name, screen, 0)
    file = file + 1
    img_four = adjust_img_size(img_four, screen.get_width(), screen.get_height())
    img_four_rect = img_four.get_rect()
    img_four_rect[0] = (screen.get_width() / 2)
    img_four_rect[1] = (screen.get_height() / 2)
    screen.blit(img_four, img_four_rect)
    update(img_four_rect)
    draw_lines(screen)
    if gl.FOUR_STATUS_BARS:
        font_size = 9
        font = pygame.font.Font(gl.FONT_NAME, font_size)
        name = os.path.basename(img_four_name)
        name = check_truncate(screen.get_width(), name)
        img_status = "%s [%d/%d]" % (name, img_four_file + 1, num_imgs)
        raise_up = 12
        show_message(screen, img_status, ((screen.get_width() / 2) + (screen.get_width() / 4 - font.size(img_status)[0]/2), screen.get_height() - raise_up), font_size, ("bold"))
    normal_cursor()
    return (file, img_four_rect, img_four_name, img_four_file)
Beispiel #6
0
def command_fullscreen():
    "Toggle between full screen and last screen resolution"
    screen = get_surface()
    wait_cursor()
    if not toggle_fullscreen():
        try:
            if gl.FULLSCREEN_SPECIAL:
                screen_res = screen.get_size()
            else:
                screen_res = screen.get_size()
                gl.MAX_SCREEN_FILES = gl.MAX_SF["%sx%s" % (
                    screen_res[0], screen_res[1])]

            if not gl.TOGGLE_FULLSCREEN_SET:  # go into fullscreen mode
                gl.BEFORE_WINSIZE = screen.get_size()
                screen = set_mode(screen_res, screen.get_flags(
                ) ^ FULLSCREEN, screen.get_bitsize())
            else:  # returning from fullscreen. Go back to last screen size:
                set_mode(gl.BEFORE_WINSIZE, screen.get_flags(
                ) ^ FULLSCREEN, screen.get_bitsize())
                screen = set_mode(
                    gl.BEFORE_WINSIZE, RESIZABLE)  # make resizeable
            my_toggle_fullscreen()
        except:
            print "Couldn't toggle fullscreen. Resolution probably not supported by your video card."
    return screen
Beispiel #7
0
def command_refresh(refresh_img, screen, files, file):
    "reset image to its original state"
    wait_cursor()
    new_img = refresh_img
    rect = get_center(screen, new_img)
    cur_filename = ""
    if len(gl.files) > 1:
        cur_filename = gl.files[file]
    else:
        normal_cursor()
        return (new_img, new_img, get_center(screen, new_img), file)
    if gl.SHRUNK and len(gl.files) > 1:
        # reload shrunk images to their true size
        gl.SKIP_FIT = 1
        refresh_img = load_img(gl.files[file])
        rect = get_center(screen, refresh_img)
        adjust_files(gl.SUBDIRS)
        if cur_filename in gl.files:
            file = gl.files.index(cur_filename)  # go back if new images were loaded
        my_update_screen(refresh_img, rect, file)
        normal_cursor()
        return (refresh_img, new_img, rect, file)
    adjust_files(gl.SUBDIRS)
    if cur_filename in gl.files and len(gl.files) > 1:
        file = gl.files.index(cur_filename)  # go back if new images were loaded
    my_update_screen(refresh_img, rect, file)
    normal_cursor()
    return (new_img, new_img, get_center(screen, new_img), file)
Beispiel #8
0
def do_set_wallpaper(screen, file, new_img, rect):
    wait_cursor()
    if platform == 'win32':
        windows_wallpaper(file)
    else:
        unix_wallpaper(file)
    update_edit_screen(screen, file, new_img)
Beispiel #9
0
def do_subdirs_too():
    gl.SUBDIRS = 1
    wait_cursor()
    file = adjust_files(1)
    num_imgs = len(gl.files)
    gl.PLAY_LIST_NAME = " "
    return (num_imgs, file)
Beispiel #10
0
def command_horiz(new_img, screen, file, rect):
    "flip horizontally (mirror)"
    wait_cursor()
    new_img = flip(new_img, 90, 0)
    my_update_screen(new_img, rect, file)
    normal_cursor()
    return (new_img, new_img, rect)
Beispiel #11
0
def do_load_dir():
    "load the current directory"
    gl.SUBDIRS = 0
    wait_cursor()
    file = adjust_files(0)
    num_imgs = len(gl.files)
    gl.PLAY_LIST_NAME = " "
    return (num_imgs, file)
Beispiel #12
0
def command_horiz(new_img, screen, file, num_imgs, rect):
    "flip horizontally (mirror)"
    wait_cursor()
    start = start_timer()
    new_img = flip(new_img, 90, 0)
    my_update_screen(new_img, screen, rect, file, num_imgs, check_timer(start))
    normal_cursor()
    return (new_img, new_img, rect)
Beispiel #13
0
def command_vert(new_img, screen, file, num_imgs, rect):
    "flip vertically"
    wait_cursor()
    start = start_timer()
    new_img = flip(new_img, 90, 90)
    my_update_screen(new_img, screen, rect, file, num_imgs, check_timer(start))
    normal_cursor()
    return (new_img, new_img, rect)
Beispiel #14
0
def command_rotate_left(new_img, screen, file, rect):
    "rotate counter clockwise"
    wait_cursor()
    new_img = rotate(new_img, 90)
    rect = get_center(screen, new_img)
    my_update_screen(new_img, rect, file)
    normal_cursor()
    return (new_img, new_img, rect)
Beispiel #15
0
def do_external_viewer(screen, file, new_img):
    wait_cursor()
    iconify() # minimize imgv to avoid ugliness
    cmd = "%s %s" % (gl.EXTERNAL_EDITOR, gl.files[file])
    try:
        os.system(cmd)
    except:
        pass
    update_edit_screen(screen, file, new_img)
Beispiel #16
0
def command_rotate_left(new_img, screen, file, num_imgs, rect):
    "rotate counter clockwise"
    wait_cursor()
    start = start_timer()
    new_img = rotate(new_img, 90)
    rect = get_center(screen, new_img)
    my_update_screen(new_img, screen, rect, file, num_imgs, check_timer(start))
    normal_cursor()
    return (new_img, new_img, rect)
Beispiel #17
0
def command_custom_res(screen, new_img, file, num_imgs, rect, resolution):
    "switch to customxcustom"
    wait_cursor()
    screen = set_mode(resolution, RESIZABLE)
    rect = get_center(screen, new_img)
    my_update_screen(new_img, screen, rect, file, num_imgs)
    if gl.TOGGLE_FULLSCREEN_SET:
        my_toggle_fullscreen()
    return rect
Beispiel #18
0
def command_shuffle(new_img, img, screen, rect, file):
    "randomize the images"
    wait_cursor()
    shuffle(gl.files)
    new_img = load_img(gl.files[file])
    rect = get_center(screen, new_img)
    my_update_screen(new_img, rect, file)
    normal_cursor()
    return (new_img, new_img, new_img, rect)
Beispiel #19
0
def play_list_options_msg(screen, msg):
    paint_screen(gl.BLACK)
    show_message(msg, 100, 10)
    normal_cursor()
    while 1:
        event = pygame.event.wait()
        check_quit(event)
        if event.type == KEYDOWN or event.type == MOUSEBUTTONDOWN:
            wait_cursor()
            break
Beispiel #20
0
def command_1280x1024(new_img, file, rect):
    "switch to 1280x1024"
    gl.MAX_SCREEN_FILES = gl.MAX_SF["1280x1024"]
    wait_cursor()
    resolution = 1280, 1024
    screen = set_mode(resolution, RESIZABLE)
    rect = get_center(screen, new_img)
    my_update_screen(new_img, rect, file)
    if gl.TOGGLE_FULLSCREEN_SET:
        my_toggle_fullscreen()
    return rect
Beispiel #21
0
def command_1024x768(new_img, file, num_imgs, rect):
    "switch to 1024x768"
    gl.MAX_SCREEN_FILES = gl.MAX_SF["1024x768"]
    wait_cursor()
    resolution = 1024, 768
    screen = set_mode(resolution, RESIZABLE)
    rect = get_center(screen, new_img)
    my_update_screen(new_img, screen, rect, file, num_imgs)
    if gl.TOGGLE_FULLSCREEN_SET:
        my_toggle_fullscreen()
    return rect
Beispiel #22
0
def command_800x600(new_img, file, rect):
    "switch to 800x600"
    gl.MAX_SCREEN_FILES = gl.MAX_SF["800x600"]
    wait_cursor()
    resolution = 800, 600
    screen = set_mode(resolution, RESIZABLE)
    rect = get_center(screen, new_img)
    my_update_screen(new_img, rect, file)
    if gl.TOGGLE_FULLSCREEN_SET:
        my_toggle_fullscreen()
    return rect
Beispiel #23
0
def command_first_img(new_img, screen, file, num_imgs, rect):
    "jump to the first image"
    wait_cursor()
    start = start_timer()
    file = 0
    new_img = load_img(gl.files[file], screen)
    rect = get_center(screen, new_img)
    ns = check_timer(start)
    my_update_screen(new_img, screen, rect, file, num_imgs, ns)
    normal_cursor()
    return (new_img, new_img, new_img, file, rect)
Beispiel #24
0
def command_unshuffle(new_img, img, screen, rect, file):
    "un-randomize the images"
    was_on = gl.files[file]
    wait_cursor()
    gl.files.sort(lambda x, y: cmp(x.lower(), y.lower()))
    file = gl.files.index(was_on)
    new_img = load_img(gl.files[file])
    rect = get_center(screen, new_img)
    my_update_screen(new_img, rect, file)
    normal_cursor()
    return (new_img, new_img, new_img, rect, file)
Beispiel #25
0
def command_shuffle(new_img, img, screen, rect, file, num_imgs):
    "randomize the images"
    wait_cursor()
    start = start_timer()
    shuffle(gl.files)
    new_img = load_img(gl.files[file], screen)
    rect = get_center(screen, new_img)
    ns = check_timer(start)
    my_update_screen(new_img, screen, rect, file, num_imgs, ns)
    normal_cursor()
    return (new_img, new_img, new_img, rect)
Beispiel #26
0
def command_prev_img(new_img, screen, file, num_imgs, rect):
    "jump to previous image"
    wait_cursor()
    start = start_timer()
    if file > 0:
        file = file - 1
        new_img = previous_img(file, new_img, screen)
        rect = get_center(screen, new_img)
        ns = check_timer(start)
        my_update_screen(new_img, screen, rect, file, num_imgs, ns)
    normal_cursor()
    return (new_img, new_img, new_img, file, rect)
Beispiel #27
0
def command_zoom_out(new_img, new_img_width, new_img_height, img, screen, file, num_imgs, rect, zoom_type):
    wait_cursor()
    start = start_timer()
    if new_img.get_width() >= gl.MIN_WIDTH and new_img.get_height() >= gl.MIN_HEIGHT:
        gl.ZOOM_EXP -= 1
        if zoom_type == "normal":
            gl.ZOOM_DOUBLE = 0
            new_img = scale(img, (new_img.get_width() / 1.1, new_img.get_height() / 1.1))
        else:
            gl.ZOOM_DOUBLE = 1
            new_img = scale(img, (new_img.get_width() / 2, new_img.get_height() / 2))
        rect = get_center(screen, new_img)
        my_update_screen(new_img, screen, rect, file, num_imgs, check_timer(start))
    normal_cursor()
    return (new_img, img, rect)
Beispiel #28
0
def command_zoom_in(new_img, new_img_width, new_img_height, img, screen, files, file, num_imgs, rect, zoom_type):
    wait_cursor()
    start = start_timer()
    gl.ZOOM_EXP += 1
    if zoom_type == "normal":
        gl.ZOOM_DOULBE = 0
        new_img = scale(img, (new_img.get_width() * 1.1, new_img.get_height() * 1.1))
    if zoom_type == "double":
        gl.ZOOM_DOUBLE = 1
        new_img = scale(img, (new_img.get_width() * 2, new_img.get_height() * 2))
    if zoom_type == "scale2x":
        gl.ZOOM_DOUBLE = 1
        new_img = scale2x(img) # don't alias simple solid color images (ie., black & white GIFs)
    rect = get_center(screen, new_img)
    my_update_screen(new_img, screen, rect, file, num_imgs, check_timer(start))
    normal_cursor()
    return (new_img, img, rect)
Beispiel #29
0
def command_zoom_out(new_img, img, file, rect, zoom_type):
    wait_cursor()
    screen = get_surface()
    new_img_width = new_img.get_width()
    new_img_height = new_img.get_height()
    if new_img_width >= gl.MIN_WIDTH and new_img_height >= gl.MIN_HEIGHT:
        gl.ZOOM_EXP -= 1
        if zoom_type == "normal":
            gl.ZOOM_DOUBLE = 0
            new_img = scale(img, (int(new_img_width / 1.1), int(new_img_height / 1.1)))
        else:
            gl.ZOOM_DOUBLE = 1
            new_img = scale(img, (new_img_width / 2, new_img_height / 2))
        rect = get_center(screen, new_img)
        my_update_screen(new_img, rect, file)
    normal_cursor()
    return (new_img, img, rect)
Beispiel #30
0
def command_remove_img(new_img, screen, file, rect):
    "Don't display the image anymore during the session"
    wait_cursor()
    num_imgs = len(gl.files)
    # only remove file if its not the only one:
    if not num_imgs < 2:
        gl.files.remove(gl.files[file])
        # go to the next image if there is one
        if file < (num_imgs - 1):
            new_img = next_img(file, new_img, screen)
        # if not go to the previous image
        else:
            if file > 0:
                file = file - 1
                new_img = previous_img(file, new_img, screen)
        rect = get_center(screen, new_img)
        my_update_screen(new_img, rect, file)
    normal_cursor()
    return (new_img, new_img, new_img, file, rect)