Core.Object | +--GUI.GUI | +--GUI.GUIComponent | +--GUI.GUIImage | +--GUI.GUIImageList
int
CurIndex
array
MatNames
Materials
bool
bWrap
void
AddMaterial(string MatName, out Material)
FirstImage()
string
GetCurMatName()
InitComponent(GUIController MyController, GUIComponent MyOwner)
LastImage()
NextImage()
PrevImage()
SetIndex(int index)
internalKeyEvent(out byte, out byte, float delta)
00001 // ==================================================================== 00002 // (c) 2002, Epic Games, Inc. All Rights Reserved 00003 // ==================================================================== 00004 00005 class GUIImageList extends GUIImage; 00006 // Native; 00007 00008 var array<string> MatNames; 00009 var array<Material> Materials; 00010 var int CurIndex; 00011 var bool bWrap; 00012 00013 function InitComponent(GUIController MyController, GUIComponent MyOwner) 00014 { 00015 Super.Initcomponent(MyController, MyOwner); 00016 OnKeyEvent=internalKeyEvent; 00017 } 00018 00019 function AddMaterial(string MatName, out Material Mat) 00020 { 00021 local int i; 00022 00023 if (Mat != None) 00024 { 00025 i = Materials.Length; 00026 Materials[i]=Mat; 00027 MatNames[i]=MatName; 00028 } 00029 } 00030 00031 function string GetCurMatName() 00032 { 00033 if (CurIndex >= 0 && CurIndex < Materials.Length) 00034 return MatNames[CurIndex]; 00035 00036 return ""; 00037 } 00038 00039 function SetIndex(int index) 00040 { 00041 if (index >= 0 && index < Materials.Length) 00042 { 00043 CurIndex = index; 00044 Image = Materials[index]; 00045 } 00046 else 00047 { 00048 Image = None; 00049 CurIndex = -1; 00050 } 00051 } 00052 00053 function bool internalKeyEvent(out byte Key, out byte State, float delta) 00054 { 00055 if ( ((Key==0x26 || Key==0x68 || Key==0x25 || Key==0x64) && (State==1)) || (key==0xEC && State==3) ) // Up/Left/MouseWheelUp 00056 { 00057 PrevImage(); 00058 return true; 00059 } 00060 00061 if ( ((Key==0x28 || Key==0x62 || Key==0x27 || Key==0x66) && (State==1)) || (key==0xED && State==3) ) // Down/Right/MouseWheelDn 00062 { 00063 NextImage(); 00064 return true; 00065 } 00066 00067 if ( (Key==0x24 || Key==0x67) && (State==1) ) // Home 00068 { 00069 FirstImage(); 00070 return true; 00071 } 00072 00073 if ( (Key==0x23 || Key==0x61) && (State==1) ) // End 00074 { 00075 LastImage(); 00076 return true; 00077 } 00078 00079 return false; 00080 } 00081 00082 function PrevImage() 00083 { 00084 if (CurIndex < 1) 00085 { 00086 if (bWrap) 00087 SetIndex(Materials.Length - 1); 00088 } 00089 else 00090 SetIndex(CurIndex - 1); 00091 } 00092 00093 function NextImage() 00094 { 00095 if (CurIndex < 0) 00096 SetIndex(0); 00097 else if ((CurIndex + 1) >= Materials.Length) 00098 { 00099 if (bWrap) 00100 SetIndex(0); 00101 } 00102 else 00103 SetIndex(CurIndex + 1); 00104 } 00105 00106 function FirstImage() 00107 { 00108 if (Materials.Length > 0) 00109 SetIndex(0); 00110 } 00111 00112 function LastImage() 00113 { 00114 if (Materials.Length > 0) 00115 SetIndex(Materials.Length - 1); 00116 } 00117 00118 00119 00120 defaultproperties 00121 { 00122 bAcceptsInput=True 00123 bCaptureMouse=True 00124 bTabStop=True 00125 }