2 using System.Drawing;
\r
3 using System.Windows.Forms;
\r
4 using NaGet.Packages;
\r
6 namespace AppliStation
\r
9 /// Description of PackagesInstallConfirmForm.
\r
11 public partial class PackagesInstallConfirmForm : Form
\r
13 private Package[] packages;
\r
15 private PackageListsManager pkgListMan;
\r
18 ///
\83p
\83b
\83P
\81[
\83W
\82Ì
\8fW
\8d\87\r
20 public Package[] Packages {
\r
21 get { return packages; }
\r
25 updatePackagesListView();
\r
29 public PackageListsManager PkgListsManager {
\r
30 get { return pkgListMan; }
\r
34 updatePackagesListView();
\r
38 public PackagesInstallConfirmForm()
\r
41 // The InitializeComponent() call is required for Windows Forms designer support.
\r
43 InitializeComponent();
\r
45 //
\8aÇ
\97\9d\8eÒ
\8c \8cÀ
\82Å
\93®
\82¢
\82Ä
\82¢
\82é
\82È
\82ç
\82Îrunas
\82ª
\95K
\97v
\82É
\82Í
\82È
\82ç
\82È
\82¢
\82Ì
\82Å
\95\
\8e¦
\82µ
\82È
\82¢
\r
46 if (NaGet.Utils.IsAdministrators()) {
\r
47 runasCheckBox.Checked = false;
\r
48 runasCheckBox.Visible = false;
\r
52 private void updatePackagesListView()
\r
54 packageListView.Items.Clear();
\r
56 if (packages != null && packages.Length > 0) {
\r
57 foreach (Package pkg in packages) {
\r
58 Package curPkg = null;
\r
59 if (pkgListMan != null) {
\r
60 curPkg = pkgListMan.InstalledPkgList.GetPackageForName(pkg.Name);
\r
61 if (curPkg == null) curPkg = pkgListMan.SystemInstalledPkgList.GetPackageForName(pkg.Name);
\r
63 string curVersion = (curPkg == null)? "-" : curPkg.Version;
\r
65 ListViewItem item = new ListViewItem(new string[]{pkg.Name, pkg.Version, curVersion});
\r
67 item.ToolTipText = pkg.Summary;
\r
68 item.Checked = true;
\r
70 packageListView.Items.Add(item);
\r
74 PackageListViewItemChecked(packageListView, null);
\r
75 packageListView.Refresh();
\r
78 void PackageListViewItemChecked(object sender, ItemCheckedEventArgs e)
\r
80 System.Windows.Forms.ListView.CheckedListViewItemCollection checkeds = packageListView.CheckedItems;
\r
82 okButton.Enabled = checkeds != null && checkeds.Count > 0;
\r
85 AppliStation.Util.ListViewItemSortComparer packageListViewSortComparer;
\r
87 void PackageListViewColumnClick(object sender, ColumnClickEventArgs e)
\r
89 SortOrder order = SortOrder.None;
\r
91 if (packageListViewSortComparer == null) {
\r
92 order = SortOrder.Ascending;
\r
93 packageListViewSortComparer = new AppliStation.Util.ListViewItemSortComparer(e.Column, order);
\r
94 packageListView.ListViewItemSorter = packageListViewSortComparer;
\r
96 if (packageListViewSortComparer.Column == e.Column) {
\r
97 order = (packageListViewSortComparer.Order == SortOrder.Ascending)? SortOrder.Descending : SortOrder.Ascending;
\r
99 packageListViewSortComparer.Order = order;
\r
101 order = packageListViewSortComparer.Order;
\r
102 packageListViewSortComparer.Column = e.Column;
\r
105 packageListView.Sort();
\r
107 AppliStation.Util.NativeMethods.ColumnHeader_SetSortState(packageListView, e.Column, order);
\r
109 //
\83\
\81[
\83g
\91Î
\8fÛ
\97ñ
\82Ì
\90F
\95t
\82¯
\r
111 // SendMessage(hWnd, LVM_SETSELECTEDCOLUMN, column, NULL);
\r
112 AppliStation.Util.NativeMethods.SendMessage(packageListView.Handle, 0x1000+140, (uint) e.Column, 0);
\r
113 } catch (Exception) {
\r
118 void PackageListViewContextMenuStripOpening(object sender, System.ComponentModel.CancelEventArgs e)
\r
120 System.Windows.Forms.ListView.CheckedIndexCollection coll = packageListView.CheckedIndices;
\r
121 selectAllPackagesStripMenuItem.Enabled = coll.Count < packages.Length;
\r
122 unselectAllPackagesStripMenuItem.Enabled = coll.Count > 0;
\r
125 void SelectAllPackagesStripMenuItemClick(object sender, EventArgs e)
\r
127 foreach (ListViewItem item in packageListView.Items) {
\r
128 item.Checked = true;
\r
130 packageListView.Refresh();
\r
133 void UnselectAllPackagesStripMenuItemClick(object sender, EventArgs e)
\r
135 foreach (ListViewItem item in packageListView.CheckedItems) {
\r
136 item.Checked = false;
\r
138 packageListView.Refresh();
\r
142 ///
\83C
\83\93\83X
\83g
\81[
\83\8b\82·
\82é
\82æ
\82¤
\91I
\91ð
\82³
\82ê
\82½
\83p
\83b
\83P
\81[
\83W
\82Ì
\94z
\97ñ
\r
144 public Package[] CheckedPackages {
\r
146 System.Collections.Generic.List<Package> pkgs = new System.Collections.Generic.List<Package>();
\r
147 foreach (ListViewItem item in packageListView.CheckedItems) {
\r
148 pkgs.Add((Package) item.Tag);
\r
150 return pkgs.ToArray();
\r
154 #region runas
\8aÖ
\98A
\r
157 /// runas
\82Å
\8eÀ
\8ds
\82·
\82é
\82©
\94Û
\82©
\r
159 public bool UseRunas {
\r
161 runasCheckBox.Checked = (! NaGet.Utils.IsAdministrators()) && value;
\r
166 return runasCheckBox.Checked;
\r
171 ///
\91I
\91ð
\82³
\82ê
\82½
\83p
\83b
\83P
\81[
\83W
\82ð
\92²
\8d¸
\82µ
\82Ä
\81ARunas
\82ð
\8eg
\82¤
\82×
\82«
\82©
\82¢
\82È
\82©
\82ð
\95Ô
\82·
\r
173 public bool GetShouldUseRunas()
\r
175 if (NaGet.Utils.IsAdministrators()) {
\r
176 //
\8aÇ
\97\9d\8eÒ
\8c \8cÀ
\82Å
\93®
\82¢
\82Ä
\82¢
\82é
\8fê
\8d\87\82Í
\95s
\97v
\r
178 } else if (NaGet.Utils.IsUACEnabled()) {
\r
179 // UAC
\82ª
\93K
\97p
\82³
\82ê
\82Ä
\82¢
\82é
\8fê
\8d\87\82Í
\95W
\8f\80\82Å
\82Í
\95s
\97v
\82Æ
\82·
\82é
\r
183 bool useRunas = false;
\r
184 foreach (Package pkg in CheckedPackages) {
\r
185 if (pkg.Type != InstallerType.ARCHIVE) {
\r
193 void RunasCheckBoxCheckedChanged(object sender, EventArgs e)
\r
198 private void updateUseRunas()
\r
201 System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(PackagesInstallConfirmForm));
\r
202 okButton.Image = ((System.Drawing.Bitmap)(resources.GetObject("okButton.Image")));
\r
204 okButton.Image = null;
\r