Subversion Repositories Kolibri OS

Rev

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]  - Kolibri Image Viewer'
1580
; window title is generated as '[k/n]  - Kolibri Image Viewer'
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