📄 grouptree_widget.cs
字号:
private void on_expand_group(object sender, bool fExpand)
{
if (this.on_group_expand_changed != null)
{
this.on_group_expand_changed(this, sender as grouptree_group, fExpand);
}
}
private void on_expanding_group(object sender, bool fExpand, CancelEventArgs args)
{
if (this.on_group_expand_changing != null)
{
this.on_group_expand_changing(this, sender as grouptree_group, fExpand, args);
}
}
private void PostInitializeComponent()
{
if (base.expand_image == null)
{
base.expand_image = ImpsResources.GetImage("Images.tree_expand.png");
}
if (base.collapse_image == null)
{
base.collapse_image = ImpsResources.GetImage("Images.tree_collapse.png");
}
}
private void PreInitializeComponent()
{
}
protected override bool ProcessCmdKey(ref System.Windows.Forms.Message msg, Keys keyData)
{
if (((base.m_item_edit == null) || !base.m_item_edit.Visible) && ((keyData == Keys.F6) && !base.focus_item.is_end))
{
base.OnItemDoubleClick(this, base.focus_item.data);
return true;
}
return base.ProcessCmdKey(ref msg, keyData);
}
public void remove_allitems(bool fRepaint)
{
Dictionary<PersonalGroup, tree<tree_widget.item_type>.iterator>.ValueCollection.Enumerator enumerator = this.m_group_iterator_map.get_Values().GetEnumerator();
try
{
while (enumerator.MoveNext())
{
tree<tree_widget.item_type>.iterator right = enumerator.get_Current();
if (((right != null) && !tree<tree_widget.item_type>.iterator.is_equal(base.end, right)) && (right.data is grouptree_group))
{
(right.data as grouptree_group).OnExpandChanged -= new tree_widget.item_type.OnExpandChangedHandler(this.on_expand_group);
(right.data as grouptree_group).OnExpandChanging -= new tree_widget.item_type.OnExpandChangingHandler(this.on_expanding_group);
(right.data as grouptree_group).on_group_click_portrait -= new grouptree_group.group_click_portrait_handler(this.on_click_group_portrait);
}
}
}
finally
{
enumerator.Dispose();
}
this.m_group_iterator_map.Clear();
this.m_member_iterator_map.Clear();
base.clear(fRepaint);
}
public tree<tree_widget.item_type>.iterator remove_group(PersonalGroup group, bool fRepaint)
{
tree<tree_widget.item_type>.iterator right;
if ((this.m_group_iterator_map.TryGetValue(group, ref right) && (right != null)) && !tree<tree_widget.item_type>.iterator.is_equal(base.end, right))
{
(right.data as grouptree_group).OnExpandChanged -= new tree_widget.item_type.OnExpandChangedHandler(this.on_expand_group);
(right.data as grouptree_group).OnExpandChanging -= new tree_widget.item_type.OnExpandChangingHandler(this.on_expanding_group);
(right.data as grouptree_group).on_group_click_portrait -= new grouptree_group.group_click_portrait_handler(this.on_click_group_portrait);
this.m_group_iterator_map.Remove(group);
return base.erase(right, fRepaint);
}
return base.end;
}
public tree<tree_widget.item_type>.iterator remove_member(PersonalGroup group, PersonalGroupMember member, bool fRepaint)
{
tree<tree_widget.item_type>.iterator right;
if ((this.m_member_iterator_map.TryGetValue(new pair<PersonalGroupMember, PersonalGroup>(member, group), ref right) && (right != null)) && !tree<tree_widget.item_type>.iterator.is_equal(base.end, right))
{
this.m_member_iterator_map.Remove(new pair<PersonalGroupMember, PersonalGroup>(member, group));
return base.erase(right, fRepaint);
}
return base.end;
}
public tree<tree_widget.item_type>.iterator remove_waiting_item(PersonalGroup group, bool fRepaint)
{
tree<tree_widget.item_type>.iterator right;
if ((this.m_member_iterator_map.TryGetValue(new pair<PersonalGroupMember, PersonalGroup>(null, group), ref right) && (right != null)) && !tree<tree_widget.item_type>.iterator.is_equal(base.end, right))
{
this.m_member_iterator_map.Remove(new pair<PersonalGroupMember, PersonalGroup>(null, group));
return base.erase(right, fRepaint);
}
return base.end;
}
public void sort_allitems(bool fRepaint)
{
if (this.m_cmp != null)
{
for (tree<tree_widget.item_type>.iterator right = base.first_item; !tree<tree_widget.item_type>.iterator.is_equal(base.end, right); right = base.next_sibling(right))
{
base.sort_children(right, this.m_cmp, false);
}
if (!tree<tree_widget.item_type>.iterator.is_equal(base.end, base.m_items.root))
{
base.sort_children(base.m_items.root, this.m_cmp, fRepaint);
}
else
{
win32api_wrapper.PostMessage(base.Handle, 0x40a, (IntPtr) 2, IntPtr.Zero);
}
}
}
public void sort_members(PersonalGroup group, bool fRepaint)
{
tree<tree_widget.item_type>.iterator right;
if (((this.m_cmp != null) && this.m_group_iterator_map.TryGetValue(group, ref right)) && ((right != null) && !tree<tree_widget.item_type>.iterator.is_equal(base.end, right)))
{
base.sort_children(right, this.m_cmp, fRepaint);
}
}
public void update_group(PersonalGroup group, bool fSort, bool fRepaint)
{
tree<tree_widget.item_type>.iterator right;
if (this.m_group_iterator_map.TryGetValue(group, ref right) && ((right != null) && !tree<tree_widget.item_type>.iterator.is_equal(base.end, right)))
{
if (fSort)
{
if (this.m_cmp != null)
{
base.sort_children(base.m_items.root, this.m_cmp, fRepaint);
}
}
else if (fRepaint)
{
base.draw_item(right);
}
}
}
public void update_member(PersonalGroup group, PersonalGroupMember member, bool fSort, bool fRepaint)
{
tree<tree_widget.item_type>.iterator right;
if (this.m_member_iterator_map.TryGetValue(new pair<PersonalGroupMember, PersonalGroup>(member, group), ref right) && ((right != null) && !tree<tree_widget.item_type>.iterator.is_equal(base.end, right)))
{
(right.data as grouptree_member).update();
if (fSort)
{
if (group != null)
{
this.sort_members(group, fRepaint);
}
else
{
this.sort_allitems(fRepaint);
}
}
else if (fRepaint)
{
base.draw_item(right);
}
}
}
public IComparer<tree_widget.item_type> comparer
{
get
{
return this.m_cmp;
}
set
{
this.m_cmp = value;
if ((base.IsHandleCreated && !base.IsDisposed) && (this.m_cmp != null))
{
this.sort_allitems(true);
}
}
}
public bool show_detail
{
get
{
return this.m_show_detail;
}
set
{
if (value != this.m_show_detail)
{
this.m_show_detail = value;
if (base.IsHandleCreated && !base.IsDisposed)
{
win32api_wrapper.PostMessage(base.Handle, 0x40a, (IntPtr) 2, IntPtr.Zero);
}
}
}
}
public delegate void group_click_portrait_handler(object sender, grouptree_group group);
public delegate void group_doubleclick_handler(object sender, grouptree_group group);
public delegate void group_expand_changed_handler(object sender, grouptree_group groupNode, bool fExpanded);
public delegate void group_expand_changing_handler(object sender, grouptree_group group, bool fExpanding, CancelEventArgs args);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -