public Handle(LayoutSuspensionSemaphore semaphore)
            {
                this.semaphore = semaphore;

                Logging.AddMessage($"Handle for [{semaphore.control}] acquired");

                semaphore.AddUser();
            }
        public CreateMeeting(User initiator)
        {
            this._thisMeeting = new Meeting(initiator);

            InitializeComponent();
            participantSemaphore = new LayoutSuspensionSemaphore(participantFlowPanel);

            UpdatePanels();
            //ensure all users are displayed in the 'search' dropdown
            userToAddBox.Items.AddRange(AllUsers.Users.ToArray());
            calendarPanel1.editedMeeting = _thisMeeting;
            this.cancelBtn.Text          = editing ? "Cancel Meeting" : "Cancel";
        }
        public InteractMeetingPanel()
        {
            InitializeComponent();
            semaphore = new LayoutSuspensionSemaphore(this);

            ToolTip initOnlyTooltip = new ToolTip();

            initOnlyTooltip.ToolTipTitle = "";
            initOnlyTooltip.SetToolTip(this.editBtn, "Only initiators can edit meetings");
            initOnlyTooltip.SetToolTip(this.viewRequestsBtn, "Only initiators can view requests");

            UpdatePanels(null, null);
        }
        public CreateMeeting(Meeting meeting)
        {
            this._thisMeeting = meeting;

            InitializeComponent();
            participantSemaphore = new LayoutSuspensionSemaphore(participantFlowPanel);

            UpdatePanels();

            // Ensure data on screen matches the meeting
            editing = true;

            newMeetingTitle.Text   = meeting.Name;
            newMeetingDetails.Text = meeting.Details;
            numericUpDown1.Value   = meeting.Length;
            originalTime           = meeting.StartTime;

            userToAddBox.Items.AddRange(AllUsers.Users.ToArray());
            calendarPanel1.editedMeeting = _thisMeeting;
            this.cancelBtn.Text          = editing ? "Cancel Meeting" : "Cancel";
        }
        public CalendarPanel()
        {
            InitializeComponent();

            semaphore = new LayoutSuspensionSemaphore(this);
        }