public void AttachToAct(FFXIVTranslatePlugin plugin)
        {
            _plugin = plugin;
            var parentTabPage = plugin.ParentTabPage;

            parentTabPage.Controls.Add(this);
            parentTabPage.Resize += ParentTabPageOnResize;
            ParentTabPageOnResize(parentTabPage, null);

            var settings = plugin.Settings;

            // add settings
            settings.AddControlSetting(numericUpDownX);
            settings.AddControlSetting(numericUpDownY);
            settings.AddControlSetting(numericUpDownWidth);
            settings.AddControlSetting(numericUpDownHeight);
            settings.AddControlSetting(trackBarOpacity);
            settings.AddControlSetting(checkBoxClickthrough);
            settings.AddControlSetting(checkBoxShowOverlay);
            settings.AddControlSetting(checkBoxAutoHide);
            settings.AddControlSetting(checkBoxAddTimestamp);
            settings.AddControlSetting(checkBox24Hour);
            settings.AddControlSetting(checkBoxCheckUpdate);
            settings.AddControlSetting(checkBoxNotifyStableOnly);

            foreach (var cs in _channelSettings)
            {
                settings.AddControlSetting(cs.CheckBoxFilter);
                cs.CheckBoxFilter.CheckedChanged += CheckBoxChannelFilterOnCheckedChanged;

                settings.AddControlSetting(cs.CheckBoxLabel);
                cs.CheckBoxLabel.CheckedChanged += CheckBoxChannelLabelOnCheckedChanged;

                settings.AddControlSetting(cs.ButtonColor);
                cs.ButtonColor.Click       += ButtonChannelColorClick;
                cs.ButtonColor.TextChanged += ButtonColorOnTextChanged;
            }

            _controller = plugin.Controller;

            numericUpDownX.ValueChanged           += NumericUpDownPositionOnValueChanged;
            numericUpDownY.ValueChanged           += NumericUpDownPositionOnValueChanged;
            numericUpDownWidth.ValueChanged       += NumericUpDownSizeOnValueChanged;
            numericUpDownHeight.ValueChanged      += NumericUpDownSizeOnValueChanged;
            checkBoxClickthrough.CheckedChanged   += CheckBoxClickthroughOnCheckedChanged;
            comboBoxLanguage.SelectedIndexChanged += ComboBoxLanguageSelectedIndexChanged;
            checkBoxAddTimestamp.CheckedChanged   += CheckBoxAddTimestampOnCheckedChanged;
            checkBox24Hour.CheckedChanged         += CheckBox24HourOnCheckedChanged;

            _controller.SettingsLoaded          += ControllerOnSettingsLoaded;
            _controller.OverlayMoved            += ControllerOnOverlayMoved;
            _controller.OverlayResized          += ControllerOnOverlayResized;
            _controller.LanguageChanged         += ControllerOnLanguageChanged;
            _controller.LogMessageAppend        += ControllerOnLogMessageAppend;
            _controller.OverlayFontChanged      += ControllerOnOverlayFontChanged;
            _controller.ChannelColorChanged     += ControllerOnChannelColorChanged;
            _controller.ProxyChanged            += ControllerOnProxyChanged;
            _controller.UpdateCheckingStarted   += ControllerOnUpdateCheckingStarted;
            _controller.VersionChecked          += ControllerOnVersionChecked;
            _controller.ShortcutChanged         += ControllerOnShortcutChanged;
            _controller.ShortcutRegister        += ControllerOnShortcutRegister;
            _controller.ShortcutFired           += ControllerOnShortcutFired;
            _controller.BatchTranslateCompleted += ControllerOnBatchTranslateCompleted;

            translateProviderPanel.AttachToAct(plugin);
        }