📄 mainform.cs
字号:
//
//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 + -