diff --git a/src/forms/Bookmark/BookmarkPanel.cpp b/src/forms/Bookmark/BookmarkPanel.cpp
index 78c7f11..a3ae15c 100644
--- a/src/forms/Bookmark/BookmarkPanel.cpp
+++ b/src/forms/Bookmark/BookmarkPanel.cpp
@@ -24,9 +24,9 @@ BookmarkPanel::BookmarkPanel( wxWindow* parent, wxWindowID id, const wxPoint& po
fgPropSizer->SetFlexibleDirection( wxBOTH );
fgPropSizer->SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );
- m_staticText1 = new wxStaticText( m_propPanel, wxID_ANY, wxT("Label"), wxDefaultPosition, wxDefaultSize, 0 );
- m_staticText1->Wrap( -1 );
- fgPropSizer->Add( m_staticText1, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
+ m_labelLabel = new wxStaticText( m_propPanel, wxID_ANY, wxT("Label"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_labelLabel->Wrap( -1 );
+ fgPropSizer->Add( m_labelLabel, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
m_labelText = new wxTextCtrl( m_propPanel, wxID_ANY, wxEmptyString, wxDefaultPosition, wxDefaultSize, 0 );
fgPropSizer->Add( m_labelText, 0, wxALL|wxEXPAND, 5 );
@@ -51,9 +51,9 @@ BookmarkPanel::BookmarkPanel( wxWindow* parent, wxWindowID id, const wxPoint& po
m_modulationLabel->Wrap( -1 );
fgPropSizer->Add( m_modulationLabel, 0, wxALIGN_CENTER_VERTICAL|wxALIGN_RIGHT, 5 );
- m_typeVal = new wxStaticText( m_propPanel, wxID_ANY, wxT("TypeVal"), wxDefaultPosition, wxDefaultSize, 0 );
- m_typeVal->Wrap( -1 );
- fgPropSizer->Add( m_typeVal, 0, wxALL, 5 );
+ m_modulationVal = new wxStaticText( m_propPanel, wxID_ANY, wxT("TypeVal"), wxDefaultPosition, wxDefaultSize, 0 );
+ m_modulationVal->Wrap( -1 );
+ fgPropSizer->Add( m_modulationVal, 0, wxALL, 5 );
m_propPanel->SetSizer( fgPropSizer );
diff --git a/src/forms/Bookmark/BookmarkPanel.fbp b/src/forms/Bookmark/BookmarkPanel.fbp
index b1ec872..23d466c 100644
--- a/src/forms/Bookmark/BookmarkPanel.fbp
+++ b/src/forms/Bookmark/BookmarkPanel.fbp
@@ -315,7 +315,7 @@
0
1
- m_staticText1
+ m_labelLabel
1
@@ -904,7 +904,7 @@
0
1
- m_typeVal
+ m_modulationVal
1
diff --git a/src/forms/Bookmark/BookmarkPanel.h b/src/forms/Bookmark/BookmarkPanel.h
index 7ef675f..6bc1293 100644
--- a/src/forms/Bookmark/BookmarkPanel.h
+++ b/src/forms/Bookmark/BookmarkPanel.h
@@ -36,14 +36,14 @@ class BookmarkPanel : public wxPanel
protected:
wxTreeCtrl* m_treeView;
wxPanel* m_propPanel;
- wxStaticText* m_staticText1;
+ wxStaticText* m_labelLabel;
wxTextCtrl* m_labelText;
wxStaticText* m_frequencyLabel;
wxStaticText* m_frequencyVal;
wxStaticText* m_bandwidthLabel;
wxStaticText* m_bandwidthVal;
wxStaticText* m_modulationLabel;
- wxStaticText* m_typeVal;
+ wxStaticText* m_modulationVal;
wxButton* m_bookmarkButton;
wxButton* m_activateButton;
wxButton* m_removeButton;
diff --git a/src/forms/Bookmark/BookmarkView.cpp b/src/forms/Bookmark/BookmarkView.cpp
index 3d89511..c144390 100644
--- a/src/forms/Bookmark/BookmarkView.cpp
+++ b/src/forms/Bookmark/BookmarkView.cpp
@@ -4,8 +4,11 @@
BookmarkView::BookmarkView( wxWindow* parent, wxWindowID id, const wxPoint& pos, const wxSize& size, long style) : BookmarkPanel(parent, id, pos, size, style) {
activeBranch = m_treeView->AddRoot("Active");
-// doUpdateActive = true;
+ doUpdateActive = false;
+ activeSel = nullptr;
m_updateTimer.Start(500);
+ hideProps();
+ m_propPanel->Hide();
}
void BookmarkView::onUpdateTimer( wxTimerEvent& event ) {
@@ -59,8 +62,68 @@ void BookmarkView::onTreeExpanded( wxTreeEvent& event ) {
event.Skip();
}
+void BookmarkView::hideProps() {
+ m_frequencyLabel->Hide();
+ m_frequencyVal->Hide();
+
+ m_bandwidthLabel->Hide();
+ m_bandwidthVal->Hide();
+
+ m_modulationVal->Hide();
+ m_modulationLabel->Hide();
+
+ m_labelText->Hide();
+ m_labelLabel->Hide();
+
+ m_bookmarkButton->Hide();
+ m_activateButton->Hide();
+ m_removeButton->Hide();
+}
+
+void BookmarkView::activeSelection(DemodulatorInstance *dsel) {
+ activeSel = dsel;
+
+ m_frequencyVal->SetLabelText(frequencyToStr(dsel->getFrequency()));
+ m_bandwidthVal->SetLabelText(frequencyToStr(dsel->getBandwidth()));
+ m_modulationVal->SetLabelText(dsel->getDemodulatorType());
+ m_labelText->SetValue(dsel->getLabel());
+
+ hideProps();
+
+ m_frequencyVal->Show();
+ m_frequencyLabel->Show();
+
+ m_bandwidthVal->Show();
+ m_bandwidthLabel->Show();
+
+ m_modulationVal->Show();
+ m_modulationLabel->Show();
+
+ m_labelText->Show();
+ m_labelLabel->Show();
+
+ m_bookmarkButton->Show();
+ m_removeButton->Show();
+
+ this->Layout();
+}
+
void BookmarkView::onTreeSelect( wxTreeEvent& event ) {
- event.Skip();
+ if (activeItems.find(event.GetItem()) != activeItems.end()) {
+ DemodulatorInstance *dsel = activeItems[event.GetItem()];
+ m_propPanel->Show();
+ activeSelection(dsel);
+ wxGetApp().getDemodMgr().setActiveDemodulator(activeSel, false);
+ } else {
+ activeSel = nullptr;
+
+ m_propPanel->Hide();
+ hideProps();
+ this->Layout();
+
+ wxGetApp().getDemodMgr().setActiveDemodulator(activeSel, false);
+ event.Skip();
+ }
}
void BookmarkView::onTreeSelectChanging( wxTreeEvent& event ) {
@@ -80,6 +143,13 @@ void BookmarkView::onActivate( wxCommandEvent& event ) {
}
void BookmarkView::onRemove( wxCommandEvent& event ) {
- event.Skip();
+ if (activeSel != nullptr) {
+ wxGetApp().getDemodMgr().setActiveDemodulator(nullptr, false);
+ wxGetApp().removeDemodulator(activeSel);
+ wxGetApp().getDemodMgr().deleteThread(activeSel);
+ activeSel = nullptr;
+ } else {
+ event.Skip();
+ }
}
diff --git a/src/forms/Bookmark/BookmarkView.h b/src/forms/Bookmark/BookmarkView.h
index 53aa07d..dd00217 100644
--- a/src/forms/Bookmark/BookmarkView.h
+++ b/src/forms/Bookmark/BookmarkView.h
@@ -9,8 +9,12 @@ public:
BookmarkView( wxWindow* parent, wxWindowID id = wxID_ANY, const wxPoint& pos = wxDefaultPosition, const wxSize& size = wxSize( -1, -1 ), long style = wxTAB_TRAVERSAL );
void updateActiveList();
+ void activeSelection(DemodulatorInstance *dsel);
protected:
+
+ void hideProps();
+
void onUpdateTimer( wxTimerEvent& event );
void doUpdateActiveList();
@@ -29,4 +33,5 @@ protected:
bool doUpdateActive;
wxTreeItemId activeBranch;
std::map activeItems;
+ DemodulatorInstance *activeSel;
};
\ No newline at end of file