protected override string Register(System.Reflection.MemberInfo mi, object target)
        {
            if (target.GetType().IsSubclassOf(typeof(System.Windows.Forms.Control)))
            {
                CategoryData data = new CategoryData(title, (System.Windows.Forms.Control)target);
                Core.GuiThread.AddSettingsPage(data);

                return String.Format("Settings category '{0}' added.", title);
            }
            else
            {
                throw new RuntimeException("SettingsCategoryAttribute can be used only on types inherited from System.Windows.Forms.Control.");
            }
        }
Пример #2
0
        public void AddCategory(CategoryData data)
        {
            if (data == null)
            {
                throw new ArgumentNullException("data");
            }

            if (data.Control == null)
            {
                throw new ArgumentNullException("data.Control");
            }

            if (data.Title == null)
            {
                throw new ArgumentNullException("data.Title");
            }

            listBox.Items.Add(data);
            listBox.SelectedIndex = 0;

            data.Control.CreateControl();
        }
Пример #3
0
        private void listBox_SelectedIndexChanged(object sender, EventArgs e)
        {
            CategoryData data = listBox.SelectedItem as CategoryData;

            if (data == null || data.Control != activeControl)
            {
                if (activeControl != null)
                {
                    activeControl.Hide();
                    Controls.Remove(activeControl);
                    activeControl = null;
                }

                if (data != null)
                {
                    activeControl = data.Control;
                    SetControlSize(activeControl);
                    Controls.Add(activeControl);
                    activeControl.Show();
                }
            }
        }
Пример #4
0
 public void RemoveSettingsPage(CategoryData data)
 {
     InvokeFast(new SettingsCategoryDelegate(window.SettingsPage.RemoveCategory), data);
 }
Пример #5
0
 public void AddSettingsPage(CategoryData data)
 {
     InvokeFast(new SettingsCategoryDelegate(window.SettingsPage.AddCategory), data);
 }
Пример #6
0
 public void RemoveCategory(CategoryData data)
 {
     listBox.Items.Remove(data);
 }
Пример #7
0
 internal void RemoveCategory(CategoryData data)
 {
     categoryControl.RemoveCategory(data);
     RuntimeCore.RemoveAssemblyObject(data);
 }
Пример #8
0
 internal void AddCategory(CategoryData data)
 {
     RuntimeCore.AddAssemblyObject(data, this);
     categoryControl.AddCategory(data);
 }