Rev 7784 | Rev 7862 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7784 | Rev 7860 | ||
---|---|---|---|
Line 150... | Line 150... | ||
150 | jz key |
150 | jz key |
151 | dec eax |
151 | dec eax |
152 | jz button |
152 | jz button |
Line 153... | Line 153... | ||
153 | 153 | ||
- | 154 | mouse: |
|
- | 155 | mov eax, [need_scrollbar_v] |
|
- | 156 | add eax, [need_scrollbar_h] |
|
- | 157 | test eax, eax |
|
154 | mouse: |
158 | jz .done |
Line 155... | Line 159... | ||
155 | mov [pict_moved], 0 |
159 | mov [pict_moved], 0 |
156 | 160 | ||
157 | invoke scrollbar_vert_mouse, scroll_bar_data_vertical |
161 | invoke scrollbar_vert_mouse, scroll_bar_data_vertical |
Line 516... | Line 520... | ||
516 | 520 | ||
517 | call slide_show |
521 | call slide_show |
Line 518... | Line 522... | ||
518 | jmp redraw_all |
522 | jmp redraw_all |
- | 523 | ||
- | 524 | @@: |
|
- | 525 | cmp eax, 'scl' |
|
- | 526 | jnz .not_scl |
|
- | 527 | mov eax, LIBIMG_SCALE_NONE |
|
- | 528 | cmp [scale_mode], LIBIMG_SCALE_NONE |
|
- | 529 | jnz @f |
|
- | 530 | mov eax, LIBIMG_SCALE_FIT_MIN |
|
- | 531 | @@: |
|
- | 532 | call set_scale_mode |
|
- | 533 | jz @f |
|
- | 534 | call recalc_work |
|
- | 535 | @@: |
|
519 | 536 | jmp redraw_all |
|
520 | @@: |
537 | .not_scl: |
521 | or esi, -1 |
538 | or esi, -1 |
522 | cmp eax, 'bck' |
539 | cmp eax, 'bck' |
523 | jz next_or_prev_handler |
540 | jz next_or_prev_handler |
Line 966... | Line 983... | ||
966 | mov [last_name_component], esi |
983 | mov [last_name_component], esi |
967 | ret |
984 | ret |
968 | endp |
985 | endp |
Line 969... | Line 986... | ||
969 | 986 | ||
970 | - | ||
971 | proc init_frame _img |
987 | |
972 | push ebx edx |
988 | proc init_frame uses ebx edx, _img |
973 | mov eax, [orig_image] |
989 | mov eax, [orig_image] |
974 | cmp eax, [_img] |
990 | cmp eax, [_img] |
975 | jz .exit |
991 | jz .exit |
Line 995... | Line 1011... | ||
995 | mov [cur_frame_time], eax |
1011 | mov [cur_frame_time], eax |
996 | @@: |
1012 | @@: |
997 | mov [pict.top], 0 |
1013 | mov [pict.top], 0 |
998 | mov [pict.left], 0 |
1014 | mov [pict.left], 0 |
999 | .exit: |
1015 | .exit: |
1000 | pop edx ebx |
- | |
1001 | ret |
1016 | ret |
1002 | endp |
1017 | endp |
Line 1003... | Line 1018... | ||
1003 | 1018 | ||
Line 1075... | Line 1090... | ||
1075 | 1090 | ||
1076 | ret |
1091 | ret |
Line 1077... | Line -... | ||
1077 | endp |
- | |
1078 | 1092 | endp |
|
1079 | 1093 | ||
1080 | proc draw_view |
1094 | |
1081 | push ebx esi edi |
1095 | proc draw_view uses ebx esi edi |
1082 | cmp [scale_mode], LIBIMG_SCALE_FIT_MIN |
1096 | cmp [scale_mode], LIBIMG_SCALE_FIT_MIN |
1083 | jnz .scale_none |
1097 | jnz .scale_none |
Line 1112... | Line 1126... | ||
1112 | push [view.width] |
1126 | push [view.width] |
1113 | push [view_abs_top] ; ypos |
1127 | push [view_abs_top] ; ypos |
1114 | push [view_abs_left] ; xpos |
1128 | push [view_abs_left] ; xpos |
1115 | invoke img.draw, [cur_frame] |
1129 | invoke img.draw, [cur_frame] |
1116 | .done: |
1130 | .done: |
1117 | pop edi esi ebx |
- | |
1118 | ret |
1131 | ret |
1119 | endp |
1132 | endp |
Line -... | Line 1133... | ||
- | 1133 | ||
- | 1134 | proc draw_scale_button |
|
- | 1135 | pushad |
|
- | 1136 | mcall 65, buttons+scalebtn*20, <20,20>, [scale_button_xy], 8, palette |
|
- | 1137 | mov ebx, [scale_button_xy] |
|
- | 1138 | add ebx, 0x00050006 |
|
- | 1139 | ; print letter(s) corresponding to the current scaling mode |
|
- | 1140 | mov edi, 2 |
|
- | 1141 | mov [scale_button_letter], 'x1' |
|
- | 1142 | cmp [scale_mode], LIBIMG_SCALE_NONE |
|
- | 1143 | jz @f |
|
- | 1144 | add ebx, 0x00020001 |
|
- | 1145 | mov edi, 1 |
|
- | 1146 | mov [scale_button_letter], 'W' |
|
- | 1147 | ; cmp [scale_mode], LIBIMG_SCALE_FIT_MIN |
|
- | 1148 | @@: |
|
- | 1149 | mcall 4, , 0x800100ff, scale_button_letter |
|
- | 1150 | popad |
|
- | 1151 | ret |
|
Line 1120... | Line -... | ||
1120 | - | ||
1121 | 1152 | endp |
|
1122 | proc draw_toolbar |
- | |
1123 | push ebx esi edi |
1153 | |
1124 | 1154 | proc draw_toolbar uses ebx esi edi |
|
1125 | cmp [toolbar.height], 0 |
1155 | cmp [toolbar.height], 0 |
1126 | jz .quit |
1156 | jz .quit |
1127 | mov ebx, [toolbar_abs_left] |
1157 | mov ebx, [toolbar_abs_left] |
Line 1152... | Line 1182... | ||
1152 | mcall |
1182 | mcall |
1153 | add ebx, ((5 + 25 * 2) SHL 16) + (5 + 25 * 2) |
1183 | add ebx, ((5+25*2) SHL 16)+(5+25*2) |
1154 | mcall |
1184 | mcall |
1155 | add ebx, ((5 + 25 * 2) SHL 16) + (5 + 25 * 2) |
1185 | add ebx, ((5+25*2) SHL 16)+(5+25*2) |
1156 | mcall |
1186 | mcall |
- | 1187 | add ebx, ((5+25*1) SHL 16)+(5+25*1) |
|
- | 1188 | mcall |
|
1157 | mov ebx, [toolbar_abs_left] |
1189 | mov ebx, [toolbar_abs_left] |
1158 | add ebx, [toolbar.width] |
1190 | add ebx, [toolbar.width] |
1159 | sub ebx, 25 * 5 + 10 |
1191 | sub ebx, 25*5+10 |
1160 | shl ebx, 16 |
1192 | shl ebx, 16 |
1161 | add ebx, [toolbar_abs_left] |
1193 | add ebx, [toolbar_abs_left] |
Line 1176... | Line 1208... | ||
1176 | mcall , , , 'fwd'+40000000h |
1208 | mcall , , , 'fwd'+40000000h |
1177 | add ebx, (5 + 25 * 1) SHL 16 |
1209 | add ebx, (5+25*1) SHL 16 |
1178 | mcall , , , 'bgr'+40000000h |
1210 | mcall , , , 'bgr'+40000000h |
1179 | add ebx, (0 + 25 * 1) SHL 16 |
1211 | add ebx, (0+25*1) SHL 16 |
1180 | mcall , , , 'sld'+40000000h |
1212 | mcall , , , 'sld'+40000000h |
- | 1213 | add ebx, (5+25*1) SHL 16 |
|
- | 1214 | mcall , , , 'scl'+40000000h |
|
1181 | mov ebx, [toolbar_abs_left] |
1215 | mov ebx, [toolbar_abs_left] |
1182 | add ebx, [toolbar.width] |
1216 | add ebx, [toolbar.width] |
1183 | sub ebx, 25 * 5 + 10 |
1217 | sub ebx, 25*5+10 |
1184 | add ebx, 5 |
1218 | add ebx, 5 |
1185 | shl ebx, 16 |
1219 | shl ebx, 16 |
Line 1207... | Line 1241... | ||
1207 | mcall , buttons + forwardbtn * 20 |
1241 | mcall , buttons+forwardbtn*20 |
1208 | add edx, ((5 + 25 * 1) SHL 16) + 0 |
1242 | add edx, ((5+25*1) SHL 16)+0 |
1209 | mcall , buttons + bgrbtn * 20 |
1243 | mcall , buttons+bgrbtn *20 |
1210 | add edx, ((0 + 25 * 1) SHL 16) + 0 |
1244 | add edx, ((0+25*1) SHL 16)+0 |
1211 | mcall , buttons + slidebtn * 20 |
1245 | mcall , buttons+slidebtn *20 |
- | 1246 | add edx, ((5+25*1) SHL 16)+0 |
|
- | 1247 | ; mcall , buttons+scalebtn *20 |
|
- | 1248 | mov [scale_button_xy], edx |
|
- | 1249 | call draw_scale_button |
|
1212 | mov edx, [client_abs_left] |
1250 | mov edx, [client_abs_left] |
1213 | add edx, [client.width] |
1251 | add edx, [client.width] |
1214 | sub edx, 25 * 5 + 4 |
1252 | sub edx, 25*5+4 |
1215 | shl edx, 16 |
1253 | shl edx, 16 |
1216 | add edx, [client_abs_top] |
1254 | add edx, [client_abs_top] |
Line 1224... | Line 1262... | ||
1224 | mcall , buttons+rotccwbtn*20 |
1262 | mcall , buttons+rotccwbtn*20 |
1225 | add edx, 25 * 65536 |
1263 | add edx, 25*65536 |
1226 | mcall , buttons+rot180btn*20 |
1264 | mcall , buttons+rot180btn*20 |
Line 1227... | Line 1265... | ||
1227 | 1265 | ||
1228 | .quit: |
- | |
1229 | pop edi esi ebx |
1266 | .quit: |
1230 | ret |
1267 | ret |
Line 1231... | Line 1268... | ||
1231 | endp |
1268 | endp |
Line 1537... | Line 1574... | ||
1537 | pop esi edx ecx ebx |
1574 | pop esi edx ecx ebx |
1538 | ret |
1575 | ret |
1539 | endp |
1576 | endp |
Line 1540... | Line -... | ||
1540 | - | ||
1541 | - | ||
1542 | proc is_root_dir _path |
- | |
1543 | push ecx esi |
- | |
1544 | - | ||
1545 | mov esi, [_path] |
- | |
1546 | xor ecx, ecx |
- | |
1547 | @@: |
- | |
1548 | lodsb |
- | |
1549 | test al, al |
- | |
1550 | jz .done |
- | |
1551 | cmp al, '/' |
- | |
1552 | jnz @b |
- | |
1553 | inc ecx |
- | |
1554 | jmp @b |
- | |
1555 | .done: |
- | |
1556 | xor eax, eax |
- | |
1557 | cmp ecx, 3 |
- | |
1558 | jz @f |
- | |
1559 | mov eax, -2 |
- | |
1560 | @@: |
- | |
1561 | pop esi ecx |
- | |
1562 | ret |
- | |
1563 | endp |
1577 | |
1564 | 1578 | ||
1565 | ; fills window_header with window title |
1579 | ; fills window_header with window title |
1566 | ; window title is generated as '[k/n] |
1580 | ; window title is generated as '[k/n] |
1567 | ; n = total files in dir |
1581 | ; n = total files in dir |
Line 1577... | Line 1591... | ||
1577 | mov eax, [cur_file_idx] |
1591 | mov eax, [cur_file_idx] |
1578 | inc eax |
1592 | inc eax |
1579 | call bin2dec |
1593 | call bin2dec |
1580 | mov byte[edi], '/' |
1594 | mov byte[edi], '/' |
1581 | inc edi |
1595 | inc edi |
1582 | stdcall is_root_dir, path |
1596 | mov eax, [directory_ptr] |
1583 | add eax, [files_num] |
1597 | mov eax, [eax+4] |
1584 | call bin2dec |
1598 | call bin2dec |
1585 | mov word[edi], '] ' |
1599 | mov word[edi], '] ' |
1586 | add edi, 2 |
1600 | add edi, 2 |
Line 1587... | Line 1601... | ||
1587 | 1601 | ||
Line 2143... | Line 2157... | ||
2143 | jnz .recalc_canvas |
2157 | jnz .recalc_canvas |
2144 | test [bNewImage], 1 |
2158 | test [bNewImage], 1 |
2145 | jnz .recalc_canvas |
2159 | jnz .recalc_canvas |
2146 | stdcall cmp_box, canvas, canvas_prev |
2160 | stdcall cmp_box, canvas, canvas_prev |
2147 | jnz .recalc_canvas |
2161 | jnz .recalc_canvas |
- | 2162 | cmp [bScaleModeChanged], 0 |
|
- | 2163 | jnz .recalc_canvas |
|
2148 | jmp .recalc_canvas_done |
2164 | jmp .recalc_canvas_done |
2149 | .recalc_canvas: |
2165 | .recalc_canvas: |
2150 | stdcall recalc_canvas |
2166 | stdcall recalc_canvas |
2151 | .recalc_canvas_done: |
2167 | .recalc_canvas_done: |
2152 | ret |
2168 | ret |
Line 2171... | Line 2187... | ||
2171 | ;----------------------------------------------------------------------------- |
2187 | ;----------------------------------------------------------------------------- |
2172 | DATA |
2188 | DATA |
Line 2173... | Line 2189... | ||
2173 | 2189 | ||
2174 | s_header db ' - Kolibri Image Viewer',0 |
2190 | s_header db ' - Kolibri Image Viewer',0 |
2175 | window_style dd 0x53FFFFFF |
2191 | window_style dd 0x53FFFFFF |
2176 | window BOX 101, 144, 750, 600 ; left top width height |
2192 | window BOX 101, 144, 529, 324 ; left top width height |
2177 | window_prev BOX 0, 0, 0, 0 |
2193 | window_prev BOX 0, 0, 0, 0 |
2178 | window_save BOX 0, 0, 0, 0 ; restore after slide show |
2194 | window_save BOX 0, 0, 0, 0 ; restore after slide show |
2179 | client BOX 0, 0, 0, 0 |
2195 | client BOX 0, 0, 0, 0 |
2180 | client_prev BOX 0, 0, 0, 0 |
2196 | client_prev BOX 0, 0, 0, 0 |
Line 2343... | Line 2359... | ||
2343 | 2359 | ||
2344 | virtual at 0 |
2360 | virtual at 0 |
2345 | file 'kivicons.bmp':0xA,4 |
2361 | file 'kivicons.bmp':0xA,4 |
2346 | load offbits dword from 0 |
2362 | load offbits dword from 0 |
2347 | end virtual |
2363 | end virtual |
2348 | numimages = 10 |
2364 | numimages = 11 |
2349 | openbtn = 0 |
2365 | openbtn = 0 |
2350 | backbtn = 1 |
2366 | backbtn = 1 |
2351 | forwardbtn = 2 |
2367 | forwardbtn = 2 |
2352 | bgrbtn = 3 |
2368 | bgrbtn = 3 |
2353 | fliphorzbtn = 4 |
2369 | fliphorzbtn = 4 |
2354 | flipvertbtn = 5 |
2370 | flipvertbtn = 5 |
2355 | rotcwbtn = 6 |
2371 | rotcwbtn = 6 |
2356 | rotccwbtn = 7 |
2372 | rotccwbtn = 7 |
2357 | rot180btn = 8 |
2373 | rot180btn = 8 |
- | 2374 | slidebtn = 9 |
|
Line 2358... | Line 2375... | ||
2358 | slidebtn = 9 |
2375 | scalebtn = 10 |
2359 | 2376 | ||
2360 | palette: |
2377 | palette: |
2361 | file 'kivicons.bmp':0x36,offbits-0x36 |
2378 | file 'kivicons.bmp':0x36,offbits-0x36 |
2362 | buttons: |
2379 | buttons: |
2363 | file 'kivicons.bmp':offbits |
2380 | file 'kivicons.bmp':offbits |
2364 | repeat 10 |
2381 | repeat 11 |
2365 | y = % - 1 |
2382 | y = %-1 |
2366 | z = 20 - % |
2383 | z = 20-% |
2367 | repeat numimages*5 |
2384 | repeat numimages*5 |
Line 2490... | Line 2507... | ||
2490 | dd 1 |
2507 | dd 1 |
2491 | dd 0 |
2508 | dd 0 |
2492 | dd 0 |
2509 | dd 0 |
2493 | readblocks dd 0 |
2510 | readblocks dd 0 |
2494 | directory_ptr dd 0 |
2511 | directory_ptr dd 0 |
2495 | curdir db 1024 dup (?) |
2512 | curdir rb 1024 |
2496 | ;------------------------------------------------------------------------------ |
2513 | ;------------------------------------------------------------------------------ |
Line 2497... | Line 2514... | ||
2497 | 2514 | ||
2498 | I_END: |
2515 | I_END: |
2499 | align 4 |
2516 | align 4 |
Line 2518... | Line 2535... | ||
2518 | 2535 | ||
2519 | last_name_component rd 1 |
2536 | last_name_component rd 1 |
Line 2520... | Line 2537... | ||
2520 | toolbar.height_old rd 1 |
2537 | toolbar.height_old rd 1 |
- | 2538 | ||
- | 2539 | procinfo process_information |
|
2521 | 2540 | scale_button_xy dd ? |
|
2522 | procinfo process_information |
2541 | scale_button_letter dd ? ; i.e. 'x1',0 |
2523 | align 16 |
2542 | align 16 |
2524 | path rb 4096 |
2543 | path rb 4096 |
2525 | window_header rb 256 |
2544 | window_header rb 256 |