Áƒ*žE;@0¿³žM® ¡õÎzšÖ»F0„vc·0;NoneCoreEWindowSystemUWindowInternalTimeColor BeforePaintEWindowLookAndFeelMipZerobMaskedUBitsUClampVClampVBitsVSizePaletteUSize LMouseUpCreatedListbox_DrawItemSetHelpRadiobox_DrawRadiobox_SetupSizes RGBColorEnhancedCheckboxEWindowRadioboxListbox_DrawListbox_SetupSizesNotify ListClassCheckbox_SetupSizesAppend DeSelectCloseUp HideWindowPaint AddMenuItemEnhancedComboControlEnhancedDialogClientWindowEnhancedEditControlLookAndFeelModMenuItemEnhancedPulldownMenuEnhancedPulldownMenuItemEWindowListBoxItemEWindowListBoxEnhancedRightClickMenuSelectCheckbox_DrawMouseInRegionGetItemValue2ClearSelectedTextColor SelectedBGGetItemValue SetFrame CountShown RMouseUp ItemHeightFindItemIndexInsertControlFrame_SetupSizes ControlBGRemove RemoveItem SetRange DrawItemUMenuAddItem InsertItem RMouseDownGetDesiredDimensions GetItemAt SetCaptionCompareFocusOtherWindow LMouseDown ShowWindowFindItemIndex2ControlFrame_DrawBeforeCreateWSelectedItem ScriptTextiYEObjectPropertyNamePropertyUWindowLookAndFeelClassPropertyFrameGroupHRegionValue bCheckedNext MiscBevelB MiscBevelRB MiscBevelLFloatProperty Palette1RG ParentMenuTexttMItemOwnerLUWindowEditControlUWindowPulldownMenuItemUWindowSmallCloseButtonUWindowDialogClientWindowUWindowControlFrame UWindowListUWindowListControlUWindowComboControlUWindowRootWindowUWindowCheckboxUWindowDialogControlUWindowButtonUWindowWindowUWindowPulldownMenu UWindowBaseUWindowListBoxUWindowListBoxItemUWindowMenuBarItem MiscBevelTCloseBoxDown CloseBoxUpCloseBoxOffsetXFrameSB FrameSBL TextSizeSBRightDisabled SBRightDown StrPropertyStructProperty DrawColor SBLeftUpSBDownDisabled SBDownDown SBDownUpSBUpDisabled SBUpDownSBUpUpPulldown_HBorderPulldown_VBorderPulldown_TextBorderPulldown_ItemHeightSetSizeSetAcceptsFocus GetMouseXYBytePropertyCreateWindowDrawStretchedTexture ClipTextMiscDrawMiscBevelRemoveAmpersand bSelectedCloseBoxOffsetY ReturnValueCanvas NewHelpTextIndexSetPosUWindowVScrollbar FrameSBRNextSiblingWindowDisabledRegionC bUseRegionImageXImageYFirstChildWindow bDisabledAlignParentWindow bIgnoreCase DownTextureWinLeft UpTextureDisabledTextureWhiteTexture OverTexture DownRegion SortWeightItems bTransientVBorderHBorderEditBoxWidthValue2 MaxWidthDefaultHelpText OverItemCaption WinHeight WinWidthWinTop bByOwnerMouseYMouseXRootVertSB TextBorderIconsFramedFontsItemTopTIBITSBSbHelptHGraphicSubMenutW LookAndFeel CloseButton SBLeftDownUMenuRootWindowUMenuStatusBarUMenuModMenuItem StatusBarWinBoolProperty IntPropertyFontPackage FunctionEngineStructXObject TextBuffer SBRightUpSBLeftDisabled HelpText bAutoSizebOpenedToLefttmpbIntegralHeightbGrayed AltValue EChkCheckedEChkUnchecked EChkGrayed OptCheckedOptUnchecked ButtonUp ButtonDown ButtonOverButtonDisabledSBVUpTSBVUpBSBVUpMSBVUpC SBVDownT SBVDownB SBVDownM SBVDownC SBVOverT SBVOverB SBVOverM SBVOverCSBHUpLSBHUpRSBHUpMSBHUpC SBHDownL SBHDownR SBHDownM SBHDownC SBHOverL SBHOverR SBHOverM SBHOverC SBUpOver SBDownOver SBLeftOver SBRightOver TabOverL TabOverM TabOverRCloseBoxOverComboBtnOver ComboLeftUpComboLeftDownComboLeftOverComboLeftDisabledComboRightUpComboRightDownComboRightOverComboRightDisabledTextXControlTextColorTextY UpRegionConfigWindowMenuCount OverRegionmXmYParentClassTexturebWindowVisibleEditBoxBevel­ci,ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ­ò­yŸ&.­ò­ò­ò­ò­ò­ò’ŠnÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿS*0WŠ|.XÚƒ.ü'lƒ.ü'lƒ.ü'lS*0WS*0Wƒ.ü'l“¼ÔŒŽ µ¼äc“¼ÔŒŽ“¼ÔŒŽ µ¼äc“¼ÔŒŽ’y€ŠH€ŒPg*ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ)˜~DŒÕ¶mê‰x�©o û‰x�”K4èž�;aG°�;aG°�;aG°ÁEf¼$ƒ.ü'lƒ.ü'lƒ.ü'lŒÕ¶mêŒÕ¶mêŒÕ¶mê©o û˜~DŒÕ¶mêŒÕ¶mêŒÕ¶mêŒÕ¶mê©o ûŒÕ¶mêŒÕ¶mê©o û©o û˜~D˜~D�;aG°˜~D˜~D”K4èž�;aG°�;aG°�;aG°C¦�Ù“¼ÔŒŽ“¼ÔŒŽ“¼ÔŒŽ“¼ÔŒŽ’CIŒ1€‰tŒ“omÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿc µ¼äc“¼ÔŒŽ‰x�–e•–e•–e•‰x�–e•–e•–e•–e•ƒ.ü'l–e•ƒ.ü'l–e•ƒ.ü'l–e•–e•­ò‰x�JôÑO‰x�‰x�‰x�JôÑO©o ûJôÑO­òS*0WS*0WS*0WS*0WS*0WS*0WS*0WS*0WS*0WS*0WS*0WS*0WS*0WS*0WS*0WS*0WS*0WS*0WS*0WS*0WS*0WS*0WS*0WS*0WS*0WS*0WS*0WS*0WS*0WS*0WS*0WS*0WŠ|.XÚŠ|.XÚŠ|.XÚŠ|.XÚŠ|.XÚŠ|.XÚŠ|.XÚŠ|.XÚŠ|.XÚŠ|.XÚŠ|.XÚŠ|.XÚŠ|.XÚŠ|.XÚŠ|.XÚŠ|.XÚŠ|.XÚŠ|.XÚŠ|.XÚŠ|.XÚŠ|.XÚŠ|.XÚŠ|.XÚŠ|.XÚMWWuŠ|.XÚŠ|.XÚŠ|.XÚŠ|.XÚŠ|.XÚŠ|.XÚŠ|.XÚŠ|.XÚŠ|.XÚŠ|.XÚŠ|.XÚŠ|.XÚŠ|.XÚƒ.ü'l’>*ÿÿÿ5*€4*ÿÿÿ@ ƒ !€–ªk-ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ4JôÑOª¤”K4èž­ò­ò­ò”K4èž­ò­ò­ò”K4èž­ò­ò”K4èž­ò­ò”K4èž­ò­ò”K4èž­ò­ò­ò”K4èž­ò­ò­ò“¼ÔŒŽ µ¼äc­ò‰x�‰x�‰x�‰x�‰x�‰x�‰x�‰x�‰x�‰x�©o û­ò“¼ÔŒŽ µ¼äc“¼ÔŒŽ µ¼äcú£½þË”K4èž­yŸ&.­yŸ&.ƒ.ü'l–e•’:$PAX€‰�}€‰ "@Dh€–7�?B€‰@#­0&@ÿÿÿ€€€ÿÀÀÀÿßßßÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ5€ƒ™M€‰@ Ó( " " " " *ØHH"±h異Í$'@ 2@G€”@ Ó( " " " " *Érr"Ól‰¢¢Í$�+@ < Ó( " " " " *Ô}}"�鞢Í$ã/@ €C€‰ Ó( " " " " *Ånn"ÿW›¢Í$U4@  Ó( " " " " *áQQ"ЕA©¢Í$Ÿ8@ =k€‰�O~+ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿC¦�Ù�;aG°˜~D˜~D˜~DŒÕ¶mêŒÕ¶mêŒÕ¶mêŒÕ¶mêŒÕ¶mêŒÕ¶mêŒÕ¶mêŒÕ¶mê˜~D˜~DŒÕ¶mê’LS€F€Ì÷bÞýÃDœÑ»DœÐ±DœÎÝDœÏ p–^\€@ŠlnÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿMWWuŠ|.XÚ’h€‰V€‰Zf„n€T€€R€i€@Q„U€W€‰U€Z€g€@W„J€zd€‘€]„€l€‰d€G�t€d�s€%€k€�a€I€q€@r�@+�€€v€@w�@$�s€.€‰A€{€~€€€€Q™A™D€€|€G€€>€‰B™@)N€€[€ƒ|™S€€o€`€X€P€b€Ím€°_€”l€”K€i€âfaVÌd e$b‚w. ¡*w. ¡½*. ¡½aʺ ·$ ´‚w. ¡*w. ¡½*. ¡½º ÿÿâad ÒbYG!>óYb¸b?, €@äJP ¨KJ.–³Û –—®�•J7ä æ[ �<æ[.ÍÛ Í¯�?,8¯•?,@B€A ðuAK:f7.)ÈB5%AÉ%¡(ÎAÈ.�¬£äw*¥5¨AòñELȱE))E.�£s�®)?�’±Ý,•?’�Ã5�»,…„‚w.Á¼*.Á¼-þ±®—�³�—¯³��‘‚‚w*š„„„±®�—³�7±¯®—�?±—±®—�¡�‚w7*7-I+±¯®—?±�?%—¯®—?±�-I'‚‚w*±®®•¡•*°•®®®?Ã?�,»¹®¯¯•?Ã?�,»®?úùD®D¯¡••%—?úùD—D¯¡��% ÿo*K)qäû*Nw*2r* .}w.�¼*}r.�¼¦* Ów*¤r* ·r.*Ó.ˆâ-Ô" ÷ ]J ¹'.]&._˜š'&0ë' 2ë& ~z02%“s02ÿÿÿÿ&·“'& zf2‹æ q.¬£B%lw*IšBf¥B.£  w€'€€�Â{R'ý%�-Ò-^(ÂRS ÝHL%Xx.�¬  Ц ILÓ\.CKL çTY™L5-T¨Y¤PZį�PçYWX ËeeßóÏ„�œa/!�. œ eÀ)A?¬8?D¬•ô#ÂÏwã*%HlkÏ‚r%ã{%Þ#%Þñ{#ÊÊ#$ €@@ëh3@a*ë ßPOœL5-P¨O¤K^ï¯�KßOV` E€T// EWindow by Wormbo //============================================================================= // EnhancedEditControl - support auto-size based on caption size //============================================================================= class EnhancedEditControl extends UWindowEditControl; var bool bAutoSize; function BeforePaint(Canvas C, float X, float Y) { local float TW, TH; if ( bAutoSize ) { TextSize(C, Text, TW, TH); EditBoxWidth = WinWidth - TW; } Super.BeforePaint(C, X, Y); } ´xq(ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿyDÌþG´tµð’Ej6xÀ q.¬£D%lw*IšDj ¥D.£  Ì^-Ú>Ì-MN<-JCz¤ •Òsš:«:$¨-p¤  ½£š:«:$¨-p ¤ ½¨-¤  ?úD D•ýš:«:$¹—¯® �**š:«:$¹—¬¯® �?,�®  j_@ž�š_ÿÿÿÿ .¬£?%w*\š?_? ¥?.£1 õA@F L@ Ö@!”’w¢*O‚w.¦*r.¦¢.¦*tw.¢*.¢*¢!¢# ÂxF8�œŠ�-ҳʊw*s‚a/!þ.``.-Ï(ÁÂFG ÕK/ lÖÔw¢*¢—¯®¦—¦�?¦±¢®¯Æ?¦»œw.¦*.¦.¢Åw.¢*.¢¦¢M H I-í'H C„D„E„F„G„H„I„S„|pD³\]+.¬  Ð+ p+q+r L„M„N„O„P„Q„R„S„T„U„V„W„X„Y„Z„[„\„]„^„_„`„a„b„c„d„e„f„g„h„i„j„k„l„m„nop„q„r„s„t„u„v„w„I„Ç{9$-…]1œa/!. œ 9Fœ 09Å9CD ö}x9áxs áym"%á-m# Ì`¢„1œa/!. œ Fœ m-ztz¤ •¤š:«:$¨p¤  îÔš:«:$¨p ¤   ?úD D•.š:«:$¹—¯® �[[š:«:$¹—¬¯® �?,�® î}~ @cE`í86À,E6Ä,|6¿,{, g„JuE½Q]$.¬ <Ð$ u$v$w ~„,€™W// EWindow by Wormbo //============================================================================= // EnhancedComboControl - support auto-size based on caption size //============================================================================= class EnhancedComboControl extends UWindowComboControl; var bool bAutoSize; function BeforePaint(Canvas C, float X, float Y) { local float TW, TH; if ( bAutoSize ) { TextSize(C, Text, TW, TH); EditBoxWidth = WinWidth - TW; } Super.BeforePaint(C, X, Y); } }O1j� iOì4<‚‚‚±4[°4®[U±<Z°<®Zo H„e\Nc[ �.¬£ %•w*T‚-g|\ rz\ ¥ .£ ÿÿÿÿ àrN$)L5‚œa/!. œ N àNht €@„4€µBv&ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿJÚ2:âµ_ã‰4’A// EWindow by Wormbo //============================================================================= // EnhancedDialogClientWindow - displays tooltips for its controls //============================================================================= class EnhancedDialogClientWindow extends UWindowDialogClientWindow abstract; var UWindowSmallCloseButton CloseButton; function Created() { Super.Created(); CloseButton = UWindowSmallCloseButton(CreateWindow(class'UWindowSmallCloseButton', WinWidth-56, WinHeight-24, 48, 16)); } function Notify(UWindowDialogControl C, byte E) { switch(E) { // these are used to display tooltips case DE_MouseMove: if ( UMenuRootWindow(Root) != None && UMenuRootWindow(Root).StatusBar != None) UMenuRootWindow(Root).StatusBar.SetHelp(C.HelpText); break; case DE_MouseLeave: if ( UMenuRootWindow(Root) != None && UMenuRootWindow(Root).StatusBar != None) UMenuRootWindow(Root).StatusBar.SetHelp(""); break; } Super.Notify(C, E); } function GetDesiredDimensions(out float W, out float H) { Super(UWindowWindow).GetDesiredDimensions(W, H); H += 30; } ÚCr; #¨y¤.@•?úD®@?&,« ˜$¯¯�?,²3 Ø$¯²¯�.3 0$¯¬¯�?,?,²¬¯�.?,3 ÿÿÖ¬¯•?,?,Ó¬¯•@?,-Ø'ÕcÙ]ÑW×Qd‚a/!.M-^¶ 3º 3¹ 3¸ 3É-϶ :º :¹ :¸ :¶ 6º 6¹ 6¸ 6 ·Kc'ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ MV(¢·ÚãÌ~ ‘imŸ ‘imŸê{Oêà‘)æ›ü ‘imŸ ‘imŸê{Oêà’øFB1¬S‚œa/!9. œ*.1GFST .1-å6Àž$6Äž$6¿ž$€ÅGFS¯T?& È6Àž=,ÿ6Äž=,ÿ6¿ž=,ÿ^6Àž$6Äž$6¿ž$É%¡(ÎÔ®G?,F.1  ]// EWindow by Wormbo //============================================================================= // EnhancedPulldownMenuItem - menu item for EnhancedPulldownMenu //============================================================================= class EnhancedPulldownMenuItem extends UWindowPulldownMenuItem; var string AltValue; function Select() { if ( SubMenu != None ) { SubMenu.WinLeft = Owner.WinLeft + Owner.WinWidth - Owner.HBorder; SubMenu.WinTop = ItemTop - Owner.VBorder; if ( EnhancedPulldownMenu(Owner) != None ) EnhancedPulldownMenu(Owner).SubMenu = EnhancedPulldownMenu(SubMenu); if ( EnhancedPulldownMenu(SubMenu) != None ) EnhancedPulldownMenu(SubMenu).ParentMenu = Owner; SubMenu.ShowWindow(); } } function DeSelect() { if ( SubMenu != None ) { if ( EnhancedPulldownMenu(Owner) != None && EnhancedPulldownMenu(Owner).SubMenu == SubMenu ) EnhancedPulldownMenu(Owner).SubMenu = None; if ( EnhancedPulldownMenu(SubMenu) != None ) EnhancedPulldownMenu(SubMenu).ParentMenu = None; SubMenu.DeSelect(); SubMenu.HideWindow(); } } ^2// EWindow by Wormbo //============================================================================= // EnhancedPulldownMenu - handles more than one submenu //============================================================================= class EnhancedPulldownMenu extends UWindowPulldownMenu; var EnhancedPulldownMenu SubMenu; // currently opened submenu var UWindowPulldownMenu ParentMenu; // EnhancedPulldownMenu(ParentMenu).SubMenu == Self var bool bOpenedToLeft; function Created() { SetAcceptsFocus(); Super(UWindowListControl).Created(); ItemHeight = LookAndFeel.Pulldown_ItemHeight; VBorder = LookAndFeel.Pulldown_VBorder; HBorder = LookAndFeel.Pulldown_HBorder; TextBorder = LookAndFeel.Pulldown_TextBorder; } function UWindowPulldownMenuItem AddMenuItem(string C, Texture G) { local UWindowPulldownMenuItem I; I = UWindowPulldownMenuItem(Items.Append(ListClass)); I.Owner = Self; I.SetCaption(C); I.Graphic = G; EnhancedPulldownMenuItem(I).AltValue = C; return I; } function FocusOtherWindow(UWindowWindow W) { local UWindowPulldownMenu M; local string tmp; Super(UWindowListControl).FocusOtherWindow(W); for (M = SubMenu; M != None; M = EnhancedPulldownMenu(M).SubMenu) if ( W == M ) return; if ( UWindowPulldownMenuItem(Owner) != None ) if ( UWindowPulldownMenuItem(Owner).Owner == W ) return; For (M = ParentMenu; M != None; M = EnhancedPulldownMenu(M).ParentMenu) { if ( W == M ) return; if ( EnhancedPulldownMenu(M) == None ) break; } if ( bWindowVisible ) CloseUp(); } function Clear() { SubMenu = None; Super.Clear(); } function BeforePaint(Canvas C, float X, float Y) { local float W, H, MaxWidth; local int Count; local UWindowPulldownMenuItem I; local EnhancedPulldownMenu Parent; Parent = EnhancedPulldownMenu(ParentMenu); MaxWidth = 100; Count = 0; C.Font = Root.Fonts[F_Normal]; C.SetPos(0, 0); for (I = UWindowPulldownMenuItem(Items.Next); I != None; I = UWindowPulldownMenuItem(I.Next)) { Count++; TextSize(C, RemoveAmpersand(I.Caption), W, H); if ( W > MaxWidth ) MaxWidth = W; } WinWidth = MaxWidth + (HBorder + TextBorder) * 2; WinHeight = ItemHeight * Count + VBorder * 2; // Take care of bHelp items if ( (UWindowMenuBarItem(Owner) != None && UWindowMenuBarItem(Owner).bHelp) || WinLeft + WinWidth > ParentWindow.WinWidth ) WinLeft = ParentWindow.WinWidth - WinWidth; if ( ParentMenu != None && (WinWidth + WinLeft > ParentWindow.WinWidth || ParentMenu.WinLeft + ParentMenu.WinWidth - ParentMenu.HBorder > WinLeft || WinLeft + WinWidth > Root.WinWidth || (Parent != None && Parent.bOpenedToLeft)) && ParentMenu.WinLeft + ParentMenu.HBorder - WinWidth > 0 ) { WinLeft = ParentMenu.WinLeft + ParentMenu.HBorder - WinWidth; bOpenedToLeft = True; } if ( ParentMenu != None && WinTop + WinHeight > Root.WinHeight && WinHeight < WinTop + ParentMenu.ItemHeight + 2 * VBorder ) WinTop -= WinHeight - ParentMenu.ItemHeight - 2 * VBorder; WinTop = Max(Min(WinTop, Root.WinHeight - WinHeight), 0); WinLeft = Max(Min(WinLeft, Root.WinWidth - WinWidth), 0); } L¤3›#¨H¤>=•?úD®=?&,« ˜$¯¯�?,²3 Ø$¯²¯�>3 0$¯¬¯�?,?,²¬¯�>?,3 ÿÿÖ¬¯•?,?,Ó¬¯•=?,-Ø'ÕcÙ]ÑW×QI-϶ /º /¹ /¸ /™¶ ;º ;¹ ;¸ ; 9class LookAndFeelModMenuItem extends UMenuModMenuItem; K„èR)ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿ2Ta¤'èÑ”ŠÏC’U // EWindow by Wormbo //============================================================================= // EnhancedRightClickMenu - handles more than one submenu //============================================================================= class EnhancedRightClickMenu extends EnhancedPulldownMenu; function Created() { bTransient = True; Super.Created(); } function RMouseDown(float X, float Y) { LMouseDown(X, Y); } function RMouseUp(float X, float Y) { LMouseUp(X, Y); } function CloseUp(optional bool bByOwner) { Super.CloseUp(bByOwner); HideWindow(); } QWÌ X€€‰VZÍO [€\€‰€Y^Έ _€`€‰€]8Ò ßnX-åžA8(ÅURn¯a?& ÈžQ‚žBÉ%8¡(Î8(Ô®U?,RX ' Uz.ÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿÿbsƒ�˜~D’G class EWindowListBoxItem expands UWindowListBoxItem; var string Value; var string Value2; // A second, non-displayed value var int SortWeight; function int Compare(UWindowList T, UWindowList B) { local EWindowListBoxItem TI, BI; local string TS, BS; TI = EWindowListBoxItem(T); BI = EWindowListBoxItem(B); if ( TI.SortWeight == BI.SortWeight ) { TS = Caps(TI.Value); BS = Caps(BI.Value); if ( TS == BS ) return 0; if ( TS < BS ) return -1; return 1; } else return TI.SortWeight - BI.SortWeight; } €NV;NÜ�.¬£"%•w*T‚-i| V"rz V"¥".£ ÿÿÿÿ D„B„€‰€×a=ã‘ßéË—?6ÆÜË®?6ÇÚËnͯ¯�?6ÆÜ?6Æü¯¯•?6ÇÚ?6Çù NC//============================================================================= // EWindowListBox - a listbox with frame //============================================================================= class EWindowListBox extends UWindowListBox; var UWindowControlFrame Frame; var bool bIntegralHeight; // LookAndFeel should adjust height, so last visible item is completely displayed function BeforeCreate() { Frame = UWindowControlFrame(ParentWindow.CreateWindow(class'UWindowControlFrame', WinLeft, WinTop, WinWidth, WinHeight)); Frame.SetFrame(Self); Super.BeforeCreate(); } function BeforePaint(Canvas C, float MouseX, float MouseY) { local UWindowListBoxItem OverItem; local string NewHelpText; if ( !LookAndFeel.IsA('EWindowLookAndFeel') || !EWindowLookAndFeel(LookAndFeel).Listbox_SetupSizes(Self, C) ) { VertSB.SetRange(0, Items.CountShown(), int(WinHeight/ItemHeight)); NewHelpText = DefaultHelpText; if ( SelectedItem != None ) { OverItem = GetItemAt(MouseX, MouseY); if ( OverItem == SelectedItem && OverItem.HelpText != "" ) NewHelpText = OverItem.HelpText; } } if ( NewHelpText != HelpText ) { HelpText = NewHelpText; Notify(DE_HelpChanged); } } function Paint(Canvas C, float MouseX, float MouseY) { if ( LookAndFeel.IsA('EWindowLookAndFeel') && EWindowLookAndFeel(LookAndFeel).Listbox_Draw(Self, C) ) return; Super.Paint(C, MouseX, MouseY); } function DrawItem(Canvas C, UWindowList Item, float X, float Y, float W, float H) { if ( LookAndFeel.IsA('EWindowLookAndFeel') && EWindowLookAndFeel(LookAndFeel).Listbox_DrawItem(Self, C, EWindowListboxItem(Item), X, Y, W, H) ) return; if ( EWindowListboxItem(Item).bSelected ) { C.DrawColor.R = 0; C.DrawColor.G = 0; C.DrawColor.B = 128; DrawStretchedTexture(C, X, Y, W, H - 1, Texture'WhiteTexture'); C.DrawColor.R = 255; C.DrawColor.G = 255; C.DrawColor.B = 255; } else { C.DrawColor.R = 0; C.DrawColor.G = 0; C.DrawColor.B = 0; } C.Font = Root.Fonts[F_Normal]; ClipText(C, X + 2, Y, EWindowListBoxItem(Item).Value); } function int FindItemIndex(string Value, optional bool bIgnoreCase) { local EWindowListBoxItem I; local int Count; I = EWindowListBoxItem(Items.Next); Count = 0; while (I != None) { if ( bIgnoreCase && I.Value ~= Value ) return Count; if ( I.Value == Value ) return Count; Count++; I = EWindowListBoxItem(I.Next); } return -1; } function int FindItemIndex2(string Value2, optional bool bIgnoreCase) { local EWindowListBoxItem I; local int Count; I = EWindowListBoxItem(Items.Next); Count = 0; while (I != None) { if ( bIgnoreCase && I.Value2 ~= Value2 ) return Count; if ( I.Value2 == Value2 ) return Count; Count++; I = EWindowListBoxItem(I.Next); } return -1; } function string GetItemValue(int Index) { local EWindowListBoxItem I; local int Count; I = EWindowListBoxItem(Items.Next); Count = 0; while (I != None) { if ( Count == Index ) return I.Value; Count++; I = EWindowListBoxItem(I.Next); } return ""; } function string GetItemValue2(int Index) { local EWindowListBoxItem I; local int Count; I = EWindowListBoxItem(Items.Next); Count = 0; while (I != None) { if ( Count == Index ) return I.Value2; Count++; I = EWindowListBoxItem(I.Next); } return ""; } function RemoveItem(int Index) { local EWindowListBoxItem I; local int Count; if(Index == -1) return; I = EWindowListBoxItem(Items.Next); Count = 0; while (I != None) { if ( Count == Index ) { I.Remove(); return; } Count++; I = EWindowListBoxItem(I.Next); } } function AddItem(string Value, optional string Value2, optional int SortWeight) { local EWindowListBoxItem I; I = EWindowListBoxItem(Items.Append(ListClass)); I.Value = Value; I.Value2 = Value2; I.SortWeight = SortWeight; } function InsertItem(string Value, optional string Value2, optional int SortWeight) { local EWindowListBoxItem I; I = EWindowListBoxItem(Items.Insert(ListClass)); I.Value = Value; I.Value2 = Value2; I.SortWeight = SortWeight; } E//============================================================================= // EnhancedCheckbox - a checkbox //============================================================================= class EnhancedCheckbox extends UWindowCheckbox; var bool bGrayed; // unspecified state (neither checked nor unchecked) var bool bAutoSize; // adjust the size of the control to its Text's size function BeforePaint(Canvas C, float X, float Y) { local float TW, TH; Super.BeforePaint(C, X, Y); if ( bAutoSize ) { if ( Text == "" ) { TW = 0; TH = WinHeight; } else { if ( Align == TA_Left ) TextSize(C, Text $ " ", TW, TH); else if ( Align == TA_Right ) TextSize(C, " " $ Text, TW, TH); else TextSize(C, Text, TW, TH); TH = Max(TH, WinHeight); } if ( Align == TA_Left ) WinLeft -= TW + TH - WinWidth; else if ( Align == TA_Center ) WinLeft -= (TW + TH - WinWidth) / 2; WinWidth = TW + TH; } } function LMouseUp(float X, float Y) { if ( !bDisabled ) bGrayed = False; Super.LMouseUp(X, Y); } ØjOì­·!žI6Å!�• È!ž=,ÿ=,ÿ=,ÿ;Ã!�•Ùé C//============================================================================= // EWindowRadiobox - a radio box //============================================================================= class EWindowRadiobox extends UWindowCheckbox; var name Group; var bool bAutoSize; // adjust the size of the control to its Text's size function BeforePaint(Canvas C, float X, float Y) { local float TW, TH; if ( LookAndFeel.IsA('EWindowLookAndFeel') ) EWindowLookAndFeel(LookAndFeel).Radiobox_SetupSizes(Self, C); else LookAndFeel.Checkbox_SetupSizes(Self, C); if ( bAutoSize ) { if ( Text == "" ) { TW = 0; TH = WinHeight; } else { if ( Align == TA_Left ) TextSize(C, Text $ " ", TW, TH); else if ( Align == TA_Right ) TextSize(C, " " $ Text, TW, TH); else TextSize(C, Text, TW, TH); TH = Max(TH, WinHeight); } if ( Align == TA_Left ) WinLeft -= TW + TH - WinWidth; else if ( Align == TA_Center ) WinLeft -= (TW + TH - WinWidth) / 2; WinWidth = TW + TH; } Super(UWindowButton).BeforePaint(C, X, Y); } function Paint(Canvas C, float X, float Y) { if ( LookAndFeel.IsA('EWindowLookAndFeel') ) EWindowLookAndFeel(LookAndFeel).Radiobox_Draw(Self, C); else LookAndFeel.Checkbox_Draw(Self, C); Super(UWindowButton).Paint(C, X, Y); } function LMouseUp(float X, float Y) { local UWindowWindow W; if ( !bDisabled ) For (W = ParentWindow.FirstChildWindow; W != None; W = W.NextSiblingWindow) if ( W.IsA('EWindowRadiobox') && EWindowRadiobox(W).Group == Group ) EWindowRadiobox(W).bChecked = False; Super.LMouseUp(X, Y); } U^class EWindowLookAndFeel extends UWindowLookAndFeel; #exec TEXTURE IMPORT NAME=EChkChecked FILE=Textures\EChkChecked.pcx GROUP="Icons" FLAGS=2 MIPS=OFF #exec TEXTURE IMPORT NAME=EChkUnchecked FILE=Textures\EChkUnchecked.pcx GROUP="Icons" FLAGS=2 MIPS=OFF #exec TEXTURE IMPORT NAME=EChkGrayed FILE=Textures\EChkGrayed.pcx GROUP="Icons" FLAGS=2 MIPS=OFF #exec TEXTURE IMPORT NAME=OptChecked FILE=Textures\OptChecked.pcx GROUP="Icons" FLAGS=2 MIPS=OFF #exec TEXTURE IMPORT NAME=OptUnchecked FILE=Textures\OptUnchecked.pcx GROUP="Icons" FLAGS=2 MIPS=OFF // buttons var Region ButtonUp; var Region ButtonDown; var Region ButtonOver; var Region ButtonDisabled; var Region SBVUpT; var Region SBVUpB; var Region SBVUpM; var Region SBVUpC; var Region SBVDownT; var Region SBVDownB; var Region SBVDownM; var Region SBVDownC; var Region SBVOverT; var Region SBVOverB; var Region SBVOverM; var Region SBVOverC; var Region SBHUpL; var Region SBHUpR; var Region SBHUpM; var Region SBHUpC; var Region SBHDownL; var Region SBHDownR; var Region SBHDownM; var Region SBHDownC; var Region SBHOverL; var Region SBHOverR; var Region SBHOverM; var Region SBHOverC; var Region SBUpUp; var Region SBUpDown; var Region SBUpOver; var Region SBUpDisabled; var Region SBDownUp; var Region SBDownDown; var Region SBDownOver; var Region SBDownDisabled; var Region SBLeftUp; var Region SBLeftDown; var Region SBLeftOver; var Region SBLeftDisabled; var Region SBRightUp; var Region SBRightDown; var Region SBRightOver; var Region SBRightDisabled; var Region FrameSBL; var Region FrameSB; var Region FrameSBR; var Region TabOverL; var Region TabOverM; var Region TabOverR; var Region CloseBoxUp; var Region CloseBoxDown; var Region CloseBoxOver; var int CloseBoxOffsetX; var int CloseBoxOffsetY; var Region ComboBtnOver; var Region ComboLeftUp; var Region ComboLeftDown; var Region ComboLeftOver; var Region ComboLeftDisabled; var Region ComboRightUp; var Region ComboRightDown; var Region ComboRightOver; var Region ComboRightDisabled; var color ControlBG, ControlTextColor, SelectedBG, SelectedTextColor; var string ConfigWindowMenu; function color RGBColor(byte R, byte G, byte B) { local color C; C.R = R; C.G = G; C.B = B; return C; } function bool MouseInRegion(UWindowWindow Win, float X, float Y, float W, float H) { local float mX, mY; Win.GetMouseXY(mX, mY); return mX > X && mX < X + W && mY > Y && mY < Y + H; } function Checkbox_SetupSizes(UWindowCheckbox W, Canvas C) { local float TW, TH; W.TextSize(C, W.Text, TW, TH); W.WinHeight = Max(TH + 1, 16); switch(W.Align) { case TA_Left: W.ImageX = W.WinWidth - 16; W.TextX = 0; break; case TA_Right: W.ImageX = 0; W.TextX = W.WinWidth - TW; break; case TA_Center: W.ImageX = (W.WinWidth - 16) / 2; W.TextX = (W.WinWidth - TW) / 2; break; } W.ImageY = (W.WinHeight - 16) / 2; W.TextY = (W.WinHeight - TH) / 2; W.bUseRegion = True; W.UpRegion = ButtonUp; W.DownRegion = ButtonDown; W.OverRegion = ButtonOver; W.DisabledRegion = ButtonDisabled; if ( W.IsA('EnhancedCheckbox') && EnhancedCheckbox(W).bGrayed ) { W.UpTexture = Texture'EChkGrayed'; W.DownTexture = Texture'EChkGrayed'; W.OverTexture = Texture'EChkGrayed'; W.DisabledTexture = Texture'EChkGrayed'; } else if ( W.bChecked ) { W.UpTexture = Texture'EChkChecked'; W.DownTexture = Texture'EChkChecked'; W.OverTexture = Texture'EChkChecked'; W.DisabledTexture = Texture'EChkChecked'; } else { W.UpTexture = Texture'EChkUnchecked'; W.DownTexture = Texture'EChkUnchecked'; W.OverTexture = Texture'EChkUnchecked'; W.DisabledTexture = Texture'EChkUnchecked'; } } function Radiobox_SetupSizes(EWindowRadiobox W, Canvas C) { local float TW, TH; W.TextSize(C, W.Text, TW, TH); W.WinHeight = Max(TH + 1, 16); switch(W.Align) { case TA_Left: W.ImageX = W.WinWidth - 16; W.TextX = 0; break; case TA_Right: W.ImageX = 0; W.TextX = W.WinWidth - TW; break; case TA_Center: W.ImageX = (W.WinWidth - 16) / 2; W.TextX = (W.WinWidth - TW) / 2; break; } W.ImageY = (W.WinHeight - 16) / 2; W.TextY = (W.WinHeight - TH) / 2; W.bUseRegion = True; W.UpRegion = ButtonUp; W.DownRegion = ButtonDown; W.OverRegion = ButtonOver; W.DisabledRegion = ButtonDisabled; if ( W.bChecked ) { W.UpTexture = Texture'OptChecked'; W.DownTexture = Texture'OptChecked'; W.OverTexture = Texture'OptChecked'; W.DisabledTexture = Texture'OptChecked'; } else { W.UpTexture = Texture'OptUnchecked'; W.DownTexture = Texture'OptUnchecked'; W.OverTexture = Texture'OptUnchecked'; W.DisabledTexture = Texture'OptUnchecked'; } } function Radiobox_Draw(EWindowRadiobox W, Canvas C); function bool Listbox_SetupSizes(EWindowListbox W, Canvas C); function bool Listbox_Draw(EWindowListbox W, Canvas C); function bool Listbox_DrawItem(EWindowListbox L, Canvas C, EWindowListboxItem Item, float X, float Y, float W, float H) { if ( Item.bSelected ) { C.DrawColor = SelectedBG; L.DrawStretchedTexture(C, X, Y, W, H - 1, Texture'WhiteTexture'); C.DrawColor = SelectedTextColor; } else C.DrawColor = ControlTextcolor; C.Font = L.Root.Fonts[F_Normal]; L.ClipText(C, X + 2, Y, Item.Value); return true; } function ControlFrame_SetupSizes(UWindowControlFrame W, Canvas C) { local int B; B = EditBoxBevel; W.Framed.WinLeft = MiscBevelL[B].W; W.Framed.WinTop = MiscBevelT[B].H; W.Framed.SetSize(W.WinWidth - MiscBevelL[B].W - MiscBevelR[B].W, W.WinHeight - MiscBevelT[B].H - MiscBevelB[B].H); } function ControlFrame_Draw(UWindowControlFrame W, Canvas C) { C.DrawColor = ControlBG; W.DrawStretchedTexture(C, 0, 0, W.WinWidth, W.WinHeight, Texture'WhiteTexture'); C.DrawColor = RGBColor(255, 255, 255); W.DrawMiscBevel(C, 0, 0, W.WinWidth, W.WinHeight, Misc, EditBoxBevel); } kkwÿÿÿÿ}núÿÿÿ^wþÿÿÿMwÿÿÿÿkmwþÿÿÿfwùÿÿÿgwÿÿÿÿzwþÿÿÿWwÿÿÿÿ~wÿÿÿÿrwþÿÿÿlwÿÿÿÿ|fýÿÿÿKwÿÿÿÿ{wþÿÿÿpwÿÿÿÿYwÿÿÿÿvfýÿÿÿJwÿÿÿÿufýÿÿÿykCnîÿÿÿwþÿÿÿiwþÿÿÿLWýÿÿÿ`wÿÿÿÿwM÷ÿÿÿNwþÿÿÿhwèÿÿÿcWýÿÿÿPWóÿÿÿ^WìÿÿÿaLïÿÿÿkwþÿÿÿqWóÿÿÿowþÿÿÿwlýÿÿÿIwÿÿÿÿywÿÿÿÿ@]ïÿÿÿuWãÿÿÿ@wÿÿÿÿAfýÿÿÿLfñÿÿÿqwùÿÿÿxiôÿÿÿCfïÿÿÿmWýÿÿÿvwÿÿÿÿqwÿÿÿÿxWñÿÿÿzwÿÿÿÿtWñÿÿÿ{Wñÿÿÿ}WñÿÿÿxiôÿÿÿBWôÿÿÿoWàÿÿÿfwþÿÿÿ]]çÿÿÿd]çÿÿÿhwÿÿÿÿBlöÿÿÿiôÿÿÿ:]çÿÿÿilýÿÿÿ_iüÿÿÿQiüÿÿÿ]mxÿÿÿÿ|W÷ÿÿÿjLïÿÿÿtWêÿÿÿTlöÿÿÿwÿÿÿÿsW×ÿÿÿUhöÿÿÿ`ZãÿÿÿMñÿÿÿshñÿÿÿtfïÿÿÿolýÿÿÿ`MñÿÿÿpfñÿÿÿrMñÿÿÿnhñÿÿÿpMñÿÿÿ~MíÿÿÿClýÿÿÿ^MíÿÿÿeiôÿÿÿRLÓÿÿÿtlËÿÿÿlÖÿÿÿ$lôÿÿÿ"lÉÿÿÿWÖÿÿÿRlýÿÿÿPhÓÿÿÿdlýÿÿÿlÌÿÿÿwèÿÿÿeiíÿÿÿzwèÿÿÿdlôÿÿÿ3lýÿÿÿ\hýÿÿÿAlñÿÿÿfËÿÿÿDlôÿÿÿLóÿÿÿIlýÿÿÿclýÿÿÿGfÖÿÿÿ:lýÿÿÿFlýÿÿÿ9lìÿÿÿJlãÿÿÿBMíÿÿÿbwÿÿÿÿklýÿÿÿKMíÿÿÿclãÿÿÿh¿ÿÿÿ[lôÿÿÿKWÖÿÿÿQWýÿÿÿmLÖÿÿÿGlýÿÿÿbfÌÿÿÿDlñÿÿÿ$fóÿÿÿVlöÿÿÿ$l÷ÿÿÿjwþÿÿÿkWýÿÿÿslÖÿÿÿlôÿÿÿlýÿÿÿZfíÿÿÿVfíÿÿÿXfíÿÿÿWfíÿÿÿYlÉÿÿÿGWóÿÿÿ]hýÿÿÿylóÿÿÿ/lóÿÿÿ!líÿÿÿ=líÿÿÿOWíÿÿÿalíÿÿÿwþÿÿÿXwùÿÿÿlôÿÿÿ%lýÿÿÿ[­,MBOŠCOQ‹ QRT‹Q`TŒ*|nT‹jj[‹ox[‹¨mE\“WS\›_ jkˆ»\ vkˆû\ Blˆû_ Nlš*d Zl‹¿Qflˆ»_ sl‹-Qlª-cLm‹!oou‹¯T}u‹ûoJv‹TXvš ev‹^qv‹%T~v›E Kw‹ºTWw‹*Qew‹§Tsw‹¼T@x‹ªTMxšr [x‹-ogxš%r tx›²h @y‹ÿTLy‹²HYy‹©Xfy‹©WsyÜ0gC@zˆ§F CŠ‹¨QOŠ‹ÊT\Š…ýoiŠ‹»ovŠˆ _D‹°0~JQ‹›©Y [œ‹ngœ›©Z uœ°0}JA�ˆt K®š§r W®°0|Jc®‹§vm¿‹!pz¿‹øoGÀ°0{JUÀ°0J_шu iâˆ\ uâˆ_ Aãš¼r M㈠\ Yã‹§oe㚪r sã�+V㚺r U爧QaçˆUnçˆo{çŽÌZHèŸv bé‹[n鈶_|雯oIêŠXVê‹onë‹¶o|눱_Jì… CWìˆ!UeìˆQrìˆ] ìˆ!oKí›%_Xí… Beí‹!ns틱oAîˆUOîˆo\î›Eiî… AvîŸMyDïš¼i QïÛ\]ï‹¢oj] xï… @Dð¾¢VRð‹²o_ðšªimðŸwzðˆOGñŸ%wTñšºiañˆ²N nñˆ²OzñŸúM Gòˆ!QSòˆ]`ò›Ê_mò›ÊEzòšÊ GóˆùU SóˆN _ó›ÿ_kó›ÿExóšÿ EôˆùoQô‹ o^ôŸu kô¾ýdwô¾ýiEõˆûoSõˆûU `õˆ½U lõˆ½oxõ… 5Eö… nSöˆøoaöˆøU nö¾ýhzöˆ¿oH÷ˆ¿U U÷‹oa÷… >n÷ŸMu |÷›Cz Høˆ§] Tøˆ»o`øˆ»U mø‹gyøŸ u Gù… 4Sùˆ®oaùˆ®U nùŸ¹u zùˆQFúˆ¶oSúˆ±o`úˆ±Umúˆ£Qzúˆ±\ Gû‹aSû‹¯iaû‹©loûˆ¶\ }û‹©dIüˆ¶UWüˆ!]düŽâfqüŽÒG1Wÿ›ªf H€ŽäPGT€ŽæG[�ŽðP b‚ŽÿKhr‹Ž÷JOZŽŽ2ci�ˆ§oL’š©f Y’‹¯fe’ŽÂM7r’ŽÝ%fi“Ÿx O•Žç¹K[•ŽË@f–›ºf f™›¨w r™Žë3%~™Žß Kcšˆ§Un›¥¹S4_{›´(XZ¤Ž6cr¥ŽÌM_U§Ž@otªŽõ"F)c¬ŽÖC!vL­ŽÂEB¯ŽÕC/\G±ŽH"&c³… JI´… KW´… Le´… Ms´… NAµ… OOµ… P]µ… QkµŽDSyµ… SL·… TZ·… Uh·… Vv·… WD¸… XR¸… Y`¸… Zn¸… [|¸… UJ¹… TX¹… \f¹… St¹… RBº… QPº… ]^º… Plº… Ozº… bH»… ^V»… sd»… rr»… K@¼… _N¼… J\¼… Hj¼… Gx¼… lF½… `T½… ab½… bp½… E~½… DL¾… cZ¾š Fh¾š eu¾… dB¿… eP¿… f^¿… gl¿… hz¿… iHÀ… jVÀ… kdÀ… lrÀŽÇ$T@ÁŽö"9'TÂŽá""){ÂŽÌJdÛ q nÇŽ :zÇ… HtÈŽESBÉ… GUÊ…ýfcÊ¥ S4bpÊŽ 1bRÓ… EtÔŽN@BÕŽà$OBךf QØ… F]ØŸf kص&XwØ¥S4LOÚŽÚ \[ì·'YwôŽøBjP÷¥CS4hzû¥S4i2b�Ž IKÀ¥S4CTÇ… RWÈè)[eÈ¥"S4` @ÊŽ `Ó‹Q}Ó‹oKÔŽ XÔ‹QuÔ‹oCÕŸf QÕŽ ]Õ‹QzÕ‹oHÖŸf VÖŽ mbÖ.XOÙ¥S4R gÚš%f yãŽ;Eä… DDæ… IRæ‹*o`æŸ!f mæŽ× =hyæ¥S4YCaé¥MS4Pz¬ŽØ OTJ¾¥S4N^À¥ S4`^lÚÉSL¹