void missingItem_RemoveFromTaskbar(MissingTaskbarItem source) { missingTasks.Remove(source.UniqueName); taskbar.removeItem(source); source.Dispose(); taskbar.layout(); }
public void loadPinnedTasks(ConfigFile configFile) { ConfigSection taskbarSection = configFile.createOrRetrieveConfigSection(TASKBAR_ALIGNMENT_SECTION); PinnedTaskSerializer pinnedTaskSerializer = new PinnedTaskSerializer(taskbarSection); String taskbarAlignmentString = taskbarSection.getValue("MainTaskbarAlignment", taskbar.Alignment.ToString()); try { taskbar.Alignment = (TaskbarAlignment)Enum.Parse(typeof(TaskbarAlignment), taskbarAlignmentString); } catch (Exception) { Log.Warning("Could not parse the taskbar alignment {0}. Using default.", taskbarAlignmentString); } ConfigIterator configIterator = pinnedTaskSerializer.Tasks; while (configIterator.hasNext()) { String uniqueName = configIterator.next(); Task item = taskController.getTask(uniqueName); if (item != null) { addPinnedTaskbarItem(item, -1); } else { MissingTaskbarItem missingItem = new MissingTaskbarItem(uniqueName); missingItem.RemoveFromTaskbar += missingItem_RemoveFromTaskbar; taskbar.addItem(missingItem, -1); missingTasks.Add(uniqueName, missingItem); } } }
void taskController_TaskRemoved(Task task, bool willReload) { TaskTaskbarItem item; if (taskbarItems.TryGetValue(task, out item)) { if (willReload) { int index = taskbar.getIndexForTaskItem(item); MissingTaskbarItem missingItem = new MissingTaskbarItem(task.UniqueName); missingItem.RemoveFromTaskbar += missingItem_RemoveFromTaskbar; taskbar.addItem(missingItem, index); missingTasks.Add(task.UniqueName, missingItem); } taskbarItems.Remove(task); taskbar.removeItem(item); item.Dispose(); taskbar.layout(); } }