/// <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); }