예제 #1
0
        public AddinInfoView()
        {
            Builder builder = new Gtk.Builder (null, "Mono.Addins.GuiGtk3.interfaces.AddinInfoView.ui", null);
            builder.Autoconnect (this);
            Add ((Box) builder.GetObject ("AddinInfoView"));
            AllowInstall = true;
            titleWidth = labelName.SizeRequest ().Width;

            HeaderBox hb = new HeaderBox (1,1,1,1);
            hb.Show ();
            hb.Replace (this);

            hb = new HeaderBox (1,0,0,0);
            hb.SetPadding (6,6,6,6);
            hb.Show ();
            hb.GradientBackround = true;
            hb.Replace (eboxButs);

            hb = new HeaderBox (0,1,0,0);
            hb.SetPadding (6,6,6,6);
            hb.Show ();
            hb.GradientBackround = true;
            hb.Replace (boxHeader);
            topHeaderBox = hb;

            //Enable our buttons for clicking
            btnDisable.Clicked += OnBtnDisableClicked;
            btnInstall.Clicked += OnBtnInstallClicked;
            btnUninstall.Clicked += OnBtnUninstallClicked;
            btnUpdate.Clicked += OnBtnUpdateClicked;
            urlButton.Clicked += OnUrlButtonClicked;

            ShowAll ();
        }
예제 #2
0
        public AddinManagerDialog(Builder builder, IntPtr handle)
            : base(handle)
        {
            builder.Autoconnect (this);
            //			TransientFor = parent;
            //			HasSeparator = false;
            addininfoInstalled = new AddinInfoView ();
            addininfoInstalled.InstallClicked += OnInstallClicked;
            addininfoInstalled.UninstallClicked += OnUninstallClicked;
            addininfoInstalled.UpdateClicked += OnUpdateClicked;
            addininfoInstalled.EnableDisableClicked += OnEnableDisableClicked;
            eventbox2.Child = addininfoInstalled;
            addininfoGallery = new AddinInfoView ();
            addininfoGallery.InstallClicked += OnInstallClicked;
            addininfoGallery.UninstallClicked += OnUninstallClicked;
            addininfoGallery.UpdateClicked += OnUpdateClicked;
            addininfoGallery.EnableDisableClicked += OnEnableDisableClicked;
            eventbox1.Child = addininfoGallery;
            addininfoUpdates = new AddinInfoView ();
            addininfoUpdates.InstallClicked += OnInstallClicked;
            addininfoUpdates.UninstallClicked += OnUninstallClicked;
            addininfoUpdates.UpdateClicked += OnUpdateClicked;
            addininfoUpdates.EnableDisableClicked += OnEnableDisableClicked;
            eventbox3.Child = addininfoUpdates;

            //			Services.PlaceDialog (this, parent);
            Show ();

            addininfoInstalled.Init (service);
            addininfoGallery.Init (service);

            addinTree.Selection.Mode = SelectionMode.Multiple;
            tree = new AddinTreeWidget (addinTree);
            addinTree.Selection.Changed += OnSelectionChanged;
            tree.VersionVisible = false;

            galleryTreeView.Selection.Mode = SelectionMode.Multiple;
            galleryTree = new AddinTreeWidget (galleryTreeView);
            galleryTree.VersionVisible = false;
            galleryTree.ShowInstalledMarkers = true;
            galleryTreeView.Selection.Changed += OnGallerySelectionChanged;

            updatesTreeView.Selection.Mode = SelectionMode.Multiple;
            updatesTree = new AddinTreeWidget (updatesTreeView);
            updatesTree.VersionVisible = false;
            updatesTree.ShowCategories = false;
            updatesTree.ShowInstalledMarkers = true;
            updatesTreeView.Selection.Changed += OnGallerySelectionChanged;

            //Wiring more buttons
            buttonUpdateAll.Clicked += OnUpdateAll;
            buttonRefreshUpdates.Clicked += OnButtonRefreshClicked;
            buttonRefresh.Clicked += OnButtonRefreshClicked;
            buttonInstallFromFile.Clicked += OnButtonInstallFromFileClicked;
            repoCombo.Changed += OnRepoComboChanged;

            repoStore = new ListStore (typeof(string), typeof(string));
            repoCombo.Model = repoStore;
            CellRendererText crt = new CellRendererText ();
            repoCombo.PackStart (crt, true);
            repoCombo.AddAttribute (crt, "text", 0);
            repoCombo.RowSeparatorFunc = delegate(ITreeModel model, TreeIter iter) {
                string val = (string) model.GetValue (iter, 0);
                return val == "---";
            };

            // Make sure the tree has the focus when switching tabs

            vboxUpdates.FocusChain = new Widget [] { scrolledUpdates, eboxRepoUpdates };
            vboxGallery.FocusChain = new Widget [] { scrolledGallery, eboxRepo };

            // Improve the look of the headers

            HBox tab = new HBox (false, 3);
            tab.PackStart (new Image (Gdk.Pixbuf.LoadFromResource ("plugin-22.png")), false, false, 0);
            installedTabLabel = new Label (Catalog.GetString ("Installed"));
            tab.PackStart (installedTabLabel, true, true, 0);
            tab.BorderWidth = 3;
            tab.ShowAll ();
            notebook.SetTabLabel (notebook.GetNthPage (0), tab);

            tab = new HBox (false, 3);
            tab.PackStart (new Image (Gdk.Pixbuf.LoadFromResource ("plugin-update-22.png")), false, false, 0);
            updatesTabLabel = new Label (Catalog.GetString ("Updates"));
            tab.PackStart (updatesTabLabel, true, true, 0);
            tab.BorderWidth = 3;
            tab.ShowAll ();
            notebook.SetTabLabel (notebook.GetNthPage (1), tab);

            tab = new HBox (false, 3);
            tab.PackStart (new Image (Gdk.Pixbuf.LoadFromResource ("update-16.png")), false, false, 0);
            galleryTabLabel = new Label (Catalog.GetString ("Gallery"));
            tab.PackStart (galleryTabLabel, true, true, 0);
            tab.BorderWidth = 3;
            tab.ShowAll ();
            notebook.SetTabLabel (notebook.GetNthPage (2), tab);

            // Gradient header for the updates and gallery tabs

            HeaderBox hb = new HeaderBox (1, 0, 1, 1);
            hb.SetPadding (6,6,6,6);
            hb.GradientBackround = true;
            hb.Show ();
            hb.Replace (eboxRepo);

            hb = new HeaderBox (1, 0, 1, 1);
            hb.SetPadding (6,6,6,6);
            hb.GradientBackround = true;
            hb.Show ();
            hb.Replace (eboxRepoUpdates);

            InsertFilterEntry ();

            FillRepos ();
            repoCombo.Active = 0;

            LoadAll ();

            ShowAll ();
        }