⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 mainform.cs

📁 语音视频功能 里面实现了基本的QQ与语音对话
💻 CS
📖 第 1 页 / 共 3 页
字号:
			//
			//tpEmail
			//
			this.tpEmail=new GTabPage();
			this.tpEmail.BackColor=Color.Transparent;
			this.tpEmail.Dock=DockStyle.Fill;
			this.tpEmail.GImage.Image=skf.GetImage("/gowk_skin/images/tab/email");
			this.tpEmail.Text="Email";
			this.gTabControl1.GTabPages.Add(this.tpEmail);
			//
			//tpBlog
			//
			this.tpBlog=new GTabPage();
			this.tpBlog.BackColor=Color.Transparent;
			this.tpBlog.Dock=DockStyle.Fill;
			this.tpBlog.Text="Blog";
			this.tpBlog.GImage.Image=skf.GetImage("/gowk_skin/images/tab/blog");
			this.gTabControl1.GTabPages.Add(this.tpBlog);

			// 
			// gListView1
			// 
			this.gListView1.Dock = System.Windows.Forms.DockStyle.Fill;
			this.gListView1.GBorderStyle = gowk.controls.GBorderStyle.Null;
			this.gListView1.Indent = 8;
			this.gListView1.IsRound = false;
			this.gListView1.MaxItemHeight = 58;
			this.gListView1.MinItemHeight = 20;
			this.gListView1.MouseUp+=new MouseEventHandler(gListView1_MouseUp);
			this.gListView1.DoubleClick+=new EventHandler(gListView1_DoubleClick);
			this.gListView1.DrawItem+=new gowk.controls.DrawItemEventHandler(gListView1_DrawItem);
			this.tpChat.Controls.Add(this.gListView1);

			/////////_contextmenu_present/////////////////
			this._contextmenu_present=new ContextMenu();
			this._contextmenu_present.MenuItems.AddRange(
				new MenuItem[]{
				new GMenuItem("上线",this.skf.GetImage("/gowk_skin/images/status/status1"),new EventHandler(this._contextmenu_present_Click)),
				new GMenuItem("隐身",this.skf.GetImage("/gowk_skin/images/status/status2"),new EventHandler(this._contextmenu_present_Click)),
				new GMenuItem("状态",this.skf.GetImage("/gowk_skin/images/status/status1"),new EventHandler(this._contextmenu_present_Click)),
				new GMenuItem("离线",this.skf.GetImage("/gowk_skin/images/status/status3"),new EventHandler(this._contextmenu_present_Click))
				});
			this.Controls.Add(this.gTabControl1);
			this.LoadListContextMenu();

			this.tpChat.ResumeLayout();
			this.gListView1.ResumeLayout();
			this.gTabControl1.ResumeLayout();
			this.ResumeLayout();
		}
		private void _contextmenu_present_Click(object sender, EventArgs e)
		{
			GMenuItem mi=(GMenuItem)sender;
			switch(((GMenuItem)sender).Text)
			{
				case "上线":
					this.pm.DoGoOnline();
					break;
				case "隐身":
					this.pm.DoInvisible();
					break;
				case "状态":
					
				break;
				case "离线":
					this.pm.DoGoOffline();
					break;
			}
			if(mi.Image!=null)
			{
				this.niah.NormalIcon=this.notifyIcon1.Icon=gowk.controls.UT.ConvertImage2Icon(mi.Image);
			}
		}
		private void gListView1_DrawItem(object sender, GListViewDrawItemEventArgs e)
		{
			if(e.Bounds.Width<=0 ||e.Bounds.Height<=0)return;

			GListViewItem item=e.Item;
			Graphics g=e.Graphics;
			gowk.controls.State state=gowk.controls.State.Normal;
			Rectangle rect=e.Bounds;
			Image img=null;
			Image backGoundImage=null;
			Color foreColor;
			Rectangle imgRect,strRect;
			
			if(rect.Contains(this.gListView1.GetMousePosition()))
			{
				state=this.Capture?gowk.controls.State.Pressed:gowk.controls.State.Actived;
			}
			img=item.GImage.GetImageByState(state);
			foreColor=this.gListView1.GColor.GetColorByState(state);
			backGoundImage=item.BackGroundImage.GetImageByState(state);
			this.gListView1.GetRectangle(rect,item,out imgRect,out strRect);

			//draw backGoundImge
			if(backGoundImage!=null)g.DrawImage(backGoundImage,rect);
			else if(item is GListViewFolder)
			{
				ButtonState bs;
				switch(state)
				{
					case gowk.controls.State.Actived:
						bs=ButtonState.Flat;
						break;
					case gowk.controls.State.Pressed:
						bs=ButtonState.Pushed;
						break;
					default:
						bs=ButtonState.Normal;
						break;

				}
				System.Windows.Forms.ControlPaint.DrawButton(g,rect,bs);
			}
			if(img!=null)
			{
				if(item.Tag!=null && item.Tag is Item && !this.pm.OnlineUsers.Contains(((Item)item.Tag).Jid) && state==gowk.controls.State.Normal)
				{
					img=img.GetThumbnailImage(imgRect.Width,imgRect.Height,null,IntPtr.Zero);
					System.Windows.Forms.ControlPaint.DrawImageDisabled(g,img,imgRect.X,imgRect.Y,Color.White);
				}
				else
				{
					g.DrawImage(img,imgRect);
				}
			}
			StringFormat sf=new StringFormat();
			sf.Trimming=StringTrimming.Character;
			sf.LineAlignment=StringAlignment.Center;
			sf.Alignment=(item.Parent!=null && item.Parent.View==View.SmallIcon)?StringAlignment.Near:StringAlignment.Center;
			g.DrawString(item.Text,this.Font,new SolidBrush(foreColor),strRect,sf);
			e.Drawed=true;

		}
		private void UnloadTab()
		{
			this.niah.NormalIcon=this.notifyIcon1.Icon=gowk.controls.UT.ConvertImage2Icon(this.skf.GetImage("/gowk_skin/images/status/status3"));
			this.btnStatus.Visible=false;
			if(this.gTabControl1!=null)
			{
				this.Controls.Remove(this.gTabControl1);
			}
			if(this.tpChat!=null)
			{
				this.tpChat.Dispose();
			}
			if(this.gListView1!=null)
			{
				this.gListView1.Dispose();
			}
			if(this.gTabControl1!=null)
			{
				this.gTabControl1.Dispose();
			}
			if(this.contextMenu1!=null)
			{
				this.contextMenu1.Dispose();
			}
			GC.Collect();
		}
		private void LoadListContextMenu()
		{
			//	Image img=Image.FromFile(@"C:\Documents and Settings\All Users\Documents\My Pictures\示例图片\Blue hills.jpg");
			Image img=null;
			this.contextMenu1=new ContextMenu();
			this.contextMenu1.MenuItems.Add(new GMenuItem("收发消息",img,new EventHandler(this.contextMenu_Click)));
			this.contextMenu1.MenuItems.Add(new GMenuItem("语音视频",img,new EventHandler(this.contextMenu_Click)));
			this.contextMenu1.MenuItems.Add(new GMenuItem("视频调节",img,new EventHandler(this.contextMenu_Click)));
			this.contextMenu1.MenuItems.Add(new GMenuItem("传送文件",img,new EventHandler(this.contextMenu_Click)));
			this.contextMenu1.MenuItems.Add(new GMenuItem("小头像",img,new EventHandler(this.contextMenu_Click)));
			this.contextMenu1.MenuItems.Add(new GMenuItem("添加好友",img,new EventHandler(this.contextMenu_Click)));
			this.contextMenu1.MenuItems.Add(new GMenuItem("查找添加好友",img,new EventHandler(this.contextMenu_Click)));
			this.contextMenu1.MenuItems.Add(new GMenuItem("只显示在线用户",img,new EventHandler(this.contextMenu_Click)));
			this.contextMenu1.MenuItems.Add(new GMenuItem("查看资料",img,new EventHandler(this.contextMenu_Click)));
			this.contextMenu1.MenuItems.Add(new GMenuItem("删除",img,new EventHandler(this.contextMenu_Click)));
		}
		private void contextMenu_Click(object sender, EventArgs e)
		{
			MenuItem itm=(MenuItem)sender;
			GListViewItem item=this.gListView1.SelectedItem;
			if(item==null)return;
			Item i=item.Tag as Item;
			if(i==null)return;
			switch(itm.Text)
			{
				case "收发消息":
					this.ShowChat(i,false);
					break;
				case "查找添加好友":
					this.ShowSearchForm();
					break;
				case "语音视频":
					this.ShowChat(i,true);
					break;
				case "视频调节":
					this.ShowAvwizard();
					break;
				case "传送文件":
					break;
				case "小头像":
				{
					GListViewItem s=item.Parent;
					if(s!=null)s.View=View.SmallIcon;
					itm.Text="大图像";
					break;
				}
				case "大图像":
				{
					GListViewItem s=item.Parent;
					if(s!=null)s.View=View.LargeIcon;
					itm.Text="小头像";
				}
					break;
				case "更新好友":
					this.GetRoster();
					break;
				case "添加好友":
					this.ShowAddUserForm();
					break;
				case "只显示在线用户":
					///////////////////////////
					break;
				case "查看资料":
					this.ShowProfile(i);
					break;
				case "删除":
					////////////////////////
					break;
			}
		}
		private void ShowAvwizard()
		{
			gowk.forms.AVWizardForm avwf=new AVWizardForm();
			avwf.Show();
		}
		private void ShowProfile(Item i)
		{
			ProfileForm pf=null;
			string bare=Jid.GetBareJid(i.Jid);
			string id=bare+"profileForm";
			if(this._fs.ContainsKey(id))
			{
				pf=(ProfileForm)this._fs[id];
				if(!pf.Visible)pf.Visible=true;
				pf.Activate();
			}
			else
			{
				pf=new ProfileForm(this.jc,bare);
				this._fs.Add(id,pf);
				pf.Show();
			}
		}

		private void ShowChat(Item i,bool reqiredavchat)
		{
			MessageForm mf=null;
			string bare=Jid.GetBareJid(i.Jid);
			string id=bare+"messageForm";
			if(this._fs.ContainsKey(id))
			{
				mf=(MessageForm)this._fs[id];
				if(!mf.Visible)mf.Visible=true;
				mf.Activate();
			}
			else
			{
				mf=new MessageForm(this.jc,i);
				this._fs.Add(id,mf);
				mf.Show();
			}
			if(reqiredavchat)mf.RequestVideoChat();
		}
		private void gListView1_DoubleClick(object sender, EventArgs e)
		{
			GListViewItem item=this.gListView1.SelectedItem;
			if(item==null)return;
			Item i=item.Tag as Item;
			if(i!=null)
				this.ShowChat(i,false);
		}
		private void gListView1_MouseUp(object sender, MouseEventArgs e)
		{
			if(e.Button==MouseButtons.Right)
			{
				GListViewItem itm=this.gListView1.GetItemAtPoint(new Point(e.X,e.Y));
				
				if(itm!=null && !(itm is GListViewFolder) && itm.Tag is Item)
				{
					this.contextMenu1.Show(this.gListView1,new Point(e.X,e.Y));
				}
			}
		}
		#endregion


		#region main context menu
		private void LoadMainContextMenu()
		{
			//	Image img=Image.FromFile(@"C:\Documents and Settings\All Users\Documents\My Pictures\示例图片\Blue hills.jpg");
			Image img=null;
			
			this.gContextMenu1.MenuItems.Add(new GMenuItem("添加好友",img,new EventHandler(this.mnuItem_Click)));
			this.gContextMenu1.MenuItems.Add(new GMenuItem("好友管理",img,new EventHandler(this.mnuItem_Click)));
			this.gContextMenu1.MenuItems.Add(new GMenuItem("历史记录",img,new EventHandler(this.mnuItem_Click)));
			this.gContextMenu1.MenuItems.Add(new GMenuItem("更改用户",img,new EventHandler(this.mnuItem_Click)));
			this.gContextMenu1.MenuItems.Add(new GMenuItem("更新好友",img,new EventHandler(this.mnuItem_Click)));
			this.gContextMenu1.MenuItems.Add(new GMenuItem("查找添加好友",img,new EventHandler(this.mnuItem_Click)));
			this.gContextMenu1.MenuItems.Add(new GMenuItem("系统设置",img,new EventHandler(this.mnuItem_Click)));
			this.gContextMenu1.MenuItems.Add(new GMenuItem("皮肤",img,new EventHandler(this.mnuItem_Click)));
			this.gContextMenu1.MenuItems.Add(new GMenuItem("更改密码",img,new EventHandler(this.mnuItem_Click)));
			this.gContextMenu1.MenuItems.Add(new GMenuItem("注销",img,new EventHandler(this.mnuItem_Click)));
			this.gContextMenu1.MenuItems.Add(new GMenuItem("退出",img,new EventHandler(this.mnuItem_Click)));
			this.notifyIcon1.MouseUp+=new MouseEventHandler(notifyIcon1_MouseUp);
		}
		private void mnuItem_Click(object sender, EventArgs e)
		{
			MenuItem itm=(MenuItem)sender;
			if(this.jc.State!=gowk.core.State.Logined)
			{
				if(itm.Text=="退出")
				{
					Application.Exit();
				}
				return;
			}
			switch(itm.Text)
			{
				case "添加好友":
					this.ShowAddUserForm();
					break;
				case "好友管理":
					break;
				case "查找添加好友":
					this.ShowSearchForm();
					break;
				case "历史记录":
					break;
				case "更改用户":
					break;
				case "更新好友":
					break;
				case "皮肤":
					break;
				case "更改密码":
				case "系统设置":
					break;
				case "注销":
					this.Logout();
					this.UnloadTab();
					this.RequireUILogin();
					break;
				case "退出":
					Application.Exit();
					break;
			}
		}
		private void ShowAddUserForm()
		{
			AddUserForm sf=null;
			string id="adduserform";
			if(this._fs.ContainsKey(id))
			{
				sf=(AddUserForm)this._fs[id];
				if(!sf.Visible)sf.Visible=true;
				sf.Activate();
			}
			else
			{
				sf=new AddUserForm(this.jc);
				this._fs.Add(id,sf);
				sf.Show();
			}	
		}
		private void ShowSearchForm()
		{
			SearchForm sf=null;
			string id="searchform";
			if(this._fs.ContainsKey(id))
			{
				sf=(SearchForm)this._fs[id];
				if(!sf.Visible)sf.Visible=true;
				sf.Activate();
			}
			else
			{
				sf=new SearchForm(this.jc);
				this._fs.Add(id,sf);
				sf.Show();
			}	
		}

		private void MainForm_Load(object sender, System.EventArgs e)
		{
		
		}

		#endregion
		#region buttons
		private void gButton1_Click(object sender, System.EventArgs e)
		{
			Form f=new gowk.forms.ConsoleForm(this.jc);
			f.Show();
		}

		private void gButton2_Click(object sender, System.EventArgs e)
		{
			this.WindowState=FormWindowState.Minimized;
		}

		private void gButton3_Click(object sender, System.EventArgs e)
		{
			Application.Exit();
		}

		#endregion

		#region roster
		private GListViewItem GetORAddGListViewItem(GListViewItem parent,string txt)
		{
			foreach(GListViewItem lvi in parent.Items)
			{
				if(lvi.Text==txt)
				{
					return lvi;
				}
			}			
			GListViewItem itm=new GListViewItem();
			itm.Text=txt;
			if(parent is GListViewFolder)
				itm.GImage.Image=skf.GetImage("/gowk_skin/images/list/dropdown");
			parent.Items.Add(itm);
			return itm;
		}
		private GListViewFolder CreateFolder(string text)
		{
			/*	GListViewFolder lvf=null;
				foreach(GListViewFolder glvf in this.gListView1.Items)
				{
					if(glvf.Text==text)
					{
						lvf=glvf;
						break;
					}
				}
				if(lvf==null)
				{*/
			//	gowk.common.SkinConfig skf=gowk.common.SkinConfig.Instance;
			GListViewFolder lvf=new GListViewFolder();
			lvf.Text=text;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -