wxImage::AddHandler( new wxJ2KHandler );\r
wxImage::AddHandler( new wxJP2Handler );\r
wxImage::AddHandler( new wxMJ2Handler );\r
+#endif\r
+#if OPJ_MANYFORMATS\r
+ wxImage::AddHandler( new wxBMPHandler );\r
+ wxImage::AddHandler( new wxPNGHandler );\r
+ wxImage::AddHandler( new wxGIFHandler );\r
+ wxImage::AddHandler( new wxPNMHandler );\r
+ wxImage::AddHandler( new wxTIFFHandler );\r
#endif\r
// we use a XPM image in our HTML page\r
wxImage::AddHandler(new wxXPMHandler);\r
EVT_MENU(OPJFRAME_VIEWRELOAD, OPJFrame::OnReload)\r
EVT_MENU(OPJFRAME_FILETOGGLEB, OPJFrame::OnToggleBrowser)\r
EVT_MENU(OPJFRAME_FILETOGGLEP, OPJFrame::OnTogglePeeker)\r
+ EVT_MENU(OPJFRAME_SETSENCO, OPJFrame::OnSetsEnco)\r
EVT_MENU(OPJFRAME_SETSDECO, OPJFrame::OnSetsDeco)\r
EVT_SASH_DRAGGED_RANGE(OPJFRAME_BROWSEWIN, OPJFRAME_LOGWIN, OPJFrame::OnSashDrag)\r
EVT_NOTEBOOK_PAGE_CHANGED(LEFT_NOTEBOOK_ID, OPJFrame::OnNotebook)\r
// settings menu and its items\r
wxMenu *sets_menu = new wxMenu;\r
\r
+ sets_menu->Append(OPJFRAME_SETSENCO, wxT("&Encoder\tCtrl+E"));\r
+ sets_menu->SetHelpString(OPJFRAME_SETSENCO, wxT("Encoder settings"));\r
+\r
sets_menu->Append(OPJFRAME_SETSDECO, wxT("&Decoder\tCtrl+D"));\r
sets_menu->SetHelpString(OPJFRAME_SETSDECO, wxT("Decoder settings"));\r
\r
wxSize size = GetClientSize();\r
}\r
\r
+void OPJFrame::OnSetsEnco(wxCommandEvent& event)\r
+{\r
+ OPJEncoderDialog dialog(this, event.GetId());\r
+\r
+ if (dialog.ShowModal() == wxID_OK) {\r
+\r
+ };\r
+}\r
+\r
void OPJFrame::OnSetsDeco(wxCommandEvent& event)\r
{\r
OPJDecoderDialog dialog(this, event.GetId());\r
#ifdef __WXMOTIF__\r
wxT("JPEG 2000 files (*.jp2,*.j2k,*.j2c,*.mj2)|*.*j*2*");\r
#else\r
- wxT("JPEG 2000 files (*.jp2,*.j2k,*.j2c,*.mj2)|*.jp2;*.j2k;*.j2c;*.mj2|JPEG files (*.jpg)|*.jpg|All files|*");\r
+#if wxUSE_LIBOPENJPEG\r
+ wxT("JPEG 2000 files (*.jp2,*.j2k,*.j2c,*.mj2)|*.jp2;*.j2k;*.j2c;*.mj2")\r
#endif\r
- wxFileDialog dialog(this, _T("Open JPEG 2000 file(s)"),\r
+#if wxUSE_LIBJPEG\r
+ wxT("|JPEG files (*.jpg)|*.jpg")\r
+#endif\r
+#if OPJ_MANYFORMATS\r
+ wxT("|BMP files (*.bmp)|*.bmp")\r
+ wxT("|PNG files (*.png)|*.png")\r
+ wxT("|GIF files (*.gif)|*.gif")\r
+ wxT("|PNM files (*.pnm)|*.pnm")\r
+ wxT("|TIFF files (*.tif,*.tiff)|*.tif*")\r
+#endif\r
+ wxT("|All files|*");\r
+#endif\r
+ wxFileDialog dialog(this, _T("Open image file(s)"),\r
wxEmptyString, wxEmptyString, wildcards,\r
wxFD_OPEN|wxFD_MULTIPLE);\r
\r
{\r
}\r
\r
-/*wxPanel* OPJDecoderDialog::CreateGeneralSettingsPage(wxWindow* parent)\r
-{\r
- wxPanel* panel = new wxPanel(parent, wxID_ANY);\r
-\r
- wxBoxSizer *topSizer = new wxBoxSizer( wxVERTICAL );\r
- wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL );\r
-\r
- //// LOAD LAST FILE\r
-\r
- wxBoxSizer* itemSizer3 = new wxBoxSizer( wxHORIZONTAL );\r
- wxCheckBox* checkBox3 = new wxCheckBox(panel, ID_LOAD_LAST_PROJECT, _("&Load last project on startup"), wxDefaultPosition, wxDefaultSize);\r
- itemSizer3->Add(checkBox3, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5);\r
- item0->Add(itemSizer3, 0, wxGROW|wxALL, 0);\r
-\r
- //// AUTOSAVE\r
-\r
- wxString autoSaveLabel = _("&Auto-save every");\r
- wxString minsLabel = _("mins");\r
-\r
- wxBoxSizer* itemSizer12 = new wxBoxSizer( wxHORIZONTAL );\r
- wxCheckBox* checkBox12 = new wxCheckBox(panel, ID_AUTO_SAVE, autoSaveLabel, wxDefaultPosition, wxDefaultSize);\r
-\r
- wxSpinCtrl* spinCtrl12 = new wxSpinCtrl(panel, ID_AUTO_SAVE_MINS, wxEmptyString,\r
- wxDefaultPosition, wxSize(40, wxDefaultCoord), wxSP_ARROW_KEYS, 1, 60, 1);\r
-\r
- itemSizer12->Add(checkBox12, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5);\r
- itemSizer12->Add(spinCtrl12, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5);\r
- itemSizer12->Add(new wxStaticText(panel, wxID_STATIC, minsLabel), 0, wxALL|wxALIGN_CENTER_VERTICAL, 5);\r
- item0->Add(itemSizer12, 0, wxGROW|wxALL, 0);\r
-\r
- //// TOOLTIPS\r
-\r
- wxBoxSizer* itemSizer8 = new wxBoxSizer( wxHORIZONTAL );\r
- wxCheckBox* checkBox6 = new wxCheckBox(panel, ID_SHOW_TOOLTIPS, _("Show &tooltips"), wxDefaultPosition, wxDefaultSize);\r
- itemSizer8->Add(checkBox6, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5);\r
- item0->Add(itemSizer8, 0, wxGROW|wxALL, 0);\r
-\r
- topSizer->Add( item0, 1, wxGROW|wxALIGN_CENTRE|wxALL, 5 );\r
-\r
- panel->SetSizer(topSizer);\r
- topSizer->Fit(panel);\r
-\r
- return panel;\r
-}*/\r
-\r
-/*wxPanel* OPJDecoderDialog::CreateAestheticSettingsPage(wxWindow* parent)\r
-{\r
- wxPanel* panel = new wxPanel(parent, wxID_ANY);\r
-\r
- wxBoxSizer *topSizer = new wxBoxSizer( wxVERTICAL );\r
- wxBoxSizer *item0 = new wxBoxSizer( wxVERTICAL );\r
-\r
- //// PROJECT OR GLOBAL\r
- wxString globalOrProjectChoices[2];\r
- globalOrProjectChoices[0] = _("&New projects");\r
- globalOrProjectChoices[1] = _("&This project");\r
-\r
- wxRadioBox* projectOrGlobal = new wxRadioBox(panel, ID_APPLY_SETTINGS_TO, _("&Apply settings to:"),\r
- wxDefaultPosition, wxDefaultSize, 2, globalOrProjectChoices);\r
- item0->Add(projectOrGlobal, 0, wxGROW|wxALL, 5);\r
-\r
- projectOrGlobal->SetSelection(0);\r
-\r
- //// BACKGROUND STYLE\r
- wxArrayString backgroundStyleChoices;\r
- backgroundStyleChoices.Add(wxT("Colour"));\r
- backgroundStyleChoices.Add(wxT("Image"));\r
- wxStaticBox* staticBox3 = new wxStaticBox(panel, wxID_ANY, _("Background style:"));\r
-\r
- wxBoxSizer* styleSizer = new wxStaticBoxSizer( staticBox3, wxVERTICAL );\r
- item0->Add(styleSizer, 0, wxGROW|wxALL, 5);\r
-\r
- wxBoxSizer* itemSizer2 = new wxBoxSizer( wxHORIZONTAL );\r
-\r
- wxChoice* choice2 = new wxChoice(panel, ID_BACKGROUND_STYLE, wxDefaultPosition, wxDefaultSize, backgroundStyleChoices);\r
-\r
- itemSizer2->Add(new wxStaticText(panel, wxID_ANY, _("&Window:")), 0, wxALL|wxALIGN_CENTER_VERTICAL, 5);\r
- itemSizer2->Add(5, 5, 1, wxALL, 0);\r
- itemSizer2->Add(choice2, 0, wxALL|wxALIGN_CENTER_VERTICAL, 5);\r
-\r
- styleSizer->Add(itemSizer2, 0, wxGROW|wxALL, 5);\r
-\r
-#if wxUSE_SPINCTRL\r
- //// FONT SIZE SELECTION\r
-\r
- wxStaticBox* staticBox1 = new wxStaticBox(panel, wxID_ANY, _("Tile font size:"));\r
- wxBoxSizer* itemSizer5 = new wxStaticBoxSizer( staticBox1, wxHORIZONTAL );\r
-\r
- wxSpinCtrl* spinCtrl = new wxSpinCtrl(panel, ID_FONT_SIZE, wxEmptyString, wxDefaultPosition,\r
- wxSize(80, wxDefaultCoord));\r
- itemSizer5->Add(spinCtrl, 0, wxALL|wxALIGN_CENTER_HORIZONTAL|wxALIGN_CENTER_VERTICAL, 5);\r
-\r
- item0->Add(itemSizer5, 0, wxGROW|wxLEFT|wxRIGHT, 5);\r
-#endif\r
-\r
- topSizer->Add( item0, 1, wxGROW|wxALIGN_CENTRE|wxALL, 5 );\r
- topSizer->AddSpacer(5);\r
-\r
- panel->SetSizer(topSizer);\r
- topSizer->Fit(panel);\r
-\r
- return panel;\r
-}*/\r
-\r
wxPanel* OPJDecoderDialog::CreateMainSettingsPage(wxWindow* parent)\r
{\r
wxPanel* panel = new wxPanel(parent, wxID_ANY);\r
wxBoxSizer* numcompsSizer = new wxBoxSizer(wxHORIZONTAL);\r
\r
// add some text\r
- numcompsSizer->Add(new wxStaticText(panel, wxID_ANY, wxT("&No. of components:")),\r
+ numcompsSizer->Add(new wxStaticText(panel, wxID_ANY, wxT("&Component displayed:")),\r
0, wxALL | wxALIGN_CENTER_VERTICAL, 5);\r
\r
// add some horizontal space\r
wxSP_ARROW_KEYS,\r
0, 100000, wxGetApp().m_components),\r
0, wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 5);\r
- m_numcompsCtrl->Enable(false);\r
+ m_numcompsCtrl->Enable(true);\r
\r
compoSizer->Add(numcompsSizer, 0, wxGROW | wxALL, 5);\r
\r
return true;\r
}\r
\r
+\r
+\r
+\r
+\r
+// ----------------------------------------------------------------------------\r
+// OPJEncoderDialog\r
+// ----------------------------------------------------------------------------\r
+\r
+IMPLEMENT_CLASS(OPJEncoderDialog, wxPropertySheetDialog)\r
+\r
+BEGIN_EVENT_TABLE(OPJEncoderDialog, wxPropertySheetDialog)\r
+#ifdef USE_JPWL\r
+ EVT_CHECKBOX(OPJENCO_ENABLEJPWL, OPJEncoderDialog::OnEnableJPWL)\r
+#endif // USE_JPWL\r
+END_EVENT_TABLE()\r
+\r
+OPJEncoderDialog::OPJEncoderDialog(wxWindow* win, int dialogType)\r
+{\r
+ SetExtraStyle(wxDIALOG_EX_CONTEXTHELP|wxWS_EX_VALIDATE_RECURSIVELY);\r
+\r
+ Create(win, wxID_ANY, wxT("Encoder settings"),\r
+ wxDefaultPosition, wxDefaultSize,\r
+ wxDEFAULT_DIALOG_STYLE| (int) wxPlatform::IfNot(wxOS_WINDOWS_CE, wxRESIZE_BORDER)\r
+ );\r
+\r
+ CreateButtons(wxOK | wxCANCEL | (int)wxPlatform::IfNot(wxOS_WINDOWS_CE, wxHELP));\r
+\r
+ m_settingsNotebook = GetBookCtrl();\r
+\r
+ wxPanel* mainSettings = CreateMainSettingsPage(m_settingsNotebook);\r
+ wxPanel* jpeg2000Settings = CreatePart1SettingsPage(m_settingsNotebook);\r
+/* if (!wxGetApp().m_enabledeco)\r
+ jpeg2000Settings->Enable(false);\r
+ wxPanel* mjpeg2000Settings = CreatePart3SettingsPage(m_settingsNotebook);\r
+ if (!wxGetApp().m_enabledeco)\r
+ mjpeg2000Settings->Enable(false);\r
+#ifdef USE_JPWL\r
+ wxPanel* jpwlSettings = CreatePart11SettingsPage(m_settingsNotebook);\r
+ if (!wxGetApp().m_enabledeco)\r
+ jpwlSettings->Enable(false);\r
+#endif // USE_JPWL\r
+*/\r
+\r
+ m_settingsNotebook->AddPage(mainSettings, wxT("General"), false);\r
+ m_settingsNotebook->AddPage(jpeg2000Settings, wxT("JPEG 2000"), false);\r
+/* m_settingsNotebook->AddPage(mjpeg2000Settings, wxT("MJPEG 2000"), false);\r
+#ifdef USE_JPWL\r
+ m_settingsNotebook->AddPage(jpwlSettings, wxT("JPWL"), false);\r
+#endif // USE_JPWL\r
+*/\r
+ LayoutDialog();\r
+}\r
+\r
+OPJEncoderDialog::~OPJEncoderDialog()\r
+{\r
+}\r
+\r
+wxPanel* OPJEncoderDialog::CreateMainSettingsPage(wxWindow* parent)\r
+{\r
+ wxPanel* panel = new wxPanel(parent, wxID_ANY);\r
+\r
+ // top sizer\r
+ wxBoxSizer *topSizer = new wxBoxSizer(wxVERTICAL);\r
+\r
+ // sub top sizer\r
+ wxBoxSizer *subtopSizer = new wxBoxSizer(wxVERTICAL);\r
+\r
+ topSizer->Add(subtopSizer, 1, wxGROW | wxALIGN_CENTRE | wxALL, 5);\r
+\r
+ // assign top and fit it\r
+ panel->SetSizer(topSizer);\r
+ topSizer->Fit(panel);\r
+\r
+ return panel;\r
+}\r
+\r
+wxPanel* OPJEncoderDialog::CreatePart1SettingsPage(wxWindow* parent)\r
+{\r
+ wxPanel* panel = new wxPanel(parent, wxID_ANY);\r
+\r
+ // top sizer\r
+ wxBoxSizer *topSizer = new wxBoxSizer(wxVERTICAL);\r
+\r
+ // add some space\r
+ //topSizer->AddSpacer(5);\r
+\r
+ // sub top sizer\r
+ wxFlexGridSizer *subtopSizer = new wxFlexGridSizer(2, 3, 3);\r
+\r
+ // image settings, column\r
+ wxStaticBox* imageBox = new wxStaticBox(panel, wxID_ANY, wxT("Image"));\r
+ wxBoxSizer* imageSizer = new wxStaticBoxSizer(imageBox, wxVERTICAL);\r
+\r
+ // subsampling factor sizer, row\r
+ wxBoxSizer* subsSizer = new wxBoxSizer(wxHORIZONTAL);\r
+\r
+ // add some text\r
+ subsSizer->Add(new wxStaticText(panel, wxID_ANY, wxT("&Subsampling:")),\r
+ 0, wxALL | wxALIGN_CENTER_VERTICAL, 3);\r
+\r
+ // add some horizontal space\r
+ subsSizer->Add(3, 3, 1, wxALL, 0);\r
+\r
+ // add the value control\r
+ subsSizer->Add(\r
+ /*m_rateCtrl = */new wxTextCtrl(panel, OPJENCO_SUBSAMPLING,\r
+ wxT("1,1"),\r
+ wxDefaultPosition, wxSize(120, wxDefaultCoord),\r
+ wxTE_LEFT),\r
+ 0, wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 3);\r
+\r
+ imageSizer->Add(subsSizer, 0, wxGROW | wxALL, 3);\r
+\r
+ // origin sizer, row\r
+ wxBoxSizer* imorigSizer = new wxBoxSizer(wxHORIZONTAL);\r
+\r
+ // add some text\r
+ imorigSizer->Add(new wxStaticText(panel, wxID_ANY, wxT("&Origin:")),\r
+ 0, wxALL | wxALIGN_CENTER_VERTICAL, 3);\r
+\r
+ // add some horizontal space\r
+ imorigSizer->Add(3, 3, 1, wxALL, 0);\r
+\r
+ // add the value control\r
+ imorigSizer->Add(\r
+ /*m_rateCtrl = */new wxTextCtrl(panel, OPJENCO_IMORIG,\r
+ wxT("0,0"),\r
+ wxDefaultPosition, wxSize(120, wxDefaultCoord),\r
+ wxTE_LEFT),\r
+ 0, wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 3);\r
+\r
+ imageSizer->Add(imorigSizer, 0, wxGROW | wxALL, 3);\r
+\r
+ subtopSizer->Add(imageSizer, 0, wxGROW | wxALL, 3);\r
+\r
+ // layer settings, column\r
+ wxStaticBox* layerBox = new wxStaticBox(panel, wxID_ANY, wxT("Layers"));\r
+ wxBoxSizer* layerSizer = new wxStaticBoxSizer(layerBox, wxVERTICAL);\r
+\r
+ // rate factor sizer, row\r
+ wxBoxSizer* rateSizer = new wxBoxSizer(wxHORIZONTAL);\r
+\r
+ // add some text\r
+ rateSizer->Add(new wxStaticText(panel, wxID_ANY, wxT("&Rate values:")),\r
+ 0, wxALL | wxALIGN_CENTER_VERTICAL, 3);\r
+\r
+ // add some horizontal space\r
+ rateSizer->Add(3, 3, 1, wxALL, 0);\r
+\r
+ // add the value control\r
+ rateSizer->Add(\r
+ /*m_rateCtrl = */new wxTextCtrl(panel, OPJENCO_RATEFACTOR,\r
+ wxT("20,10,5"),\r
+ wxDefaultPosition, wxSize(120, wxDefaultCoord),\r
+ wxTE_LEFT),\r
+ 0, wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 3);\r
+\r
+ layerSizer->Add(rateSizer, 0, wxGROW | wxALL, 3);\r
+\r
+ // quality factor sizer, row\r
+ wxBoxSizer* qualitySizer = new wxBoxSizer(wxHORIZONTAL);\r
+\r
+ // add some text\r
+ qualitySizer->Add(new wxStaticText(panel, wxID_ANY, wxT("&Quality values:")),\r
+ 0, wxALL | wxALIGN_CENTER_VERTICAL, 3);\r
+\r
+ // add some horizontal space\r
+ qualitySizer->Add(3, 3, 1, wxALL, 0);\r
+\r
+ // add the value control\r
+ qualitySizer->Add(\r
+ /*m_rateCtrl = */new wxTextCtrl(panel, OPJENCO_QUALITYFACTOR,\r
+ wxT("30,35,40"),\r
+ wxDefaultPosition, wxSize(120, wxDefaultCoord),\r
+ wxTE_LEFT),\r
+ 0, wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 3);\r
+\r
+ layerSizer->Add(qualitySizer, 0, wxGROW | wxALL, 3);\r
+\r
+ subtopSizer->Add(layerSizer, 0, wxGROW | wxALL, 3);\r
+\r
+ // wavelet settings, column\r
+ wxStaticBox* waveletBox = new wxStaticBox(panel, wxID_ANY, wxT("Transform"));\r
+ wxBoxSizer* waveletSizer = new wxStaticBoxSizer(waveletBox, wxVERTICAL);\r
+\r
+ // irreversible check box\r
+ waveletSizer->Add(\r
+ /*m_enabledecoCheck =*/ new wxCheckBox(panel, OPJENCO_ENABLEIRREV, wxT("Irreversible"),\r
+ wxDefaultPosition, wxDefaultSize),\r
+ 0, wxGROW | wxALL, 3);\r
+ /*m_enabledecoCheck->SetValue(wxGetApp().m_enabledeco);*/\r
+\r
+ // resolution number sizer, row\r
+ wxBoxSizer* resnumSizer = new wxBoxSizer(wxHORIZONTAL);\r
+\r
+ // add some text\r
+ resnumSizer->Add(new wxStaticText(panel, wxID_ANY, wxT("&Resolutions:")),\r
+ 0, wxALL | wxALIGN_CENTER_VERTICAL, 3);\r
+\r
+ // add some horizontal space\r
+ resnumSizer->Add(3, 3, 1, wxALL, 0);\r
+\r
+ // add the value control\r
+ resnumSizer->Add(\r
+ /*m_layerCtrl =*/ new wxSpinCtrl(panel, OPJENCO_RESNUMBER,\r
+ wxT("6"),\r
+ wxDefaultPosition, wxSize(80, wxDefaultCoord),\r
+ wxSP_ARROW_KEYS,\r
+ 0, 256, 6),\r
+ 0, wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 3);\r
+\r
+ waveletSizer->Add(resnumSizer, 0, wxGROW | wxALL, 3);\r
+\r
+ // codeblock sizer, row\r
+ wxBoxSizer* codeblockSizer = new wxBoxSizer(wxHORIZONTAL);\r
+\r
+ // add some text\r
+ codeblockSizer->Add(new wxStaticText(panel, wxID_ANY, wxT("&Codeblocks size:")),\r
+ 0, wxALL | wxALIGN_CENTER_VERTICAL, 3);\r
+\r
+ // add some horizontal space\r
+ codeblockSizer->Add(3, 3, 1, wxALL, 0);\r
+\r
+ // add the value control\r
+ codeblockSizer->Add(\r
+ /*m_rateCtrl = */new wxTextCtrl(panel, OPJENCO_CODEBLOCKSIZE,\r
+ wxT("32,32"),\r
+ wxDefaultPosition, wxSize(120, wxDefaultCoord),\r
+ wxTE_LEFT),\r
+ 0, wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 3);\r
+\r
+ waveletSizer->Add(codeblockSizer, 0, wxGROW | wxALL, 3);\r
+\r
+ // precinct sizer, row\r
+ wxBoxSizer* precinctSizer = new wxBoxSizer(wxHORIZONTAL);\r
+\r
+ // add some text\r
+ precinctSizer->Add(new wxStaticText(panel, wxID_ANY, wxT("&Precincts size:")),\r
+ 0, wxALL | wxALIGN_CENTER_VERTICAL, 3);\r
+\r
+ // add some horizontal space\r
+ precinctSizer->Add(3, 3, 1, wxALL, 0);\r
+\r
+ // add the value control\r
+ precinctSizer->Add(\r
+ /*m_rateCtrl = */new wxTextCtrl(panel, OPJENCO_PRECINCTSIZE,\r
+ wxT("[128,128],[128,128]"),\r
+ wxDefaultPosition, wxSize(120, wxDefaultCoord),\r
+ wxTE_LEFT),\r
+ 0, wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 3);\r
+\r
+ waveletSizer->Add(precinctSizer, 0, wxGROW | wxALL, 3);\r
+\r
+ subtopSizer->Add(waveletSizer, 0, wxGROW | wxALL, 3);\r
+\r
+ // tile settings, column\r
+ wxStaticBox* tileBox = new wxStaticBox(panel, wxID_ANY, wxT("Tiles"));\r
+ wxBoxSizer* tileSizer = new wxStaticBoxSizer(tileBox, wxVERTICAL);\r
+\r
+ // tile size sizer, row\r
+ wxBoxSizer* tilesizeSizer = new wxBoxSizer(wxHORIZONTAL);\r
+\r
+ // add some text\r
+ tilesizeSizer->Add(new wxStaticText(panel, wxID_ANY, wxT("&Size:")),\r
+ 0, wxALL | wxALIGN_CENTER_VERTICAL, 3);\r
+\r
+ // add some horizontal space\r
+ tilesizeSizer->Add(3, 3, 1, wxALL, 0);\r
+\r
+ // add the value control\r
+ tilesizeSizer->Add(\r
+ /*m_rateCtrl = */new wxTextCtrl(panel, OPJENCO_TILESIZE,\r
+ wxT(""),\r
+ wxDefaultPosition, wxSize(120, wxDefaultCoord),\r
+ wxTE_LEFT),\r
+ 0, wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 3);\r
+\r
+ tileSizer->Add(tilesizeSizer, 0, wxGROW | wxALL, 3);\r
+\r
+ // tile origin sizer, row\r
+ wxBoxSizer* tilorigSizer = new wxBoxSizer(wxHORIZONTAL);\r
+\r
+ // add some text\r
+ tilorigSizer->Add(new wxStaticText(panel, wxID_ANY, wxT("&Origin:")),\r
+ 0, wxALL | wxALIGN_CENTER_VERTICAL, 3);\r
+\r
+ // add some horizontal space\r
+ tilorigSizer->Add(3, 3, 1, wxALL, 0);\r
+\r
+ // add the value control\r
+ tilorigSizer->Add(\r
+ /*m_rateCtrl = */new wxTextCtrl(panel, OPJENCO_TILORIG,\r
+ wxT("0,0"),\r
+ wxDefaultPosition, wxSize(120, wxDefaultCoord),\r
+ wxTE_LEFT),\r
+ 0, wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 3);\r
+\r
+ tileSizer->Add(tilorigSizer, 0, wxGROW | wxALL, 3);\r
+\r
+ subtopSizer->Add(tileSizer, 0, wxGROW | wxALL, 3);\r
+\r
+ // progression settings, column\r
+ wxString choices[] = {wxT("LRCP"), wxT("RLCP"), wxT("RPCL"), wxT("PCRL"), wxT("CPRL")};\r
+ wxRadioBox *progressionBox = new wxRadioBox(panel, OPJENCO_PROGRESSION,\r
+ wxT("Progression"),\r
+ wxDefaultPosition, wxDefaultSize,\r
+ WXSIZEOF(choices),\r
+ choices,\r
+ 4,\r
+ wxRA_SPECIFY_COLS);\r
+ progressionBox->SetSelection(0);\r
+\r
+ subtopSizer->Add(progressionBox, 0, wxGROW | wxALL, 3);\r
+\r
+ // resilience settings, column\r
+ wxStaticBox* resilBox = new wxStaticBox(panel, wxID_ANY, wxT("Resilience"));\r
+ wxBoxSizer* resilSizer = new wxStaticBoxSizer(resilBox, wxVERTICAL);\r
+\r
+ // resil2 sizer, row\r
+ wxBoxSizer* resil2Sizer = new wxBoxSizer(wxHORIZONTAL);\r
+\r
+ // SOP check box\r
+ resil2Sizer->Add(\r
+ /*m_enabledecoCheck =*/ new wxCheckBox(panel, OPJENCO_ENABLESOP, wxT("SOP"),\r
+ wxDefaultPosition, wxDefaultSize),\r
+ 0, wxGROW | wxALL, 3);\r
+ /*m_enabledecoCheck->SetValue(wxGetApp().m_enabledeco);*/\r
+\r
+ // EPH check box\r
+ resil2Sizer->Add(\r
+ /*m_enabledecoCheck =*/ new wxCheckBox(panel, OPJENCO_ENABLEEPH, wxT("EPH"),\r
+ wxDefaultPosition, wxDefaultSize),\r
+ 0, wxGROW | wxALL, 3);\r
+ /*m_enabledecoCheck->SetValue(wxGetApp().m_enabledeco);*/\r
+\r
+ resilSizer->Add(resil2Sizer, 0, wxGROW | wxALL, 3);\r
+\r
+ // separation\r
+ resilSizer->Add(new wxStaticLine(panel, wxID_ANY), 0, wxEXPAND | wxLEFT | wxRIGHT, 3);\r
+\r
+ // resil3 sizer, row\r
+ wxFlexGridSizer* resil3Sizer = new wxFlexGridSizer(3, 3, 3);\r
+\r
+ // BYPASS check box\r
+ resil3Sizer->Add(\r
+ /*m_enabledecoCheck =*/ new wxCheckBox(panel, OPJENCO_ENABLEBYPASS, wxT("BYPASS"),\r
+ wxDefaultPosition, wxDefaultSize),\r
+ 0, wxGROW | wxALL, 3);\r
+ /*m_enabledecoCheck->SetValue(wxGetApp().m_enabledeco);*/\r
+\r
+ // RESET check box\r
+ resil3Sizer->Add(\r
+ /*m_enabledecoCheck =*/ new wxCheckBox(panel, OPJENCO_ENABLERESET, wxT("RESET"),\r
+ wxDefaultPosition, wxDefaultSize),\r
+ 0, wxGROW | wxALL, 3);\r
+ /*m_enabledecoCheck->SetValue(wxGetApp().m_enabledeco);*/\r
+\r
+ // RESTART check box\r
+ resil3Sizer->Add(\r
+ /*m_enabledecoCheck =*/ new wxCheckBox(panel, OPJENCO_ENABLERESTART, wxT("RESTART"),\r
+ wxDefaultPosition, wxDefaultSize),\r
+ 0, wxGROW | wxALL, 3);\r
+ /*m_enabledecoCheck->SetValue(wxGetApp().m_enabledeco);*/\r
+\r
+ // VSC check box\r
+ resil3Sizer->Add(\r
+ /*m_enabledecoCheck =*/ new wxCheckBox(panel, OPJENCO_ENABLEVSC, wxT("VSC"),\r
+ wxDefaultPosition, wxDefaultSize),\r
+ 0, wxGROW | wxALL, 3);\r
+ /*m_enabledecoCheck->SetValue(wxGetApp().m_enabledeco);*/\r
+\r
+ // ERTERM check box\r
+ resil3Sizer->Add(\r
+ /*m_enabledecoCheck =*/ new wxCheckBox(panel, OPJENCO_ENABLEERTERM, wxT("ERTERM"),\r
+ wxDefaultPosition, wxDefaultSize),\r
+ 0, wxGROW | wxALL, 3);\r
+ /*m_enabledecoCheck->SetValue(wxGetApp().m_enabledeco);*/\r
+\r
+ // SEGMARK check box\r
+ resil3Sizer->Add(\r
+ /*m_enabledecoCheck =*/ new wxCheckBox(panel, OPJENCO_ENABLESEGMARK, wxT("SEGMARK"),\r
+ wxDefaultPosition, wxDefaultSize),\r
+ 0, wxGROW | wxALL, 3);\r
+ /*m_enabledecoCheck->SetValue(wxGetApp().m_enabledeco);*/\r
+\r
+ resilSizer->Add(resil3Sizer, 0, wxGROW | wxALL, 3);\r
+\r
+ subtopSizer->Add(resilSizer, 0, wxGROW | wxALL, 3);\r
+\r
+ // ROI settings, column\r
+ wxStaticBox* roiBox = new wxStaticBox(panel, wxID_ANY, wxT("ROI"));\r
+ wxBoxSizer* roiSizer = new wxStaticBoxSizer(roiBox, wxVERTICAL);\r
+\r
+ // component number sizer, row\r
+ wxBoxSizer* roicompSizer = new wxBoxSizer(wxHORIZONTAL);\r
+\r
+ // add some text\r
+ roicompSizer->Add(new wxStaticText(panel, wxID_ANY, wxT("&Component:")),\r
+ 0, wxALL | wxALIGN_CENTER_VERTICAL, 3);\r
+\r
+ // add some horizontal space\r
+ roicompSizer->Add(3, 3, 1, wxALL, 0);\r
+\r
+ // add the value control\r
+ roicompSizer->Add(\r
+ /*m_layerCtrl =*/ new wxSpinCtrl(panel, OPJENCO_ROICOMP,\r
+ wxT("0"),\r
+ wxDefaultPosition, wxSize(80, wxDefaultCoord),\r
+ wxSP_ARROW_KEYS,\r
+ 0, 256, 0),\r
+ 0, wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 3);\r
+\r
+ roiSizer->Add(roicompSizer, 0, wxGROW | wxALL, 3);\r
+\r
+ // upshift sizer, row\r
+ wxBoxSizer* roishiftSizer = new wxBoxSizer(wxHORIZONTAL);\r
+\r
+ // add some text\r
+ roishiftSizer->Add(new wxStaticText(panel, wxID_ANY, wxT("&Upshift:")),\r
+ 0, wxALL | wxALIGN_CENTER_VERTICAL, 3);\r
+\r
+ // add some horizontal space\r
+ roishiftSizer->Add(3, 3, 1, wxALL, 0);\r
+\r
+ // add the value control\r
+ roishiftSizer->Add(\r
+ /*m_layerCtrl =*/ new wxSpinCtrl(panel, OPJENCO_ROISHIFT,\r
+ wxT("0"),\r
+ wxDefaultPosition, wxSize(80, wxDefaultCoord),\r
+ wxSP_ARROW_KEYS,\r
+ 0, 37, 0),\r
+ 0, wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 3);\r
+\r
+ roiSizer->Add(roishiftSizer, 0, wxGROW | wxALL, 3);\r
+\r
+ subtopSizer->Add(roiSizer, 0, wxGROW | wxALL, 3);\r
+\r
+ // ROI settings, column\r
+ wxStaticBox* indexBox = new wxStaticBox(panel, wxID_ANY, wxT("Indexing"));\r
+ wxBoxSizer* indexSizer = new wxStaticBoxSizer(indexBox, wxVERTICAL);\r
+\r
+ // indexing check box\r
+ indexSizer->Add(\r
+ /*m_enabledecoCheck =*/ new wxCheckBox(panel, OPJENCO_ENABLEINDEX, wxT("Enabled"),\r
+ wxDefaultPosition, wxDefaultSize),\r
+ 0, wxGROW | wxALL, 3);\r
+ /*m_enabledecoCheck->SetValue(wxGetApp().m_enabledeco);*/\r
+\r
+ // index file sizer, row\r
+ wxBoxSizer* indexnameSizer = new wxBoxSizer(wxHORIZONTAL);\r
+\r
+ // add some text\r
+ indexnameSizer->Add(new wxStaticText(panel, wxID_ANY, wxT("&File name:")),\r
+ 0, wxALL | wxALIGN_CENTER_VERTICAL, 3);\r
+\r
+ // add some horizontal space\r
+ indexnameSizer->Add(3, 3, 1, wxALL, 0);\r
+\r
+ // add the value control\r
+ indexnameSizer->Add(\r
+ /*m_rateCtrl = */new wxTextCtrl(panel, OPJENCO_INDEXNAME,\r
+ wxT(""),\r
+ wxDefaultPosition, wxSize(120, wxDefaultCoord),\r
+ wxTE_LEFT),\r
+ 0, wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 3);\r
+\r
+ indexSizer->Add(indexnameSizer, 0, wxGROW | wxALL, 3);\r
+\r
+ subtopSizer->Add(indexSizer, 0, wxGROW | wxALL, 3);\r
+\r
+/* // component settings, column\r
+ wxStaticBox* compoBox = new wxStaticBox(panel, wxID_ANY, wxT("Components"));\r
+ wxBoxSizer* compoSizer = new wxStaticBoxSizer(compoBox, wxVERTICAL);\r
+\r
+ // quality layers sizer, row\r
+ wxBoxSizer* numcompsSizer = new wxBoxSizer(wxHORIZONTAL);\r
+\r
+ // add some text\r
+ numcompsSizer->Add(new wxStaticText(panel, wxID_ANY, wxT("&Component displayed:")),\r
+ 0, wxALL | wxALIGN_CENTER_VERTICAL, 5);\r
+\r
+ // add some horizontal space\r
+ numcompsSizer->Add(5, 5, 1, wxALL, 0);\r
+\r
+ // add the value control\r
+ numcompsSizer->Add(\r
+ m_numcompsCtrl = new wxSpinCtrl(panel, OPJDECO_NUMCOMPS,\r
+ wxString::Format(wxT("%d"), wxGetApp().m_components),\r
+ wxDefaultPosition, wxSize(80, wxDefaultCoord),\r
+ wxSP_ARROW_KEYS,\r
+ 0, 100000, wxGetApp().m_components),\r
+ 0, wxALL | wxALIGN_CENTER_HORIZONTAL | wxALIGN_CENTER_VERTICAL, 5);\r
+ m_numcompsCtrl->Enable(true);\r
+\r
+ compoSizer->Add(numcompsSizer, 0, wxGROW | wxALL, 5);\r
+\r
+ subtopSizer->Add(compoSizer, 0, wxGROW | wxALL, 5);\r
+*/\r
+ topSizer->Add(subtopSizer, 1, wxGROW | wxALIGN_CENTRE | wxALL, 5);\r
+\r
+ // assign top and fit it\r
+ panel->SetSizer(topSizer);\r
+ topSizer->Fit(panel);\r
+\r
+ return panel;\r
+}\r
+\r
+#ifdef USE_JPWL\r
+void OPJEncoderDialog::OnEnableJPWL(wxCommandEvent& event)\r
+{\r
+ /*if (event.IsChecked()) {\r
+ wxLogMessage(wxT("JPWL enabled"));\r
+ m_expcompsCtrl->Enable(true);\r
+ m_maxtilesCtrl->Enable(true);\r
+ } else {\r
+ wxLogMessage(wxT("JPWL disabled"));\r
+ m_expcompsCtrl->Enable(false);\r
+ m_maxtilesCtrl->Enable(false);\r
+ }*/\r
+\r
+}\r
+#endif // USE_JPWL\r