ScreenShot
option explicit
dim nLastCategory, suitarray, Menu, gstrTitle, gSize, gHeight, gWidth, gAdd

gstrTitle = "S309PictureBox PlayingCard Example"
Menu = array("&File||File",gstrTitle,"|","http://members.xoom.com/S309")
setmenu "TitleBar",menu
Menu = array("E&xit||mnuFileExit")
setmenu "File", Menu

nLastCategory = 99  
suitarray = array("Clubs","Diamonds", "Hearts", "Spades")
if (Output.Width mod 2) = 1 then
 Output.Move 0, 0, (Output.ScaleX(Output.Width + 1, 3,1)), (Output.ScaleY(Output.Height, 3, 1))
end if    
output.backcolor=vbgreen
updatescreen

gSize = 1
gAdd = 1

addobject "S309.PictureBox.1","picCard",180,0,0,0
picCard.playingCard = 1
gHeight = picCard.imageHeight
gWidth = picCard.imageWidth
piccard.cls
piccard.backcolor=vbwhite
piccard.stretch = true

addobject "ComboBox","cmbCategory",10,5,160,140
cmbCategory.style = 2
cmbCategory.additem "Clubs (1 - 13)"
cmbCategory.additem "Diamonds (14 - 26)"
cmbCategory.additem "Hearts (27 - 39)"
cmbCategory.additem "Spades (40 - 52)"
cmbCategory.additem "Card Misc (53 - 59)"
cmbCategory.additem "Card Backs (61 - 66)"
cmbCategory.additem "Card Other (78 - 80)"

addobject "ComboBox","cmbCard",10,30,160,140
cmbCard.style = 2

addobject "ComboBox","cmbWildCard",10,55,160,120
cmbWildCard.style = 2
cmbWildCard.additem "No WildCard"
cmbWildCard.additem "Horizontal WildCard"
cmbWildCard.additem "Vertical WildCard"
cmbWildCard.additem "Center WildCard"
cmbWildcard.listindex = 0

addobject "ComboBox","cmbAnimateInterval",10,80,160,120
cmbAnimateInterval.style = 2
cmbAnimateInterval.additem "No Animation"
cmbAnimateInterval.additem "1 Second Animation"
cmbAnimateInterval.additem "2 Seconds Animation"
cmbAnimateInterval.additem "3 Seconds Animation"
cmbAnimateInterval.additem "4 Seconds Animation"
cmbAnimateInterval.additem "5 Seconds Animation"
cmbAnimateInterval.listindex = 0

addobject "ComboBox","cmbMirror",10,105,160,120
cmbMirror.style = 2
cmbMirror.additem "No Mirror"
cmbMirror.additem "Mirror Horizontal"
cmbMirror.additem "Mirror Veritcal"
cmbMirror.additem "Mirror Both"
cmbMirror.listindex = 0

addobject "ComboBox","cmbRotate",10,130,160,120
cmbRotate.style = 2
cmbRotate.additem "No Rotation"
cmbRotate.additem "Rotate 90"
cmbRotate.additem "Rotate 180 "
cmbRotate.additem "Rotate 270"
cmbRotate.listindex = 0

addobject "CheckBox", "chkInvert", 10,155,160,15
chkInvert.backcolor = output.backcolor
chkInvert.fontBold = true
chkInvert.caption = "Invert Colors"
addobject "Label","lblAnimationAvailable",10,175,160,15
lblAnimationAvailable.hide
lblAnimationAvailable.caption = "Animation Available"
lblAnimationAvailable.backcolor = output.backcolor
lblAnimationAvailable.fontBold = true
lblAnimationAvailable.alignment = 2

addobject "Label","lblClick",1,195,output.width,15
lblClick.hide
lblClick.caption = "Single Click on Card to Animate, Double Click On Card To Change Size"
lblClick.backcolor = output.backcolor
lblClick.fontBold = true
lblClick.alignment = 2
lblClick.show

picCard.zorder 0

cmbCategory.listindex = 0
call cmbCategory_Click()

sub mnuFileExit_Click()
  bye
end sub  

sub cmbCategory_Click()
  dim suit, listindex
  if cmbCategory.listindex < 4 then
    suit = suitarray(cmbCategory.listindex) 
    if nLastCategory < 4 then
      listindex = cmbCard.listindex
    else
      listindex = 0
    end if    
    cmbCard.clear
    cmbCard.additem "Ace of " & suit & " (" & cstr((cmbCategory.listindex * 13) + 1) & ")"
    cmbCard.additem "Two of " & suit & " (" & cstr((cmbCategory.listindex * 13) + 2) & ")"
    cmbCard.additem "Three of " & suit & " (" & cstr((cmbCategory.listindex * 13) + 3) & ")"
    cmbCard.additem "Four of " & suit & " (" & cstr((cmbCategory.listindex * 13) + 4) & ")"
    cmbCard.additem "Five of " & suit & " (" & cstr((cmbCategory.listindex * 13) + 5) & ")"
    cmbCard.additem "Six of " & suit & " (" & cstr((cmbCategory.listindex * 13) + 6) & ")"
    cmbCard.additem "Seven of " & suit & " (" & cstr((cmbCategory.listindex * 13) + 7) & ")"
    cmbCard.additem "Eight of " & suit & " (" & cstr((cmbCategory.listindex * 13) + 8) & ")"
    cmbCard.additem "Nine of " & suit & " (" & cstr((cmbCategory.listindex * 13) + 9) & ")"
    cmbCard.additem "Ten of " & suit & " (" & cstr((cmbCategory.listindex * 13) + 10) & ")"
    cmbCard.additem "Jack of " & suit & " (" & cstr((cmbCategory.listindex * 13) + 11) & ")"
    cmbCard.additem "Queen of " & suit & " (" & cstr((cmbCategory.listindex * 13) + 12) & ")"
    cmbCard.additem "King of " & suit & " (" & cstr((cmbCategory.listindex * 13) + 13) & ")"
    cmbCard.listindex = listindex
  elseif cmbCategory.listindex = 4 then
    if nLastCategory <> 4 then
      cmbCard.clear
      cmbCard.additem "Joker (53)"
      cmbCard.additem "Blank Card (54)"
      cmbCard.additem "Blank Face Card (55)"
      cmbCard.additem "Club Card (56)"
      cmbCard.additem "Diamond Card (57)"
      cmbCard.additem "Hearts Card (58)"
      cmbCard.additem "Spades Card (59)"
      cmbCard.listindex = 0
    end if  
  elseif cmbCategory.listindex = 5 then
    if nLastCategory <> 5 then
      cmbCard.clear
      if picCard.ScreenWidth = 240 then
        cmbCard.additem "Dragon (61)"
        cmbCard.additem "Pyramid (62)"
        cmbCard.additem "? I have no idea (63)"
        cmbCard.additem "Cheating Hand (64)"
        cmbCard.additem "Clover (65)"
        cmbCard.additem "Sailboat (66)"
     else
        cmbCard.additem "WIN32_WCE Horse (61)"
        cmbCard.additem "Haunted Castle (62)"
        cmbCard.additem "Bubbling Fish (63)"
        cmbCard.additem "Cheating Hand (64)"
        cmbCard.additem "Helpful Robot (65)"
        cmbCard.additem "Sailboat (66)"
      end if  
      cmbCard.listindex = 0
    end if  
  elseif cmbCategory.listindex = 6 then
    if nLastCategory <> 6 then
      cmbCard.clear
      cmbCard.additem "O Card (78)"
      cmbCard.additem "X Card (79)"
      cmbCard.additem "Ghost Card (80)"
      cmbCard.listindex = 0
    end if  
  end if
  call cmbCard_Click()
  nLastCategory = cmbCategory.listindex
end sub 
sub cmbCard_Click()
  call SetCardSize 
  if cmbCategory.listindex < 4 then
    picCard.PlayingCard = ((cmbCategory.listindex * 13) + cmbCard.listindex) + 1
  elseif cmbCategory.listindex = 4 then
    picCard.PlayingCard = cmbCard.listindex + 53
  elseif cmbCategory.listindex = 5 then
    picCard.PlayingCard = cmbCard.listindex + 61
  elseif cmbCategory.listindex = 6 then
    picCard.PlayingCard = cmbCard.listindex + 78
  end if
  if picCard.animationavailable then
    lblAnimationAvailable.show
  else
    lblAnimationAvailable.hide
  end if    
  picCard.waitcursor = false
end sub 
sub cmbAnimateInterval_Click()
  picCard.AnimationInterval = cmbAnimateInterval.listindex * 1000
end sub
sub picCard_Click()
'  call SetCardSize
  picCard.animate
end sub  
sub picCard_DblClick()
  gsize = gsize + gAdd
  if gsize < 1 then
    gsize = 1
    gadd = 1
  elseif ((gheight * gSize) > output.height) or ((gwidth * gSize) > output.width) then
    gadd = -1
    gSize = gSize + gAdd
  end if    
  picCard.move picCard.left, picCard.top, gwidth * gsize , gheight * gsize
end sub  
sub cmbWildCard_Click()
   picCard.wildcard = cmbwildcard.listindex
end sub      
sub chkInvert_Click()
  if chkInvert.value = 1 then
    picCard.Invert = true
  else
    picCard.Invert = false
  end if  
  picCard.InvertPicture
end sub  
sub cmbMirror_Click()
  picCard.Mirror = cmbMirror.listindex
'  btnMirror.Mirror = cmbMirror.listindex
end sub
sub cmbRotate_Click()
  picCard.Rotate = (cmbRotate.listindex * 90)
'  btnRotate.Rotate = (cmbRotate.listindex * 90)
end sub
sub SetCardSize()
  if (picCard.rotate = 90) or (picCard.rotate = 270) then
    gheight = 52
    gwidth = 70
    picCard.waitcursor = true
  else  
    gheight = 70
    gwidth = 52
    picCard.waitcursor = false
  end if  
  do while ((gheight * gSize) > output.height) or ((gwidth * gSize) > output.width)
    gSize = gSize - 1
    gAdd = -1
  loop   
  picCard.move picCard.left, picCard.top, gwidth * gsize , gheight * gsize
end sub