
2006-10-20 Kevin Cozens <kcozens@cvs.gnome.org> * plug-ins/script-fu/scheme-wrapper.c: Moved the MIN and MAX entries for image size and resolution to script_constants structureas they are not deprecated constants. * plug-ins/script-fu/scripts/script-fu.init: Removed CR in line endings. * plug-ins/script-fu/scripts/*.scm: Fixed a number of regressions that snuck in during the last big update of the scripts. This update reduces the number of differences to the original scripts (other than formatting). Some additional formatting changes in a few scripts. Updates to use colour names in register block where possible. Fixed a bug in burn-in-anim.scm. Minor cleanup of font-map.scm. Simplified the bug fix in tile-blur.scm.
166 lines
5.3 KiB
Scheme
166 lines
5.3 KiB
Scheme
;; font-select
|
|
;; Spencer Kimball
|
|
|
|
(define (script-fu-font-map text
|
|
use-name
|
|
labels
|
|
font-filter
|
|
font-size
|
|
border
|
|
colors)
|
|
|
|
(define (max-font-width text use-name list-cnt list font-size)
|
|
(let* ((count 0)
|
|
(width 0)
|
|
(maxwidth 0)
|
|
(font "")
|
|
(extents '()))
|
|
(while (< count list-cnt)
|
|
(set! font (aref list count))
|
|
|
|
(if (= use-name TRUE)
|
|
(set! text font))
|
|
(set! extents (gimp-text-get-extents-fontname text
|
|
font-size PIXELS
|
|
font))
|
|
(set! width (car extents))
|
|
(if (> width maxwidth)
|
|
(set! maxwidth width))
|
|
|
|
(set! count (+ count 1))
|
|
)
|
|
|
|
maxwidth
|
|
)
|
|
)
|
|
|
|
(define (max-font-height text use-name list-cnt list font-size)
|
|
(let* ((count 0)
|
|
(height 0)
|
|
(maxheight 0)
|
|
(font "")
|
|
(extents '()))
|
|
(while (< count list-cnt)
|
|
(set! font (aref list count))
|
|
|
|
(if (= use-name TRUE)
|
|
(set! text font)
|
|
)
|
|
(set! extents (gimp-text-get-extents-fontname text
|
|
font-size PIXELS
|
|
font))
|
|
(set! height (cadr extents))
|
|
(if (> height maxheight)
|
|
(set! maxheight height)
|
|
)
|
|
|
|
(set! count (+ count 1))
|
|
)
|
|
|
|
maxheight
|
|
)
|
|
)
|
|
|
|
(let* (
|
|
(font-data (gimp-fonts-get-list font-filter))
|
|
(font-list (cadr font-data))
|
|
(num-fonts (car font-data))
|
|
(label-size (/ font-size 2))
|
|
(border (+ border (* labels (/ label-size 2))))
|
|
(y border)
|
|
(maxheight (max-font-height text use-name num-fonts font-list font-size))
|
|
(maxwidth (max-font-width text use-name num-fonts font-list font-size))
|
|
(width (+ maxwidth (* 2 border)))
|
|
(height (+ (+ (* maxheight num-fonts) (* 2 border))
|
|
(* labels (* label-size num-fonts))))
|
|
(img (car (gimp-image-new width height (if (= colors 0)
|
|
GRAY RGB))))
|
|
(drawable (car (gimp-layer-new img width height (if (= colors 0)
|
|
GRAY-IMAGE RGB-IMAGE)
|
|
"Background" 100 NORMAL-MODE)))
|
|
(count 0)
|
|
(font)
|
|
)
|
|
|
|
(gimp-context-push)
|
|
|
|
(gimp-image-undo-disable img)
|
|
|
|
(if (= colors 0)
|
|
(begin
|
|
(gimp-context-set-background '(255 255 255))
|
|
(gimp-context-set-foreground '(0 0 0))))
|
|
|
|
(gimp-image-add-layer img drawable 0)
|
|
(gimp-edit-clear drawable)
|
|
|
|
(if (= labels TRUE)
|
|
(begin
|
|
(set! drawable (car (gimp-layer-new img width height
|
|
(if (= colors 0)
|
|
GRAYA-IMAGE RGBA-IMAGE)
|
|
"Labels" 100 NORMAL-MODE)))
|
|
(gimp-image-add-layer img drawable -1)))
|
|
(gimp-edit-clear drawable)
|
|
|
|
(while (< count num-fonts)
|
|
(set! font (aref font-list count))
|
|
|
|
(if (= use-name TRUE)
|
|
(set! text font))
|
|
|
|
(gimp-text-fontname img -1
|
|
border
|
|
y
|
|
text
|
|
0 TRUE font-size PIXELS
|
|
font)
|
|
|
|
(set! y (+ y maxheight))
|
|
|
|
(if (= labels TRUE)
|
|
(begin
|
|
(gimp-floating-sel-anchor (car (gimp-text-fontname img drawable
|
|
(- border
|
|
(/ label-size 2))
|
|
(- y
|
|
(/ label-size 2))
|
|
font
|
|
0 TRUE
|
|
label-size PIXELS
|
|
"Sans")))
|
|
(set! y (+ y label-size))
|
|
)
|
|
)
|
|
|
|
(set! count (+ count 1))
|
|
)
|
|
|
|
(gimp-image-set-active-layer img drawable)
|
|
|
|
(gimp-image-undo-enable img)
|
|
(gimp-display-new img)
|
|
|
|
(gimp-context-pop)
|
|
)
|
|
)
|
|
|
|
(script-fu-register "script-fu-font-map"
|
|
_"Render _Font Map..."
|
|
_"Create an image filled with previews of fonts matching a fontname filter"
|
|
"Spencer Kimball"
|
|
"Spencer Kimball"
|
|
"1997"
|
|
""
|
|
SF-STRING _"_Text" "How quickly daft jumping zebras vex."
|
|
SF-TOGGLE _"Use font _name as text" FALSE
|
|
SF-TOGGLE _"_Labels" TRUE
|
|
SF-STRING _"_Filter (regexp)" "Sans"
|
|
SF-ADJUSTMENT _"Font _size (pixels)" '(32 2 1000 1 10 0 1)
|
|
SF-ADJUSTMENT _"_Border (pixels)" '(10 0 200 1 10 0 1)
|
|
SF-OPTION _"_Color scheme" '(_"Black on white" _"Active colors")
|
|
)
|
|
|
|
(script-fu-menu-register "script-fu-font-map"
|
|
"<Fonts>")
|