#!../bltwish

source bltDemo.tcl

bitmap compose top "Top\nScaled 2x" -padx 10 -pady 5 -rotate 0 -scale 2.0
bitmap compose left "Left\na\nb\nc" -rotate 90
bitmap compose right {Right} -rotate 270
bitmap compose bottom {Bottom} -rotate 180
bitmap compose center {Center} -rotate 45 

bitmap define wide_weave { { 16 16 } {
   0x11, 0x11, 0xb8, 0xb8, 0x7c, 0x7c, 0x3a, 0x3a, 0x11, 0x11, 0xa3, 0xa3,
   0xc7, 0xc7, 0x8b, 0x8b, 0x11, 0x11, 0xb8, 0xb8, 0x7c, 0x7c, 0x3a, 0x3a,
   0x11, 0x11, 0xa3, 0xa3, 0xc7, 0xc7, 0x8b, 0x8b
}}

bitmap define hobbes { { 25 25 } { 
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xc0, 0x03, 0x00,
   0x78, 0xe0, 0x07, 0x00, 0xfc, 0xf8, 0x07, 0x00, 0xcc, 0x07, 0x04, 0x00,
   0x0c, 0xf0, 0x0b, 0x00, 0x7c, 0x1c, 0x06, 0x00, 0x38, 0x00, 0x00, 0x00,
   0xe0, 0x03, 0x10, 0x00, 0xe0, 0x41, 0x11, 0x00, 0x20, 0x40, 0x11, 0x00,
   0xe0, 0x07, 0x10, 0x00, 0xe0, 0xc1, 0x17, 0x00, 0x10, 0xe0, 0x2f, 0x00,
   0x20, 0xe0, 0x6f, 0x00, 0x18, 0xe0, 0x2f, 0x00, 0x20, 0xc6, 0x67, 0x00,
   0x18, 0x84, 0x2b, 0x00, 0x20, 0x08, 0x64, 0x00, 0x70, 0xf0, 0x13, 0x00,
   0x80, 0x01, 0x08, 0x00, 0x00, 0xfe, 0x07, 0x00, 0x00, 0x00, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00
}} -scale 3.0


bitmap define gort {
  {64 64} {
    ff ff ff ff ff ff ff ff 01 00 00 f0 3f 00 00 80 01 00 00 ff ff 07 00 80
    01 00 c0 df 0f 1e 00 80 01 00 60 df 7f 38 00 80 01 00 30 84 fd 67 00 80
    01 00 18 04 f6 ef 00 80 01 00 0c 86 e1 c7 01 80 01 00 06 06 c0 96 01 80
    01 00 06 06 00 97 03 80 01 00 06 06 00 3c 03 80 01 00 03 06 00 5c 07 80
    01 00 03 02 00 d8 06 80 01 00 03 02 00 d8 06 80 01 00 43 02 00 b0 0c 80
    01 80 31 03 00 e0 0d 80 01 80 61 03 00 e0 0d 80 01 80 1b 03 00 f0 0c 80
    01 80 b3 03 ff ff 1d 80 01 c0 eb fb ff ff 1d 80 01 e0 c5 7f fe 7f 3f 80
    01 e0 eb e3 ff ff 6e 80 01 d0 3b fe 01 40 cf 80 01 f0 f7 07 00 30 8e 80
    01 f0 f4 00 00 1b 98 80 01 70 14 00 00 1f dc 80 01 30 fe ff 1f c8 ff 80
    01 20 ee ff ff ff ff 80 01 20 f7 ff 7f fe 7f 80 01 c0 e1 ff ff fe 3f 80
    01 80 ed ff ff ff 19 80 01 80 99 ff ff ff 18 80 01 00 63 83 ff 7f 08 80
    01 00 c3 06 00 00 0c 80 01 00 9b 07 00 00 0c 80 01 00 b6 07 00 10 0c 80
    01 00 c6 07 00 10 04 80 01 00 36 06 00 18 06 80 01 00 66 06 00 18 06 80
    01 00 8c 0d 00 18 02 80 01 00 18 0e 00 18 03 80 01 00 f0 0c 00 18 03 80
    01 00 30 0f 00 98 01 80 01 00 b0 1f 01 98 01 80 01 00 60 1f 03 dc 00 80
    01 00 e0 3f 03 dc 00 80 01 00 e0 3b 07 ee 00 80 01 00 70 f8 ff ff 01 80
    01 00 f0 80 ff 37 03 80 01 00 fc 00 08 d8 03 80 01 00 fe 03 f8 7f 07 80
    01 c0 87 07 e0 3f 1c 80 01 f0 03 00 00 00 f8 8f 81 ff 00 38 00 f6 f9 ff
    fd 3f 00 e0 00 83 8f ff ff 00 00 80 01 00 fc c0 07 0e 00 38 e0 00 e0 9f
    f9 07 00 00 80 03 00 ff 7f 80 01 00 c0 00 00 f0 7f c0 00 00 00 00 00 80
    0f f0 00 38 00 00 00 80 01 30 00 00 38 c0 c0 80 01 1c e0 00 0c c0 83 81
    ff ff ff ff ff ff ff ff
  }
} -rotate 90

bitmap define xbob { { 61 75 } {
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0xff,
   0xff, 0x07, 0x00, 0x00, 0x00, 0x00, 0xfe, 0xff, 0xff, 0x1f, 0x00, 0x00,
   0x00, 0x80, 0xff, 0xff, 0xff, 0xfb, 0x00, 0x00, 0x00, 0xc0, 0xff, 0xcf,
   0x9f, 0xd1, 0x03, 0x00, 0x00, 0xf0, 0x7f, 0x8c, 0x33, 0x91, 0x07, 0x00,
   0x00, 0xf8, 0xa7, 0x18, 0x27, 0xb1, 0x06, 0x00, 0x00, 0xfc, 0x47, 0x31,
   0x4e, 0xa6, 0x0e, 0x00, 0x00, 0xfe, 0x4f, 0x21, 0x4c, 0xae, 0x3d, 0x00,
   0x00, 0xff, 0xdf, 0x23, 0x8d, 0xbe, 0x7d, 0x00, 0x80, 0xff, 0xff, 0x67,
   0xbd, 0xfe, 0xff, 0x01, 0x80, 0xff, 0xff, 0x7f, 0xbf, 0xff, 0xff, 0x03,
   0xc0, 0xff, 0xff, 0xff, 0xbf, 0xff, 0xf8, 0x07, 0xc0, 0xff, 0xff, 0xff,
   0xbf, 0x3f, 0xf8, 0x07, 0xc0, 0xff, 0xff, 0xff, 0xff, 0x07, 0xf8, 0x0f,
   0xc0, 0xff, 0xff, 0xff, 0x3f, 0x00, 0xf8, 0x0f, 0xe0, 0x7f, 0x00, 0xf8,
   0x07, 0x00, 0xf0, 0x0f, 0xe0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07,
   0xe0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xf0, 0x07, 0xe0, 0x3f, 0x00, 0x00,
   0x00, 0x00, 0xf4, 0x07, 0xe0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x07,
   0xe0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xe4, 0x07, 0xe0, 0x3f, 0x00, 0x00,
   0x00, 0x00, 0xe6, 0x07, 0xe0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xe7, 0x07,
   0xe0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xe6, 0x07, 0xe0, 0x3f, 0x00, 0x00,
   0x00, 0x00, 0xe6, 0x07, 0xe0, 0x3f, 0x00, 0x00, 0x00, 0x00, 0xe6, 0x07,
   0xc0, 0x3f, 0x00, 0x00, 0x00, 0x78, 0xf6, 0x07, 0xa0, 0xbf, 0xff, 0x00,
   0x00, 0xff, 0xf7, 0x07, 0x70, 0x9f, 0xff, 0x01, 0x80, 0xff, 0xef, 0x07,
   0xf0, 0x1c, 0x80, 0x03, 0xe0, 0x01, 0xef, 0x07, 0xf0, 0x1f, 0xbe, 0x07,
   0xf0, 0x3f, 0xee, 0x07, 0xe0, 0x9d, 0x83, 0x1f, 0xf8, 0xe1, 0xdc, 0x07,
   0xe0, 0xc1, 0x7f, 0x1f, 0xfc, 0xff, 0xc8, 0x07, 0xe0, 0xc1, 0x69, 0x1e,
   0x7e, 0xca, 0xc0, 0x03, 0xe0, 0x81, 0xb8, 0x1f, 0xc0, 0x0e, 0xc0, 0x03,
   0xe0, 0x01, 0xc0, 0x1b, 0xc0, 0xcf, 0xc1, 0x03, 0xc0, 0x03, 0xf7, 0x11,
   0x00, 0x7f, 0xc0, 0x03, 0xc0, 0x03, 0x7c, 0x18, 0x00, 0x1c, 0xc0, 0x02,
   0xc0, 0x02, 0x30, 0x08, 0x00, 0x00, 0x40, 0x03, 0x40, 0x03, 0x00, 0x08,
   0x00, 0x00, 0x40, 0x02, 0x40, 0x13, 0x00, 0x0c, 0x00, 0x00, 0x60, 0x02,
   0x40, 0x12, 0x00, 0x0e, 0x00, 0x00, 0xc0, 0x03, 0x80, 0x33, 0x80, 0x0e,
   0x00, 0x00, 0xa8, 0x01, 0x00, 0x33, 0x40, 0x0f, 0xa0, 0x03, 0x2c, 0x00,
   0x00, 0x74, 0x30, 0x0f, 0x38, 0x07, 0x2e, 0x00, 0x00, 0x74, 0x98, 0x1f,
   0x1e, 0x1e, 0x2f, 0x00, 0x00, 0xfc, 0x8f, 0xff, 0x0f, 0xfc, 0x2f, 0x00,
   0x00, 0xf8, 0xe3, 0xff, 0x03, 0xf8, 0x2f, 0x00, 0x00, 0xf8, 0xfd, 0xff,
   0x81, 0xff, 0x3f, 0x00, 0x00, 0xb8, 0xf9, 0x1f, 0xf8, 0x0f, 0x1e, 0x00,
   0x00, 0x30, 0xf1, 0xf0, 0x0f, 0x03, 0x0e, 0x00, 0x00, 0x30, 0xf1, 0x01,
   0x80, 0x01, 0x0f, 0x00, 0x00, 0x20, 0xf1, 0xf7, 0xff, 0x00, 0x07, 0x00,
   0x00, 0x60, 0xe3, 0x01, 0x60, 0x80, 0x07, 0x00, 0x00, 0x60, 0xc3, 0xef,
   0x3f, 0x80, 0x03, 0x00, 0x00, 0x40, 0xc2, 0xff, 0x0f, 0xc0, 0x03, 0x00,
   0x00, 0xc0, 0xe6, 0x1f, 0x00, 0xc0, 0x01, 0x00, 0x00, 0x80, 0xf4, 0xfe,
   0x3f, 0xe0, 0x00, 0x00, 0x00, 0x80, 0x79, 0xfe, 0x1f, 0xe0, 0x00, 0x00,
   0xc0, 0x01, 0x3d, 0x3e, 0x00, 0x70, 0x00, 0x00, 0x30, 0x06, 0x3e, 0x0f,
   0x00, 0x38, 0x00, 0x00, 0xc8, 0x8c, 0x1f, 0x07, 0x00, 0x38, 0x00, 0x00,
   0xf4, 0xcc, 0x8f, 0x07, 0x00, 0x1c, 0x00, 0x00, 0x72, 0xee, 0xf7, 0x07,
   0x00, 0x0e, 0x00, 0x00, 0x02, 0xff, 0xe3, 0x07, 0x00, 0x07, 0x00, 0x00,
   0x32, 0xfe, 0xc1, 0xff, 0x8f, 0x03, 0x00, 0x00, 0x3e, 0xfe, 0x80, 0xff,
   0xff, 0x01, 0x00, 0x00, 0x7e, 0x7c, 0x00, 0x00, 0x7e, 0x00, 0x00, 0x00,
   0x7c, 0x3c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xfc, 0x1c, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0xf8, 0x1c, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
   0xf0, 0x0f, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xe0, 0x07, 0x00, 0x00,
   0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00
}} -rotate -123

#
# Test bitmap 
#
#   1.   Test of rotated text bitmap
#   2.   Define bitmap from output of "data" command
#   3.   Define bitmap from X11 bitmap file
#   4.   Define bitmap from X10 bitmap file
#   5.   Define bitmap from internal Tcl list
#   6.   Use predefined internal bitmap 
#
set bitmapCount 0
proc ChangeBitmap { w } {
    global bitmapCount bitmapFile

    switch $bitmapCount {
      0 { $w  configure -bitmap sharky }
      1 { $w  configure -bitmap hobbes }
      2 { $w  configure -bitmap xbob }
      3 { $w  configure -bitmap gort }
      4 { $w  configure -bitmap question }
      5 { $w  configure -bitmap large_question }
      6 { $w  configure -bitmap questhead }
      7 { $w  configure -bitmap large_questhead }
      8 { $w  configure -bitmap BLT }
      9 { exit } 
    }
    incr bitmapCount
}

option add *center*padX 8
option add *center*padY 4

button .left -bitmap left -command { 
	.center configure -bitmap sharky ; set bitmapCount 1 
}
button .top -bitmap top -command {
	.center configure -bitmap hobbes ; set bitmapCount 2 
}
button .right -bitmap right -command {
	.center configure -bitmap xbob ; set bitmapCount 3 
}
button .bottom -bitmap bottom -command {
	.center configure -bitmap gort ; set bitmapCount 4 
}
button .center -bitmap center -command "ChangeBitmap .center"

set bitmapFile @bitmaps/sharky.bm
bitmap define sharky [bitmap data $bitmapFile]  -rotate 45 -scale 0.75
bitmap define large_question [bitmap data question]  -scale 2.0
bitmap define large_questhead [bitmap data questhead]  -scale 2.0

table . \
	.top	0,1 -fill x \
	.left   1,0 -fill y \
	.center 1,1 -fill both \
	.right  1,2 -fill y \
	.bottom 2,1 -fill x 
	
