2 using System.Drawing;
\r
3 using System.Windows.Forms;
\r
4 using NaGet.Packages;
\r
5 using NaGet.Packages.Install;
\r
7 namespace AppliStation
\r
10 /// Description of PackagesInstallConfirmForm.
\r
12 public partial class InstallationConfirmForm : Form
\r
14 private Installation[] installations;
\r
16 private PackageListsManager pkgListMan;
\r
19 ///
\83p
\83b
\83P
\81[
\83W
\83C
\83\93\83X
\83g
\81[
\83\8b\8f\88\97\9d\82Ì
\8fW
\8d\87\r
21 public Installation[] Installations {
\r
22 get { return installations; }
\r
24 installations = value;
\r
26 updateInstsListView();
\r
30 public PackageListsManager PkgListsManager {
\r
31 get { return pkgListMan; }
\r
35 updateInstsListView();
\r
39 public InstallationConfirmForm()
\r
42 // The InitializeComponent() call is required for Windows Forms designer support.
\r
44 InitializeComponent();
\r
46 //
\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
47 if (NaGet.Utils.IsAdministrators()) {
\r
48 runasCheckBox.Checked = false;
\r
49 runasCheckBox.Visible = false;
\r
53 private void updateInstsListView()
\r
55 instsListView.Items.Clear();
\r
57 if (installations != null) {
\r
58 foreach (Installation inst in installations) {
\r
59 Package pkg = inst.InstalledPackage;
\r
61 Package curPkg = null;
\r
62 if (pkgListMan != null) {
\r
63 curPkg = pkgListMan.InstalledPkgList.GetPackageForName(pkg.Name);
\r
64 if (curPkg == null) curPkg = pkgListMan.SystemInstalledPkgList.GetPackageForName(pkg.Name);
\r
66 string curVersion = (curPkg == null)? "-" : curPkg.Version;
\r
68 ListViewItem item = new ListViewItem(new string[]{pkg.Name, pkg.Version, curVersion});
\r
70 item.ToolTipText = pkg.Summary;
\r
71 item.Checked = true;
\r
73 instsListView.Items.Add(item);
\r
77 InstsListViewItemChecked(instsListView, null);
\r
78 instsListView.Refresh();
\r
81 void InstsListViewItemChecked(object sender, ItemCheckedEventArgs e)
\r
83 System.Windows.Forms.ListView.CheckedListViewItemCollection checkeds = instsListView.CheckedItems;
\r
85 okButton.Enabled = checkeds != null && checkeds.Count > 0;
\r
88 AppliStation.Util.ListViewItemSortComparer packageListViewSortComparer;
\r
90 void InstsListViewColumnClick(object sender, ColumnClickEventArgs e)
\r
92 SortOrder order = SortOrder.None;
\r
94 if (packageListViewSortComparer == null) {
\r
95 order = SortOrder.Ascending;
\r
96 packageListViewSortComparer = new AppliStation.Util.ListViewItemSortComparer(e.Column, order);
\r
97 instsListView.ListViewItemSorter = packageListViewSortComparer;
\r
99 if (packageListViewSortComparer.Column == e.Column) {
\r
100 order = (packageListViewSortComparer.Order == SortOrder.Ascending)? SortOrder.Descending : SortOrder.Ascending;
\r
102 packageListViewSortComparer.Order = order;
\r
104 order = packageListViewSortComparer.Order;
\r
105 packageListViewSortComparer.Column = e.Column;
\r
108 instsListView.Sort();
\r
110 AppliStation.Util.NativeMethods.ColumnHeader_SetSortState(instsListView, e.Column, order);
\r
112 //
\83\
\81[
\83g
\91Î
\8fÛ
\97ñ
\82Ì
\90F
\95t
\82¯
\r
114 // SendMessage(hWnd, LVM_SETSELECTEDCOLUMN, column, NULL);
\r
115 AppliStation.Util.NativeMethods.SendMessage(instsListView.Handle, 0x1000+140, (uint) e.Column, 0);
\r
116 } catch (Exception) {
\r
121 void InstsListViewContextMenuStripOpening(object sender, System.ComponentModel.CancelEventArgs e)
\r
123 System.Windows.Forms.ListView.CheckedIndexCollection coll = instsListView.CheckedIndices;
\r
124 selectAllPackagesStripMenuItem.Enabled = coll.Count < instsListView.Items.Count;
\r
125 unselectAllPackagesStripMenuItem.Enabled = coll.Count > 0;
\r
128 void SelectAllInstsStripMenuItemClick(object sender, EventArgs e)
\r
130 foreach (ListViewItem item in instsListView.Items) {
\r
131 item.Checked = true;
\r
133 instsListView.Refresh();
\r
136 void UnselectAllInstsStripMenuItemClick(object sender, EventArgs e)
\r
138 foreach (ListViewItem item in instsListView.CheckedItems) {
\r
139 item.Checked = false;
\r
141 instsListView.Refresh();
\r
145 ///
\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
147 public Installation[] CheckedInstallations {
\r
149 System.Collections.Generic.List<Installation> insts = new System.Collections.Generic.List<Installation>();
\r
150 foreach (ListViewItem item in instsListView.CheckedItems) {
\r
151 insts.Add((Installation) item.Tag);
\r
153 return insts.ToArray();
\r
157 #region runas
\8aÖ
\98A
\r
160 /// runas
\82Å
\8eÀ
\8ds
\82·
\82é
\82©
\94Û
\82©
\r
162 public bool UseRunas {
\r
164 runasCheckBox.Checked = (! NaGet.Utils.IsAdministrators()) && value;
\r
169 return runasCheckBox.Checked;
\r
174 ///
\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
176 public bool GetShouldUseRunas()
\r
178 if (NaGet.Utils.IsAdministrators()) {
\r
179 //
\8aÇ
\97\9d\8eÒ
\8c \8cÀ
\82Å
\93®
\82¢
\82Ä
\82¢
\82é
\8fê
\8d\87\82Í
\95s
\97v
\r
181 } else if (NaGet.Utils.IsUACEnabled()) {
\r
182 // UAC
\82ª
\93K
\97p
\82³
\82ê
\82Ä
\82¢
\82é
\8fê
\8d\87\82Í
\95W
\8f\80\82Å
\82Í
\95s
\97v
\82Æ
\82·
\82é
\r
186 //
\82Ð
\82Æ
\82Â
\82Å
\82àPC
\83^
\81[
\83Q
\83b
\83g
\82È
\83C
\83\93\83X
\83g
\81[
\83\89\82ª
\82 \82ê
\82Î
\95K
\97v
\82Æ
\82·
\82é
\r
187 foreach (Installation inst in CheckedInstallations) {
\r
188 if (inst.TargetPC) return true;
\r
190 //
\82»
\82ê
\88È
\8aO
\82Í
\95s
\97v
\r
194 void RunasCheckBoxCheckedChanged(object sender, EventArgs e)
\r
199 private void updateUseRunas()
\r
202 System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(InstallationConfirmForm));
\r
203 okButton.Image = ((System.Drawing.Bitmap)(resources.GetObject("okButton.Image")));
\r
205 okButton.Image = null;
\r