/// <summary> /// Creates a new layout /// </summary> private void DoNewLayout() { m_current_event = LayoutEvent.New; RhinoApp.RunScript("_Layout", false); FillListView(); m_current_event = LayoutEvent.None; }
private void ExternalControlEndpoint_StaticOnLayoutEvent(object sender, LayoutEventArgs e) { LayoutEvent events = e.LayoutEvent; if (events == null) { return; } var position = events.Layout.PanelPositions.FirstOrDefault(p => p.PanelId.Equals(PanelID)); if (position != null) { switch (Part) { case EPositionPart.X: CurrentValue = position.X; break; case EPositionPart.Y: CurrentValue = position.Y; break; case EPositionPart.Orientation: CurrentValue = position.Orientation; break; } } }
private void OnLayoutEvent(LayoutEvent e) { if (m_layoutEvents.Count >= 2) { m_layoutEvents.RemoveFirst(); } m_layoutEvents.AddLast(e); }
/// <summary> /// Invoked after construction, and after all DAML settings have been loaded. /// Use this to perform initialization such as setting ButtonType. /// </summary> protected override void Initialize() { base.Initialize(); // set the button type // change for different button types ButtonType = TrayButtonType.ToggleButton; // subscribe to LayoutEvent for when the user // toggles the Guides via other parts of the UI // (for example the Layout context menu in the TOC) LayoutEvent.Subscribe(OnLayoutChanged); }
private void OnLayoutEvent(LayoutEvent e) { if (AlwaysInvalidateMeasureOnChildDesiredSizeChanged) { return; } if (m_layoutEvents.Count >= 2) { m_layoutEvents.RemoveFirst(); } m_layoutEvents.AddLast(e); }
private void ExternalControlEndpoint_StaticOnLayoutEvent(object sender, LayoutEventArgs e) { if (!NanoleafPlugin.getClient(this.SerialNumber).IP.Equals(e.IP)) { return; } LayoutEvent events = e.LayoutEvent; if (events == null) { return; } var value = events.Layout?.NumberOfPanels; if (value.HasValue) { this.CurrentValue = value.Value; } }
/// <summary> /// Deletes the currently selected layouts /// </summary> private void DoDeleteLayout() { var count = m_list.SelectedItems.Count; if (0 == count) { return; } var message = 1 == count ? "Permanently deleted the selected layout?" : "Permanently deleted the selected layouts?"; var title = 1 == count ? "Delete Layout" : "Delete Layouts"; var rc = Dialogs.ShowMessage(message, title, ShowMessageButton.YesNo, ShowMessageIcon.Warning); if (rc == ShowMessageResult.No) { return; } m_current_event = LayoutEvent.Delete; foreach (ListViewItem item in m_list.SelectedItems) { DoActiveLayout((uint)item.Tag); RhinoApp.Wait(); RhinoApp.RunScript("_-CloseViewport _Yes", false); RhinoApp.Wait(); } FillListView(); m_current_event = LayoutEvent.None; }
/// <summary> /// RhinoApp.Idle event handler /// </summary> private void OnIdle(object sender, EventArgs e) { m_current_event = LayoutEvent.None; RhinoApp.Idle -= OnIdle; FillListView(); }
/// <summary> /// RhinoDoc.EndOpenDocument event handler /// </summary> private void OnEndOpenDocument(object sender, DocumentOpenEventArgs e) { m_current_event = LayoutEvent.Open; m_text.Text = ""; RhinoApp.Idle += OnIdle; }
void RenderLayout(LayoutEvent e) => DoLayout((extents, order, element) => element.Render(extents, order));
public void BuildNewCalendarGO(List <DBEvent> allEvents) { if (allEvents.Count == 0) { //Debug.LogError("Trying to display no events!"); return; } // Ignores events that go over midnight! List <LayoutEvent> sortedCalendar = new List <LayoutEvent>(allEvents.Select(dBEvent => new LayoutEvent(dBEvent)).OrderBy(ev => ev.Start).ThenBy(ev => ev.End).ToList()); LayoutEvents(sortedCalendar); Queue <LayoutEvent> calendarQueue = new Queue <LayoutEvent>(sortedCalendar); int calendarTotalDays = (sortedCalendar.Last().End - sortedCalendar.First().Start).Days + 1; if (calendarTotalDays > 7) { Debug.LogError("Trying to display events within a span of more than 7 days!"); } //Debug.Log("Total calendar days: " + calendarTotalDays); bool over3Days = calendarTotalDays > 3; float titlePanelHeight = 1 - (((over3Days ? 510 : 108) / calendarTotalDays + 16) / parentPanel.rect.size.y); int hoursWidth = 60; float hourHeight = 135 / parentPanel.rect.size.y * titlePanelHeight; RectTransform calendarObject = buildBaseGO(); calendarObject.gameObject.SetActive(false); RectTransform titlesPanel = buildTitlesPanel(calendarObject, titlePanelHeight); RectTransform dayTitlesPanel = buildDayTitlesPanel(titlesPanel, hoursWidth); RectTransform eventsViewportPanel = buildEventsViewportPanel(calendarObject, titlePanelHeight); RectTransform scrollContentPanel = buildScrollContentPanel(eventsViewportPanel, hourHeight); RectTransform daysPanel = buildDaysPanel(scrollContentPanel, hoursWidth); setupScrolRect(calendarObject.gameObject, scrollContentPanel, eventsViewportPanel); DateTime startDate = sortedCalendar.First().Start; for (int i = 0; i < calendarTotalDays; i++) { buildDayTitle(dayTitlesPanel, i, calendarTotalDays, startDate, over3Days); RectTransform dayPanel = buildDayPanel(daysPanel, i, calendarTotalDays); for (int j = 0; j < 24; j++) { buildHourPanel(dayPanel, j); } if (calendarQueue.Count == 0) { continue; } while (calendarQueue.Peek().Start.Date == startDate.AddDays(i).Date) { LayoutEvent le = calendarQueue.Dequeue(); buildEventPanel(dayPanel, le); if (calendarQueue.Count == 0) { break; } } } for (int j = 1; j < 24; j++) { buildHourText(scrollContentPanel, j, hoursWidth); } if (currentCalendar != null) { currentCalendar.SetActive(false); DestroyImmediate(currentCalendar); } calendarObject.localScale = Vector3.one; calendarObject.gameObject.SetActive(true); currentCalendar = calendarObject.gameObject; }