DayZ 1.27
DayZ Explorer by KGB
 
Загрузка...
Поиск...
Не найдено
ModsMenuDetailed.c
См. документацию.
1class ModsMenuDetailed extends ScriptedWidgetEventHandler
2{
3 protected Widget m_Root;
4 protected Widget m_Content;
6 protected ScrollWidget m_Scroll;
8
10
11 //protected MainMenu m_Menu;
14 protected ref Timer m_TooltipTimer;
16
18 {
19 m_Root = GetGame().GetWorkspace().CreateWidgets("gui/layouts/new_ui/mods_menu/mods_menu_detailed.layout", parent);
20 m_Content = m_Root.FindAnyWidget("ModsDetailedContent");
21 m_Scroll = ScrollWidget.Cast(m_Root.FindAnyWidget("ModsDetailedScroller"));
22 m_CloseButton = m_Root.FindAnyWidget("ModsDetailedHeaderButton");
23
24 m_Menu = menu_parent;
26 m_Tooltip = tooltip;
27
28 m_Root.SetHandler(this);
29
30 LoadEntries(data);
31 }
32
34 {
35 delete m_Root;
36 }
37
38 void Open()
39 {
40 if ( !m_Root.IsVisible() )
41 m_Scroll.VScrollToPos( 0 );
42 m_Root.Show( true );
44 }
45
46 void Close()
47 {
48 Highlight( null );
49 m_Root.Show( false );
51 }
52
53 bool IsOpen()
54 {
55 return m_Root.IsVisible();
56 }
57
59 {
60 return m_Highlighted;
61 }
62
64 {
65 Highlight( m_Data.GetKey( 0 ) );
66 }
67
68 void Highlight( ModInfo mod_ref )
69 {
70 if ( m_Highlighted )
71 {
72 m_Data.Get( m_Highlighted ).Deselect();
73 m_Content.Update();
74 }
75
76 m_Highlighted = mod_ref;
77 if ( m_Highlighted )
78 {
79 m_Data.Get( m_Highlighted ).Select();
80 m_Content.Update();
82 }
83 }
84
85 void ScrollToMod( ModInfo mod_ref )
86 {
87 /*
88 if( mod_ref )
89 {
90 float scroll_pos_x, scroll_pos_y;
91 float scroll_size_x, scroll_size_y;
92 float mod_pos_x, mod_pos_y;
93 float mod_size_x, mod_size_y;
94
95 Widget mod_widget = m_Data.Get( mod_ref ).GetWidget();
96 if( mod_widget )
97 {
98 m_Content.Update();
99 m_Scroll.Update();
100 m_Scroll.GetScreenPos( scroll_pos_x, scroll_pos_y );
101 m_Scroll.GetScreenSize( scroll_size_x, scroll_size_y );
102 mod_widget.GetScreenPos( mod_pos_x, mod_pos_y );
103 mod_widget.GetScreenSize( mod_size_x, mod_size_y );
104 if( mod_pos_y + mod_size_y >= scroll_pos_y + scroll_size_y )
105 {
106 m_Scroll.VScrollToPos( mod_pos_y + mod_size_y - scroll_pos_y );
107 }
108 else if( mod_pos_y <= scroll_pos_y )
109 {
110 m_Scroll.VScrollToPos( mod_pos_y - scroll_pos_y );
111 }
112 m_Scroll.VScrollToPos( mod_pos_y - scroll_pos_y );
113 }
114 }
115 */
116 }
117
118 void Select( ModInfo mod_ref, bool show )
119 {
120 if ( mod_ref )
121 {
122 if ( show )
123 {
124 m_Highlighted = mod_ref;
125 m_Data.Get( mod_ref ).Select();
126 }
127 else
128 {
129 m_Data.Get( mod_ref ).Deselect();
130 if ( m_Highlighted == mod_ref )
131 {
132 m_Highlighted = null;
133 }
134 }
135 }
136
138 }
139
140 void PrepareTooltip( ModInfo mod_ref )
141 {
142 if ( m_Tooltip )
143 {
144 m_TooltipMod = mod_ref;
145 if ( !m_TooltipTimer )
147
148 m_TooltipTimer.Run( 1, this, "ShowTooltip" );
149 }
150 }
151
153 {
154 if ( m_Tooltip )
155 m_Tooltip.ShowTooltip( m_TooltipMod );
156 }
157
159 {
160 if ( m_TooltipTimer )
161 m_TooltipTimer.Stop();
162
163 m_TooltipMod = null;
164 if ( m_Tooltip )
165 m_Tooltip.HideTooltip();
166 }
167
169 {
170 foreach (ModInfo var : data)
171 {
173 m_Data.Insert(var, entry);
174 }
175
176 m_Content.Update();
177 float y_c = m_Scroll.GetContentHeight();
178 float x, y;
179 m_Content.GetScreenSize( x, y );
180 if ( y > y_c )
181 {
182 m_Scroll.SetAlpha( 1 );
183 }
184 }
185
186 override bool OnMouseButtonUp(Widget w, int x, int y, int button)
187 {
188 if ( w == m_CloseButton )
189 {
190 Close();
191 return true;
192 }
193 return false;
194 }
195}
map
Определения ControlsXboxNew.c:4
Icon x
Icon y
Widget m_Root
Определения SizeToChild.c:91
proto native WorkspaceWidget GetWorkspace()
proto native Mission GetMission()
ScriptInvoker GetOnModMenuVisibilityChanged()
Определения gameplay.c:883
Определения ModInfo.c:2
proto void Invoke(void param1=NULL, void param2=NULL, void param3=NULL, void param4=NULL, void param5=NULL, void param6=NULL, void param7=NULL, void param8=NULL, void param9=NULL)
invoke call on all inserted methods with given arguments
Widget m_CloseButton
Определения ModsMenuDetailed.c:5
ModInfo GetHighlighted()
Определения ModsMenuDetailed.c:58
ModInfo m_Highlighted
Определения ModsMenuDetailed.c:9
void HideTooltip()
Определения ModsMenuDetailed.c:158
override bool OnMouseButtonUp(Widget w, int x, int y, int button)
Определения ModsMenuDetailed.c:186
ScrollWidget m_Scroll
Определения ModsMenuDetailed.c:6
Widget m_Root
Определения SizeToChild.c:9
void ModsMenuDetailedEntry(ModInfo data, Widget parent, ModsMenuDetailed parent_menu)
Определения ModsMenuDetailedEntry.c:25
void ScrollToMod(ModInfo mod_ref)
Определения ModsMenuDetailed.c:85
void ModsMenuTooltip(Widget parent)
Определения ModsMenuTooltip.c:6
ModInfo m_TooltipMod
Определения ModsMenuDetailed.c:15
void Highlight(ModInfo mod_ref)
Определения ModsMenuDetailed.c:68
CameraToolsMenu m_Menu
Определения CTEvent.c:8
void LoadEntries(array< ref ModInfo > data)
Определения ModsMenuDetailed.c:168
void ~ModsMenuDetailed()
Определения ModsMenuDetailed.c:33
ModsMenuTooltip m_Tooltip
Определения ModsMenuDetailed.c:13
void ShowTooltip()
Определения ModsMenuDetailed.c:152
void Select(ModInfo mod_ref, bool show)
Определения ModsMenuDetailed.c:118
void PrepareTooltip(ModInfo mod_ref)
Определения ModsMenuDetailed.c:140
void HighlightFirst()
Определения ModsMenuDetailed.c:63
ref map< ref ModInfo, ref ModsMenuDetailedEntry > m_Data
Определения ModsMenuDetailed.c:7
void ModsMenuDetailed(array< ref ModInfo > data, Widget parent, ModsMenuTooltip tooltip, UIScriptedMenu menu_parent)
Определения ModsMenuDetailed.c:17
ref Timer m_TooltipTimer
Определения ModsMenuDetailed.c:14
map: item x vector(index, width, height)
Определения EnWidgets.c:651
Определения DayZPlayerImplement.c:63
Определения DayZGame.c:64
Определения EnWidgets.c:190
Result for an object found in CGame.IsBoxCollidingGeometryProxy.
proto native CGame GetGame()
const int CALL_CATEGORY_GUI
Определения tools.c:9
proto native external Widget CreateWidgets(string layout, Widget parentWidget=NULL, bool immedUpdate=true)
Create widgets from *.layout file.
WorkspaceWidget Widget
Defined in code.