- added adjustable KML update interval - prepared for .kmz git-svn-id: http://moon:8086/svn/software/trunk/projects/FsTrack@125 b431acfa-c32f-4a4a-93f1-934dc6c82436
189 lines
6.8 KiB
C++
189 lines
6.8 KiB
C++
/*
|
|
==============================================================================
|
|
|
|
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->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->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->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);
|
|
|
|
|
|
//[UserPreSize]
|
|
//[/UserPreSize]
|
|
|
|
setSize (400, 300);
|
|
|
|
|
|
//[Constructor] You can add your own custom stuff here..
|
|
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);
|
|
//[/Constructor]
|
|
}
|
|
|
|
MainComponent::~MainComponent()
|
|
{
|
|
//[Destructor_pre]. You can add your own custom destruction code here..
|
|
//[/Destructor_pre]
|
|
|
|
m_fsuipcStatus = nullptr;
|
|
m_flightStatus = nullptr;
|
|
m_kmlUpdInterval_s = 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..
|
|
g.fillAll (Colour (0xffeeddff));
|
|
|
|
g.setFont (Font (16.0f));
|
|
g.setColour (Colours::black);
|
|
g.drawText ("Hello World!", getLocalBounds(), Justification::centred, true);
|
|
//[/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);
|
|
//[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]
|
|
}
|
|
|
|
|
|
|
|
//[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;
|
|
}
|
|
//[/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
|
|
|
|
<JUCER_COMPONENT documentType="Component" className="MainComponent" componentName=""
|
|
parentClasses="public Component, public IFsLinkListener" constructorParams="String const &homeDir"
|
|
variableInitialisers="" snapPixels="8" snapActive="1" snapShown="1"
|
|
overlayOpacity="0.330" fixedSize="1" initialWidth="400" initialHeight="300">
|
|
<BACKGROUND backgroundColour="ffffffff"/>
|
|
<LABEL name="FSUIP Status" id="a891503ff0f699d7" memberName="m_fsuipcStatus"
|
|
virtualName="" explicitFocusOrder="0" pos="16 256 150 24" edTextCol="ff000000"
|
|
edBkgCol="0" labelText="Unknown" editableSingleClick="0" editableDoubleClick="0"
|
|
focusDiscardsChanges="0" fontname="Default font" fontsize="15"
|
|
bold="0" italic="0" justification="33"/>
|
|
<LABEL name="Flight Status" id="2a046c84c0638c1f" memberName="m_flightStatus"
|
|
virtualName="" explicitFocusOrder="0" pos="216 256 150 24" edTextCol="ff000000"
|
|
edBkgCol="0" labelText="Unknown" editableSingleClick="0" editableDoubleClick="0"
|
|
focusDiscardsChanges="0" fontname="Default font" fontsize="15"
|
|
bold="0" italic="0" justification="33"/>
|
|
<SLIDER name="KML Update Interval" id="c4434642fabdd31c" memberName="m_kmlUpdInterval_s"
|
|
virtualName="" explicitFocusOrder="0" pos="16 216 184 24" min="0.10000000000000001"
|
|
max="10" int="0.10000000000000001" style="LinearHorizontal" textBoxPos="TextBoxLeft"
|
|
textBoxEditable="1" textBoxWidth="80" textBoxHeight="20" skewFactor="1"/>
|
|
</JUCER_COMPONENT>
|
|
|
|
END_JUCER_METADATA
|
|
*/
|
|
#endif
|
|
|
|
|
|
//[EndFile] You can add extra defines here...
|
|
//[/EndFile]
|