summaryrefslogtreecommitdiff
path: root/OPJViewer
diff options
context:
space:
mode:
authorGiuseppe Baruffa <gbaruffa@users.noreply.github.com>2007-06-18 13:05:28 +0000
committerGiuseppe Baruffa <gbaruffa@users.noreply.github.com>2007-06-18 13:05:28 +0000
commit92398409a561d9a1b5e24e14b7d78d963696f6a3 (patch)
tree7ed22f604dc5750e383c962d84a3f2f099908d6e /OPJViewer
parentc647671607c617577fecca9721a03b0e931b03dd (diff)
Reload image doesn't crash in OPJViewer; more settings saved to registry
Diffstat (limited to 'OPJViewer')
-rw-r--r--OPJViewer/OPJViewer.dsp17
-rw-r--r--OPJViewer/source/OPJViewer.cpp96
-rw-r--r--OPJViewer/source/OPJViewer.h11
-rw-r--r--OPJViewer/source/build.h2
4 files changed, 106 insertions, 20 deletions
diff --git a/OPJViewer/OPJViewer.dsp b/OPJViewer/OPJViewer.dsp
index 31f4c1eb..b3498585 100644
--- a/OPJViewer/OPJViewer.dsp
+++ b/OPJViewer/OPJViewer.dsp
@@ -42,16 +42,21 @@ RSC=rc.exe
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /c
-# ADD CPP /nologo /G6 /MD /W3 /GX /O2 /I "c:\programmi\wxWidgets-2.8.0\lib\vc_lib\msw" /I "c:\programmi\wxWidgets-2.8.0\include" /I ".." /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "wxUSE_LIBOPENJPEG" /D "OPJ_STATIC" /D "USE_JPWL" /D "OPJ_HTMLABOUT" /D "OPJ_MANYFORMATS" /D "OPJ_INICONFIG" /FR /FD /c
+# ADD CPP /nologo /G6 /MD /W3 /GX /O2 /I "d:\programmi\wxWidgets-2.8.0\lib\vc_lib\msw" /I "d:\programmi\wxWidgets-2.8.0\include" /I ".." /D "NDEBUG" /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "wxUSE_LIBOPENJPEG" /D "OPJ_STATIC" /D "USE_JPWL" /D "OPJ_HTMLABOUT" /D "OPJ_MANYFORMATS" /D "OPJ_INICONFIG" /FR /FD /c
# ADD BASE RSC /l 0x410 /d "NDEBUG"
-# ADD RSC /l 0x409 /i "c:\programmi\wxWidgets-2.8.0\include" /d "NDEBUG"
+# ADD RSC /l 0x409 /i "d:\programmi\wxWidgets-2.8.0\include" /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib wxzlib.lib wxregex.lib wxpng.lib wxjpeg.lib wxbase28.lib wxmsw28_core.lib wxmsw28_html.lib wxmsw28_adv.lib wxmsw28_core.lib wxbase28.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregex.lib wxexpat.lib LibOpenJPEG_JPWL.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libcmt.lib" /libpath:"c:\programmi\wxWidgets-2.8.0\lib\vc_lib" /libpath:"..\jpwl\Release" /IGNORE:4089
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib wxzlib.lib wxregex.lib wxpng.lib wxjpeg.lib wxbase28.lib wxmsw28_core.lib wxmsw28_html.lib wxmsw28_adv.lib wxmsw28_core.lib wxbase28.lib wxtiff.lib wxjpeg.lib wxpng.lib wxzlib.lib wxregex.lib wxexpat.lib LibOpenJPEG_JPWL.lib /nologo /subsystem:windows /machine:I386 /nodefaultlib:"libcmt.lib" /libpath:"d:\programmi\wxWidgets-2.8.0\lib\vc_lib" /libpath:"..\jpwl\Release" /IGNORE:4089
# SUBTRACT LINK32 /pdb:none
+# Begin Special Build Tool
+SOURCE="$(InputPath)"
+PostBuild_Desc=Update build number
+PostBuild_Cmds=buildupdate.bat
+# End Special Build Tool
!ELSEIF "$(CFG)" == "OPJViewer - Win32 Debug"
@@ -67,15 +72,15 @@ LINK32=link.exe
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_CONSOLE" /D "_MBCS" /YX /FD /GZ /c
-# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "c:\Programmi\wxWidgets-2.8.0\INCLUDE" /I "c:\programmi\wxWidgets-2.8.0\lib\vc_lib\msw" /I "d:\programmi\wxWidgets-2.8.0\include" /I ".." /D "_DEBUG" /D "__WXDEBUG__" /D WXDEBUG=1 /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "wxUSE_LIBOPENJPEG" /D "OPJ_STATIC" /D "USE_JPWL" /D "OPJ_HTMLABOUT" /FR /FD /GZ /c
+# ADD CPP /nologo /MDd /W3 /Gm /GX /Zi /Od /I "d:\Programmi\wxWidgets-2.8.0\INCLUDE" /I "d:\programmi\wxWidgets-2.8.0\lib\vc_lib\msw" /I "d:\programmi\wxWidgets-2.8.0\include" /I ".." /D "_DEBUG" /D "__WXDEBUG__" /D WXDEBUG=1 /D "WIN32" /D "_CONSOLE" /D "_MBCS" /D "_WINDOWS" /D WINVER=0x400 /D "_MT" /D wxUSE_GUI=1 /D "wxUSE_LIBOPENJPEG" /D "OPJ_STATIC" /D "USE_JPWL" /D "OPJ_HTMLABOUT" /FR /FD /GZ /c
# ADD BASE RSC /l 0x410 /d "_DEBUG"
-# ADD RSC /l 0x410 /i "c:\programmi\wxWidgets-2.8.0\include" /d "_DEBUG"
+# ADD RSC /l 0x410 /i "d:\programmi\wxWidgets-2.8.0\include" /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /debug /machine:I386 /pdbtype:sept
-# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib wxzlibd.lib wxregexd.lib wxpngd.lib wxjpegd.lib wxtiffd.lib wxbase28d.lib wxmsw28d_core.lib wxmsw28d_html.lib wxmsw28d_adv.lib LibOpenJPEG_JPWLd.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcmtd.lib" /pdbtype:sept /libpath:"c:\programmi\wxWidgets-2.8.0\lib\vc_lib" /libpath:"..\jpwl\Debug"
+# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib comctl32.lib rpcrt4.lib wsock32.lib wxzlibd.lib wxregexd.lib wxpngd.lib wxjpegd.lib wxtiffd.lib wxbase28d.lib wxmsw28d_core.lib wxmsw28d_html.lib wxmsw28d_adv.lib LibOpenJPEG_JPWLd.lib /nologo /subsystem:windows /debug /machine:I386 /nodefaultlib:"libcmtd.lib" /pdbtype:sept /libpath:"d:\programmi\wxWidgets-2.8.0\lib\vc_lib" /libpath:"..\jpwl\Debug"
# SUBTRACT LINK32 /pdb:none
!ENDIF
diff --git a/OPJViewer/source/OPJViewer.cpp b/OPJViewer/source/OPJViewer.cpp
index 6d53d292..942d08b5 100644
--- a/OPJViewer/source/OPJViewer.cpp
+++ b/OPJViewer/source/OPJViewer.cpp
@@ -227,6 +227,14 @@ bool OPJViewerApp::OnInit(void)
OPJconfig->Write(wxT("teststring"), wxT("This is a test value"));
OPJconfig->Write(wxT("testbool"), (bool) true);
OPJconfig->Write(wxT("testlong"), (long) 245);
+
+ OPJconfig->Read(wxT("showtoolbar"), &m_showtoolbar, (bool) true);
+ OPJconfig->Read(wxT("showbrowser"), &m_showbrowser, (bool) true);
+ OPJconfig->Read(wxT("showpeeker"), &m_showpeeker, (bool) true);
+ OPJconfig->Read(wxT("browserwidth"), &m_browserwidth, (long) OPJ_BROWSER_WIDTH);
+ OPJconfig->Read(wxT("peekerheight"), &m_peekerheight, (long) OPJ_PEEKER_HEIGHT);
+ OPJconfig->Read(wxT("framewidth"), &m_framewidth, (long) OPJ_FRAME_WIDTH);
+ OPJconfig->Read(wxT("frameheight"), &m_frameheight, (long) OPJ_FRAME_HEIGHT);
#else
// set decoding engine parameters
m_enabledeco = true;
@@ -241,11 +249,18 @@ bool OPJViewerApp::OnInit(void)
m_expcomps = JPWL_EXPECTED_COMPONENTS;
m_maxtiles = JPWL_MAXIMUM_TILES;
#endif // USE_JPWL
+ m_showtoolbar = true;
+ m_showbrowser = true;
+ m_showpeeker = true;
+ m_browserwidth = OPJ_BROWSER_WIDTH;
+ m_peekerheight = OPJ_PEEKER_HEIGHT;
+ m_framewidth = OPJ_FRAME_WIDTH;
+ m_frameheight = OPJ_FRAME_HEIGHT;
#endif // OPJ_INICONFIG
// Create the main frame window
OPJFrame *frame = new OPJFrame(NULL, wxID_ANY, OPJ_APPLICATION_TITLEBAR,
- wxDefaultPosition, wxSize(800, 600),
+ wxDefaultPosition, wxSize(wxGetApp().m_framewidth, wxGetApp().m_frameheight),
wxDEFAULT_FRAME_STYLE | wxNO_FULL_REPAINT_ON_RESIZE |
wxHSCROLL | wxVSCROLL);
@@ -288,6 +303,13 @@ int OPJViewerApp::OnExit()
OPJconfig->Write(wxT("expcomps"), m_expcomps);
OPJconfig->Write(wxT("maxtiles"), m_maxtiles);
#endif // USE_JPWL
+ OPJconfig->Write(wxT("showtoolbar"), m_showtoolbar);
+ OPJconfig->Write(wxT("showbrowser"), m_showbrowser);
+ OPJconfig->Write(wxT("showpeeker"), m_showpeeker);
+ OPJconfig->Write(wxT("browserwidth"), m_browserwidth);
+ OPJconfig->Write(wxT("peekerheight"), m_peekerheight);
+ OPJconfig->Write(wxT("framewidth"), m_framewidth);
+ OPJconfig->Write(wxT("frameheight"), m_frameheight);
#endif // OPJ_INICONFIG
return 1;
@@ -429,17 +451,29 @@ OPJFrame::OPJFrame(wxWindow *parent, const wxWindowID id, const wxString& title,
// associate the toolbar with the frame
SetToolBar(tool_bar);
+ // show the toolbar?
+ if (!wxGetApp().m_showtoolbar)
+ tool_bar->Show(false);
+ else
+ tool_bar->Show(true);
+
// the logging window
loggingWindow = new wxSashLayoutWindow(this, OPJFRAME_LOGWIN,
- wxDefaultPosition, wxSize(400, 130),
+ wxDefaultPosition, wxSize(400, wxGetApp().m_peekerheight),
wxNO_BORDER | wxSW_3D | wxCLIP_CHILDREN
);
- loggingWindow->SetDefaultSize(wxSize(1000, 130));
+ loggingWindow->SetDefaultSize(wxSize(1000, wxGetApp().m_peekerheight));
loggingWindow->SetOrientation(wxLAYOUT_HORIZONTAL);
loggingWindow->SetAlignment(wxLAYOUT_BOTTOM);
//loggingWindow->SetBackgroundColour(wxColour(0, 0, 255));
loggingWindow->SetSashVisible(wxSASH_TOP, true);
+ // show the logging?
+ if (!wxGetApp().m_showpeeker)
+ loggingWindow->Show(false);
+ else
+ loggingWindow->Show(true);
+
// create the bottom notebook
m_bookCtrlbottom = new wxNotebook(loggingWindow, BOTTOM_NOTEBOOK_ID,
wxDefaultPosition, wxDefaultSize,
@@ -470,10 +504,10 @@ OPJFrame::OPJFrame(wxWindow *parent, const wxWindowID id, const wxString& title,
// the browser window
markerTreeWindow = new wxSashLayoutWindow(this, OPJFRAME_BROWSEWIN,
- wxDefaultPosition, wxSize(300, 30),
+ wxDefaultPosition, wxSize(wxGetApp().m_browserwidth, 30),
wxNO_BORDER | wxSW_3D | wxCLIP_CHILDREN
);
- markerTreeWindow->SetDefaultSize(wxSize(300, 1000));
+ markerTreeWindow->SetDefaultSize(wxSize(wxGetApp().m_browserwidth, 1000));
markerTreeWindow->SetOrientation(wxLAYOUT_VERTICAL);
markerTreeWindow->SetAlignment(wxLAYOUT_LEFT);
//markerTreeWindow->SetBackgroundColour(wxColour(0, 255, 0));
@@ -485,6 +519,12 @@ OPJFrame::OPJFrame(wxWindow *parent, const wxWindowID id, const wxString& title,
wxDefaultPosition, wxDefaultSize,
wxBK_TOP);
+ // show the browser?
+ if (!wxGetApp().m_showbrowser)
+ markerTreeWindow->Show(false);
+ else
+ markerTreeWindow->Show(true);
+
#ifdef __WXMOTIF__
// For some reason, we get a memcpy crash in wxLogStream::DoLogStream
// on gcc/wxMotif, if we use wxLogTextCtl. Maybe it's just gcc?
@@ -503,6 +543,9 @@ OPJFrame::OPJFrame(wxWindow *parent, const wxWindowID id, const wxString& title,
// this is the frame destructor
OPJFrame::~OPJFrame(void)
{
+ // save size settings
+ GetSize(&(wxGetApp().m_framewidth), &(wxGetApp().m_frameheight));
+
// delete all possible things
delete m_bookCtrl;
m_bookCtrl = NULL;
@@ -662,17 +705,19 @@ void OPJFrame::OnReload(wxCommandEvent& event)
{
OPJChildFrame *currframe = (OPJChildFrame *) GetActiveChild();
- OPJDecoThread *dthread = currframe->m_canvas->CreateDecoThread();
+ if (currframe) {
+ OPJDecoThread *dthread = currframe->m_canvas->CreateDecoThread();
- if (dthread->Run() != wxTHREAD_NO_ERROR)
- wxLogMessage(wxT("Can't start deco thread!"));
- else
- wxLogMessage(wxT("New deco thread started."));
+ if (dthread->Run() != wxTHREAD_NO_ERROR)
+ wxLogMessage(wxT("Can't start deco thread!"));
+ else
+ wxLogMessage(wxT("New deco thread started."));
- currframe->m_canvas->Refresh();
+ currframe->m_canvas->Refresh();
- // update zoom
- //currframe->m_canvas->m_zooml = zooml;
+ // update zoom
+ //currframe->m_canvas->m_zooml = zooml;
+ }
}
@@ -742,6 +787,11 @@ void OPJFrame::OnToggleBrowser(wxCommandEvent& WXUNUSED(event))
wxLayoutAlgorithm layout;
layout.LayoutMDIFrame(this);
+
+ wxGetApp().m_showbrowser = markerTreeWindow->IsShown();
+
+ // Leaves bits of itself behind sometimes
+ GetClientWindow()->Refresh();
}
void OPJFrame::OnTogglePeeker(wxCommandEvent& WXUNUSED(event))
@@ -753,6 +803,11 @@ void OPJFrame::OnTogglePeeker(wxCommandEvent& WXUNUSED(event))
wxLayoutAlgorithm layout;
layout.LayoutMDIFrame(this);
+
+ wxGetApp().m_showpeeker = loggingWindow->IsShown();
+
+ // Leaves bits of itself behind sometimes
+ GetClientWindow()->Refresh();
}
void OPJFrame::OnToggleToolbar(wxCommandEvent& WXUNUSED(event))
@@ -764,10 +819,17 @@ void OPJFrame::OnToggleToolbar(wxCommandEvent& WXUNUSED(event))
wxLayoutAlgorithm layout;
layout.LayoutMDIFrame(this);
+
+ wxGetApp().m_showtoolbar = tool_bar->IsShown();
+
+ // Leaves bits of itself behind sometimes
+ GetClientWindow()->Refresh();
}
void OPJFrame::OnSashDrag(wxSashEvent& event)
{
+ int wid, hei;
+
if (event.GetDragStatus() == wxSASH_STATUS_OUT_OF_RANGE)
return;
@@ -789,6 +851,14 @@ void OPJFrame::OnSashDrag(wxSashEvent& event)
// Leaves bits of itself behind sometimes
GetClientWindow()->Refresh();
+
+ // update dimensions
+ markerTreeWindow->GetSize(&wid, &hei);
+ wxGetApp().m_browserwidth = wid;
+
+ loggingWindow->GetSize(&wid, &hei);
+ wxGetApp().m_peekerheight = hei;
+
}
// physically open the files
diff --git a/OPJViewer/source/OPJViewer.h b/OPJViewer/source/OPJViewer.h
index bbd0b501..9d954b9a 100644
--- a/OPJViewer/source/OPJViewer.h
+++ b/OPJViewer/source/OPJViewer.h
@@ -141,6 +141,12 @@ typedef unsigned long long int8byte;
#define OPJ_APPLICATION_PLATFORM wxT("Linux")
#endif
+#define OPJ_FRAME_WIDTH 800
+#define OPJ_FRAME_HEIGHT 600
+
+#define OPJ_BROWSER_WIDTH 300
+#define OPJ_PEEKER_HEIGHT 130
+
#define OPJ_CANVAS_BORDER 10
#define OPJ_CANVAS_COLOUR *wxWHITE
@@ -193,8 +199,13 @@ class OPJViewerApp: public wxApp
#ifdef USE_JPWL
bool m_enablejpwl;
int m_expcomps, m_maxtiles;
+ int m_framewidth, m_frameheight;
#endif // USE_JPWL
+ // some layout settings
+ bool m_showtoolbar, m_showbrowser, m_showpeeker;
+ int m_browserwidth, m_peekerheight;
+
// application configuration
wxConfig *OPJconfig;
diff --git a/OPJViewer/source/build.h b/OPJViewer/source/build.h
index b200df0a..58f48193 100644
--- a/OPJViewer/source/build.h
+++ b/OPJViewer/source/build.h
@@ -1 +1 @@
-wxT("42")
+wxT("48")