/* ============================================================================== This is an automatically generated GUI class created by the Introjucer! Be careful when adding custom code to these files, as only the code within the "//[xyz]" and "//[/xyz]" sections will be retained when the file is loaded and re-saved. Created with Introjucer version: 3.1.0 ------------------------------------------------------------------------------ The Introjucer is part of the JUCE library - "Jules' Utility Class Extensions" Copyright 2004-13 by Raw Material Software Ltd. ============================================================================== */ //[Headers] You can add your own extra header files here... //[/Headers] #include "MainComponent.h" //[MiscUserDefs] You can add your own user definitions and misc code here... //[/MiscUserDefs] //============================================================================== MainComponent::MainComponent (String const &homeDir) { addAndMakeVisible (m_fsuipcStatus = new Label ("FSUIP Status", TRANS("Unknown"))); m_fsuipcStatus->setTooltip (TRANS("FSUIP Status")); m_fsuipcStatus->setFont (Font (15.00f, Font::plain)); m_fsuipcStatus->setJustificationType (Justification::centredLeft); m_fsuipcStatus->setEditable (false, false, false); m_fsuipcStatus->setColour (TextEditor::textColourId, Colours::black); m_fsuipcStatus->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); addAndMakeVisible (m_flightStatus = new Label ("Flight Status", TRANS("Unknown"))); m_flightStatus->setTooltip (TRANS("Flight Status")); m_flightStatus->setFont (Font (15.00f, Font::plain)); m_flightStatus->setJustificationType (Justification::centredLeft); m_flightStatus->setEditable (false, false, false); m_flightStatus->setColour (TextEditor::textColourId, Colours::black); m_flightStatus->setColour (TextEditor::backgroundColourId, Colour (0x00000000)); addAndMakeVisible (m_kmlUpdInterval_s = new Slider ("KML Update Interval")); m_kmlUpdInterval_s->setTooltip (TRANS("KML Update Interval")); m_kmlUpdInterval_s->setRange (0.1, 10, 0.1); m_kmlUpdInterval_s->setSliderStyle (Slider::LinearHorizontal); m_kmlUpdInterval_s->setTextBoxStyle (Slider::TextBoxLeft, false, 80, 20); m_kmlUpdInterval_s->addListener (this); addAndMakeVisible (m_colorSelector = new ColourSelector()); m_colorSelector->setName ("Color Selector"); addAndMakeVisible (m_altitudeMode = new ComboBox ("Altitude Mode")); m_altitudeMode->setTooltip (TRANS("Altitude Mode")); m_altitudeMode->setEditableText (false); m_altitudeMode->setJustificationType (Justification::centredLeft); m_altitudeMode->setTextWhenNothingSelected (String::empty); m_altitudeMode->setTextWhenNoChoicesAvailable (TRANS("(no choices)")); m_altitudeMode->addItem (TRANS("absolute"), 1); m_altitudeMode->addItem (TRANS("relativeToGround"), 2); m_altitudeMode->addItem (TRANS("clampToGround"), 3); m_altitudeMode->addSeparator(); m_altitudeMode->addListener (this); //[UserPreSize] //[/UserPreSize] setSize (400, 300); //[Constructor] You can add your own custom stuff here.. m_toolTip = new TooltipWindow(this); static String workDir(homeDir + String("\\FsTrack")); File file(workDir); file.createDirectory(); m_kml = new Kml(workDir.getCharPointer()); m_fsLink = new FsLink(workDir.getCharPointer()); m_fsLink->addListener(this); m_fsLink->setKml(m_kml); m_httpServer = new HttpServer(5001, workDir.getCharPointer()); m_httpServer->addListener(m_kml); m_kmlUpdInterval_s->setValue(1.0, juce::NotificationType::sendNotification); m_colorSelector->addChangeListener(this); m_colorSelector->setCurrentColour(juce::Colours::yellow); m_altitudeMode->setSelectedId(1, juce::NotificationType::sendNotification); //[/Constructor] } MainComponent::~MainComponent() { //[Destructor_pre]. You can add your own custom destruction code here.. m_toolTip = nullptr; m_kml = nullptr; m_fsLink = nullptr; m_httpServer = nullptr; //[/Destructor_pre] m_fsuipcStatus = nullptr; m_flightStatus = nullptr; m_kmlUpdInterval_s = nullptr; m_colorSelector = nullptr; m_altitudeMode = nullptr; //[Destructor]. You can add your own custom destruction code here.. //[/Destructor] } //============================================================================== void MainComponent::paint (Graphics& g) { //[UserPrePaint] Add your own custom painting code here.. //[/UserPrePaint] g.fillAll (Colours::white); //[UserPaint] Add your own custom painting code here.. //[/UserPaint] } void MainComponent::resized() { m_fsuipcStatus->setBounds (16, 256, 150, 24); m_flightStatus->setBounds (216, 256, 150, 24); m_kmlUpdInterval_s->setBounds (16, 216, 184, 24); m_colorSelector->setBounds (24, 32, 168, 152); m_altitudeMode->setBounds (216, 40, 160, 24); //[UserResized] Add your own custom resize handling here.. //[/UserResized] } void MainComponent::sliderValueChanged (Slider* sliderThatWasMoved) { //[UsersliderValueChanged_Pre] //[/UsersliderValueChanged_Pre] if (sliderThatWasMoved == m_kmlUpdInterval_s) { //[UserSliderCode_m_kmlUpdInterval_s] -- add your slider handling code here.. m_fsLink->setUpdateInterval(sliderThatWasMoved->getValue()); //[/UserSliderCode_m_kmlUpdInterval_s] } //[UsersliderValueChanged_Post] //[/UsersliderValueChanged_Post] } void MainComponent::comboBoxChanged (ComboBox* comboBoxThatHasChanged) { //[UsercomboBoxChanged_Pre] //[/UsercomboBoxChanged_Pre] if (comboBoxThatHasChanged == m_altitudeMode) { //[UserComboBoxCode_m_altitudeMode] -- add your combo box handling code here.. m_kml->setAltitudeMode(comboBoxThatHasChanged->getItemText(comboBoxThatHasChanged->getSelectedItemIndex())); //[/UserComboBoxCode_m_altitudeMode] } //[UsercomboBoxChanged_Post] //[/UsercomboBoxChanged_Post] } //[MiscUserCode] You can add your own definitions of your custom methods or any other code here... void MainComponent::onStateChanged(IFsLink &obj) { m_fsuipcStatus->setText(obj.getLinkState(), juce::sendNotification); m_flightStatus->setText(obj.getFlightState(), juce::sendNotification); } void MainComponent::onDataChanged(IFsLink &obj) { (void)obj; } void MainComponent::changeListenerCallback(juce::ChangeBroadcaster *source) { if (m_colorSelector == source) { ColourSelector &obj = (ColourSelector&)*source; m_kml->setPathColor(String(obj.getCurrentColour().fromRGBA(obj.getCurrentColour().getBlue(), obj.getCurrentColour().getGreen(), obj.getCurrentColour().getRed(), obj.getCurrentColour().getAlpha()).toString())); } } //[/MiscUserCode] //============================================================================== #if 0 /* -- Introjucer information section -- This is where the Introjucer stores the metadata that describe this GUI layout, so make changes in here at your peril! BEGIN_JUCER_METADATA END_JUCER_METADATA */ #endif //[EndFile] You can add extra defines here... //[/EndFile]