Arma Reforger Explorer  1.1.0.42
Arma Reforger Code Explorer by Zeroy - Thanks to MisterOutofTime
SCR_ButtonImageComponent.c
Go to the documentation of this file.
1 //------------------------------------------------------------------------------------------------
3 {
4  [Attribute("", UIWidgets.ResourcePickerThumbnail, "Select edds texture or imageset", "edds imageset")]
5  ResourceName m_sTexture;
6 
7  [Attribute()]
8  string m_sImageName;
9 
10  ImageWidget m_wImage;
11 
12  ref ScriptInvoker<Widget> m_OnMouseEnter = new ScriptInvoker();
13  ref ScriptInvoker<Widget> m_OnMouseLeave = new ScriptInvoker();
14 
15  //------------------------------------------------------------------------------------------------
16  override void HandlerAttached(Widget w)
17  {
18  super.HandlerAttached(w);
19  m_wImage = ImageWidget.Cast(w.FindAnyWidget("Image"));
20  SetImage(m_sTexture, m_sImageName);
21  }
22 
23  //------------------------------------------------------------------------------------------------
24  override bool OnMouseEnter(Widget w, int x, int y)
25  {
26  super.OnMouseEnter(w, x, y);
27 
28  m_OnMouseEnter.Invoke(w);
29 
30  return false;
31  }
32 
33  //------------------------------------------------------------------------------------------------
34  override bool OnMouseLeave(Widget w, Widget enterW, int x, int y)
35  {
36  super.OnMouseLeave(w, enterW, x, y);
37 
38  m_OnMouseLeave.Invoke(w);
39 
40  return false;
41  }
42 
43  //------------------------------------------------------------------------------------------------
44  ImageWidget GetImageWidget()
45  {
46  return m_wImage;
47  }
48 
49  //------------------------------------------------------------------------------------------------
50  void SetImage(ResourceName texture, bool fromLocalStorage = false)
51  {
52  if (!m_wImage)
53  return;
54 
55  bool show = texture != string.Empty;
56  m_wImage.SetVisible(show);
57  if (show)
58  {
59  int x, y;
60  m_wImage.LoadImageTexture(0, texture, false, fromLocalStorage);
61  m_wImage.GetImageSize(0, x, y);
62  m_wImage.SetSize(x, y);
63  }
64 
65  m_sTexture = texture;
66  }
67 
68  //------------------------------------------------------------------------------------------------
69  void SetImage(ResourceName imageSet, string imageName)
70  {
71  if (!m_wImage)
72  return;
73 
74  bool show = imageSet != string.Empty;
75  m_wImage.SetVisible(show);
76 
77  if (!show)
78  return;
79 
80  if (imageSet.EndsWith("imageset"))
81  m_wImage.LoadImageFromSet(0, imageSet, imageName);
82  else
83  m_wImage.LoadImageTexture(0, imageSet);
84 
85  // Resize
86  int x, y;
87  m_wImage.GetImageSize(0, x, y);
88  m_wImage.SetSize(x, y);
89 
90  m_sTexture = imageSet;
91  m_sImageName = imageName;
92  }
93 
94  //------------------------------------------------------------------------------------------------
95  string GetImage(out string imageSet)
96  {
97  if (m_sImageName == string.Empty)
98  return m_sTexture;
99  imageSet = m_sTexture;
100  return m_sImageName;
101  }
102 
103  //------------------------------------------------------------------------------------------------
104  static SCR_ButtonImageComponent GetButtonImage(string name, Widget parent, bool searchAllChildren = true)
105  {
106  auto comp = SCR_ButtonImageComponent.Cast(
107  SCR_WLibComponentBase.GetComponent(SCR_ButtonImageComponent, name, parent, searchAllChildren)
108  );
109  return comp;
110  }
111 };
SCR_WLibComponentBase
Base class for all final Reforger interactive elements.
Definition: SCR_WLibComponentBase.c:4
m_OnMouseEnter
ref ScriptInvoker m_OnMouseEnter
Definition: SCR_ModularButtonComponent.c:65
Attribute
typedef Attribute
Post-process effect of scripted camera.
SCR_ButtonBaseComponent
Base class for any button, regardless its own content.
Definition: SCR_ButtonBaseComponent.c:3
m_wImage
protected ImageWidget m_wImage
Definition: SCR_BackendImageComponent.c:248
SCR_ButtonImageComponent
Definition: SCR_ButtonImageComponent.c:2
m_OnMouseLeave
ref ScriptInvoker m_OnMouseLeave
Definition: SCR_ModularButtonComponent.c:66