Пример #1
0
        private static void Setup(Window wnd, string languageID)
        {
            VBox box = new VBox();

            ScrolledWindow scrolled = new ScrolledWindow();

            SourceView view = new SourceView();

            view.ShowLineNumber       = true;
            view.HighlightSyntax      = true;
            view.HighlightCurrentLine = true;
            view.AutoIndent           = true;


            scrolled.Add(view);

            LanguageManager languageManager = new LanguageManager();
            var             s = languageManager.GetSearchPath();

            s.Add(Environment.CurrentDirectory + "/language-specs");
            languageManager.SetSearchPath(s.ToArray());
            view.Language = languageManager.GetGuessLanguage(languageID, null);

            StyleSchemeManager styleSchemeManager = new StyleSchemeManager();
            var ss = styleSchemeManager.GetSearchPath();

            ss.Add(Environment.CurrentDirectory + "/styles");
            styleSchemeManager.SetSearchPath(ss.ToArray());
            view.StyleScheme = styleSchemeManager.GetScheme("oblivion");
            box.PackEnd(scrolled, true, true, 0);

            wnd.Add(box);
        }
Пример #2
0
        // private MenuButton languageSelectorButton;


        public RoboPad(WindowType type, String[] args) : base(type)
        {
            noOfWindows++;
            SetDefaultSize(500, 500);
            Maximize();
            DeleteEvent += (sender, s) =>
            {
                if (!isChangeSaved)
                {
                    MessageDialog dialog = new MessageDialog(this, DialogFlags.DestroyWithParent,
                                                             MessageType.Warning, ButtonsType.OkCancel, "Changes Unsaved Are You Sure You Want To Exit ");
                    // Dialog dialog=new Dialog()
                    var response = dialog.Run();
                    noOfWindows--;
                    if (response == (int)Gtk.ResponseType.Ok)
                    {
                        if (noOfWindows <= 0)
                        {
                            Gtk.Application.Quit();
                        }
                    }
                    else
                    {
                        s.RetVal = true;
                    }
                    dialog.Dispose();
                }
                else
                {
                    noOfWindows--;
                    if (noOfWindows <= 0)
                    {
                        Gtk.Application.Quit();
                    }
                }
            };
            VBox vBox = new VBox();

            List <String> newTextList = new();
            var           lm          = LanguageManager.Default;

            sourceView = new();
            sourceView.Buffer.HighlightSyntax = true;
            sourceView.WrapMode        = WrapMode.Word;
            sourceView.AutoIndent      = true;
            sourceView.ShowLineNumbers = true;
            StyleSchemeManager schemeManager = StyleSchemeManager.Default;

            // StyleScheme styleScheme = schemeManager.GetScheme("pop-light");

            // sourceView.Buffer.StyleScheme = styleScheme;

            sourceView.KeyPressEvent += (o, eventArgs) =>
            {
                if (Keyval.Name(eventArgs.Event.KeyValue) == "s")
                {
                    saveFile(o, eventArgs);
                }
                else if (Keyval.Name(eventArgs.Event.KeyValue) == "S")
                {
                    saveAsFile(o, eventArgs);
                }
                else if (Keyval.Name(eventArgs.Event.KeyValue) == "o")
                {
                    openFile(o, eventArgs);
                }
            };


            headerBar = new HeaderBar();
            ScrolledWindow scrolledWindow = new ScrolledWindow();

            scrolledWindow.Add(sourceView);

            headerBar.ShowCloseButton = true;
            headerBar.Title           = "RoboPad";
            headerBarOringalText      = headerBar.Title;

            sourceView.Buffer.Changed += (sender, eventArgs) =>
            {
                headerBar.Title = "*" + headerBarOringalText;
                if (sourceView.Buffer.Text != previousText)
                {
                    isChangeSaved = false;
                }
                else
                {
                    isChangeSaved   = true;
                    headerBar.Title = headerBarOringalText;
                }
            };
            ToolButtonHandler toolbar = new ToolButtonHandler(this, sourceView);



            // Menu menu = new Menu();
            // MenuItem openItem = new RadioMenuItem("test");
            // menu.Add(openItem);
            //
            // menu.ShowAll();
            //



            PopOverMenuHandler popoverMenu = new(this);
            MenuButton         menuButton  = new MenuButton();

            menuButton.Popover = popoverMenu;
            Image image = Gtk.Image.NewFromIconName("view-more-symbolic", IconSize.LargeToolbar);

            menuButton.Image = image;
            headerBar.PackEnd(menuButton);

            Statusbar statusbar = new Statusbar();

            statusBarLabel = new("");
            statusbar.PackStart(statusBarLabel, false, false, 5);
            languageSelectorButton = new LanguageSelectorButton(sourceView);
            statusbar.PackEnd(languageSelectorButton, false, false, 5);



            // Box box = new Box(Gtk.Orientation.Vertical,2);

            Titlebar = headerBar;

            vBox.PackStart(toolbar, false, false, 0);
            vBox.PackStart(scrolledWindow, true, true, 0);
            vBox.PackStart(statusbar, false, false, 0);
            Add(vBox);

            ShowAll();

            Show();
            if (args != null)
            {
                if (args.Length >= 1)
                {
                    if (!String.IsNullOrWhiteSpace(args[0]))
                    {
                        openFileWithArgs(args[0]);
                    }
                }
            }
        }