Exemplo n.º 1
0
        private string ChooseFile(CommonFileDialogFilter filter, string initialDir)
        {
            var dialog = new CommonOpenFileDialog();
            dialog.IsFolderPicker = false;
            dialog.EnsureReadOnly = false;
            dialog.AllowNonFileSystemItems = false;
            dialog.Filters.Add(filter);
            if (initialDir != null)
                dialog.InitialDirectory = initialDir;

            var result = dialog.ShowDialog();

            return result == CommonFileDialogResult.Ok ? dialog.FileName : null;
        }
Exemplo n.º 2
0
        /// <summary>
        /// Open a user-specified text file in a new tab (using a RichTextBox)
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void button3_Click(object sender, EventArgs e)
        {
            // Open text file
            CommonOpenFileDialog cfd = new CommonOpenFileDialog();

            CommonFileDialogStandardFilters.TextFiles.ShowExtensions = true;
            CommonFileDialogFilter rtfFilter = new CommonFileDialogFilter("RTF Files", ".rtf");
            rtfFilter.ShowExtensions = true;

            cfd.Filters.Add(CommonFileDialogStandardFilters.TextFiles);
            cfd.Filters.Add(rtfFilter);

            if (cfd.ShowDialog() == CommonFileDialogResult.Ok)
            {
                TabPage newTab = new TabPage(Path.GetFileName(cfd.FileName));
                tabControl1.TabPages.Add(newTab);
                RichTextBox rtbText = new RichTextBox();
                rtbText.KeyDown += new KeyEventHandler(rtbText_KeyDown);
                rtbText.MouseMove += new MouseEventHandler(rtbText_MouseMove);
                rtbText.KeyUp += new KeyEventHandler(rtbText_KeyUp);
                rtbText.Dock = DockStyle.Fill;

                // Based on the extension, load the file appropriately in the RichTextBox
                if (Path.GetExtension(cfd.FileName).ToLower() == ".txt")
                    rtbText.LoadFile(cfd.FileName, RichTextBoxStreamType.PlainText);
                else if (Path.GetExtension(cfd.FileName).ToLower() == ".rtf")
                    rtbText.LoadFile(cfd.FileName, RichTextBoxStreamType.RichText);

                // Update the tab
                newTab.Controls.Add(rtbText);

                // Add a new preview
                TabbedThumbnail preview = new TabbedThumbnail(this.Handle, newTab.Handle);

                // Event handlers for this preview
                preview.TabbedThumbnailActivated += preview_TabbedThumbnailActivated;
                preview.TabbedThumbnailClosed += preview_TabbedThumbnailClosed;
                preview.TabbedThumbnailMaximized += preview_TabbedThumbnailMaximized;
                preview.TabbedThumbnailMinimized += preview_TabbedThumbnailMinimized;

                preview.ClippingRectangle = GetClippingRectangle(rtbText);
                TaskbarManager.Instance.TabbedThumbnail.AddThumbnailPreview(preview);

                // Add thumbnail toolbar buttons
                TaskbarManager.Instance.ThumbnailToolBars.AddButtons(newTab.Handle, thumbButtonCut, thumbButtonCopy, thumbButtonPaste, thumbButtonSelectAll);

                // Select the tab in the application UI as well as taskbar tabbed thumbnail list
                tabControl1.SelectedTab = newTab;
                TaskbarManager.Instance.TabbedThumbnail.SetActiveTab(tabControl1.SelectedTab);

                button2.Enabled = true;
                button4.Enabled = true;
            }
        }
Exemplo n.º 3
0
        public void ShowFileOpenDialog()
        {
            string[] fileNames;
              List<Agent.KeyConstraint> constraints = new List<Agent.KeyConstraint>();
              if (mAgent is PageantClient) {
            // Client Mode with Pageant - Show standard file dialog since we don't
            // need / can't use constraints

            using (var openFileDialog = new OpenFileDialog()) {
              openFileDialog.Multiselect = true;
              openFileDialog.Filter = string.Join ("|",
            Strings.filterPuttyPrivateKeyFiles, "*.ppk",
            Strings.filterAllFiles, "*.*");

              var result = openFileDialog.ShowDialog ();
              if (result != DialogResult.OK) {
            return;
              }
              fileNames = openFileDialog.FileNames;
            }
              } else if (CommonOpenFileDialog.IsPlatformSupported) {
            // Windows Vista/7/8 has new style file open dialog that can be extended
            // using the Windows API via the WindowsAPICodepack library

            var win7OpenFileDialog = new CommonOpenFileDialog ();
            win7OpenFileDialog.Multiselect = true;
            win7OpenFileDialog.EnsureFileExists = true;

            var confirmConstraintCheckBox =
              new CommonFileDialogCheckBox (cConfirmConstraintCheckBox,
              "Require user confirmation");
            var lifetimeConstraintTextBox =
              new CommonFileDialogTextBox (cLifetimeConstraintTextBox, string.Empty);
            lifetimeConstraintTextBox.Visible = false;
            var lifetimeConstraintCheckBox =
              new CommonFileDialogCheckBox (cLifetimeConstraintCheckBox,
              "Set lifetime (in seconds)");
            lifetimeConstraintCheckBox.CheckedChanged +=
              delegate(object aSender, EventArgs aEventArgs) {
              lifetimeConstraintTextBox.Visible =
              lifetimeConstraintCheckBox.IsChecked;
            };

            var confirmConstraintGroupBox = new CommonFileDialogGroupBox ();
            var lifetimeConstraintGroupBox = new CommonFileDialogGroupBox ();

            confirmConstraintGroupBox.Items.Add (confirmConstraintCheckBox);
            lifetimeConstraintGroupBox.Items.Add (lifetimeConstraintCheckBox);
            lifetimeConstraintGroupBox.Items.Add (lifetimeConstraintTextBox);

            win7OpenFileDialog.Controls.Add (confirmConstraintGroupBox);
            win7OpenFileDialog.Controls.Add (lifetimeConstraintGroupBox);

            var filter = new CommonFileDialogFilter (
              Strings.filterPuttyPrivateKeyFiles, "*.ppk");
            win7OpenFileDialog.Filters.Add (filter);
            filter = new CommonFileDialogFilter (Strings.filterAllFiles, "*.*");
            win7OpenFileDialog.Filters.Add (filter);

            win7OpenFileDialog.FileOk += win7OpenFileDialog_FileOk;

            /* add help listeners to win7OpenFileDialog */

            // declare variables here so that the GC does not eat them.
            WndProcDelegate newWndProc, oldWndProc = null;
            win7OpenFileDialog.DialogOpening += (sender, e) =>
            {
              var hwnd = win7OpenFileDialog.GetWindowHandle();

              // hook into WndProc to catch WM_HELP, i.e. user pressed F1
              newWndProc = (hWnd, msg, wParam, lParam) =>
              {
            const short shellHelpCommand = 0x7091;

            var win32Msg = (Win32Types.Msg)msg;
            switch (win32Msg) {
              case Win32Types.Msg.WM_HELP:
                var helpInfo = (HELPINFO)Marshal.PtrToStructure(lParam, typeof(HELPINFO));
                // Ignore if we are on an unknown control or control 100.
                // These are the windows shell control. The help command is
                // issued by these controls so by not ignoring, we would call
                // the help method twice.
                if (helpInfo.iCtrlId != 0 && helpInfo.iCtrlId != 100)
                  OnAddFromFileHelpRequested(win7OpenFileDialog, EventArgs.Empty);
                return (IntPtr)1; // TRUE
              case Win32Types.Msg.WM_COMMAND:
                var wParamBytes = BitConverter.GetBytes(wParam.ToInt32());
                var highWord = BitConverter.ToInt16(wParamBytes, 0);
                var lowWord = BitConverter.ToInt16(wParamBytes, 2);
                if (lowWord == 0 && highWord == shellHelpCommand) {
                  OnAddFromFileHelpRequested(win7OpenFileDialog, EventArgs.Empty);
                  return (IntPtr)0;
                }
                break;
            }
            return CallWindowProc(oldWndProc, hwnd, msg, wParam, lParam);
              };
              var newWndProcPtr = Marshal.GetFunctionPointerForDelegate(newWndProc);
              var oldWndProcPtr = SetWindowLongPtr(hwnd, WindowLongFlags.GWL_WNDPROC, newWndProcPtr);
              oldWndProc = (WndProcDelegate)
              Marshal.GetDelegateForFunctionPointer(oldWndProcPtr, typeof(WndProcDelegate));
            };

            var result = win7OpenFileDialog.ShowDialog ();
            if (result != CommonFileDialogResult.Ok) {
              return;
            }
            if (confirmConstraintCheckBox.IsChecked) {
              var constraint = new Agent.KeyConstraint ();
              constraint.Type = Agent.KeyConstraintType.SSH_AGENT_CONSTRAIN_CONFIRM;
              constraints.Add (constraint);
            }
            if (lifetimeConstraintCheckBox.IsChecked) {
              // error checking for parse done in fileOK event handler
              uint lifetime = uint.Parse (lifetimeConstraintTextBox.Text);
              var constraint = new Agent.KeyConstraint ();
              constraint.Type = Agent.KeyConstraintType.SSH_AGENT_CONSTRAIN_LIFETIME;
              constraint.Data = lifetime;
              constraints.Add (constraint);
            }
            fileNames = win7OpenFileDialog.FileNames.ToArray ();
              } else {
            using (var openFileDialog = new OpenFileDialog())
            {
              openFileDialog.Multiselect = true;
              openFileDialog.Filter = string.Join ("|",
            Strings.filterPuttyPrivateKeyFiles, "*.ppk",
             Strings.filterAllFiles, "*.*");

              openFileDialog.FileOk += xpOpenFileDialog_FileOk;

              // Windows XP uses old style file open dialog that can be extended
              // using the Windows API via FileDlgExtenders library
              XPOpenFileDialog xpOpenFileDialog = null;
              if (Type.GetType("Mono.Runtime") == null) {
            xpOpenFileDialog = new XPOpenFileDialog ();
            xpOpenFileDialog.FileDlgStartLocation = AddonWindowLocation.Bottom;
            mOpenFileDialogMap.Add (openFileDialog, xpOpenFileDialog);
              }

              openFileDialog.HelpRequest += OnAddFromFileHelpRequested;
              // TODO: technically, a listener could be added after this
              openFileDialog.ShowHelp = AddFromFileHelpRequested != null;

              var result = xpOpenFileDialog == null ?
            openFileDialog.ShowDialog() :
            openFileDialog.ShowDialog(xpOpenFileDialog, null);
              if (result != DialogResult.OK)
            return;

              if (xpOpenFileDialog == null) {
            // If dialog could not be extended, then we add constraints by holding
            // down the control key when clicking the Open button.
            if (Control.ModifierKeys.HasFlag(Keys.Control)) {
              var constraintDialog = new ConstraintsInputDialog ();
              constraintDialog.ShowDialog ();
              if (constraintDialog.DialogResult == DialogResult.OK) {
                if (constraintDialog.ConfirmConstraintChecked) {
                  constraints.addConfirmConstraint ();
                }
                if (constraintDialog.LifetimeConstraintChecked) {
                  constraints.addLifetimeConstraint (constraintDialog.LifetimeDuration);
                }
              }
            }
              } else {
            mOpenFileDialogMap.Remove (openFileDialog);

            if (xpOpenFileDialog.UseConfirmConstraintChecked) {
              constraints.addConfirmConstraint ();
            }
            if (xpOpenFileDialog.UseLifetimeConstraintChecked) {
              constraints.addLifetimeConstraint
                (xpOpenFileDialog.LifetimeConstraintDuration);
            }
              }
              fileNames = openFileDialog.FileNames;
            }
              }
              UseWaitCursor = true;
              mAgent.AddKeysFromFiles(fileNames, constraints);
              if (!(mAgent is Agent))
              {
            ReloadKeyListView();
              }
              UseWaitCursor = false;
        }
        private void _ButtonBrowse_Click(object sender, EventArgs e)
        {
            CommonOpenFileDialog dialog = new CommonOpenFileDialog();
            CommonFileDialogStandardFilters.TextFiles.ShowExtensions = true;
            CommonFileDialogFilter filter = new CommonFileDialogFilter(Locale.Current.Labels.WaveFiles, ".wav") { ShowExtensions = true };

            String path = string.IsNullOrEmpty(_ComboSound.SelectedValue.ToString()) ? Path.Combine(KnownFolders.Windows.Path, "Media") : Path.GetFullPath(_ComboSound.SelectedValue.ToString());

            dialog.Title = Locale.Current.Labels.BrowseDialog;
            dialog.Multiselect = false;
            dialog.DefaultDirectory = Directory.Exists(path) ? path : KnownFolders.Desktop.Path;
            dialog.Filters.Add(filter);

            if (dialog.ShowDialog() == CommonFileDialogResult.Ok) {
                DataTable dataSource = (DataTable)_ComboSound.DataSource;

                dataSource.Rows.RemoveAt(2);
                dataSource.Rows.Add(new string[] { Path.GetFileName(dialog.FileName), dialog.FileName });

                _ComboSound.SelectedIndex = 2;
            }
        }
 public override string ToString()
 {
     return(String.Format("{0} ({1})",
                          rawDisplayName,
                          CommonFileDialogFilter.GetDisplayExtensionList(extensions)));
 }
Exemplo n.º 6
0
        //ignore
        private void OnOpenMedia(object sender, RoutedEventArgs args)
        {
            CommonOpenFileDialog cfd = new CommonOpenFileDialog();
            CommonFileDialogFilter rtfFilter = new CommonFileDialogFilter("Windows media files", ".wmv");
            cfd.Filters.Add(rtfFilter);

            if (cfd.ShowDialog() == CommonFileDialogResult.OK)
            {
                mediaElement.Source = new Uri(cfd.FileName, UriKind.RelativeOrAbsolute);
            }
        }