コード例 #1
0
ファイル: LayoutsPanel.cs プロジェクト: mbeone/RealDrawings
 /// <summary>
 /// Creates a new layout
 /// </summary>
 private void DoNewLayout()
 {
     m_current_event = LayoutEvent.New;
     RhinoApp.RunScript("_Layout", false);
     FillListView();
     m_current_event = LayoutEvent.None;
 }
コード例 #2
0
        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;
                }
            }
        }
コード例 #3
0
        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);
        }
コード例 #5
0
        private void OnLayoutEvent(LayoutEvent e)
        {
            if (AlwaysInvalidateMeasureOnChildDesiredSizeChanged)
            {
                return;
            }

            if (m_layoutEvents.Count >= 2)
            {
                m_layoutEvents.RemoveFirst();
            }

            m_layoutEvents.AddLast(e);
        }
コード例 #6
0
        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;
            }
        }
コード例 #7
0
ファイル: LayoutsPanel.cs プロジェクト: mbeone/RealDrawings
        /// <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;
        }
コード例 #8
0
ファイル: LayoutsPanel.cs プロジェクト: mbeone/RealDrawings
 /// <summary>
 /// RhinoApp.Idle event handler
 /// </summary>
 private void OnIdle(object sender, EventArgs e)
 {
     m_current_event = LayoutEvent.None;
     RhinoApp.Idle  -= OnIdle;
     FillListView();
 }
コード例 #9
0
ファイル: LayoutsPanel.cs プロジェクト: mbeone/RealDrawings
 /// <summary>
 /// RhinoDoc.EndOpenDocument event handler
 /// </summary>
 private void OnEndOpenDocument(object sender, DocumentOpenEventArgs e)
 {
     m_current_event = LayoutEvent.Open;
     m_text.Text     = "";
     RhinoApp.Idle  += OnIdle;
 }
コード例 #10
0
 void RenderLayout(LayoutEvent e) => DoLayout((extents, order, element) => element.Render(extents, order));
コード例 #11
0
    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;
    }