Rev 160 | Blame | Compare with Previous | Last modification | View Log | RSS feed
#pragma once
#include <spk.h>
using namespace System;
using namespace System::ComponentModel;
using namespace System::Collections;
using namespace System::Windows::Forms;
using namespace System::Data;
using namespace System::Drawing;
namespace PluginManager {
/// <summary>
/// Summary for FakePatchControl
///
/// WARNING: If you change the name of this class, you will need to change the
/// 'Resource File Name' property for the managed resource compiler tool
/// associated with all .resx files this class depends on. Otherwise,
/// the designers will not be able to interact properly with localized
/// resources associated with this form.
/// </summary>
public ref class FakePatchControl : public System::Windows::Forms::Form
{
public:
FakePatchControl(CPackages *p)
{
InitializeComponent();
m_pPackages = p;
m_lFakePatches = new Utils::WStringList;
this->panel2->Visible = false;
UpdateList();
ApplyOrder();
}
Utils::WStringList *GetPatchOrder() { return m_lFakePatches; }
void UpdateList();
void ApplyOrder();
void Save();
void Unorder(ListViewItem ^item)
{
this->listView2->Items->Remove(item);
this->listView1->Items->Add(item);
item->ImageIndex = 1;
this->listView1->AutoResizeColumns(ColumnHeaderAutoResizeStyle::HeaderSize);
this->listView2->AutoResizeColumns(ColumnHeaderAutoResizeStyle::HeaderSize);
}
void Order(ListViewItem ^item)
{
this->listView1->Items->Remove(item);
this->listView2->Items->Add(item);
item->Selected = true;
item->ImageIndex = 0;
this->listView1->AutoResizeColumns(ColumnHeaderAutoResizeStyle::HeaderSize);
this->listView2->AutoResizeColumns(ColumnHeaderAutoResizeStyle::HeaderSize);
}
protected:
/// <summary>
/// Clean up any resources being used.
/// </summary>
~FakePatchControl()
{
if (components)
{
delete components;
}
delete m_lFakePatches;
}
private:
Utils::WStringList *m_lFakePatches;
CPackages *m_pPackages;
ListViewItem ^m_pSelectedItem;
private: System::Windows::Forms::ImageList^ imageList1;
private: System::Windows::Forms::Panel^ panel1;
private: System::Windows::Forms::Button^ button2;
private: System::Windows::Forms::Button^ button1;
private: System::Windows::Forms::SplitContainer^ splitContainer1;
private: System::Windows::Forms::ListView^ listView2;
private: System::Windows::Forms::ColumnHeader^ columnHeader4;
private: System::Windows::Forms::ListView^ listView1;
private: System::Windows::Forms::ColumnHeader^ columnHeader2;
private: System::Windows::Forms::ContextMenuStrip^ contextMenuStrip1;
private: System::Windows::Forms::ToolStripMenuItem^ moveToTopToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ moveUpToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ moveDownToolStripMenuItem;
private: System::Windows::Forms::ToolStripMenuItem^ moveToBottomToolStripMenuItem;
private: System::Windows::Forms::ToolStripSeparator^ toolStripSeparator1;
private: System::Windows::Forms::ToolStripMenuItem^ removeToolStripMenuItem;
private: System::Windows::Forms::Panel^ panel2;
private: System::Windows::Forms::Button^ button6;
private: System::Windows::Forms::Button^ button5;
private: System::Windows::Forms::Button^ button4;
private: System::Windows::Forms::Button^ button3;
private: System::Windows::Forms::Button^ button7;
private: System::ComponentModel::IContainer^ components;
/// <summary>
/// Required designer variable.
/// </summary>
#pragma region Windows Form Designer generated code
/// <summary>
/// Required method for Designer support - do not modify
/// the contents of this method with the code editor.
/// </summary>
void InitializeComponent(void)
{
this->components = (gcnew System::ComponentModel::Container());
System::ComponentModel::ComponentResourceManager^ resources = (gcnew System::ComponentModel::ComponentResourceManager(FakePatchControl::typeid));
this->imageList1 = (gcnew System::Windows::Forms::ImageList(this->components));
this->panel1 = (gcnew System::Windows::Forms::Panel());
this->button2 = (gcnew System::Windows::Forms::Button());
this->button1 = (gcnew System::Windows::Forms::Button());
this->splitContainer1 = (gcnew System::Windows::Forms::SplitContainer());
this->listView2 = (gcnew System::Windows::Forms::ListView());
this->columnHeader4 = (gcnew System::Windows::Forms::ColumnHeader());
this->contextMenuStrip1 = (gcnew System::Windows::Forms::ContextMenuStrip(this->components));
this->moveToTopToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->moveUpToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->moveDownToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->moveToBottomToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->toolStripSeparator1 = (gcnew System::Windows::Forms::ToolStripSeparator());
this->removeToolStripMenuItem = (gcnew System::Windows::Forms::ToolStripMenuItem());
this->panel2 = (gcnew System::Windows::Forms::Panel());
this->button7 = (gcnew System::Windows::Forms::Button());
this->button6 = (gcnew System::Windows::Forms::Button());
this->button5 = (gcnew System::Windows::Forms::Button());
this->button4 = (gcnew System::Windows::Forms::Button());
this->button3 = (gcnew System::Windows::Forms::Button());
this->listView1 = (gcnew System::Windows::Forms::ListView());
this->columnHeader2 = (gcnew System::Windows::Forms::ColumnHeader());
this->panel1->SuspendLayout();
this->splitContainer1->Panel1->SuspendLayout();
this->splitContainer1->Panel2->SuspendLayout();
this->splitContainer1->SuspendLayout();
this->contextMenuStrip1->SuspendLayout();
this->panel2->SuspendLayout();
this->SuspendLayout();
//
// imageList1
//
this->imageList1->ImageStream = (cli::safe_cast<System::Windows::Forms::ImageListStreamer^ >(resources->GetObject(L"imageList1.ImageStream")));
this->imageList1->TransparentColor = System::Drawing::Color::Transparent;
this->imageList1->Images->SetKeyName(0, L"X3TC.ico");
this->imageList1->Images->SetKeyName(1, L"X3.ico");
this->imageList1->Images->SetKeyName(2, L"up.png");
this->imageList1->Images->SetKeyName(3, L"database_up.png");
this->imageList1->Images->SetKeyName(4, L"database_down.png");
this->imageList1->Images->SetKeyName(5, L"down.png");
this->imageList1->Images->SetKeyName(6, L"remove.png");
//
// panel1
//
this->panel1->Controls->Add(this->button2);
this->panel1->Controls->Add(this->button1);
this->panel1->Dock = System::Windows::Forms::DockStyle::Bottom;
this->panel1->Location = System::Drawing::Point(0, 404);
this->panel1->Name = L"panel1";
this->panel1->Padding = System::Windows::Forms::Padding(5);
this->panel1->Size = System::Drawing::Size(482, 37);
this->panel1->TabIndex = 0;
//
// button2
//
this->button2->DialogResult = System::Windows::Forms::DialogResult::Cancel;
this->button2->Dock = System::Windows::Forms::DockStyle::Right;
this->button2->Location = System::Drawing::Point(327, 5);
this->button2->Name = L"button2";
this->button2->Size = System::Drawing::Size(75, 27);
this->button2->TabIndex = 1;
this->button2->Text = L"Cancel";
this->button2->UseVisualStyleBackColor = true;
//
// button1
//
this->button1->DialogResult = System::Windows::Forms::DialogResult::OK;
this->button1->Dock = System::Windows::Forms::DockStyle::Right;
this->button1->Location = System::Drawing::Point(402, 5);
this->button1->Name = L"button1";
this->button1->Size = System::Drawing::Size(75, 27);
this->button1->TabIndex = 0;
this->button1->Text = L"Save";
this->button1->UseVisualStyleBackColor = true;
this->button1->Click += gcnew System::EventHandler(this, &FakePatchControl::button1_Click);
//
// splitContainer1
//
this->splitContainer1->Dock = System::Windows::Forms::DockStyle::Fill;
this->splitContainer1->Location = System::Drawing::Point(0, 0);
this->splitContainer1->Name = L"splitContainer1";
this->splitContainer1->Orientation = System::Windows::Forms::Orientation::Horizontal;
//
// splitContainer1.Panel1
//
this->splitContainer1->Panel1->Controls->Add(this->listView2);
this->splitContainer1->Panel1->Controls->Add(this->panel2);
//
// splitContainer1.Panel2
//
this->splitContainer1->Panel2->Controls->Add(this->listView1);
this->splitContainer1->Size = System::Drawing::Size(482, 404);
this->splitContainer1->SplitterDistance = 219;
this->splitContainer1->TabIndex = 2;
//
// listView2
//
this->listView2->Columns->AddRange(gcnew cli::array< System::Windows::Forms::ColumnHeader^ >(1) {this->columnHeader4});
this->listView2->ContextMenuStrip = this->contextMenuStrip1;
this->listView2->Dock = System::Windows::Forms::DockStyle::Fill;
this->listView2->FullRowSelect = true;
this->listView2->HideSelection = false;
this->listView2->LargeImageList = this->imageList1;
this->listView2->Location = System::Drawing::Point(0, 0);
this->listView2->MultiSelect = false;
this->listView2->Name = L"listView2";
this->listView2->Size = System::Drawing::Size(447, 219);
this->listView2->SmallImageList = this->imageList1;
this->listView2->TabIndex = 2;
this->listView2->UseCompatibleStateImageBehavior = false;
this->listView2->View = System::Windows::Forms::View::Details;
this->listView2->MouseDoubleClick += gcnew System::Windows::Forms::MouseEventHandler(this, &FakePatchControl::listView2_MouseDoubleClick);
this->listView2->ItemSelectionChanged += gcnew System::Windows::Forms::ListViewItemSelectionChangedEventHandler(this, &FakePatchControl::listView2_ItemSelectionChanged);
//
// columnHeader4
//
this->columnHeader4->Text = L"Ordered Packages";
//
// contextMenuStrip1
//
this->contextMenuStrip1->Items->AddRange(gcnew cli::array< System::Windows::Forms::ToolStripItem^ >(6) {this->moveToTopToolStripMenuItem,
this->moveUpToolStripMenuItem, this->moveDownToolStripMenuItem, this->moveToBottomToolStripMenuItem, this->toolStripSeparator1,
this->removeToolStripMenuItem});
this->contextMenuStrip1->Name = L"contextMenuStrip1";
this->contextMenuStrip1->Size = System::Drawing::Size(162, 120);
this->contextMenuStrip1->Opening += gcnew System::ComponentModel::CancelEventHandler(this, &FakePatchControl::contextMenuStrip1_Opening);
//
// moveToTopToolStripMenuItem
//
this->moveToTopToolStripMenuItem->Image = (cli::safe_cast<System::Drawing::Image^ >(resources->GetObject(L"moveToTopToolStripMenuItem.Image")));
this->moveToTopToolStripMenuItem->Name = L"moveToTopToolStripMenuItem";
this->moveToTopToolStripMenuItem->Size = System::Drawing::Size(161, 22);
this->moveToTopToolStripMenuItem->Text = L"Move to Top";
this->moveToTopToolStripMenuItem->Click += gcnew System::EventHandler(this, &FakePatchControl::moveToTopToolStripMenuItem_Click);
//
// moveUpToolStripMenuItem
//
this->moveUpToolStripMenuItem->Image = (cli::safe_cast<System::Drawing::Image^ >(resources->GetObject(L"moveUpToolStripMenuItem.Image")));
this->moveUpToolStripMenuItem->Name = L"moveUpToolStripMenuItem";
this->moveUpToolStripMenuItem->Size = System::Drawing::Size(161, 22);
this->moveUpToolStripMenuItem->Text = L"Move Up";
this->moveUpToolStripMenuItem->Click += gcnew System::EventHandler(this, &FakePatchControl::moveUpToolStripMenuItem_Click);
//
// moveDownToolStripMenuItem
//
this->moveDownToolStripMenuItem->Image = (cli::safe_cast<System::Drawing::Image^ >(resources->GetObject(L"moveDownToolStripMenuItem.Image")));
this->moveDownToolStripMenuItem->Name = L"moveDownToolStripMenuItem";
this->moveDownToolStripMenuItem->Size = System::Drawing::Size(161, 22);
this->moveDownToolStripMenuItem->Text = L"Move Down";
this->moveDownToolStripMenuItem->Click += gcnew System::EventHandler(this, &FakePatchControl::moveDownToolStripMenuItem_Click);
//
// moveToBottomToolStripMenuItem
//
this->moveToBottomToolStripMenuItem->Image = (cli::safe_cast<System::Drawing::Image^ >(resources->GetObject(L"moveToBottomToolStripMenuItem.Image")));
this->moveToBottomToolStripMenuItem->Name = L"moveToBottomToolStripMenuItem";
this->moveToBottomToolStripMenuItem->Size = System::Drawing::Size(161, 22);
this->moveToBottomToolStripMenuItem->Text = L"Move to Bottom";
this->moveToBottomToolStripMenuItem->Click += gcnew System::EventHandler(this, &FakePatchControl::moveToBottomToolStripMenuItem_Click);
//
// toolStripSeparator1
//
this->toolStripSeparator1->Name = L"toolStripSeparator1";
this->toolStripSeparator1->Size = System::Drawing::Size(158, 6);
//
// removeToolStripMenuItem
//
this->removeToolStripMenuItem->Image = (cli::safe_cast<System::Drawing::Image^ >(resources->GetObject(L"removeToolStripMenuItem.Image")));
this->removeToolStripMenuItem->Name = L"removeToolStripMenuItem";
this->removeToolStripMenuItem->Size = System::Drawing::Size(161, 22);
this->removeToolStripMenuItem->Text = L"Set Unsorted";
this->removeToolStripMenuItem->Click += gcnew System::EventHandler(this, &FakePatchControl::removeToolStripMenuItem_Click);
//
// panel2
//
this->panel2->Controls->Add(this->button7);
this->panel2->Controls->Add(this->button6);
this->panel2->Controls->Add(this->button5);
this->panel2->Controls->Add(this->button4);
this->panel2->Controls->Add(this->button3);
this->panel2->Dock = System::Windows::Forms::DockStyle::Right;
this->panel2->Location = System::Drawing::Point(447, 0);
this->panel2->Name = L"panel2";
this->panel2->Size = System::Drawing::Size(35, 219);
this->panel2->TabIndex = 3;
//
// button7
//
this->button7->Dock = System::Windows::Forms::DockStyle::Fill;
this->button7->ImageIndex = 6;
this->button7->ImageList = this->imageList1;
this->button7->Location = System::Drawing::Point(0, 67);
this->button7->Name = L"button7";
this->button7->Size = System::Drawing::Size(35, 86);
this->button7->TabIndex = 4;
this->button7->UseVisualStyleBackColor = true;
this->button7->Click += gcnew System::EventHandler(this, &FakePatchControl::button7_Click);
//
// button6
//
this->button6->Dock = System::Windows::Forms::DockStyle::Bottom;
this->button6->ImageKey = L"down.png";
this->button6->ImageList = this->imageList1;
this->button6->Location = System::Drawing::Point(0, 153);
this->button6->Name = L"button6";
this->button6->Size = System::Drawing::Size(35, 33);
this->button6->TabIndex = 3;
this->button6->UseVisualStyleBackColor = true;
this->button6->Click += gcnew System::EventHandler(this, &FakePatchControl::button6_Click);
//
// button5
//
this->button5->Dock = System::Windows::Forms::DockStyle::Bottom;
this->button5->ImageIndex = 4;
this->button5->ImageList = this->imageList1;
this->button5->Location = System::Drawing::Point(0, 186);
this->button5->Name = L"button5";
this->button5->Size = System::Drawing::Size(35, 33);
this->button5->TabIndex = 2;
this->button5->UseVisualStyleBackColor = true;
this->button5->Click += gcnew System::EventHandler(this, &FakePatchControl::button5_Click);
//
// button4
//
this->button4->Dock = System::Windows::Forms::DockStyle::Top;
this->button4->ImageIndex = 2;
this->button4->ImageList = this->imageList1;
this->button4->Location = System::Drawing::Point(0, 33);
this->button4->Name = L"button4";
this->button4->Size = System::Drawing::Size(35, 34);
this->button4->TabIndex = 1;
this->button4->UseVisualStyleBackColor = true;
this->button4->Click += gcnew System::EventHandler(this, &FakePatchControl::button4_Click);
//
// button3
//
this->button3->Dock = System::Windows::Forms::DockStyle::Top;
this->button3->ImageIndex = 3;
this->button3->ImageList = this->imageList1;
this->button3->Location = System::Drawing::Point(0, 0);
this->button3->Name = L"button3";
this->button3->Size = System::Drawing::Size(35, 33);
this->button3->TabIndex = 0;
this->button3->UseVisualStyleBackColor = true;
this->button3->Click += gcnew System::EventHandler(this, &FakePatchControl::button3_Click);
//
// listView1
//
this->listView1->Columns->AddRange(gcnew cli::array< System::Windows::Forms::ColumnHeader^ >(1) {this->columnHeader2});
this->listView1->Dock = System::Windows::Forms::DockStyle::Fill;
this->listView1->FullRowSelect = true;
this->listView1->LargeImageList = this->imageList1;
this->listView1->Location = System::Drawing::Point(0, 0);
this->listView1->MultiSelect = false;
this->listView1->Name = L"listView1";
this->listView1->Size = System::Drawing::Size(482, 181);
this->listView1->SmallImageList = this->imageList1;
this->listView1->TabIndex = 1;
this->listView1->UseCompatibleStateImageBehavior = false;
this->listView1->View = System::Windows::Forms::View::Details;
this->listView1->MouseDoubleClick += gcnew System::Windows::Forms::MouseEventHandler(this, &FakePatchControl::listView1_MouseDoubleClick);
//
// columnHeader2
//
this->columnHeader2->Text = L"Unsorted Packages";
//
// FakePatchControl
//
this->AcceptButton = this->button1;
this->AutoScaleDimensions = System::Drawing::SizeF(6, 13);
this->AutoScaleMode = System::Windows::Forms::AutoScaleMode::Font;
this->CancelButton = this->button2;
this->ClientSize = System::Drawing::Size(482, 441);
this->Controls->Add(this->splitContainer1);
this->Controls->Add(this->panel1);
this->Name = L"FakePatchControl";
this->StartPosition = System::Windows::Forms::FormStartPosition::CenterParent;
this->Text = L"Fake Patch Control";
this->TopMost = true;
this->panel1->ResumeLayout(false);
this->splitContainer1->Panel1->ResumeLayout(false);
this->splitContainer1->Panel2->ResumeLayout(false);
this->splitContainer1->ResumeLayout(false);
this->contextMenuStrip1->ResumeLayout(false);
this->panel2->ResumeLayout(false);
this->ResumeLayout(false);
}
#pragma endregion
private: System::Void listView1_MouseDoubleClick(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) {
Point ^mousePoint = this->listView1->PointToClient(this->listView1->MousePosition);
ListViewItem ^item = this->listView1->GetItemAt(mousePoint->X, mousePoint->Y);
if ( item )
Order(item);
}
private: System::Void contextMenuStrip1_Opening(System::Object^ sender, System::ComponentModel::CancelEventArgs^ e) {
Point ^mousePoint = this->listView2->PointToClient(this->contextMenuStrip1->MousePosition);
ListViewItem ^item = this->listView2->GetItemAt(mousePoint->X, mousePoint->Y);
m_pSelectedItem = item;
if ( !item )
e->Cancel = true;
else
{
// already at the top
if ( this->listView2->Items->IndexOf(item) == 0 )
{
this->moveToTopToolStripMenuItem->Enabled = false;
this->moveUpToolStripMenuItem->Enabled = false;
}
else
{
this->moveToTopToolStripMenuItem->Enabled = true;
this->moveUpToolStripMenuItem->Enabled = true;
}
// already at the bottom
if ( this->listView2->Items->IndexOf(item) == (this->listView2->Items->Count - 1) )
{
this->moveToBottomToolStripMenuItem->Enabled = false;
this->moveDownToolStripMenuItem->Enabled = false;
}
else
{
this->moveToBottomToolStripMenuItem->Enabled = true;
this->moveDownToolStripMenuItem->Enabled = true;
}
}
}
private: System::Void removeToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
if ( !m_pSelectedItem ) return;
Unorder(m_pSelectedItem);
}
private: System::Void listView2_MouseDoubleClick(System::Object^ sender, System::Windows::Forms::MouseEventArgs^ e) {
Point ^mousePoint = this->listView2->PointToClient(this->listView2->MousePosition);
ListViewItem ^item = this->listView2->GetItemAt(mousePoint->X, mousePoint->Y);
if ( item )
Unorder(item);
}
private: System::Void moveToTopToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
if ( !m_pSelectedItem ) return;
// remove item and insert it in correct places
this->listView2->Items->Remove(m_pSelectedItem);
this->listView2->Items->Insert(0, m_pSelectedItem);
}
private: System::Void moveToBottomToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
if ( !m_pSelectedItem ) return;
// remove item and insert it in correct places
this->listView2->Items->Remove(m_pSelectedItem);
this->listView2->Items->Add(m_pSelectedItem);
}
private: System::Void moveUpToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
if ( !m_pSelectedItem ) return;
int idx = m_pSelectedItem->Index;
this->listView2->Items->Remove(m_pSelectedItem);
this->listView2->Items->Insert(idx - 1, m_pSelectedItem);
}
private: System::Void moveDownToolStripMenuItem_Click(System::Object^ sender, System::EventArgs^ e) {
if ( !m_pSelectedItem ) return;
int idx = m_pSelectedItem->Index;
this->listView2->Items->Remove(m_pSelectedItem);
this->listView2->Items->Insert(idx + 1, m_pSelectedItem);
}
private: System::Void listView2_ItemSelectionChanged(System::Object^ sender, System::Windows::Forms::ListViewItemSelectionChangedEventArgs^ e) {
if ( this->listView2->SelectedItems->Count )
{
ListViewItem ^item = this->listView2->SelectedItems[0];
if ( item->Index == 0 )
{
this->button3->Enabled = false;
this->button4->Enabled = false;
}
else
{
this->button3->Enabled = true;
this->button4->Enabled = true;
}
if ( item->Index == (this->listView2->Items->Count - 1) )
{
this->button5->Enabled = false;
this->button6->Enabled = false;
}
else
{
this->button5->Enabled = true;
this->button6->Enabled = true;
}
this->panel2->Visible = true;
}
else
this->panel2->Visible = false;
}
private: System::Void button3_Click(System::Object^ sender, System::EventArgs^ e) {
if ( !this->listView2->SelectedItems->Count ) return;
ListViewItem ^item = this->listView2->SelectedItems[0];
this->listView2->Items->Remove(item);
this->listView2->Items->Insert(0, item);
}
private: System::Void button4_Click(System::Object^ sender, System::EventArgs^ e) {
if ( !this->listView2->SelectedItems->Count ) return;
ListViewItem ^item = this->listView2->SelectedItems[0];
int idx = item->Index;
this->listView2->Items->Remove(item);
this->listView2->Items->Insert(idx - 1, item);
}
private: System::Void button7_Click(System::Object^ sender, System::EventArgs^ e) {
if ( this->listView2->SelectedItems->Count )
Unorder(this->listView2->SelectedItems[0]);
}
private: System::Void button6_Click(System::Object^ sender, System::EventArgs^ e) {
if ( !this->listView2->SelectedItems->Count ) return;
ListViewItem ^item = this->listView2->SelectedItems[0];
int idx = item->Index;
this->listView2->Items->Remove(item);
this->listView2->Items->Insert(idx + 1, item);
}
private: System::Void button5_Click(System::Object^ sender, System::EventArgs^ e) {
if ( !this->listView2->SelectedItems->Count ) return;
ListViewItem ^item = this->listView2->SelectedItems[0];
this->listView2->Items->Remove(item);
this->listView2->Items->Add(item);
}
private: System::Void button1_Click(System::Object^ sender, System::EventArgs^ e) {
// save the fake patch order
Save();
}
};
}