]> gitweb.factorcode.org Git - factor.git/blob - extra/images/viewer/viewer.factor
Merge branch 'master' of /Users/slava/factor/
[factor.git] / extra / images / viewer / viewer.factor
1 ! Copyright (C) 2007, 2009 Doug Coleman.
2 ! See http://factorcode.org/license.txt for BSD license.
3 USING: accessors images images.loader io.pathnames kernel namespaces
4 opengl opengl.gl opengl.textures sequences strings ui ui.gadgets
5 ui.gadgets.panes ui.render ui.images ;
6 IN: images.viewer
7
8 TUPLE: image-gadget < gadget image texture ;
9
10 M: image-gadget pref-dim* image>> dim>> ;
11
12 : image-gadget-texture ( gadget -- texture )
13     dup texture>> [ ] [ dup image>> { 0 0 } <texture> >>texture texture>> ] ?if ;
14
15 M: image-gadget draw-gadget* ( gadget -- )
16     [ dim>> ] [ image-gadget-texture ] bi draw-scaled-texture ;
17
18 ! Todo: delete texture on ungraft
19
20 GENERIC: <image-gadget> ( object -- gadget )
21
22 M: image <image-gadget>
23     \ image-gadget new
24         swap >>image ;
25
26 M: string <image-gadget> load-image <image-gadget> ;
27
28 M: pathname <image-gadget> string>> load-image <image-gadget> ;
29
30 : image-window ( object -- ) <image-gadget> "Image" open-window ;
31
32 : image. ( object -- ) <image-gadget> gadget. ;