/// <summary> /// Context menu opening, updates the "plan to" menus /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void contextMenu_Opening(object sender, CancelEventArgs e) { if (tvSkillList.SelectedNode == null) { planToMenu.Enabled = false; // Update "show in..." menu showInMenuSeparator.Visible = false; showInSkillBrowserMenu.Visible = false; showInSkillExplorerMenu.Visible = false; } else { planToMenu.Enabled = true; showInMenuSeparator.Visible = true; showInSkillBrowserMenu.Visible = true; showInSkillExplorerMenu.Visible = true; // "Plan to N" menus var skillLevel = (SkillLevel)tvSkillList.SelectedNode.Tag; var skill = skillLevel.Skill; for (int i = 0; i <= 5; i++) { PlanHelper.UpdatesRegularPlanToMenu(planToMenu.DropDownItems[i], m_plan, skill, i); } } }
/// <summary> /// Updates the combo on the top right, to change the planned level. /// </summary> private void UpdatePlannedLevel() { // Not visible if (m_selectedSkill == null) return; // Toolbar > Planned to... dropdown menu bool enabled = false; enabled |= PlanHelper.UpdatesRegularPlanToMenu(planTo0Menu, m_plan, m_selectedSkill, 0); enabled |= PlanHelper.UpdatesRegularPlanToMenu(planTo1Menu, m_plan, m_selectedSkill, 1); enabled |= PlanHelper.UpdatesRegularPlanToMenu(planTo2Menu, m_plan, m_selectedSkill, 2); enabled |= PlanHelper.UpdatesRegularPlanToMenu(planTo3Menu, m_plan, m_selectedSkill, 3); enabled |= PlanHelper.UpdatesRegularPlanToMenu(planTo4Menu, m_plan, m_selectedSkill, 4); enabled |= PlanHelper.UpdatesRegularPlanToMenu(planTo5Menu, m_plan, m_selectedSkill, 5); planToMenu.Enabled = enabled; // Toolbar > "Planned to" label int level = m_plan.GetPlannedLevel(m_selectedSkill); if (level == 0) { planToMenu.Text = "Plan To (none)..."; } else { planToMenu.Text = "Plan To Level " + Skill.GetRomanForInt(level) + "..."; } }
/// <summary> /// Updates the combo on the top right, to change the planned level. /// </summary> private void UpdatePlannedLevel() { // Not visible if (m_selectedSkill == null) { return; } // Toolbar > Planned to... dropdown menu bool enabled = false; enabled |= PlanHelper.UpdatesRegularPlanToMenu(planTo0Menu, m_plan, m_selectedSkill, 0); enabled |= PlanHelper.UpdatesRegularPlanToMenu(planTo1Menu, m_plan, m_selectedSkill, 1); enabled |= PlanHelper.UpdatesRegularPlanToMenu(planTo2Menu, m_plan, m_selectedSkill, 2); enabled |= PlanHelper.UpdatesRegularPlanToMenu(planTo3Menu, m_plan, m_selectedSkill, 3); enabled |= PlanHelper.UpdatesRegularPlanToMenu(planTo4Menu, m_plan, m_selectedSkill, 4); enabled |= PlanHelper.UpdatesRegularPlanToMenu(planTo5Menu, m_plan, m_selectedSkill, 5); planToMenu.Enabled = enabled; // Toolbar > "Planned to" label int level = m_plan.GetPlannedLevel(m_selectedSkill); planToMenu.Text = (level == 0 ? "Plan To (none)..." : String.Format(CultureConstants.DefaultCulture, "Plan To Level {0}...", Skill.GetRomanForInt(level))); }
/// <summary> /// When the list's context menu opens, we update the menus status /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void cmListSkills_Opening(object sender, CancelEventArgs e) { if (SelectedSkill == null) { e.Cancel = true; return; } // "Plan to N" menus for (int i = 0; i <= 5; i++) { PlanHelper.UpdatesRegularPlanToMenu(cmiLvPlanTo.DropDownItems[i], m_plan, SelectedSkill, i); } // "Show in skill browser" showInSkillBrowserListMenu.Visible = !m_hostedInSkillBrowser; }
/// <summary> /// Context menu opening, updates the "plan to" menus /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void contextMenu_Opening(object sender, CancelEventArgs e) { if (tvSkillList.SelectedNode == null) { e.Cancel = true; return; } // "Plan to N" menus var skillLevel = (SkillLevel)tvSkillList.SelectedNode.Tag; var skill = skillLevel.Skill; for (int i = 1; i <= 5; i++) { PlanHelper.UpdatesRegularPlanToMenu(planToMenu.DropDownItems[i - 1], m_plan, skill, i); } }
/// <summary> /// Whenever the user right-click the skill tree on the left, we display the context menu. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void skillTreeDisplay_SkillClicked(object sender, SkillClickedEventArgs e) { if (e.Button == MouseButtons.Right) { bool isPlanned = false; isPlanned |= PlanHelper.UpdatesRegularPlanToMenu(miPlanTo0, m_plan, e.Skill, 0); isPlanned |= PlanHelper.UpdatesRegularPlanToMenu(miPlanTo1, m_plan, e.Skill, 1); isPlanned |= PlanHelper.UpdatesRegularPlanToMenu(miPlanTo2, m_plan, e.Skill, 2); isPlanned |= PlanHelper.UpdatesRegularPlanToMenu(miPlanTo3, m_plan, e.Skill, 3); isPlanned |= PlanHelper.UpdatesRegularPlanToMenu(miPlanTo4, m_plan, e.Skill, 4); isPlanned |= PlanHelper.UpdatesRegularPlanToMenu(miPlanTo5, m_plan, e.Skill, 5); cmsSkillContext.Show(skillTreeDisplay, e.Location); } else { this.SelectedSkill = e.Skill; } }
/// <summary> /// When the user clicks the node, we select it and checks whether we must display the context menu. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void tvSkills_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { this.tvSkills.SelectedNode = e.Node; if (e.Button != MouseButtons.Right) { return; } // Do not display menu for non-skill nodes var skill = e.Node.Tag as Skill; if (skill == null) { return; } // Updates selection tvSkills.SelectedNode = e.Node; // Update the "plan to X" menus tsAddPlan.Enabled = false; if (skill.Level < 5) { tsAddPlan.Enabled = true; } for (int i = 1; i <= 5; i++) { PlanHelper.UpdatesRegularPlanToMenu(tsAddPlan.DropDownItems[i - 1], m_planWindow.Plan, skill, i); } // Update the "show prerequisites" menu if (skill.ArePrerequisitesMet) { tsShowPrereqs.Enabled = false; } else { tsShowPrereqs.Enabled = true; } // Show menu cmSkills.Show(tvSkills, e.Location); }
/// <summary> /// When the user clicks the node, we select it and checks whether we must display the context menu. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void tvSkills_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { if (e.Button != MouseButtons.Right) { return; } // Updates selection tvSkills.SelectedNode = e.Node; // Display menu only when we access the skill explorer through a plan if (m_planWindow == null) { return; } // Do not display menu for non-skill nodes Skill skill = GetSelectedSkill(); if (skill == null) { return; } // Update the "plan to X" menus tsAddPlan.Enabled = false; if (skill.Level < 5) { tsAddPlan.Enabled = true; } for (int i = 1; i <= 5; i++) { PlanHelper.UpdatesRegularPlanToMenu(tsAddPlan.DropDownItems[i - 1], m_planWindow.Plan, skill, i); } // Update the "show prerequisites" menu tsShowSkillPrereqs.Enabled = !skill.ArePrerequisitesMet; // Show menu cmSkills.Show(tvSkills, e.Location); }
/// <summary> /// When the tree's context menu opens, we update the submenus' statuses. /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void cmSkills_Opening(object sender, CancelEventArgs e) { Skill skill = null; var node = tvItems.SelectedNode; if (node != null) { skill = tvItems.SelectedNode.Tag as Skill; } tsSeparatorBrowser.Visible = (node != null); // "Show in skill browser/explorer" showInSkillExplorerMenu.Visible = (skill != null); showInSkillBrowserMenu.Visible = (skill != null && !m_hostedInSkillBrowser); // "Collapse" and "Expand" menus cmiCollapseSelected.Visible = (skill == null && node != null && node.IsExpanded); cmiExpandSelected.Visible = (skill == null && node != null && !node.IsExpanded); cmiExpandSelected.Text = (skill == null && node != null && !node.IsExpanded ? String.Format("Expand {0}", node.Text) : String.Empty); cmiCollapseSelected.Text = (skill == null && node != null && node.IsExpanded ? String.Format("Collapse {0}", node.Text) : String.Empty); // "Expand All" and "Collapse All" menus cmiCollapseAll.Enabled = cmiCollapseAll.Visible = m_allExpanded; cmiExpandAll.Enabled = cmiExpandAll.Visible = !cmiCollapseAll.Enabled; // "Plan to N" menus cmiPlanTo.Enabled = (skill != null && skill.Level < 5); if (skill != null) { for (int i = 0; i <= 5; i++) { PlanHelper.UpdatesRegularPlanToMenu(cmiPlanTo.DropDownItems[i], m_plan, SelectedSkill, i); } } }