Krolyxon
Commit 414fa56

Branches

Refs →

nsxiv414fa56

Split img_fit into internal/external function

Author
Bert
Date
2011-02-03 16:55 +0100
Parent
c6556f8
Commit
414fa567ce3893c33bc3a7b313b329c783853624

+25 −19

3 files changed

  1. M image.c +23 −17
  2. M image.h +1 −1
  3. M main.c +1 −1
M image.c View
@@ -99,7 +99,7 @@ int img_load(img_t *img, const char *filename) {
9999 }
100100
101101 void img_check_pan(img_t *img, win_t *win) {
102− if (!img)
102+ if (!img || !win)
103103 return;
104104
105105 if (img->w * img->zoom > win->w) {
@@ -120,6 +120,23 @@ void img_check_pan(img_t *img, win_t *win) {
120120 }
121121 }
122122
123+int img_fit(img_t *img, win_t *win) {
124+ float oz, zw, zh;
125+
126+ if (!img || !win)
127+ return 0;
128+
129+ oz = img->zoom;
130+ zw = (float) win->w / (float) img->w;
131+ zh = (float) win->h / (float) img->h;
132+
133+ img->zoom = MIN(zw, zh);
134+ img->zoom = MAX(img->zoom, zoom_min);
135+ img->zoom = MIN(img->zoom, zoom_max);
136+
137+ return oz != img->zoom;
138+}
139+
123140 void img_render(img_t *img, win_t *win) {
124141 int sx, sy, sw, sh;
125142 int dx, dy, dw, dh;
@@ -128,7 +145,7 @@ void img_render(img_t *img, win_t *win) {
128145 return;
129146
130147 if (img->scalemode != SCALE_ZOOM) {
131− img_fit(img, win, 0);
148+ img_fit(img, win);
132149 if (img->scalemode == SCALE_DOWN && img->zoom > 1.0)
133150 img->zoom = 1.0;
134151 }
@@ -176,24 +193,12 @@ void img_render(img_t *img, win_t *win) {
176193 win_draw(win);
177194 }
178195
179−int img_fit(img_t *img, win_t *win, unsigned char set) {
180− float oz, zw, zh;
181−
196+int img_fit_win(img_t *img, win_t *win) {
182197 if (!img || !win)
183198 return 0;
184199
185− oz = img->zoom;
186− zw = (float) win->w / (float) img->w;
187− zh = (float) win->h / (float) img->h;
188−
189− img->zoom = MIN(zw, zh);
190− img->zoom = MAX(img->zoom, zoom_min);
191− img->zoom = MIN(img->zoom, zoom_max);
192−
193− if (set)
194− img->scalemode = SCALE_FIT;
195−
196− return oz != img->zoom;
200+ img->scalemode = SCALE_FIT;
201+ return img_fit(img, win);
197202 }
198203
199204 int img_center(img_t *img, win_t *win) {
@@ -217,6 +222,7 @@ int img_zoom(img_t *img, float z) {
217222
218223 z = MAX(z, zoom_min);
219224 z = MIN(z, zoom_max);
225+
220226 img->scalemode = SCALE_ZOOM;
221227
222228 if (z != img->zoom) {
M image.h View
@@ -54,7 +54,7 @@ int img_load(img_t*, const char*);
5454
5555 void img_render(img_t*, win_t*);
5656
57−int img_fit(img_t*, win_t*, unsigned char);
57+int img_fit_win(img_t*, win_t*);
5858 int img_center(img_t*, win_t*);
5959
6060 int img_zoom(img_t*, float);
M main.c View
@@ -288,7 +288,7 @@ void on_keypress(XKeyEvent *kev) {
288288 changed = img_zoom(&img, 1.0);
289289 break;
290290 case XK_w:
291− if ((changed = img_fit(&img, &win, 1)))
291+ if ((changed = img_fit_win(&img, &win)))
292292 img_center(&img, &win);
293293 break;
294294