]> code.delx.au - gnu-emacs-elpa/blob - packages/xpm/HACKING
Merge commit '0cda39255827f283e7578cd469ae42daad9556a2' from js2-mode
[gnu-emacs-elpa] / packages / xpm / HACKING
1 HACKING xpm.el (et al) -*- org -*-
2
3 This file is both a guide for newcomers and a todo list for oldstayers.
4
5 * ideas / wishlist
6 *** lacunae (sigh)
7 (defun xpm-as-rectangle ()
8 (xpm--w/gg (w h cpp origin y-mult) (xpm--gate)
9 (extract-rectangle
10 origin
11 (+ origin (* y-mult (1- h)) (* w cpp)))))
12
13 (defun xpm-from-rectangle (rect)
14 (xpm--w/gg (w h cpp origin y-mult) (xpm--gate)
15 (assert (= h (length rect)))
16 (assert (= (* w cpp) (length (car rect))))
17 (goto-char origin)
18 (delete-rectangle origin (+ origin (* y-mult (1- h)) (* w cpp)))
19 (insert-rectangle rect)))
20
21 (defun xpm-replace-from (buffer)
22 (xpm-from-rectangle
23 (with-current-buffer buffer
24 (xpm-as-rectangle))))
25 *** add xpm-mode for interactive use -- [[file:xpm-ui.el][xpm-ui.el]]
26 ***** hide/show header lines
27 ***** palette
28 ******* hide/show
29 ******* display each PX in associated color (loses for ‘s’-only)
30 ******* display as table (conserve vertical space)
31 ******* add state "current px", commands to set it
32 ***** hide/show sides
33 *** composition facilities -- [[file:xpm-compose.el][xpm-compose.el]]
34 ***** multilevel congruence
35 ******* dimensions only
36 ******* palette not None
37 ******* palette subset
38 ******* full palette
39 ***** destructive (2-op) vs non-destructive (3-op)
40 ***** customizable pixel-compose fn
41 *** misc functionality
42 ***** validate palette-data correspondance
43 ***** import from rectangle
44 ******* as-is (dangerous)
45 ******* w/ char-to-px quantization
46 *** perf
47 ***** ??? use ‘binary’ coding system
48 ***** make ‘xpm-raster’ do [vh]-line expansion
49 * etc
50 #+odd
51
52 \f
53 Copyright (C) 2014 Free Software Foundation, Inc.
54
55 Copying and distribution of this file, with or without modification,
56 are permitted provided the copyright notice and this notice are preserved.