예제 #1
0
        void Populate(bool clear)
        {
            encodings = TextEncoding.ConversionEncodings;
            if (encodings == null || encodings.Length == 0)
            {
                encodings = new TextEncoding [] { TextEncoding.GetEncoding(TextEncoding.DefaultEncoding) }
            }
            ;

            BeginUpdate();

            if (clear)
            {
                Items.Clear();
            }

            if (showAutoDetected)
            {
                Items.Add(GettextCatalog.GetString("Auto Detected"));
            }

            foreach (var encoding in TextEncoding.ConversionEncodings)
            {
                Items.Add(String.Format("{0} ({1})", encoding.Name, encoding.Id));
            }

            Items.Add(GettextCatalog.GetString("Add or Remove..."));

            EndUpdate();
        }
예제 #2
0
        protected void OnRespond(object o, ResponseArgs args)
        {
            if (args.ResponseId != Gtk.ResponseType.Ok)
            {
                return;
            }

            TreeIter iter;
            var      list = new List <int> ();

            if (storeSelected.GetIterFirst(out iter))
            {
                do
                {
                    var enc = (int)storeSelected.GetValue(iter, 2);
                    list.Add(enc);
                } while (storeSelected.IterNext(ref iter));
            }
            TextEncoding.ConversionEncodings = list.Select((id) => TextEncoding.GetEncoding(id)).ToArray();
        }
예제 #3
0
        protected override bool RunDefault()
        {
            var win = new FileSelectorDialog(Title, Action.ToGtkAction());

            win.SelectedEncoding     = TextEncoding.GetEncoding(Encoding);
            win.ShowEncodingSelector = ShowEncodingSelector;
            win.ShowViewerSelector   = ShowViewerSelector;
            bool pathAlreadySet = false;

            win.CurrentFolderChanged += (s, e) => {
                var selectedPath = data.OnDirectoryChanged(this, win.CurrentFolder);
                if (selectedPath.IsNull)
                {
                    return;
                }
                data.SelectedFiles = new FilePath [] { selectedPath };
                pathAlreadySet     = true;
                win.Respond(Gtk.ResponseType.Cancel);
            };

            SetDefaultProperties(win);

            try {
                var result = MessageService.RunCustomDialog(win, TransientFor ?? MessageService.RootWindow);
                if (result == (int)Gtk.ResponseType.Ok)
                {
                    GetDefaultProperties(win);
                    data.Encoding = win.SelectedEncoding?.Encoding;
                    data.CloseCurrentWorkspace = win.CloseCurrentWorkspace;
                    data.SelectedViewer        = win.SelectedViewer;
                    return(true);
                }
                else
                {
                    return(pathAlreadySet);
                }
            } finally {
                win.Destroy();
                win.Dispose();
            }
        }
예제 #4
0
        protected void OnRespond(object o, ResponseArgs args)
        {
            if (args.ResponseId != Gtk.ResponseType.Ok)
            {
                return;
            }

            TreeIter  iter;
            ArrayList list = new ArrayList();

            if (storeSelected.GetIterFirst(out iter))
            {
                do
                {
                    string       id  = (string)storeSelected.GetValue(iter, 1);
                    TextEncoding enc = TextEncoding.GetEncoding(id);
                    list.Add(enc);
                }while (storeSelected.IterNext(ref iter));
            }
            TextEncoding.ConversionEncodings = (TextEncoding[])list.ToArray(typeof(TextEncoding));
        }
        void Populate(bool clear)
        {
            if (clear)
            {
                Menu.RemoveAllItems();
            }

            encodings = TextEncoding.ConversionEncodings;
            if (encodings == null || encodings.Length == 0)
            {
                encodings = new TextEncoding [] { TextEncoding.GetEncoding(TextEncoding.DefaultEncoding) }
            }
            ;

            if (autoDetectedItem != null)
            {
                Menu.AddItem(autoDetectedItem);
                Cell.MenuItem = autoDetectedItem;
                Menu.AddItem(NSMenuItem.SeparatorItem);
            }

            int i = 1;

            foreach (var e in MonoDevelop.Projects.Text.TextEncoding.ConversionEncodings)
            {
                Menu.AddItem(new NSMenuItem()
                {
                    Title  = string.Format("{0} ({1})", e.Name, e.Id),
                    Tag    = i++,
                    Target = this,
                    Action = itemActivationSel,
                });
            }

            Menu.AddItem(NSMenuItem.SeparatorItem);
            Menu.AddItem(addRemoveItem);
        }
        protected override IEnumerable <(NSControl control, string text)> OnGetAccessoryBoxControls(OpenFileDialogData data, NSSavePanel panel, out SaveState saveState)
        {
            List <(NSControl, string)> controls         = new List <(NSControl, string)> ();
            SelectEncodingPopUpButton  encodingSelector = null;
            NSPopUpButton     viewerSelector            = null;
            NSButton          closeSolutionButton       = null;
            List <FileViewer> currentViewers            = null;

            if (data.ShowEncodingSelector)
            {
                encodingSelector = new SelectEncodingPopUpButton(data.Action != FileChooserAction.Save);
                encodingSelector.SelectedEncoding = TextEncoding.GetEncoding(data.Encoding);

                controls.Add((encodingSelector, GettextCatalog.GetString("Encoding:")));
            }

            if (data.ShowViewerSelector && panel is NSOpenPanel)
            {
                currentViewers = new List <FileViewer> ();
                viewerSelector = new NSPopUpButton {
                    Enabled = false,
                };

                if (encodingSelector != null || IdeApp.Workspace.IsOpen)
                {
                    viewerSelector.Activated += delegate {
                        var  idx = viewerSelector.IndexOfSelectedItem;
                        bool workbenchViewerSelected = idx == 0 && currentViewers [0] == null;
                        if (encodingSelector != null)
                        {
                            encodingSelector.Enabled = !workbenchViewerSelected;
                        }
                        if (closeSolutionButton != null)
                        {
                            if (closeSolutionButton.Enabled != workbenchViewerSelected)
                            {
                                closeSolutionButton.Enabled = workbenchViewerSelected;
                                closeSolutionButton.State   = workbenchViewerSelected ? NSCellStateValue.On : NSCellStateValue.Off;
                            }
                        }
                    };
                }

                if (IdeApp.Workspace.IsOpen)
                {
                    closeSolutionButton = new NSButton {
                        Title   = GettextCatalog.GetString("Close current workspace"),
                        Enabled = false,
                        State   = NSCellStateValue.Off,
                    };

                    closeSolutionButton.SetButtonType(NSButtonType.Switch);
                    closeSolutionButton.SizeToFit();

                    controls.Add((closeSolutionButton, string.Empty));
                }

                controls.Add((viewerSelector, GettextCatalog.GetString("Open With:")));
            }
            saveState = new SaveState(encodingSelector, viewerSelector, closeSolutionButton, currentViewers);

            return(controls);
        }
        string GenerateOptions(DotNetProjectConfiguration configuration, VBCompilerParameters compilerparameters, VBProjectParameters projectparameters, string outputFileName)
        {
            DotNetProject project = (DotNetProject)configuration.ParentItem;
            StringBuilder sb      = new StringBuilder();

            sb.AppendFormat("\"-out:{0}\"", outputFileName);
            sb.AppendLine();

            sb.AppendLine("-nologo");
            sb.AppendLine("-utf8output");
            sb.AppendLine("-quiet");

            sb.AppendFormat("-debug:{0}", compilerparameters.DebugType);
            sb.AppendLine();

            if (compilerparameters.Optimize)
            {
                sb.AppendLine("-optimize+");
            }


            if (projectparameters.OptionStrict)
            {
                sb.AppendLine("-optionstrict+");
            }
            else
            {
                sb.AppendLine("-optionstrict-");
            }

            if (projectparameters.OptionExplicit)
            {
                sb.AppendLine("-optionexplicit+");
            }
            else
            {
                sb.AppendLine("-optionexplicit-");
            }

            if (projectparameters.BinaryOptionCompare)
            {
                sb.AppendLine("-optioncompare:binary");
            }
            else
            {
                sb.AppendLine("-optioncompare:text");
            }

            if (projectparameters.OptionInfer)
            {
                sb.AppendLine("-optioninfer+");
            }
            else
            {
                sb.AppendLine("-optioninfer-");
            }

            string mytype = projectparameters.MyType;

            if (!string.IsNullOrEmpty(mytype))
            {
                sb.AppendFormat("-define:_MYTYPE=\\\"{0}\\\"", mytype);
                sb.AppendLine();
            }

            string win32IconPath = projectparameters.ApplicationIcon;

            if (!string.IsNullOrEmpty(win32IconPath) && File.Exists(win32IconPath))
            {
                sb.AppendFormat("\"-win32icon:{0}\"", win32IconPath);
                sb.AppendLine();
            }

            if (!string.IsNullOrEmpty(projectparameters.CodePage))
            {
                TextEncoding enc = TextEncoding.GetEncoding(projectparameters.CodePage);
                sb.AppendFormat("-codepage:{0}", enc.CodePage);
                sb.AppendLine();
            }

            if (!string.IsNullOrEmpty(project.DefaultNamespace))
            {
                sb.AppendFormat("-rootnamespace:{0}", project.DefaultNamespace);
                sb.AppendLine();
            }

            if (!string.IsNullOrEmpty(compilerparameters.DefineConstants))
            {
                sb.AppendFormat("\"-define:{0}\"", compilerparameters.DefineConstants);
                sb.AppendLine();
            }

            if (compilerparameters.DefineDebug)
            {
                sb.AppendLine("-define:DEBUG=-1");
            }

            if (compilerparameters.DefineTrace)
            {
                sb.AppendLine("-define:TRACE=-1");
            }

            if (compilerparameters.WarningsDisabled)
            {
                sb.AppendLine("-nowarn");
            }
            else if (!string.IsNullOrEmpty(compilerparameters.NoWarn))
            {
                sb.AppendFormat("-nowarn:{0}", compilerparameters.NoWarn);
                sb.AppendLine();
            }

            if (!string.IsNullOrEmpty(compilerparameters.WarningsAsErrors))
            {
                sb.AppendFormat("-warnaserror+:{0}", compilerparameters.WarningsAsErrors);
                sb.AppendLine();
            }

            if (configuration.SignAssembly)
            {
                if (File.Exists(configuration.AssemblyKeyFile))
                {
                    sb.AppendFormat("\"-keyfile:{0}\"", configuration.AssemblyKeyFile);
                    sb.AppendLine();
                }
            }

            if (!string.IsNullOrEmpty(compilerparameters.DocumentationFile))
            {
                sb.AppendFormat("\"-doc:{0}\"", compilerparameters.DocumentationFile);
                sb.AppendLine();
            }

            if (!string.IsNullOrEmpty(projectparameters.StartupObject) && projectparameters.StartupObject != "Sub Main")
            {
                sb.Append("-main:");
                sb.Append(projectparameters.StartupObject);
                sb.AppendLine();
            }

            if (compilerparameters.RemoveIntegerChecks)
            {
                sb.AppendLine("-removeintchecks+");
            }

            if (!string.IsNullOrEmpty(compilerparameters.AdditionalParameters))
            {
                sb.Append(compilerparameters.AdditionalParameters);
                sb.AppendLine();
            }

            switch (configuration.CompileTarget)
            {
            case CompileTarget.Exe:
                sb.AppendLine("-target:exe");
                break;

            case CompileTarget.WinExe:
                sb.AppendLine("-target:winexe");
                break;

            case CompileTarget.Library:
                sb.AppendLine("-target:library");
                break;

            case CompileTarget.Module:
                sb.AppendLine("-target:module");
                break;

            default:
                throw new NotSupportedException("unknown compile target:" + configuration.CompileTarget);
            }

            return(sb.ToString());
        }