home *** CD-ROM | disk | FTP | other *** search
/ Game Level Design / GLDesign.bin / Software / UnrealEngine2Runtime / UE2Runtime-22262001_Demo.exe / GUI / Classes / GUIImageList.uc < prev    next >
Text File  |  2003-06-30  |  2KB  |  125 lines

  1. // GUIImageList is simply a GUIImage that has its current image selected from an array
  2. // It rotates using mouse wheel/arrow keys
  3.  
  4. class GUIImageList extends GUIImage;
  5. //    Native;
  6.  
  7. var array<string> MatNames;
  8. var array<Material> Materials;
  9. var int CurIndex;
  10. var bool bWrap;
  11.  
  12. function InitComponent(GUIController MyController, GUIComponent MyOwner)
  13. {
  14.     Super.Initcomponent(MyController, MyOwner);
  15.     OnKeyEvent=internalKeyEvent;
  16. }
  17.  
  18. function AddMaterial(string MatName, out Material Mat)
  19. {
  20. local int i;
  21.  
  22.     if (Mat != None)
  23.     {
  24.         i = Materials.Length;
  25.         Materials[i]=Mat;
  26.         MatNames[i]=MatName;
  27.     }
  28. }
  29.  
  30. function string GetCurMatName()
  31. {
  32.     if (CurIndex >= 0 && CurIndex < Materials.Length)
  33.         return MatNames[CurIndex];
  34.  
  35.     return "";
  36. }
  37.  
  38. function SetIndex(int index)
  39. {
  40.     if (index >= 0 && index < Materials.Length)
  41.     {
  42.         CurIndex = index;
  43.         Image = Materials[index];
  44.     }
  45.     else
  46.     {
  47.         Image = None;
  48.         CurIndex = -1;
  49.     }
  50. }
  51.  
  52. function bool internalKeyEvent(out byte Key, out byte State, float delta)
  53. {
  54.     if ( ((Key==0x26 || Key==0x68 || Key==0x25 || Key==0x64) && (State==1)) || (key==0xEC && State==3) )    // Up/Left/MouseWheelUp
  55.     {
  56.         PrevImage();
  57.         return true;
  58.     }
  59.     
  60.     if ( ((Key==0x28 || Key==0x62 || Key==0x27 || Key==0x66) && (State==1)) || (key==0xED && State==3) )  // Down/Right/MouseWheelDn
  61.     {
  62.         NextImage();
  63.         return true;
  64.     }
  65.     
  66.     if ( (Key==0x24 || Key==0x67) && (State==1) ) // Home
  67.     {
  68.         FirstImage();
  69.         return true;
  70.     }
  71.     
  72.     if ( (Key==0x23 || Key==0x61) && (State==1) ) // End
  73.     {
  74.         LastImage();
  75.         return true;
  76.     }
  77.  
  78.     return false;
  79. }
  80.  
  81. function PrevImage()
  82. {
  83.     if (CurIndex < 1)
  84.     {
  85.         if (bWrap)
  86.             SetIndex(Materials.Length - 1);
  87.     }
  88.     else
  89.         SetIndex(CurIndex - 1);
  90. }
  91.  
  92. function NextImage()
  93. {
  94.     if (CurIndex < 0)
  95.         SetIndex(0);
  96.     else if ((CurIndex + 1) >= Materials.Length)
  97.     {
  98.         if (bWrap)
  99.             SetIndex(0);
  100.     }
  101.     else
  102.         SetIndex(CurIndex + 1);
  103. }
  104.  
  105. function FirstImage()
  106. {
  107.     if (Materials.Length > 0)
  108.         SetIndex(0);
  109. }
  110.  
  111. function LastImage()
  112. {
  113.     if (Materials.Length > 0)
  114.         SetIndex(Materials.Length - 1);
  115. }
  116.  
  117. defaultproperties
  118. {
  119.     StyleName="NoBackground"
  120.     bAcceptsInput=true
  121.     bCaptureMouse=True
  122.     bNeverFocus=false;
  123.     bTabStop=true
  124. }
  125.