/// <summary> /// Creates color chooser window. /// </summary> /// <param name="desktop">desktop it belongs to.</param> public ColorChooser(Desktop desktop) : base(desktop, CreationFlag.FlagsNone, "") { this.colorPanel = CreateControl<Panel>(); this.redSelector = CreateControl<TrackBar>(); this.greenSelector = CreateControl<TrackBar>(); this.blueSelector = CreateControl<TrackBar>(); this.alphaSelector = CreateControl<TrackBar>(); this.colors = CreateControl<ComboBox>(); this.Text = "Select color"; this.Modal = true; this.MinSize = new Size2d(450, 330); this.Bounds = new Rectangle((desktop.Width - this.MinSize.Width) / 2, (desktop.Height - this.MinSize.Height) / 2, this.MinSize.Width, this.MinSize.Height); this.colorPanel.Bounds = new Rectangle(121, 210, 317, 50); this.colorPanel.Border = BorderStyle.Lowered; Button cancelButton = CreateControl<Button>(); cancelButton.Text = "Cancel"; cancelButton.Bounds = new Rectangle(343, 277, 95, 24); cancelButton.DialogResult = DialogResult.DialogResultCancel; cancelButton.Anchor = AnchorStyle.AnchorBottom | AnchorStyle.AnchorRight; Button selectButton = CreateControl<Button>(); selectButton.Text = "Select"; selectButton.Bounds = new Rectangle(245, 277, 95, 24); selectButton.DialogResult = DialogResult.DialogResultOK; selectButton.Anchor = AnchorStyle.AnchorBottom | AnchorStyle.AnchorRight; Control systemColorsLabel = CreateControl<Label>(); systemColorsLabel.Text = "System color"; systemColorsLabel.Bounds = new Rectangle(10, 43 - 35, 120, 24); Control redLabel = CreateControl<Label>(); redLabel.Text = "Red"; redLabel.Bounds = new Rectangle(10, 43, 120, 35); Control greenLabel = CreateControl<Label>(); greenLabel.Text = "Green"; greenLabel.Bounds = new Rectangle(10, 43 + 35, 120, 35); Control blueLabel = CreateControl<Label>(); blueLabel.Text = "Blue"; blueLabel.Bounds = new Rectangle(10, 43 + 35 + 35, 120, 35); Control alphaLabel = CreateControl<Label>(); alphaLabel.Text = "Alpha"; alphaLabel.Bounds = new Rectangle(10, 43 + 35 + 35 + 35, 120, 35); this.redSelector.Bounds = new Rectangle(121, 43, 317, 35); this.redSelector.Anchor = AnchorStyle.AnchorLeft | AnchorStyle.AnchorRight | AnchorStyle.AnchorTop; this.redSelector.ValueChanged += this.ColorSelectorValueChanged; this.greenSelector.Bounds = new Rectangle(121, 43 + 35, 317, 35); this.greenSelector.Anchor = AnchorStyle.AnchorLeft | AnchorStyle.AnchorRight | AnchorStyle.AnchorTop; this.greenSelector.ValueChanged += this.ColorSelectorValueChanged; this.blueSelector.Bounds = new Rectangle(121, 43 + 35 + 35, 317, 35); this.blueSelector.Anchor = AnchorStyle.AnchorLeft | AnchorStyle.AnchorRight | AnchorStyle.AnchorTop; this.blueSelector.ValueChanged += this.ColorSelectorValueChanged; this.alphaSelector.Bounds = new Rectangle(121, 43 + 35 + 35 + 35, 317, 35); this.alphaSelector.Anchor = AnchorStyle.AnchorLeft | AnchorStyle.AnchorRight | AnchorStyle.AnchorTop; this.alphaSelector.ValueChanged += this.ColorSelectorValueChanged; this.colors.Bounds = new Rectangle(121, 43 - 35, 317, 24); this.colors.Anchor = AnchorStyle.AnchorLeft | AnchorStyle.AnchorRight | AnchorStyle.AnchorTop; this.colors.SelectedItemChanged += new UIEventHandler<ComboBox>(ColorItemChanged); foreach (Color color in this.Desktop.Theme.Colors.SystemColors) { this.colors.AddItem(color.Name, color.Name, "", color); } AddControl(systemColorsLabel); AddControl(redLabel); AddControl(greenLabel); AddControl(blueLabel); AddControl(alphaLabel); AddControl(selectButton); AddControl(cancelButton); AddControl(this.colorPanel); AddControl(this.redSelector); AddControl(this.greenSelector); AddControl(this.blueSelector); AddControl(this.alphaSelector); AddControl(this.colors); }
private void ColorItemChanged(ComboBox sender, EventArgs args) { Color color = (Color)this.colors.SelectedItem.Tag; this.colorPanel.BackColor = color; this.redSelector.Position = color.R; this.greenSelector.Position = color.G; this.blueSelector.Position = color.B; this.alphaSelector.Position = color.A; }
/// <summary> /// Active control selected from combo box. /// </summary> /// <param name="sender">combobox that has changed value</param> /// <param name="args">arguments</param> private void ControlsListSelectedItemChanged(ComboBox sender, EventArgs args) { ComboBoxItem selectedItem = this.controlsList.SelectedItem; if (null != selectedItem) { SetControl((Control)selectedItem.Tag, false); } }
/// <summary> /// Constructs designer window object. /// </summary> /// <param name="engine">engine to get avaialble controls</param> /// <param name="desktop">desktop this window belongs to</param> public DesignWindow(UIEngine engine, Desktop desktop) : base(desktop, CreationFlag.FlagsNone, "") { this.controlsList = CreateControl<ComboBox>(); this.controlProperties = CreateControl<PropertyGrid>(); this.designPanel = CreateControl<Panel>(); this.toolBox = CreateControl<ScrollPanel>(); this.BackColor = this.Desktop.Theme.Colors.ControlDark; this.Bounds = new Rectangle(50, 50, 640, 480); this.MinSize = new Size2d(640, 480); this.menu = CreateControl<Menu>(); this.AddControl(this.menu); MenuItem fileMenu = this.menu.AddItem("File"); fileMenu.AddItem("New").Clicked += (x, y) => { NewWindow(); }; fileMenu.AddItem(""); fileMenu.AddItem("Open...").Clicked += new UIEventHandler<MenuItem>(OpenClicked); fileMenu.AddItem("Save").Clicked += (x, y) => { SaveWindow(); }; fileMenu.AddItem("Save as...").Clicked += (x, y) => { SaveAsWindow(); }; fileMenu.AddItem(""); fileMenu.AddItem("Exit").Clicked += new UIEventHandler<MenuItem>(DesignWindowCloseClicked); MenuItem helpMenu = this.menu.AddItem("Help"); helpMenu.AddItem("About").Clicked += (x, y) => { this.Desktop.NewRegisteredWindow(AboutWindow.TypeName); }; ToolBar toolBar = CreateControl<ToolBar>(); toolBar.Bounds = new Rectangle(2, 20, this.Bounds.Width - 4, 24); toolBar.Anchor = AnchorStyle.AnchorLeft | AnchorStyle.AnchorTop | AnchorStyle.AnchorRight; toolBar.BackColor = new Color(217, 214, 207); this.AddControl(toolBar); Button newButton = CreateControl<Button>(); newButton.Icon = "ui/design/new"; newButton.Border = BorderStyle.None; newButton.BackColor = new Color(217, 214, 207); newButton.BackImage = ""; newButton.Bounds = new Rectangle(8, 2, 20, 20); newButton.Clicked += (x, y) => { NewWindow(); }; toolBar.AddControl(newButton); Button deleteButton = CreateControl<Button>(); deleteButton.Icon = ("ui/design/delete"); deleteButton.Border = BorderStyle.None; deleteButton.BackColor = new Color(217, 214, 207); deleteButton.BackImage = ""; deleteButton.Bounds = new Rectangle(34, 2, 20, 20); deleteButton.Clicked += this.DeleteButtonClicked; toolBar.AddControl(deleteButton); Label controls = CreateControl<Label>(); controls.BackColor = this.Desktop.Theme.Colors.HighlightBorder; controls.Text = "Controls"; controls.TextAlignment = ContentAlignment.MiddleLeft; controls.TextColor = Colors.Black; controls.Bounds = new Rectangle(2, 44, 150, 17); controls.Anchor = AnchorStyle.AnchorLeft | AnchorStyle.AnchorTop; this.AddControl(controls); this.toolBox.Bounds = new Rectangle(2, 61, 150, 374); this.toolBox.Anchor = AnchorStyle.AnchorLeft | AnchorStyle.AnchorTop | AnchorStyle.AnchorBottom; this.AddControl(this.toolBox); int h = 5; foreach (KeyValuePair<String, KeyValuePair<Type, IControlsCreator>> controlType in this.Engine.ControlTypes) { KeyValuePair<Type, IControlsCreator> creator = controlType.Value; if (true == creator.Value.ShowInDesigner) { Button button = this.toolBox.CreateControl<Button>(); button.Bounds = new Rectangle(8, h, this.toolBox.Bounds.Width - 30, 20); button.Border = BorderStyle.None; button.BackImage = ""; button.Name = controlType.Key; button.TextAlignment = ContentAlignment.MiddleLeft; button.TextOffset.X = 4; button.TextOffset.Y = 0; button.Text = controlType.Key; button.Clicked += (x, y) => { SelectControlType(x); }; this.toolBox.AddControl(button); h += 24; } } int propertiesWidth = 210; Label propertiesLabel = CreateControl<Label>(); propertiesLabel.BackColor = this.Desktop.Theme.Colors.HighlightBorder; propertiesLabel.Text = "Properties"; propertiesLabel.TextAlignment = ContentAlignment.MiddleLeft; propertiesLabel.Bounds = new Rectangle(this.Bounds.Width - propertiesWidth - 2, 44, propertiesWidth - 2, 17); propertiesLabel.Anchor = AnchorStyle.AnchorTop | AnchorStyle.AnchorRight; this.AddControl(propertiesLabel); this.controlsList.Bounds = new Rectangle(this.Bounds.Width - propertiesWidth - 2, 61, propertiesWidth - 2, 23); this.controlsList.Anchor = AnchorStyle.AnchorTop | AnchorStyle.AnchorRight; this.controlsList.Border = BorderStyle.Lowered; this.controlsList.BackColor = Colors.White; this.controlsList.SelectedItemChanged += this.ControlsListSelectedItemChanged; this.AddControl(this.controlsList); this.controlProperties.Bounds = new Rectangle(this.Bounds.Width - propertiesWidth - 2, 84, propertiesWidth - 2, 351); this.controlProperties.Anchor = AnchorStyle.AnchorTop | AnchorStyle.AnchorRight | AnchorStyle.AnchorBottom; this.AddControl(this.controlProperties); StatusBar statusBar = CreateControl<StatusBar>(); statusBar.Anchor = AnchorStyle.AnchorLeft | AnchorStyle.AnchorRight | AnchorStyle.AnchorBottom; statusBar.Bounds = new Rectangle(2, this.Bounds.Height - 23 - 4 - 18, this.Bounds.Width - 4, 23); statusBar.Text = "Ready"; statusBar.TextAlignment = ContentAlignment.MiddleLeft; this.AddControl(statusBar); this.designPanel.Anchor = AnchorStyle.AnchorLeft | AnchorStyle.AnchorRight | AnchorStyle.AnchorBottom | AnchorStyle.AnchorTop; this.designPanel.Bounds = new Rectangle(152, 44, 276, 391); this.designPanel.BackColor = this.Desktop.Theme.Colors.ControlDark; this.designPanel.Border = BorderStyle.Lowered; this.AddControl(this.designPanel); this.HasShadow = true; this.CenterDesktop = true; }
private void DrivesSelectedItemChanged(ComboBox sender, EventArgs args) { ComboBoxItem selectedItem = this.drivesComboBox.SelectedItem; if (null != selectedItem) { FillList((IRealFile)selectedItem.Tag); } }
/// <summary> /// Creates files chooser window. /// </summary> /// <param name="desktop">desktop it belongs to.</param> public FileChooser(Desktop desktop) : base(desktop, CreationFlag.FlagsNone, "") { this.filesListListBox = CreateControl<ListBox>(); this.filtersComboBox = CreateControl<ComboBox>(); this.fileNameTextBox = CreateControl<TextBox>(); this.desktopItem = CreateControl<ListItem>(); this.myDocumentsItem = CreateControl<ListItem>(); this.myComputerItem = CreateControl<ListItem>(); this.NetworkItem = CreateControl<ListItem>(); this.virtualFileSystemItem = CreateControl<ListItem>(); this.drivesComboBox = CreateControl<ComboBox>(); this.upButton = CreateControl<Button>(); this.selectButton = CreateControl<Button>(); this.filesScrollPanel = CreateControl<ScrollPanel>(); this.BackColor = this.Desktop.Theme.Colors.Control; this.MinSize = new Size2d(563, 412); this.Text = "Select File"; this.Opacity = 1.0f; this.Modal = true; this.Bounds = new Rectangle((desktop.Width - this.MinSize.Width) / 2, (desktop.Height - this.MinSize.Height) / 2, this.MinSize.Width, this.MinSize.Height); this.HasShadow = true; this.selectButton.Anchor = AnchorStyle.AnchorBottom | AnchorStyle.AnchorRight; this.selectButton.Text = "Open"; this.selectButton.Bounds = new Rectangle(477, 330, 75, 23); this.selectButton.DialogResult = DialogResult.DialogResultOK; AddControl(this.selectButton); Button cancelButton = CreateControl<Button>(); cancelButton.Anchor = AnchorStyle.AnchorBottom | AnchorStyle.AnchorRight; cancelButton.Text = "Cancel"; cancelButton.Bounds = new Rectangle(477, 357, 75, 23); cancelButton.DialogResult = DialogResult.DialogResultCancel; AddControl(cancelButton); Label lookInLabel = CreateControl<Label>(); lookInLabel.Anchor = AnchorStyle.AnchorLeft | AnchorStyle.AnchorTop; lookInLabel.Text = "Look in:"; lookInLabel.Bounds = new Rectangle(10, 10, 87, 23); AddControl(lookInLabel); Label fileNameLabel = CreateControl<Label>(); fileNameLabel.Anchor = AnchorStyle.AnchorLeft | AnchorStyle.AnchorBottom; fileNameLabel.Text = "File name:"; fileNameLabel.Bounds = new Rectangle(103, 331, 97, 23); AddControl(fileNameLabel); Label filterLabel = CreateControl<Label>(); filterLabel.Anchor = AnchorStyle.AnchorLeft | AnchorStyle.AnchorBottom; filterLabel.Text = "Files of type:"; filterLabel.Bounds = new Rectangle(103, 359, 97, 23); AddControl(filterLabel); ListBox sideListBox = CreateControl<ListBox>(); sideListBox.Opacity = 0.5f; sideListBox.Border = BorderStyle.BorderLoweredDouble; sideListBox.BackColor = this.Desktop.Theme.Colors.ControlDark; sideListBox.AutoSize = false; sideListBox.Anchor = AnchorStyle.AnchorLeft | AnchorStyle.AnchorTop | AnchorStyle.AnchorBottom; sideListBox.Bounds = new Rectangle(10, 39, 87, 338); AddControl(sideListBox); this.desktopItem.Bounds = new Rectangle(2, 2, 82, 60); this.desktopItem.Text = "Desktop"; this.desktopItem.Clicked += (sender, args) => { FillList(this.desktopFolder); }; sideListBox.AddControl(this.desktopItem); this.myDocumentsItem.Bounds = new Rectangle(2, 2, 62, 60); this.myDocumentsItem.Text = "My Documents"; this.myDocumentsItem.Clicked += (sender, args) => { FillList(GetFile(this.desktopFolder, FileTypes.MyDocuments)); }; sideListBox.AddControl(this.myDocumentsItem); this.myComputerItem.Bounds = new Rectangle(2, 2, 122, 60); this.myComputerItem.Text = "My Computer"; this.myComputerItem.Clicked += (sender, args) => { FillList(GetFile(this.desktopFolder, FileTypes.MyComputer)); }; sideListBox.AddControl(this.myComputerItem); this.NetworkItem.Bounds = new Rectangle(2, 2, 182, 60); this.NetworkItem.Text = "Network"; this.NetworkItem.Clicked += (sender, args) => { FillList(GetFile(this.desktopFolder, FileTypes.Network)); }; sideListBox.AddControl(this.NetworkItem); this.virtualFileSystemItem.Bounds = new Rectangle(2, 2, 242, 60); this.virtualFileSystemItem.Text = "Virtual FS"; this.virtualFileSystemItem.Clicked += this.VirtualFileSystemClicked; sideListBox.AddControl(this.virtualFileSystemItem); this.filesScrollPanel.Border = BorderStyle.BorderLoweredDouble; this.filesScrollPanel.BackColor = this.Window.Desktop.Theme.Colors.Window; this.filesScrollPanel.Anchor = AnchorStyle.AnchorBottom | AnchorStyle.AnchorLeft | AnchorStyle.AnchorTop | AnchorStyle.AnchorRight; this.filesScrollPanel.Opacity = 0.5f; this.filesScrollPanel.Bounds = new Rectangle(103, 39, 450, 283); AddControl(this.filesScrollPanel); this.filesListListBox.Border = BorderStyle.None; this.filesListListBox.BackColor = Colors.None; this.filesListListBox.Anchor = AnchorStyle.AnchorLeft | AnchorStyle.AnchorTop; this.filesListListBox.Bounds = new Rectangle(0, 0, 430, 0); this.filesListListBox.ListStyle = ListStyle.Details; this.filesListListBox.AutoSize = true; this.filesScrollPanel.AddControl(this.filesListListBox); this.fileNameTextBox.Anchor = AnchorStyle.AnchorLeft | AnchorStyle.AnchorRight | AnchorStyle.AnchorBottom; this.fileNameTextBox.Bounds = new Rectangle(199, 332, 266, 22); AddControl(this.fileNameTextBox); this.drivesComboBox.Anchor = AnchorStyle.AnchorLeft | AnchorStyle.AnchorRight | AnchorStyle.AnchorTop; this.drivesComboBox.Bounds = new Rectangle(103, 10, 421, 22); this.drivesComboBox.SelectedItemChanged += new UIEventHandler<ComboBox>(DrivesSelectedItemChanged); this.drivesComboBox.NeedTranslation = false; AddControl(this.drivesComboBox); this.filtersComboBox.Anchor = AnchorStyle.AnchorLeft | AnchorStyle.AnchorRight | AnchorStyle.AnchorBottom; this.filtersComboBox.Bounds = new Rectangle(199, 359, 266, 22); this.filtersComboBox.SelectedItemChanged += (sender, args) => { FillList(this.activeVirtualFolder); }; AddControl(this.filtersComboBox); this.upButton.Anchor = AnchorStyle.AnchorRight | AnchorStyle.AnchorTop; this.upButton.Bounds = new Rectangle(528, 10, 23, 23); this.upButton.Icon = (this.Window.Desktop.Theme.ThemeFolder + "icons/button_up"); this.upButton.Clicked += this.UpButtonClicked; AddControl(this.upButton); IVirtualFile myComputer = GetFile(this.desktopFolder, FileTypes.MyComputer); if (null != myComputer) { foreach (IVirtualFile file in myComputer.ChildFiles) { ComboBoxItem item = this.drivesComboBox.AddItem(file.Name, file.Name, "", file); item.SetIcon(FileUtils.Platform.GetFileIcon(file.Name, false, this.Engine, this.Window.Desktop.Theme)); } } this.desktopItem.icon = new ImageObject(FileUtils.Platform.GetDesktopIcon(true, this.Engine, this.Window.Desktop.Theme), this.Engine, null); this.myDocumentsItem.icon = new ImageObject(FileUtils.Platform.GetMyDocumentsIcon(true, this.Engine, this.Window.Desktop.Theme), this.Engine, null); this.myComputerItem.icon = new ImageObject(FileUtils.Platform.GetMyComputerIcon(true, this.Engine, this.Window.Desktop.Theme), this.Engine, null); this.NetworkItem.icon = new ImageObject(FileUtils.Platform.GetNetworkIcon(true, this.Engine, this.Window.Desktop.Theme), this.Engine, null); this.virtualFileSystemItem.icon = new ImageObject(FileUtils.Platform.GetIcon(4, true, this.Engine, this.Window.Desktop.Theme), this.Engine, null); List<String> extensions = new List<String>(); extensions.Add(""); AddFilter("All files (*.*)", extensions); extensions = new List<String>(); extensions.Add(".avi"); extensions.Add(".omg"); extensions.Add(".mpg"); AddFilter("Video files (*.avi; *.omg; *.mpg)", extensions); extensions = new List<String>(); extensions.Add(".mp3"); extensions.Add(".ogg"); extensions.Add(".wav"); AddFilter("Audio files (*.mp3; *.ogg; *.wav)", extensions); extensions = new List<String>(); extensions.Add(".txt"); extensions.Add(".doc"); extensions.Add(".pdf"); AddFilter("Documents (*.txt; *.doc; *.pdf)", extensions); extensions = new List<String>(); extensions.Add(".png"); extensions.Add(".jpg"); extensions.Add(".tga"); AddFilter("Images (*.png; *.jpg; *.tga)", extensions); FillList(this.desktopFolder); }