diff options
| author | Giuseppe Baruffa <gbaruffa@users.noreply.github.com> | 2007-11-29 14:38:26 +0000 |
|---|---|---|
| committer | Giuseppe Baruffa <gbaruffa@users.noreply.github.com> | 2007-11-29 14:38:26 +0000 |
| commit | e06bcd027f860f2d62c5419dab14a975eecae7c9 (patch) | |
| tree | 43c511e05e90780b5662585ac0913425a84e239f /OPJViewer/source/OPJDialogs.cpp | |
| parent | 9e5d165e79499cffe11a85ebc1b1ff320d52953b (diff) | |
Added index.h and index.c in VC6 projects; wrapped index.h in the C++ preprocessor; modified OPJViewer project and some files.
Diffstat (limited to 'OPJViewer/source/OPJDialogs.cpp')
| -rw-r--r-- | OPJViewer/source/OPJDialogs.cpp | 425 |
1 files changed, 358 insertions, 67 deletions
diff --git a/OPJViewer/source/OPJDialogs.cpp b/OPJViewer/source/OPJDialogs.cpp index 063cec8b..ed68ef3f 100644 --- a/OPJViewer/source/OPJDialogs.cpp +++ b/OPJViewer/source/OPJDialogs.cpp @@ -32,8 +32,8 @@ IMPLEMENT_CLASS(OPJDecoderDialog, wxPropertySheetDialog)
BEGIN_EVENT_TABLE(OPJDecoderDialog, wxPropertySheetDialog)
-#ifdef USE_JPWL
EVT_CHECKBOX(OPJDECO_ENABLEDECO, OPJDecoderDialog::OnEnableDeco)
+#ifdef USE_JPWL
EVT_CHECKBOX(OPJDECO_ENABLEJPWL, OPJDecoderDialog::OnEnableJPWL)
#endif // USE_JPWL
END_EVENT_TABLE()
@@ -400,21 +400,6 @@ void OPJDecoderDialog::OnEnableJPWL(wxCommandEvent& event) #endif // USE_JPWL
-bool OPJDnDFile::OnDropFiles(wxCoord, wxCoord, const wxArrayString& filenames)
-{
- /*size_t nFiles = filenames.GetCount();
- wxString str;
- str.Printf( _T("%d files dropped\n"), (int)nFiles);
- for ( size_t n = 0; n < nFiles; n++ ) {
- str << filenames[n] << wxT("\n");
- }
- wxLogMessage(str);*/
- m_pOwner->OpenFiles(filenames, filenames);
-
- return true;
-}
-
-
@@ -425,12 +410,16 @@ bool OPJDnDFile::OnDropFiles(wxCoord, wxCoord, const wxArrayString& filenames) IMPLEMENT_CLASS(OPJEncoderDialog, wxPropertySheetDialog)
BEGIN_EVENT_TABLE(OPJEncoderDialog, wxPropertySheetDialog)
-#ifdef USE_JPWL
- EVT_CHECKBOX(OPJENCO_ENABLEJPWL, OPJEncoderDialog::OnEnableJPWL)
EVT_CHECKBOX(OPJENCO_ENABLECOMM, OPJEncoderDialog::OnEnableComm)
EVT_CHECKBOX(OPJENCO_ENABLEINDEX, OPJEncoderDialog::OnEnableIdx)
+ EVT_CHECKBOX(OPJENCO_ENABLEPOC, OPJEncoderDialog::OnEnablePoc)
EVT_RADIOBUTTON(OPJENCO_RATERADIO, OPJEncoderDialog::OnRadioQualityRate)
EVT_RADIOBUTTON(OPJENCO_QUALITYRADIO, OPJEncoderDialog::OnRadioQualityRate)
+#ifdef USE_JPWL
+ EVT_CHECKBOX(OPJENCO_ENABLEJPWL, OPJEncoderDialog::OnEnableJPWL)
+ EVT_CHOICE(OPJENCO_HPROT, OPJEncoderDialog::OnHprotSelect)
+ EVT_CHOICE(OPJENCO_PPROT, OPJEncoderDialog::OnPprotSelect)
+ EVT_CHOICE(OPJENCO_SENSI, OPJEncoderDialog::OnSensiSelect)
#endif // USE_JPWL
END_EVENT_TABLE()
@@ -454,12 +443,12 @@ OPJEncoderDialog::OPJEncoderDialog(wxWindow* win, int dialogType) wxPanel* jpwlSettings = CreatePart11SettingsPage(m_settingsNotebook);
#endif // USE_JPWL
- m_settingsNotebook->AddPage(jpeg2000_1Settings, wxT("JPEG 2000 - 1"), false);
- m_settingsNotebook->AddPage(jpeg2000_2Settings, wxT("JPEG 2000 - 2"), false);
- m_settingsNotebook->AddPage(mainSettings, wxT("General"), false);
#ifdef USE_JPWL
m_settingsNotebook->AddPage(jpwlSettings, wxT("JPWL"), false);
#endif // USE_JPWL
+ m_settingsNotebook->AddPage(jpeg2000_1Settings, wxT("JPEG 2000 - 1"), false);
+ m_settingsNotebook->AddPage(jpeg2000_2Settings, wxT("JPEG 2000 - 2"), false);
+ m_settingsNotebook->AddPage(mainSettings, wxT("General"), false);
LayoutDialog();
}
@@ -491,12 +480,218 @@ wxPanel* OPJEncoderDialog::CreateMainSettingsPage(wxWindow* parent) wxPanel* OPJEncoderDialog::CreatePart11SettingsPage(wxWindow* parent)
{
wxPanel* panel = new wxPanel(parent, wxID_ANY);
+ int specno;
// top sizer
wxBoxSizer *topSizer = new wxBoxSizer(wxVERTICAL);
+ // add JPWL enabling check box
+ topSizer->Add(
+ m_enablejpwlCheck = new wxCheckBox(panel, OPJENCO_ENABLEJPWL, wxT("Enable JPWL"),
+ wxDefaultPosition, wxDefaultSize),
+ 0, wxGROW | wxALL | wxALIGN_CENTER, 5);
+ m_enablejpwlCheck->SetValue(wxGetApp().m_enablejpwle);
+
// sub top sizer
- wxBoxSizer *subtopSizer = new wxBoxSizer(wxVERTICAL);
+ wxFlexGridSizer *subtopSizer = new wxFlexGridSizer(2, 3, 3);
+
+ // header settings, column
+ wxStaticBox* headerBox = new wxStaticBox(panel, wxID_ANY, wxT("Header protection"));
+ wxBoxSizer* headerSizer = new wxStaticBoxSizer(headerBox, wxVERTICAL);
+
+ // info sizer, row
+ wxBoxSizer* info1Sizer = new wxBoxSizer(wxHORIZONTAL);
+
+ // add some text
+ info1Sizer->Add(new wxStaticText(panel, wxID_ANY,
+ wxT("Type")),
+ 0, wxALL | wxALIGN_CENTER_VERTICAL, 1);
+
+ // add some horizontal space
+ info1Sizer->Add(3, 3, 1, wxALL, 0);
+
+ // add some text
+ info1Sizer->Add(new wxStaticText(panel, wxID_ANY,
+ wxT("Tile part")),
+ 0, wxALL | wxALIGN_CENTER_VERTICAL, 1);
+
+ headerSizer->Add(info1Sizer, 0, wxGROW | wxALL, 0);
+
+ // specify specs
+ wxString hprotvalues[] = {wxT("None"), wxT("Pred."), wxT("CRC16"), wxT("CRC32"),
+ wxT("RS37"), wxT("RS38"), wxT("RS40"), wxT("RS43"), wxT("RS45"), wxT("RS48"),
+ wxT("RS51"), wxT("RS53"), wxT("RS56"), wxT("RS64"), wxT("RS75"), wxT("RS80"),
+ wxT("RS85"), wxT("RS96"), wxT("RS112"), wxT("RS128")};
+ for (specno = 0; specno < MYJPWL_MAX_NO_TILESPECS; specno++) {
+
+ // tile+hprot sizer, row
+ wxBoxSizer* tilehprotSizer = new wxBoxSizer(wxHORIZONTAL);
+
+ // add the value selection
+ tilehprotSizer->Add(
+ m_hprotChoice[specno] = new wxChoice(panel, OPJENCO_HPROT,
+ wxDefaultPosition, wxSize(60, wxDefaultCoord),
+ WXSIZEOF(hprotvalues), hprotvalues),
+ 0, wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 1);
+ m_hprotChoice[specno]->SetSelection(wxGetApp().m_hprotsel[specno]);
+
+ // add some horizontal space
+ tilehprotSizer->Add(3, 3, 1, wxALL, 0);
+
+ // add the value control
+ tilehprotSizer->Add(
+ m_htileCtrl[specno] = new wxSpinCtrl(panel, OPJENCO_HTILE,
+ wxString::Format(wxT("%d"), wxGetApp().m_htileval[specno]),
+ wxDefaultPosition, wxSize(45, wxDefaultCoord),
+ wxSP_ARROW_KEYS,
+ 0, JPWL_MAXIMUM_TILES - 1, 0),
+ 0, wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 1);
+
+ headerSizer->Add(tilehprotSizer, 0, wxGROW | wxALL, 0);
+ }
+
+ wxCommandEvent event1;
+ OnHprotSelect(event1);
+
+ subtopSizer->Add(headerSizer, 0, wxGROW | wxALL, 3);
+
+ // packet settings, column
+ wxStaticBox* packetBox = new wxStaticBox(panel, wxID_ANY, wxT("Packet protection"));
+ wxBoxSizer* packetSizer = new wxStaticBoxSizer(packetBox, wxVERTICAL);
+
+ // info sizer, row
+ wxBoxSizer* info2Sizer = new wxBoxSizer(wxHORIZONTAL);
+
+ // add some text
+ info2Sizer->Add(new wxStaticText(panel, wxID_ANY,
+ wxT("Type")),
+ 0, wxALL | wxALIGN_CENTER_VERTICAL, 1);
+
+ // add some horizontal space
+ info2Sizer->Add(3, 3, 1, wxALL, 0);
+
+ // add some text
+ info2Sizer->Add(new wxStaticText(panel, wxID_ANY,
+ wxT("Tile part")),
+ 0, wxALL | wxALIGN_CENTER_VERTICAL, 1);
+
+ // add some horizontal space
+ info2Sizer->Add(3, 3, 1, wxALL, 0);
+
+ // add some text
+ info2Sizer->Add(new wxStaticText(panel, wxID_ANY,
+ wxT("Packet")),
+ 0, wxALL | wxALIGN_CENTER_VERTICAL, 1);
+
+ packetSizer->Add(info2Sizer, 0, wxGROW | wxALL, 0);
+
+ // specify specs
+ wxString pprotvalues[] = {wxT("None"), wxT("Pred."), wxT("CRC16"), wxT("CRC32"),
+ wxT("RS37"), wxT("RS38"), wxT("RS40"), wxT("RS43"), wxT("RS45"), wxT("RS48"),
+ wxT("RS51"), wxT("RS53"), wxT("RS56"), wxT("RS64"), wxT("RS75"), wxT("RS80"),
+ wxT("RS85"), wxT("RS96"), wxT("RS112"), wxT("RS128")};
+ for (specno = 0; specno < MYJPWL_MAX_NO_TILESPECS; specno++) {
+
+ // tile+pprot sizer, row
+ wxBoxSizer* tilepprotSizer = new wxBoxSizer(wxHORIZONTAL);
+
+ // add the value selection
+ tilepprotSizer->Add(
+ m_pprotChoice[specno] = new wxChoice(panel, OPJENCO_PPROT,
+ wxDefaultPosition, wxSize(60, wxDefaultCoord),
+ WXSIZEOF(pprotvalues), pprotvalues),
+ 0, wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 1);
+ m_pprotChoice[specno]->SetSelection(wxGetApp().m_pprotsel[specno]);
+
+ // add some horizontal space
+ tilepprotSizer->Add(3, 3, 1, wxALL, 0);
+
+ // add the value control
+ tilepprotSizer->Add(
+ m_ptileCtrl[specno] = new wxSpinCtrl(panel, OPJENCO_PTILE,
+ wxString::Format(wxT("%d"), wxGetApp().m_ptileval[specno]),
+ wxDefaultPosition, wxSize(45, wxDefaultCoord),
+ wxSP_ARROW_KEYS,
+ 0, JPWL_MAXIMUM_TILES - 1, 0),
+ 0, wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 1);
+
+ // add some horizontal space
+ tilepprotSizer->Add(3, 3, 1, wxALL, 0);
+
+ // add the value control
+ tilepprotSizer->Add(
+ m_ppackCtrl[specno] = new wxSpinCtrl(panel, OPJENCO_PPACK,
+ wxString::Format(wxT("%d"), wxGetApp().m_ppackval[specno]),
+ wxDefaultPosition, wxSize(50, wxDefaultCoord),
+ wxSP_ARROW_KEYS,
+ 0, 2047, 0),
+ 0, wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 1);
+
+ packetSizer->Add(tilepprotSizer, 0, wxGROW | wxALL, 0);
+ }
+
+ wxCommandEvent event2;
+ OnPprotSelect(event2);
+
+ subtopSizer->Add(packetSizer, 0, wxGROW | wxALL, 3);
+
+ // sensitivity settings, column
+ wxStaticBox* sensiBox = new wxStaticBox(panel, wxID_ANY, wxT("Sensitivity"));
+ wxBoxSizer* sensiSizer = new wxStaticBoxSizer(sensiBox, wxVERTICAL);
+
+ // info sizer, row
+ wxBoxSizer* info3Sizer = new wxBoxSizer(wxHORIZONTAL);
+
+ // add some text
+ info3Sizer->Add(new wxStaticText(panel, wxID_ANY,
+ wxT("Type")),
+ 0, wxALL | wxALIGN_CENTER_VERTICAL, 1);
+
+ // add some horizontal space
+ info3Sizer->Add(3, 3, 1, wxALL, 0);
+
+ // add some text
+ info3Sizer->Add(new wxStaticText(panel, wxID_ANY,
+ wxT("Tile part")),
+ 0, wxALL | wxALIGN_CENTER_VERTICAL, 1);
+
+ sensiSizer->Add(info3Sizer, 0, wxGROW | wxALL, 0);
+
+ // specify specs
+ wxString sensivalues[] = {wxT("None"), wxT("RELATIVE ERROR"), wxT("MSE"),
+ wxT("MSE REDUCTION"), wxT("PSNR INCREMENT"), wxT("MAXERR"), wxT("TSE")};
+ for (specno = 0; specno < MYJPWL_MAX_NO_TILESPECS; specno++) {
+
+ // tile+sensi sizer, row
+ wxBoxSizer* tilesensiSizer = new wxBoxSizer(wxHORIZONTAL);
+
+ // add the value selection
+ tilesensiSizer->Add(
+ m_sensiChoice[specno] = new wxChoice(panel, OPJENCO_SENSI,
+ wxDefaultPosition, wxSize(110, wxDefaultCoord),
+ WXSIZEOF(sensivalues), sensivalues),
+ 0, wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 1);
+ m_sensiChoice[specno]->SetSelection(wxGetApp().m_sensisel[specno]);
+
+ // add some horizontal space
+ tilesensiSizer->Add(3, 3, 1, wxALL, 0);
+
+ // add the value control
+ tilesensiSizer->Add(
+ m_stileCtrl[specno] = new wxSpinCtrl(panel, OPJENCO_STILE,
+ wxString::Format(wxT("%d"), wxGetApp().m_stileval[specno]),
+ wxDefaultPosition, wxSize(45, wxDefaultCoord),
+ wxSP_ARROW_KEYS,
+ 0, JPWL_MAXIMUM_TILES - 1, 0),
+ 0, wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 1);
+
+ sensiSizer->Add(tilesensiSizer, 0, wxGROW | wxALL, 0);
+ }
+
+ wxCommandEvent event3;
+ OnSensiSelect(event3);
+
+ subtopSizer->Add(sensiSizer, 0, wxGROW | wxALL, 3);
topSizer->Add(subtopSizer, 1, wxGROW | wxALIGN_CENTRE | wxALL, 5);
@@ -668,7 +863,7 @@ wxPanel* OPJEncoderDialog::CreatePart1_1SettingsPage(wxWindow* parent) wxString::Format(wxT("%d"), wxGetApp().m_resolutions),
wxDefaultPosition, wxSize(80, wxDefaultCoord),
wxSP_ARROW_KEYS,
- 0, 256, 6),
+ 1, 256, 6),
0, wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 3);
transformSizer->Add(resnumSizer, 0, wxGROW | wxALL, 3);
@@ -926,40 +1121,40 @@ wxPanel* OPJEncoderDialog::CreatePart1_2SettingsPage(wxWindow* parent) subtopSizer->Add(roiSizer, 0, wxGROW | wxALL, 3);
- // Index file settings, column
- wxStaticBox* indexBox = new wxStaticBox(panel, wxID_ANY, wxT("Indexing"));
- wxBoxSizer* indexSizer = new wxStaticBoxSizer(indexBox, wxVERTICAL);
+ // POC settings, column
+ wxStaticBox* pocBox = new wxStaticBox(panel, wxID_ANY, wxT("POC"));
+ wxBoxSizer* pocSizer = new wxStaticBoxSizer(pocBox, wxVERTICAL);
- // indexing check box
- indexSizer->Add(
- m_enableidxCheck = new wxCheckBox(panel, OPJENCO_ENABLEINDEX, wxT("Enabled"),
+ // POC check box
+ pocSizer->Add(
+ m_enablepocCheck = new wxCheckBox(panel, OPJENCO_ENABLEPOC, wxT("Enabled (tn=rs,cs,le,re,ce,pr)"),
wxDefaultPosition, wxDefaultSize),
0, wxGROW | wxALL, 3);
- m_enableidxCheck->SetValue(wxGetApp().m_enableidx);
+ m_enablepocCheck->SetValue(wxGetApp().m_enablepoc);
- // index file sizer, row
- wxBoxSizer* indexnameSizer = new wxBoxSizer(wxHORIZONTAL);
+ // POC sizer, row
+ wxBoxSizer* pocspecSizer = new wxBoxSizer(wxHORIZONTAL);
// add some text
- indexnameSizer->Add(new wxStaticText(panel, wxID_ANY, wxT("&File name:")),
- 0, wxALL | wxALIGN_CENTER_VERTICAL, 3);
+ pocspecSizer->Add(new wxStaticText(panel, wxID_ANY, wxT("&Changes:")),
+ 0, wxALL | wxALIGN_TOP, 3);
// add some horizontal space
- indexnameSizer->Add(3, 3, 1, wxALL, 0);
+ pocspecSizer->Add(3, 3, 1, wxALL, 0);
// add the value control
- indexnameSizer->Add(
- m_indexCtrl = new wxTextCtrl(panel, OPJENCO_INDEXNAME,
- wxGetApp().m_index,
- wxDefaultPosition, wxSize(120, wxDefaultCoord),
- wxTE_LEFT),
+ pocspecSizer->Add(
+ m_pocCtrl = new wxTextCtrl(panel, OPJENCO_POCSPEC,
+ wxGetApp().m_poc,
+ wxDefaultPosition, wxSize(140, 60),
+ wxTE_LEFT | wxTE_MULTILINE),
0, wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 3);
- m_indexCtrl->Enable(wxGetApp().m_enableidx);
+ m_pocCtrl->Enable(wxGetApp().m_enablepoc);
- indexSizer->Add(indexnameSizer, 0, wxGROW | wxALL, 3);
-
- subtopSizer->Add(indexSizer, 0, wxGROW | wxALL, 3);
+ pocSizer->Add(pocspecSizer, 0, wxGROW | wxALL, 3);
+ subtopSizer->Add(pocSizer, 0, wxGROW | wxALL, 3);
+
// Comment settings, column
wxStaticBox* commentBox = new wxStaticBox(panel, wxID_ANY, wxT("Comment"));
wxBoxSizer* commentSizer = new wxStaticBoxSizer(commentBox, wxVERTICAL);
@@ -985,39 +1180,39 @@ wxPanel* OPJEncoderDialog::CreatePart1_2SettingsPage(wxWindow* parent) subtopSizer->Add(commentSizer, 0, wxGROW | wxALL, 3);
- // POC settings, column
- wxStaticBox* pocBox = new wxStaticBox(panel, wxID_ANY, wxT("POC"));
- wxBoxSizer* pocSizer = new wxStaticBoxSizer(pocBox, wxVERTICAL);
+ // Index file settings, column
+ wxStaticBox* indexBox = new wxStaticBox(panel, wxID_ANY, wxT("Indexing"));
+ wxBoxSizer* indexSizer = new wxStaticBoxSizer(indexBox, wxVERTICAL);
- // POC check box
- pocSizer->Add(
- m_enablepocCheck = new wxCheckBox(panel, OPJENCO_ENABLEPOC, wxT("Enabled"),
+ // indexing check box
+ indexSizer->Add(
+ m_enableidxCheck = new wxCheckBox(panel, OPJENCO_ENABLEINDEX, wxT("Enabled"),
wxDefaultPosition, wxDefaultSize),
0, wxGROW | wxALL, 3);
- m_enablepocCheck->SetValue(/*wxGetApp().m_enableidx*/true);
+ m_enableidxCheck->SetValue(wxGetApp().m_enableidx);
- // POC sizer, row
- wxBoxSizer* pocspecSizer = new wxBoxSizer(wxHORIZONTAL);
+ // index file sizer, row
+ wxBoxSizer* indexnameSizer = new wxBoxSizer(wxHORIZONTAL);
// add some text
- pocspecSizer->Add(new wxStaticText(panel, wxID_ANY, wxT("&Changes:")),
+ indexnameSizer->Add(new wxStaticText(panel, wxID_ANY, wxT("&File name:")),
0, wxALL | wxALIGN_CENTER_VERTICAL, 3);
// add some horizontal space
- pocspecSizer->Add(3, 3, 1, wxALL, 0);
+ indexnameSizer->Add(3, 3, 1, wxALL, 0);
// add the value control
- pocspecSizer->Add(
- m_pocCtrl = new wxTextCtrl(panel, OPJENCO_POCSPEC,
- /*wxGetApp().m_index*/wxT("RRRR"),
+ indexnameSizer->Add(
+ m_indexCtrl = new wxTextCtrl(panel, OPJENCO_INDEXNAME,
+ wxGetApp().m_index,
wxDefaultPosition, wxSize(120, wxDefaultCoord),
wxTE_LEFT),
0, wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 3);
- m_pocCtrl->Enable(/*wxGetApp().m_enableidx*/true);
+ m_indexCtrl->Enable(wxGetApp().m_enableidx);
- pocSizer->Add(pocspecSizer, 0, wxGROW | wxALL, 3);
+ indexSizer->Add(indexnameSizer, 0, wxGROW | wxALL, 3);
- subtopSizer->Add(pocSizer, 0, wxGROW | wxALL, 3);
+ subtopSizer->Add(indexSizer, 0, wxGROW | wxALL, 3);
topSizer->Add(subtopSizer, 1, wxGROW | wxALIGN_CENTRE | wxALL, 5);
@@ -1052,6 +1247,18 @@ void OPJEncoderDialog::OnEnableIdx(wxCommandEvent& event) }
+void OPJEncoderDialog::OnEnablePoc(wxCommandEvent& event)
+{
+ if (event.IsChecked()) {
+ wxLogMessage(wxT("POC enabled"));
+ m_pocCtrl->Enable(true);
+ } else {
+ wxLogMessage(wxT("POC disabled"));
+ m_pocCtrl->Enable(false);
+ }
+
+}
+
void OPJEncoderDialog::OnRadioQualityRate(wxCommandEvent& event)
{
if (event.GetId() == OPJENCO_QUALITYRADIO) {
@@ -1068,15 +1275,99 @@ void OPJEncoderDialog::OnRadioQualityRate(wxCommandEvent& event) #ifdef USE_JPWL
void OPJEncoderDialog::OnEnableJPWL(wxCommandEvent& event)
{
- /*if (event.IsChecked()) {
+ int specno;
+
+ if (event.IsChecked()) {
wxLogMessage(wxT("JPWL enabled"));
- m_expcompsCtrl->Enable(true);
- m_maxtilesCtrl->Enable(true);
+ for (specno = 0; specno < MYJPWL_MAX_NO_TILESPECS; specno++) {
+ m_hprotChoice[specno]->Enable(true);
+ m_htileCtrl[specno]->Enable(true);
+ m_pprotChoice[specno]->Enable(true);
+ m_ptileCtrl[specno]->Enable(true);
+ m_ppackCtrl[specno]->Enable(true);
+ m_sensiChoice[specno]->Enable(true);
+ m_stileCtrl[specno]->Enable(true);
+ }
+ OnHprotSelect(event);
+ OnPprotSelect(event);
+ OnSensiSelect(event);
} else {
wxLogMessage(wxT("JPWL disabled"));
- m_expcompsCtrl->Enable(false);
- m_maxtilesCtrl->Enable(false);
- }*/
+ for (specno = 0; specno < MYJPWL_MAX_NO_TILESPECS; specno++) {
+ m_hprotChoice[specno]->Enable(false);
+ m_htileCtrl[specno]->Enable(false);
+ m_pprotChoice[specno]->Enable(false);
+ m_ptileCtrl[specno]->Enable(false);
+ m_ppackCtrl[specno]->Enable(false);
+ m_sensiChoice[specno]->Enable(false);
+ m_stileCtrl[specno]->Enable(false);
+ }
+ }
}
+
+void OPJEncoderDialog::OnHprotSelect(wxCommandEvent& event)
+{
+ int specno;
+
+ // deactivate properly
+ for (specno = MYJPWL_MAX_NO_TILESPECS - 1; specno >= 0; specno--) {
+ if (!m_hprotChoice[specno]->GetSelection()) {
+ m_hprotChoice[specno]->Enable(false);
+ m_htileCtrl[specno]->Enable(false);
+ } else
+ break;
+ }
+ if (specno < (MYJPWL_MAX_NO_TILESPECS - 1)) {
+ m_hprotChoice[specno + 1]->Enable(true);
+ m_htileCtrl[specno + 1]->Enable(true);
+ }
+
+ //wxLogMessage(wxT("hprot changed: %d"), specno);
+}
+
+void OPJEncoderDialog::OnPprotSelect(wxCommandEvent& event)
+{
+ int specno;
+
+ // deactivate properly
+ for (specno = MYJPWL_MAX_NO_TILESPECS - 1; specno >= 0; specno--) {
+ if (!m_pprotChoice[specno]->GetSelection()) {
+ m_pprotChoice[specno]->Enable(false);
+ m_ptileCtrl[specno]->Enable(false);
+ m_ppackCtrl[specno]->Enable(false);
+ } else
+ break;
+ }
+ if (specno < (MYJPWL_MAX_NO_TILESPECS - 1)) {
+ m_pprotChoice[specno + 1]->Enable(true);
+ m_ptileCtrl[specno + 1]->Enable(true);
+ m_ppackCtrl[specno + 1]->Enable(true);
+ }
+
+ //wxLogMessage(wxT("pprot changed: %d"), specno);
+}
+
+void OPJEncoderDialog::OnSensiSelect(wxCommandEvent& event)
+{
+ int specno;
+
+ // deactivate properly
+ for (specno = MYJPWL_MAX_NO_TILESPECS - 1; specno >= 0; specno--) {
+ if (!m_sensiChoice[specno]->GetSelection()) {
+ m_sensiChoice[specno]->Enable(false);
+ m_stileCtrl[specno]->Enable(false);
+ } else
+ break;
+ }
+ if (specno < (MYJPWL_MAX_NO_TILESPECS - 1)) {
+ m_sensiChoice[specno + 1]->Enable(true);
+ m_stileCtrl[specno + 1]->Enable(true);
+ }
+
+ //wxLogMessage(wxT("sprot changed: %d"), specno);
+}
+
+
#endif // USE_JPWL
+
|
