@@ -40,8 +40,16 @@ void app_init(app_t *app) { | |||||
} | } | ||||
void app_run(app_t *app) { | void app_run(app_t *app) { | ||||
app_load_image(app); | |||||
event_loop(app); | event_loop(app); | ||||
} | } | ||||
void app_quit(app_t *app) { | void app_quit(app_t *app) { | ||||
} | } | ||||
void app_load_image(app_t *app) { | |||||
if (!app || app->fileidx >= app->filecnt || !app->filenames) | |||||
return; | |||||
img_load(&app->img, app->filenames[app->fileidx]); | |||||
} |
@@ -34,4 +34,6 @@ void app_init(app_t*); | |||||
void app_run(app_t*); | void app_run(app_t*); | ||||
void app_quit(app_t*); | void app_quit(app_t*); | ||||
void app_load_image(app_t*); | |||||
#endif /* APP_H */ | #endif /* APP_H */ |
@@ -16,7 +16,8 @@ | |||||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. | ||||
*/ | */ | ||||
#include <Imlib2.h> | #include <stdlib.h> | ||||
#include <stdio.h> | |||||
#include "sxiv.h" | #include "sxiv.h" | ||||
#include "image.h" | #include "image.h" | ||||
@@ -30,3 +31,19 @@ void imlib_init(win_t *win) { | |||||
imlib_context_set_colormap(win->env.cmap); | imlib_context_set_colormap(win->env.cmap); | ||||
imlib_context_set_drawable(win->xwin); | imlib_context_set_drawable(win->xwin); | ||||
} | } | ||||
void img_load(img_t *img, char *filename) { | |||||
if (!img || !filename) | |||||
return; | |||||
if (imlib_context_get_image()) | |||||
imlib_free_image(); | |||||
if (!(img->im = imlib_load_image(filename))) | |||||
FATAL("could not open image: %s", filename); | |||||
imlib_context_set_image(img->im); | |||||
img->w = imlib_image_get_width(); | |||||
img->h = imlib_image_get_height(); | |||||
} |
@@ -19,6 +19,8 @@ | |||||
#ifndef IMAGE_H | #ifndef IMAGE_H | ||||
#define IMAGE_H | #define IMAGE_H | ||||
#include <Imlib2.h> | |||||
#include "window.h" | #include "window.h" | ||||
typedef enum scalemode_e { | typedef enum scalemode_e { | ||||
@@ -34,8 +36,13 @@ typedef struct img_s { | |||||
int h; | int h; | ||||
int x; | int x; | ||||
int y; | int y; | ||||
Imlib_Image *im; | |||||
} img_t; | } img_t; | ||||
void imlib_init(win_t*); | void imlib_init(win_t*); | ||||
void img_load(img_t*, char*); | |||||
void img_display(img_t*, win_t*); | |||||
#endif /* IMAGE_H */ | #endif /* IMAGE_H */ |