Terraria v1.4.4.9
Terraria source code documentation
Loading...
Searching...
No Matches
AWorkshopPublishInfoState.cs
Go to the documentation of this file.
1using System;
3using System.IO;
4using System.Linq;
8using ReLogic.OS;
11using Terraria.ID;
13using Terraria.Social;
15using Terraria.UI;
18
20
21public abstract class AWorkshopPublishInfoState<TPublishedObjectType> : UIState, IHaveBackButtonCommand
22{
24
25 protected TPublishedObjectType _dataObject;
26
28
29 protected string _instructionsTextKey;
30
32
34
36
38
40
42
44
46
48
50
52
54
56
58
59 private string _previewImagePath;
60
62
64
66
68
74
75 public override void OnInitialize()
76 {
77 base.OnInitialize();
78 int num = 40;
79 int num2 = 200;
80 int num3 = 50 + num + 10;
81 int num4 = 70;
83 uIElement.Width.Set(600f, 0f);
84 uIElement.Top.Set(num2, 0f);
85 uIElement.Height.Set(-num2, 1f);
86 uIElement.HAlign = 0.5f;
87 UIPanel uIPanel = new UIPanel();
88 uIPanel.Width.Set(0f, 1f);
89 uIPanel.Height.Set(-num3, 1f);
90 uIPanel.BackgroundColor = new Color(33, 43, 79) * 0.8f;
93 int num5 = 6 + num4;
97 AddDescriptionPanel(uIPanel, num4 - 6, "desc");
98 uIElement.Append(uIPanel);
101 }
102
114
116 {
118 {
119 Width = new StyleDimension(0f, 0f),
120 Height = new StyleDimension(0f, 0f)
121 };
122 uIElement.SetPadding(0f);
124 uiList.Add(CreateSteamDisclaimer("disclaimer"));
126 uiList.Add(CreatePublicSettingsRow(0f, 44f, "public"));
127 uiList.Add(CreateTagOptionsPanel(0f, 44, "tags"));
128 }
129
131 {
133 {
134 Width = new StyleDimension(0f, 1f),
135 Height = new StyleDimension(80f, 0f)
136 };
138 {
139 Width = new StyleDimension(72f, 0f),
140 Height = new StyleDimension(72f, 0f),
141 HAlign = 1f,
142 VAlign = 0.5f,
143 Left = new StyleDimension(-6f, 0f),
144 Top = new StyleDimension(0f, 0f)
145 };
146 uIElement.SetPadding(0f);
147 obj.Append(uIElement);
148 float num = 86f;
149 _defaultPreviewImageTexture = Main.Assets.Request<Texture2D>("Images/UI/Workshop/DefaultPreviewImage", (AssetRequestMode)1);
151 {
152 Width = new StyleDimension(-4f, 1f),
153 Height = new StyleDimension(-4f, 1f),
154 HAlign = 0.5f,
155 VAlign = 0.5f,
156 ScaleToFit = true,
157 AllowResizingDimensions = false
158 };
159 UIImage element = new UIImage(Main.Assets.Request<Texture2D>("Images/UI/Achievement_Borders", (AssetRequestMode)1))
160 {
161 HAlign = 0.5f,
162 VAlign = 0.5f
163 };
164 uIElement.Append(uIImage);
165 uIElement.Append(element);
167 UICharacterNameButton uICharacterNameButton = new UICharacterNameButton(Language.GetText("Workshop.PreviewImagePathTitle"), Language.GetText("Workshop.PreviewImagePathEmpty"), Language.GetText("Workshop.PreviewImagePathDescription"))
168 {
170 Height = new StyleDimension(0f, 1f)
171 };
172 uICharacterNameButton.OnLeftMouseDown += Click_SetPreviewImage;
173 uICharacterNameButton.OnMouseOver += ShowOptionDescription;
174 uICharacterNameButton.OnMouseOut += ClearOptionDescription;
175 uICharacterNameButton.SetSnapPoint(tagGroup, 0);
178 return obj;
179 }
180
182 {
184 {
185 return;
186 }
187 if (info.tags != null)
188 {
190 {
191 bool flag = info.tags.Contains(tagOption.OptionValue.InternalNameForAPIs);
192 tagOption.SetCurrentOption(flag ? tagOption.OptionValue : null);
193 tagOption.SetColor(tagOption.IsSelected ? new Color(152, 175, 235) : Colors.InventoryDefaultColor, 1f);
194 }
195 }
197 for (int i = 0; i < publicityOptions.Length; i++)
198 {
199 publicityOptions[i].SetCurrentOption(info.publicity);
200 }
201 }
202
204
210
212 {
213 float num = 60f;
214 float num2 = 0f + num;
215 GroupOptionButton<bool> groupOptionButton = new GroupOptionButton<bool>(option: true, null, null, Color.White, null, 1f, 0.5f, 16f);
216 groupOptionButton.HAlign = 0.5f;
217 groupOptionButton.VAlign = 0f;
218 groupOptionButton.Width = StyleDimension.FromPixelsAndPercent(0f, 1f);
219 groupOptionButton.Left = StyleDimension.FromPixels(0f);
220 groupOptionButton.Height = StyleDimension.FromPixelsAndPercent(num2 + 4f, 0f);
221 groupOptionButton.Top = StyleDimension.FromPixels(0f);
222 groupOptionButton.ShowHighlightWhenSelected = false;
223 groupOptionButton.SetCurrentOption(option: false);
224 groupOptionButton.Width.Set(0f, 1f);
226 {
227 HAlign = 0.5f,
228 VAlign = 1f,
229 Width = new StyleDimension(0f, 1f),
230 Height = new StyleDimension(num, 0f)
231 };
233 UIText uIText = new UIText(Language.GetText("Workshop.SteamDisclaimer"))
234 {
235 HAlign = 0f,
236 VAlign = 0f,
239 TextColor = Color.Cyan,
241 };
242 uIText.PaddingLeft = 20f;
243 uIText.PaddingRight = 20f;
244 uIText.PaddingTop = 4f;
245 uIText.IsWrapped = true;
247 groupOptionButton.OnLeftClick += steamDisclaimerText_OnClick;
248 groupOptionButton.OnMouseOver += steamDisclaimerText_OnMouseOver;
249 groupOptionButton.OnMouseOut += steamDisclaimerText_OnMouseOut;
250 uIElement.Append(uIText);
251 uIText.SetSnapPoint(tagGroup, 0);
253 return groupOptionButton;
254 }
255
261
268
270 {
271 try
272 {
273 Platform.Get<IPathService>().OpenURL("https://steamcommunity.com/sharedfiles/workshoplegalagreement");
274 }
275 catch (Exception)
276 {
277 }
278 }
279
280 public override void Recalculate()
281 {
283 base.Recalculate();
284 }
285
286 private void UpdateScrollbar()
287 {
288 if (_scrollbar != null)
289 {
291 {
293 _isScrollbarAttached = false;
294 _uiListRect.Width.Set(0f, 1f);
295 }
297 {
300 _uiListRect.Width.Set(-25f, 1f);
301 }
302 }
303 }
304
305 private UIList AddUIList(UIElement container, float antiHeight)
306 {
307 _uiListContainer = container;
308 float num = 0f;
310 {
311 HAlign = 0f,
312 VAlign = 0f,
313 Width = StyleDimension.FromPixelsAndPercent((0f - num) * 2f, 1f),
314 Left = StyleDimension.FromPixels(0f - num),
316 OverflowHidden = true
317 });
318 UISlicedImage uISlicedImage = new UISlicedImage(Main.Assets.Request<Texture2D>("Images/UI/Workshop/ListBackground", (AssetRequestMode)1))
319 {
320 Width = new StyleDimension(0f, 1f),
321 Height = new StyleDimension(0f, 1f),
322 Color = Color.White * 0.7f
323 };
324 uISlicedImage.SetSliceDepths(4);
325 container.Append(uIElement);
326 uIElement.Append(uISlicedImage);
327 UIList uIList = new UIList
328 {
331 HAlign = 0.5f,
332 VAlign = 0.5f,
333 OverflowHidden = true
334 };
335 uIList.ManualSortMethod = ManualIfnoSortingMethod;
336 uIList.ListPadding = 5f;
337 uIElement.Append(uIList);
339 {
340 HAlign = 1f,
341 VAlign = 0f,
342 Width = StyleDimension.FromPixelsAndPercent((0f - num) * 2f, 1f),
343 Left = StyleDimension.FromPixels(0f - num),
346 };
347 uIScrollbar.SetView(100f, 1000f);
348 uIList.SetScrollbar(uIScrollbar);
351 return uIList;
352 }
353
357
358 private UIElement CreatePublicSettingsRow(float accumulatedHeight, float height, string tagGroup)
359 {
360 CreateStylizedCategoryPanel(height, "Workshop.CategoryTitlePublicity", out var entirePanel, out var innerPanel);
362 {
364 WorkshopItemPublicSettingId.FriendsOnly,
365 WorkshopItemPublicSettingId.Private
366 };
368 {
369 Language.GetText("Workshop.SettingsPublicityPublic"),
370 Language.GetText("Workshop.SettingsPublicityFriendsOnly"),
371 Language.GetText("Workshop.SettingsPublicityPrivate")
372 };
374 {
375 Language.GetText("Workshop.SettingsPublicityPublicDescription"),
376 Language.GetText("Workshop.SettingsPublicityFriendsOnlyDescription"),
377 Language.GetText("Workshop.SettingsPublicityPrivateDescription")
378 };
379 Color[] array4 = new Color[3]
380 {
381 Color.White,
382 Color.White,
383 Color.White
384 };
385 string[] array5 = new string[3] { "Images/UI/Workshop/PublicityPublic", "Images/UI/Workshop/PublicityFriendsOnly", "Images/UI/Workshop/PublicityPrivate" };
386 float num = 0.98f;
388 for (int i = 0; i < array6.Length; i++)
389 {
391 groupOptionButton.Width = StyleDimension.FromPixelsAndPercent(-4 * (array6.Length - 1), 1f / (float)array6.Length * num);
392 groupOptionButton.HAlign = (float)i / (float)(array6.Length - 1);
393 groupOptionButton.Left = StyleDimension.FromPercent((1f - num) * (1f - groupOptionButton.HAlign * 2f));
395 groupOptionButton.OnLeftMouseDown += ClickPublicityOption;
396 groupOptionButton.OnMouseOver += ShowOptionDescription;
397 groupOptionButton.OnMouseOut += ClearOptionDescription;
398 groupOptionButton.SetSnapPoint(tagGroup, i);
401 }
403 return entirePanel;
404 }
405
407 {
409 int num = 3;
410 int num2 = (int)Math.Ceiling((float)tagsToShow.Count / (float)num);
411 int num3 = heightPerRow * num2;
412 CreateStylizedCategoryPanel(num3, "Workshop.CategoryTitleTags", out var entirePanel, out var innerPanel);
413 float num4 = 0.98f;
415 for (int i = 0; i < tagsToShow.Count; i++)
416 {
419 groupOptionButton.ShowHighlightWhenSelected = false;
420 groupOptionButton.SetCurrentOption(null);
421 int num5 = i / num;
422 int num6 = i - num5 * num;
423 groupOptionButton.Width = StyleDimension.FromPixelsAndPercent(-4 * (num - 1), 1f / (float)num * num4);
424 groupOptionButton.HAlign = (float)num6 / (float)(num - 1);
425 groupOptionButton.Left = StyleDimension.FromPercent((1f - num4) * (1f - groupOptionButton.HAlign * 2f));
426 groupOptionButton.Top.Set(num5 * heightPerRow, 0f);
427 groupOptionButton.OnLeftMouseDown += ClickTagOption;
428 groupOptionButton.OnMouseOver += ShowOptionDescription;
429 groupOptionButton.OnMouseOut += ClearOptionDescription;
430 groupOptionButton.SetSnapPoint(tagGroup, i);
433 }
435 return entirePanel;
436 }
437
439 {
440 float num = 44f;
441 UISlicedImage uISlicedImage = new UISlicedImage(Main.Assets.Request<Texture2D>("Images/UI/CharCreation/CategoryPanel", (AssetRequestMode)1))
442 {
443 HAlign = 0.5f,
444 VAlign = 0f,
447 Height = StyleDimension.FromPixelsAndPercent(height + num + 4f, 0f),
449 };
450 uISlicedImage.SetSliceDepths(8);
451 uISlicedImage.Color = Color.White * 0.7f;
453 {
454 HAlign = 0.5f,
455 VAlign = 1f,
456 Width = new StyleDimension(0f, 1f),
457 Height = new StyleDimension(height, 0f)
458 };
462 {
463 HAlign = 0f,
464 VAlign = 0f,
468 };
469 uIText.PaddingLeft = 20f;
470 uIText.PaddingRight = 20f;
471 uIText.PaddingTop = 6f;
472 uIText.IsWrapped = false;
473 uISlicedImage.Append(uIText);
475 }
476
483
494
523
525 {
526 _descriptionText.SetText(Language.GetText("Workshop.InfoDescriptionDefault"));
527 }
528
529 private UIElement CreateInsturctionsPanel(float accumulatedHeight, float height, string tagGroup)
530 {
531 float num = 0f;
532 UISlicedImage uISlicedImage = new UISlicedImage(Main.Assets.Request<Texture2D>("Images/UI/CharCreation/CategoryPanelHighlight", (AssetRequestMode)1));
533 uISlicedImage.HAlign = 0.5f;
534 uISlicedImage.VAlign = 0f;
535 uISlicedImage.Width = StyleDimension.FromPixelsAndPercent((0f - num) * 2f, 1f);
536 uISlicedImage.Left = StyleDimension.FromPixels(0f - num);
537 uISlicedImage.Height = StyleDimension.FromPixelsAndPercent(height, 0f);
538 uISlicedImage.Top = StyleDimension.FromPixels(accumulatedHeight);
539 uISlicedImage.SetSliceDepths(10);
540 uISlicedImage.Color = Color.LightGray * 0.7f;
542 {
543 HAlign = 0f,
544 VAlign = 0f,
548 };
549 uIText.PaddingLeft = 20f;
550 uIText.PaddingRight = 20f;
551 uIText.PaddingTop = 6f;
552 uIText.IsWrapped = true;
553 uISlicedImage.Append(uIText);
554 return uISlicedImage;
555 }
556
557 private void AddDescriptionPanel(UIElement container, float height, string tagGroup)
558 {
559 float num = 0f;
560 UISlicedImage uISlicedImage = new UISlicedImage(Main.Assets.Request<Texture2D>("Images/UI/CharCreation/CategoryPanelHighlight", (AssetRequestMode)1))
561 {
562 HAlign = 0.5f,
563 VAlign = 1f,
564 Width = StyleDimension.FromPixelsAndPercent((0f - num) * 2f, 1f),
565 Left = StyleDimension.FromPixels(0f - num),
568 };
569 uISlicedImage.SetSliceDepths(10);
570 uISlicedImage.Color = Color.LightGray * 0.7f;
571 container.Append(uISlicedImage);
572 UIText uIText = new UIText(Language.GetText("Workshop.InfoDescriptionDefault"), 0.85f)
573 {
574 HAlign = 0f,
575 VAlign = 1f,
576 Width = new StyleDimension(0f, 1f),
577 Height = new StyleDimension(0f, 1f)
578 };
579 uIText.PaddingLeft = 4f;
580 uIText.PaddingRight = 4f;
581 uIText.PaddingTop = 4f;
582 uIText.IsWrapped = true;
583 uISlicedImage.Append(uIText);
585 }
586
587 protected abstract string GetPublishedObjectDisplayName();
588
590
595
597 {
598 if (_previousUIState == null)
599 {
600 Main.menuMode = 0;
601 return;
602 }
603 Main.menuMode = 888;
604 Main.MenuUI.SetState(_previousUIState);
605 }
606
611
612 protected abstract void GoToPublishConfirmation();
613
615 {
617 ((UIPanel)evt.Target).BackgroundColor = new Color(73, 94, 171);
618 ((UIPanel)evt.Target).BorderColor = Colors.FancyUIFatButtonMouseOver;
619 }
620
622 {
623 ((UIPanel)evt.Target).BackgroundColor = new Color(63, 82, 151) * 0.8f;
624 ((UIPanel)evt.Target).BorderColor = Color.Black;
625 }
626
628 {
630 uITextPanel.Width.Set(-10f, 0.5f);
631 uITextPanel.Height.Set(50f, 0f);
632 uITextPanel.VAlign = 1f;
633 uITextPanel.Top.Set(-backButtonYLift, 0f);
634 uITextPanel.HAlign = 1f;
635 uITextPanel.OnMouseOver += FadedMouseOver;
636 uITextPanel.OnMouseOut += FadedMouseOut;
637 uITextPanel.OnLeftClick += Click_Publish;
638 uITextPanel.SetSnapPoint("publish", 0);
641 }
642
644 {
646 uITextPanel.Width.Set(-10f, 0.5f);
647 uITextPanel.Height.Set(50f, 0f);
648 uITextPanel.VAlign = 1f;
649 uITextPanel.Top.Set(-backButtonYLift, 0f);
650 uITextPanel.HAlign = 0f;
651 uITextPanel.OnMouseOver += FadedMouseOver;
652 uITextPanel.OnMouseOut += FadedMouseOut;
653 uITextPanel.OnLeftClick += Click_GoBack;
654 uITextPanel.SetSnapPoint("back", 0);
657 }
658
671
673 {
675 {
676 Publicity = _optionPublicity,
677 UsedTags = (from x in _tagOptions
678 where x.IsSelected
679 select x.OptionValue).ToArray(),
680 PreviewImagePath = _previewImagePath
681 };
682 }
683
685 {
687 {
688 new ExtensionFilter("Image files", "png", "jpg", "jpeg")
689 };
690 string text = FileBrowser.OpenFilePanel("Open icon", extensions);
691 if (text != null)
692 {
695 }
696 }
697
698 private string PrettifyPath(string path)
699 {
700 if (path == null)
701 {
702 return path;
703 }
704 char[] anyOf = new char[2]
705 {
707 Path.AltDirectorySeparatorChar
708 };
709 int num = path.LastIndexOfAny(anyOf);
710 if (num != -1)
711 {
712 path = path.Substring(num + 1);
713 }
714 if (path.Length > 30)
715 {
716 path = path.Substring(0, 30) + "…";
717 }
718 return path;
719 }
720
721 private void UpdateImagePreview()
722 {
723 Texture2D texture2D = null;
724 string contents = PrettifyPath(_previewImagePath);
726 if (_previewImagePath != null)
727 {
728 try
729 {
732 }
733 catch (Exception exception)
734 {
736 }
737 }
738 if (texture2D != null && (texture2D.Width > 512 || texture2D.Height > 512))
739 {
740 object obj = new { texture2D.Width, texture2D.Height };
741 string textValueWith = Language.GetTextValueWith("Workshop.ReportIssue_FailedToPublish_ImageSizeIsTooLarge", obj);
742 if (SocialAPI.Workshop != null)
743 {
744 SocialAPI.Workshop.IssueReporter.ReportInstantUploadProblemFromValue(textValueWith);
745 }
746 _previewImagePath = null;
749 }
750 else
751 {
753 {
756 }
757 if (texture2D != null)
758 {
761 }
762 else
763 {
765 }
766 }
767 }
768
769 public override void Draw(SpriteBatch spriteBatch)
770 {
771 base.Draw(spriteBatch);
772 SetupGamepadPoints(spriteBatch);
773 }
774
775 private void SetupGamepadPoints(SpriteBatch spriteBatch)
776 {
777 UILinkPointNavigator.Shortcuts.BackButtonCommand = 7;
778 int num = 3000;
779 int id = num;
784 SnapPoint snap = null;
785 SnapPoint snap2 = null;
786 for (int i = 0; i < snapPoints.Count; i++)
787 {
789 string name = snapPoint.Name;
790 if (!(name == "disclaimer"))
791 {
792 if (name == "image")
793 {
795 }
796 }
797 else
798 {
799 snap = snapPoint;
800 }
801 }
806 UILinkPoint[] array = _helper.CreateUILinkStripHorizontal(ref id, snapPoints.Where((SnapPoint x) => x.Name == "public").ToList());
807 if (array.Length != 0)
808 {
810 }
811 UILinkPoint topLinkPoint = ((array.Length != 0) ? array[0] : null);
813 List<SnapPoint> pointsForGrid = snapPoints.Where((SnapPoint x) => x.Name == "tags").ToList();
815 int num2 = array2.GetLength(1) - 1;
816 if (num2 >= 0)
817 {
819 for (int num3 = array2.GetLength(0) - 1; num3 >= 0; num3--)
820 {
821 if (array2[num3, num2] != null)
822 {
824 break;
825 }
826 }
827 }
831 }
832}
static Texture2D FromStream(GraphicsDevice graphicsDevice, Stream stream, int width, int height, [MarshalAs(UnmanagedType.U1)] bool zoom)
Definition Texture2D.cs:164
override void Dispose([MarshalAs(UnmanagedType.U1)] bool P_0)
Definition Texture2D.cs:939
bool ICollection< KeyValuePair< TKey, TValue > >. Contains(KeyValuePair< TKey, TValue > keyValuePair)
void Add(TKey key, TValue value)
static FileStream OpenRead(string path)
Definition File.cs:236
static readonly char DirectorySeparatorChar
Definition Path.cs:71
static double Ceiling(double a)
static void PlaySound(int type, Vector2 position, int style=1)
void SetImage(Asset< Texture2D > texture)
Definition UIImage.cs:38
GroupOptionButton< WorkshopItemPublicSettingId >[] _publicityOptions
UIElement AddHorizontalSeparator(UIElement Container, float accumualtedHeight, int widthReduction=0)
void Click_SetPreviewImage(UIMouseEvent evt, UIElement listeningElement)
void ClearOptionDescription(UIMouseEvent evt, UIElement listeningElement)
void steamDisclaimerText_OnMouseOver(UIMouseEvent evt, UIElement listeningElement)
void AddDescriptionPanel(UIElement container, float height, string tagGroup)
void FadedMouseOver(UIMouseEvent evt, UIElement listeningElement)
UIList AddUIList(UIElement container, float antiHeight)
bool TryFindingTags(out FoundWorkshopEntryInfo info)
UIElement CreateInsturctionsPanel(float accumulatedHeight, float height, string tagGroup)
void ShowOptionDescription(UIMouseEvent evt, UIElement listeningElement)
void AddBackButton(int backButtonYLift, UIElement outerContainer)
UIElement CreateTagOptionsPanel(float accumulatedHeight, int heightPerRow, string tagGroup)
void FadedMouseOut(UIMouseEvent evt, UIElement listeningElement)
void ClickPublicityOption(UIMouseEvent evt, UIElement listeningElement)
void CreateStylizedCategoryPanel(float height, string titleTextKey, out UIElement entirePanel, out UIElement innerPanel)
void AddPublishButton(int backButtonYLift, UIElement outerContainer)
void ClickTagOption(UIMouseEvent evt, UIElement listeningElement)
void steamDisclaimerText_OnClick(UIMouseEvent evt, UIElement listeningElement)
AWorkshopPublishInfoState(UIState stateToGoBackTo, TPublishedObjectType dataObject)
List< GroupOptionButton< WorkshopTagOption > > _tagOptions
void Click_GoBack(UIMouseEvent evt, UIElement listeningElement)
void Click_Publish(UIMouseEvent evt, UIElement listeningElement)
UIElement CreatePublicSettingsRow(float accumulatedHeight, float height, string tagGroup)
void steamDisclaimerText_OnMouseOut(UIMouseEvent evt, UIElement listeningElement)
static readonly Color FancyUIFatButtonMouseOver
Definition Colors.cs:91
static readonly Color InventoryDefaultColor
Definition Colors.cs:93
static LocalizedText GetText(string key)
Definition Language.cs:10
static string GetTextValueWith(string key, object obj)
Definition Language.cs:40
static UserInterface MenuUI
Definition Main.cs:381
static IAssetRepository Assets
Definition Main.cs:209
static GraphicsDeviceManager graphics
Definition Main.cs:972
static Terraria.Social.Base.WorkshopSocialModule Workshop
Definition SocialAPI.cs:24
static void ShowFailedToLoadAssetError(Exception exception, string filePath)
static Dictionary< int, UILinkPoint > Points
StyleDimension Height
Definition UIElement.cs:29
void Append(UIElement element)
Definition UIElement.cs:166
StyleDimension Left
Definition UIElement.cs:25
StyleDimension Width
Definition UIElement.cs:27
void RemoveChild(UIElement child)
Definition UIElement.cs:182
virtual List< SnapPoint > GetSnapPoints()
Definition UIElement.cs:267
StyleDimension Top
Definition UIElement.cs:23
static string OpenFilePanel(string title, string extension)
static Color Lerp(Color value1, Color value2, float amount)
Definition Color.cs:491
UILinkPoint TryMakeLinkPoint(ref int id, SnapPoint snap)
void RemovePointsOutOfView(List< SnapPoint > pts, UIElement containerPanel, SpriteBatch spriteBatch)
UILinkPoint[,] CreateUILinkPointGrid(ref int currentID, List< SnapPoint > pointsForGrid, int pointsPerLine, UILinkPoint topLinkPoint, UILinkPoint leftLinkPoint, UILinkPoint rightLinkPoint, UILinkPoint bottomLinkPoint)
void PairLeftRight(UILinkPoint leftSide, UILinkPoint rightSide)
void LinkHorizontalStripUpSideToSingle(UILinkPoint[] strip, UILinkPoint theSingle)
UILinkPoint[] CreateUILinkStripHorizontal(ref int currentID, List< SnapPoint > currentStrip)
void PairUpDown(UILinkPoint upSide, UILinkPoint downSide)
UILinkPoint GetLinkPoint(int id, UIElement element)
void LinkHorizontalStripBottomSideToSingle(UILinkPoint[] strip, UILinkPoint theSingle)
void MoveToVisuallyClosestPoint(List< UILinkPoint > lostrefpoints)
static StyleDimension FromPixels(float pixels)
void Set(float pixels, float precent)
static StyleDimension FromPercent(float percent)
static StyleDimension FromPixelsAndPercent(float pixels, float percent)