コード例 #1
0
ファイル: UserList.cs プロジェクト: neiz/JabbR.Eto
		public void OwnerRemoved (User user)
		{
			if (RemoveUser (user)) {
				AddUser (user);
				Update ();
			}
		}
コード例 #2
0
ファイル: UserList.cs プロジェクト: neiz/JabbR.Eto
		bool RemoveUser (User user)
		{
			return RemoveUser (user.Id);
		}
コード例 #3
0
ファイル: UserList.cs プロジェクト: neiz/JabbR.Eto
		void AddUser (User user)
		{
			var isOwner = Channel.Owners.Contains (user.Id);
			TreeItem item = isOwner ? owners : user.Active ? online : away;
			item.Children.Add (CreateItem (user));
		}
コード例 #4
0
ファイル: UserList.cs プロジェクト: neiz/JabbR.Eto
		public void UserJoined (User user)
		{
			RemoveUser (user);
			AddUser (user);
			Update ();
		}
コード例 #5
0
ファイル: UserList.cs プロジェクト: neiz/JabbR.Eto
		TreeItem CreateItem (User user)
		{
			return new TreeItem { Text = user.Name, Key = user.Id, Tag = user };
		}
コード例 #6
0
ファイル: UserList.cs プロジェクト: neiz/JabbR.Eto
		public void UserLeft (User user)
		{
			RemoveUser (user);
			Update ();
		}
コード例 #7
0
ファイル: UserList.cs プロジェクト: neiz/JabbR.Eto
		public void UsernameChanged (string oldUserId, User user)
		{
			if (RemoveUser (oldUserId)) {
				AddUser (user);
			}
			Update ();
		}
コード例 #8
0
ファイル: UserList.cs プロジェクト: jschell/JabbR.Eto
 TreeItem CreateItem(User user)
 {
     return new TreeItem { Text = user.Name, Key = user.Id, Tag = user, Image = Channel.Server.GetUserIcon(user) };
 }
コード例 #9
0
ファイル: Server.cs プロジェクト: neiz/JabbR.Eto
		public abstract void StartChat (User user);
コード例 #10
0
ファイル: UserList.cs プロジェクト: jschell/JabbR.Eto
 ITreeItem FindUserItem(User user)
 {
     var item = owners.Children.FirstOrDefault(r => r.Key == user.Id);
     if (item != null)
         return item;
     item = online.Children.FirstOrDefault(r => r.Key == user.Id);
     if (item != null)
         return item;
     item = away.Children.FirstOrDefault(r => r.Key == user.Id);
     if (item != null)
         return item;
     return null;
 }
コード例 #11
0
ファイル: UserList.cs プロジェクト: jschell/JabbR.Eto
 public void UserIconChanged(User user, Image image)
 {
     var item = FindUserItem(user) as TreeItem;
     if (item != null)
     {
         item.Image = image;
         //tree.RefreshData ();
         tree.RefreshItem(item);
     }
 }
コード例 #12
0
 public UsernameChangedEventArgs(string oldName, User user, DateTimeOffset when)
     : base (user, when)
 {
     this.OldUsername = oldName;
 }
コード例 #13
0
ファイル: UserEventArgs.cs プロジェクト: jschell/JabbR.Eto
 public UserEventArgs(User user, DateTimeOffset when)
 {
     this.User = user;
     this.When = when;
 }
コード例 #14
0
ファイル: Server.cs プロジェクト: jschell/JabbR.Eto
        public Bitmap GetUserIcon(User user)
        {
            if (iconCache.Contains(user.Id))
            {
                var icon = iconCache[user.Id] as Bitmap;
                if (icon != null)
                    return icon;
            }

            user.GetIcon().ThenOnUI(image => {
                var policy = new CacheItemPolicy {
                    SlidingExpiration = TimeSpan.FromMinutes (60)
                };
                iconCache.Set(user.Id, image, policy);
                foreach (var channel in this.Channels)
                {
                    if (channel.Users.Any(r => r.Id == user.Id))
                    {
                        channel.TriggerUserIconChanged(new UserImageEventArgs(user, DateTimeOffset.Now, image));
                    }
                }
            });

            return User.DefaultUserIcon;
        }
コード例 #15
0
 public UserImageEventArgs(User user, DateTimeOffset when, Image image)
     : base (user, when)
 {
     this.Image = image;
 }
コード例 #16
0
		public UserChannelEventArgs(User user, Channel channel)
		{
			this.User = user;
			this.Channel = channel;
		}