void TaskContextListBoxModel::ItemComponent::refresh (TaskContext& context) { nameLabel.setText (context.getTask().getName(), dontSendNotification); TaskContext::TaskState state = context.getState(); if (state == TaskContext::taskRunning) { setProgressBarVisible(true); } else { setStateMessage (context.getStateDescription()); } if (stateLabel != nullptr) { stateLabel->toFront (false); } resized (); repaint (); }
void TaskContextViewComponent::paint (Graphics& g) { TaskContext* handler = getTaskContext (); if (handler != nullptr) { String name = handler->getTask().getName(); String msg = handler->getTask().getStatusMessage(); // if (rowIsSelected) // { // g.setColour (Colours::darkgrey.withAlpha(0.3f)); // g.fillAll (); // } g.setColour (Colours::black); Rectangle<int> area (0,0,getWidth(),getHeight()); area = area.reduced (4); int halfHeight = getHeight()/2; g.drawFittedText(handler->getTask().getName(), getLocalBounds().withTrimmedBottom(halfHeight).reduced(4), Justification::centredLeft, 1); //g.drawFittedText(handler->getStateDescription(), getLocalBounds().withTrimmedTop(halfHeight).reduced(4), Justification::centredLeft, 1); switch (handler->getState()) { case TaskContext::taskPending: { g.setColour (Colours::blue.withAlpha(0.2f)); g.fillRect (area.reduced(2)); } break; case TaskContext::taskRunning: { double prog = handler->getTask().getProgress();//getOverallProgress(); g.setColour (Colours::hotpink.withAlpha(0.5f)); g.fillRect (area.reduced(2).withTrimmedRight (roundDoubleToInt (area.getWidth() * (1 - prog)))); } break; case TaskContext::taskCompleted: { g.setColour (Colours::green.withAlpha(0.5f)); g.fillRect (area.reduced(2)); } break; case TaskContext::taskAborted: { g.setColour (Colours::red.withAlpha(0.5f)); g.fillRect (area.reduced(2)); } break; case TaskContext::taskStarting: { g.setColour (Colours::brown.withAlpha(0.5f)); g.fillRect (area.reduced(2)); } break; default:; break; } } }