mirror of https://github.com/stella-emu/stella.git
Reactivated rom viewer in ROM lauuncher. For now, it only works with
1x snapshots (which the core code can no longer generate) and doesn't resize properly into 2x mode. Reworked '-romviewer' commandline argument (and associated UI) to indicate the zoom level for snapshots in the viewer ('0' means to not turn it on at all, otherwise '1' or '2'). git-svn-id: svn://svn.code.sf.net/p/stella/code/trunk@1584 8b62c5a3-ac7e-4cc8-8f21-d9a121418aba
This commit is contained in:
parent
c839ddaab1
commit
c5de58f13c
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: FrameBufferGL.cxx,v 1.128 2008-12-28 23:47:09 stephena Exp $
|
// $Id: FrameBufferGL.cxx,v 1.129 2008-12-29 20:42:15 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#ifdef DISPLAY_OPENGL
|
#ifdef DISPLAY_OPENGL
|
||||||
|
@ -649,15 +649,15 @@ void FBSurfaceGL::drawChar(const GUI::Font* font, uInt8 chr,
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void FBSurfaceGL::drawBitmap(uInt32* bitmap, Int32 tx, Int32 ty,
|
void FBSurfaceGL::drawBitmap(uInt32* bitmap, uInt32 tx, uInt32 ty,
|
||||||
int color, Int32 h)
|
int color, uInt32 h)
|
||||||
{
|
{
|
||||||
uInt16* buffer = (uInt16*) myTexture->pixels + ty * myPitch + tx;
|
uInt16* buffer = (uInt16*) myTexture->pixels + ty * myPitch + tx;
|
||||||
|
|
||||||
for(int y = 0; y < h; ++y)
|
for(uInt32 y = 0; y < h; ++y)
|
||||||
{
|
{
|
||||||
uInt32 mask = 0xF0000000;
|
uInt32 mask = 0xF0000000;
|
||||||
for(int x = 0; x < 8; ++x, mask >>= 4)
|
for(uInt32 x = 0; x < 8; ++x, mask >>= 4)
|
||||||
if(bitmap[y] & mask)
|
if(bitmap[y] & mask)
|
||||||
buffer[x] = (uInt16) myFB.myDefPalette[color];
|
buffer[x] = (uInt16) myFB.myDefPalette[color];
|
||||||
|
|
||||||
|
@ -665,6 +665,32 @@ void FBSurfaceGL::drawBitmap(uInt32* bitmap, Int32 tx, Int32 ty,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void FBSurfaceGL::drawBytes(uInt8* data, uInt32 tx, uInt32 ty, uInt32 rowbytes)
|
||||||
|
{
|
||||||
|
uInt16* buffer = (uInt16*) myTexture->pixels + ty * myPitch + tx;
|
||||||
|
|
||||||
|
for(uInt32 c = 0; c < rowbytes; c += 3)
|
||||||
|
*buffer++ = SDL_MapRGB(&myFB.myPixelFormat, data[c], data[c+1], data[c+2]);
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void FBSurfaceGL::drawSurface(const FBSurface* surface, uInt32 tx, uInt32 ty)
|
||||||
|
{
|
||||||
|
const FBSurfaceGL* s = (const FBSurfaceGL*) surface;
|
||||||
|
|
||||||
|
SDL_Rect dstrect;
|
||||||
|
dstrect.x = tx;
|
||||||
|
dstrect.y = ty;
|
||||||
|
SDL_Rect srcrect;
|
||||||
|
srcrect.x = 0;
|
||||||
|
srcrect.y = 0;
|
||||||
|
srcrect.w = s->myWidth;
|
||||||
|
srcrect.h = s->myHeight;
|
||||||
|
|
||||||
|
SDL_BlitSurface(s->myTexture, &srcrect, myTexture, &dstrect);
|
||||||
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void FBSurfaceGL::addDirtyRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h)
|
void FBSurfaceGL::addDirtyRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h)
|
||||||
{
|
{
|
||||||
|
@ -807,47 +833,3 @@ void FBSurfaceGL::setFilter(const string& name)
|
||||||
bool FrameBufferGL::myLibraryLoaded = false;
|
bool FrameBufferGL::myLibraryLoaded = false;
|
||||||
|
|
||||||
#endif // DISPLAY_OPENGL
|
#endif // DISPLAY_OPENGL
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
GUI::Surface* FrameBufferGL::createSurface(int width, int height) const
|
|
||||||
{
|
|
||||||
SDL_PixelFormat* fmt = myTexture->format;
|
|
||||||
SDL_Surface* data =
|
|
||||||
SDL_CreateRGBSurface(SDL_SWSURFACE, width, height, 16,
|
|
||||||
fmt->Rmask, fmt->Gmask, fmt->Bmask, fmt->Amask);
|
|
||||||
|
|
||||||
return data ? new GUI::Surface(width, height, data) : NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
void FrameBufferGL::drawSurface(const GUI::Surface* surface, Int32 x, Int32 y)
|
|
||||||
{
|
|
||||||
SDL_Rect dstrect;
|
|
||||||
dstrect.x = x;
|
|
||||||
dstrect.y = y;
|
|
||||||
SDL_Rect srcrect;
|
|
||||||
srcrect.x = 0;
|
|
||||||
srcrect.y = 0;
|
|
||||||
srcrect.w = surface->myClipWidth;
|
|
||||||
srcrect.h = surface->myClipHeight;
|
|
||||||
|
|
||||||
SDL_BlitSurface(surface->myData, &srcrect, myTexture, &dstrect);
|
|
||||||
}
|
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
void FrameBufferGL::bytesToSurface(GUI::Surface* surface, int row,
|
|
||||||
uInt8* data, int rowbytes) const
|
|
||||||
{
|
|
||||||
SDL_Surface* s = surface->myData;
|
|
||||||
uInt16* pixels = (uInt16*) s->pixels;
|
|
||||||
pixels += (row * s->pitch/2);
|
|
||||||
|
|
||||||
for(int c = 0; c < rowbytes; c += 3)
|
|
||||||
*pixels++ = SDL_MapRGB(s->format, data[c], data[c+1], data[c+2]);
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: FrameBufferGL.hxx,v 1.66 2008-12-28 21:01:55 stephena Exp $
|
// $Id: FrameBufferGL.hxx,v 1.67 2008-12-29 20:42:15 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#ifndef FRAMEBUFFER_GL_HXX
|
#ifndef FRAMEBUFFER_GL_HXX
|
||||||
|
@ -35,7 +35,7 @@ class FBSurfaceGL;
|
||||||
This class implements an SDL OpenGL framebuffer.
|
This class implements an SDL OpenGL framebuffer.
|
||||||
|
|
||||||
@author Stephen Anthony
|
@author Stephen Anthony
|
||||||
@version $Id: FrameBufferGL.hxx,v 1.66 2008-12-28 21:01:55 stephena Exp $
|
@version $Id: FrameBufferGL.hxx,v 1.67 2008-12-29 20:42:15 stephena Exp $
|
||||||
*/
|
*/
|
||||||
class FrameBufferGL : public FrameBuffer
|
class FrameBufferGL : public FrameBuffer
|
||||||
{
|
{
|
||||||
|
@ -176,7 +176,7 @@ class FrameBufferGL : public FrameBuffer
|
||||||
A surface suitable for OpenGL rendering mode.
|
A surface suitable for OpenGL rendering mode.
|
||||||
|
|
||||||
@author Stephen Anthony
|
@author Stephen Anthony
|
||||||
@version $Id: FrameBufferGL.hxx,v 1.66 2008-12-28 21:01:55 stephena Exp $
|
@version $Id: FrameBufferGL.hxx,v 1.67 2008-12-29 20:42:15 stephena Exp $
|
||||||
*/
|
*/
|
||||||
class FBSurfaceGL : public FBSurface
|
class FBSurfaceGL : public FBSurface
|
||||||
{
|
{
|
||||||
|
@ -192,7 +192,9 @@ class FBSurfaceGL : public FBSurface
|
||||||
void vLine(uInt32 x, uInt32 y, uInt32 y2, int color);
|
void vLine(uInt32 x, uInt32 y, uInt32 y2, int color);
|
||||||
void fillRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h, int color);
|
void fillRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h, int color);
|
||||||
void drawChar(const GUI::Font* font, uInt8 c, uInt32 x, uInt32 y, int color);
|
void drawChar(const GUI::Font* font, uInt8 c, uInt32 x, uInt32 y, int color);
|
||||||
void drawBitmap(uInt32* bitmap, Int32 x, Int32 y, int color, Int32 h = 8);
|
void drawBitmap(uInt32* bitmap, uInt32 x, uInt32 y, int color, uInt32 h = 8);
|
||||||
|
void drawBytes(uInt8* data, uInt32 x, uInt32 y, uInt32 rowbytes);
|
||||||
|
void drawSurface(const FBSurface* surface, uInt32 x, uInt32 y);
|
||||||
void addDirtyRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h);
|
void addDirtyRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h);
|
||||||
void getPos(uInt32& x, uInt32& y) const;
|
void getPos(uInt32& x, uInt32& y) const;
|
||||||
void setPos(uInt32 x, uInt32 y);
|
void setPos(uInt32 x, uInt32 y);
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: FrameBufferSoft.cxx,v 1.87 2008-12-28 22:54:04 stephena Exp $
|
// $Id: FrameBufferSoft.cxx,v 1.88 2008-12-29 20:42:15 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
@ -689,27 +689,60 @@ void FBSurfaceSoft::drawChar(const GUI::Font* font, uInt8 chr,
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void FBSurfaceSoft::drawBitmap(uInt32* bitmap, Int32 tx, Int32 ty,
|
void FBSurfaceSoft::drawBitmap(uInt32* bitmap, uInt32 tx, uInt32 ty,
|
||||||
int color, Int32 h)
|
int color, uInt32 h)
|
||||||
{
|
{
|
||||||
SDL_Rect rect;
|
SDL_Rect rect;
|
||||||
for(int y = 0; y < h; y++)
|
rect.y = ty + myYOffset;
|
||||||
|
rect.w = rect.h = 1;
|
||||||
|
for(uInt32 y = 0; y < h; y++)
|
||||||
{
|
{
|
||||||
|
rect.x = tx + myXOffset;
|
||||||
uInt32 mask = 0xF0000000;
|
uInt32 mask = 0xF0000000;
|
||||||
|
for(uInt32 x = 0; x < 8; x++, mask >>= 4)
|
||||||
for(int x = 0; x < 8; x++, mask >>= 4)
|
|
||||||
{
|
{
|
||||||
if(bitmap[y] & mask)
|
if(bitmap[y] & mask)
|
||||||
{
|
|
||||||
rect.x = x + tx + myXOffset;
|
|
||||||
rect.y = y + ty + myYOffset;
|
|
||||||
rect.w = rect.h = 1;
|
|
||||||
SDL_FillRect(mySurface, &rect, myFB.myDefPalette[color]);
|
SDL_FillRect(mySurface, &rect, myFB.myDefPalette[color]);
|
||||||
}
|
|
||||||
|
rect.x++;
|
||||||
}
|
}
|
||||||
|
rect.y++;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void FBSurfaceSoft::drawBytes(uInt8* data, uInt32 tx, uInt32 ty, uInt32 rowbytes)
|
||||||
|
{
|
||||||
|
SDL_Rect rect;
|
||||||
|
rect.x = tx + myXOffset;
|
||||||
|
rect.y = ty + myYOffset;
|
||||||
|
rect.w = rect.h = 1;
|
||||||
|
for(uInt32 x = 0; x < rowbytes; x += 3)
|
||||||
|
{
|
||||||
|
SDL_FillRect(mySurface, &rect,
|
||||||
|
SDL_MapRGB(myFB.myFormat, data[x], data[x+1], data[x+2]));
|
||||||
|
|
||||||
|
rect.x++;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
void FBSurfaceSoft::drawSurface(const FBSurface* surface, uInt32 tx, uInt32 ty)
|
||||||
|
{
|
||||||
|
const FBSurfaceSoft* s = (const FBSurfaceSoft*) surface;
|
||||||
|
|
||||||
|
SDL_Rect dstrect;
|
||||||
|
dstrect.x = tx + myXOffset;
|
||||||
|
dstrect.y = ty + myYOffset;
|
||||||
|
SDL_Rect srcrect;
|
||||||
|
srcrect.x = 0;
|
||||||
|
srcrect.y = 0;
|
||||||
|
srcrect.w = s->myWidth;
|
||||||
|
srcrect.h = s->myHeight;
|
||||||
|
|
||||||
|
SDL_BlitSurface(s->mySurface, &srcrect, mySurface, &dstrect);
|
||||||
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void FBSurfaceSoft::addDirtyRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h)
|
void FBSurfaceSoft::addDirtyRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h)
|
||||||
{
|
{
|
||||||
|
@ -835,42 +868,3 @@ void FBSurfaceSoft::recalc()
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
void FrameBufferSoft::drawSurface(const GUI::Surface* surface, Int32 x, Int32 y)
|
|
||||||
{
|
|
||||||
SDL_Rect dstrect;
|
|
||||||
dstrect.x = x * myZoomLevel + myImageDim.x;
|
|
||||||
dstrect.y = y * myZoomLevel + myImageDim.y;
|
|
||||||
SDL_Rect srcrect;
|
|
||||||
srcrect.x = 0;
|
|
||||||
srcrect.y = 0;
|
|
||||||
srcrect.w = surface->myClipWidth * myZoomLevel;
|
|
||||||
srcrect.h = surface->myClipHeight * myZoomLevel;
|
|
||||||
|
|
||||||
SDL_BlitSurface(surface->myData, &srcrect, myScreen, &dstrect);
|
|
||||||
}
|
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
void FrameBufferSoft::bytesToSurface(GUI::Surface* surface, int row,
|
|
||||||
uInt8* data, int rowbytes) const
|
|
||||||
{
|
|
||||||
// Calculate a scanline of zoomed surface data
|
|
||||||
SDL_Surface* s = surface->myData;
|
|
||||||
SDL_Rect rect;
|
|
||||||
rect.x = 0;
|
|
||||||
rect.y = row * myZoomLevel;
|
|
||||||
for(int c = 0; c < rowbytes; c += 3)
|
|
||||||
{
|
|
||||||
uInt32 pixel = SDL_MapRGB(s->format, data[c], data[c+1], data[c+2]);
|
|
||||||
rect.x += myZoomLevel;
|
|
||||||
rect.w = rect.h = myZoomLevel;
|
|
||||||
SDL_FillRect(surface->myData, &rect, pixel);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: FrameBufferSoft.hxx,v 1.59 2008-12-28 21:01:55 stephena Exp $
|
// $Id: FrameBufferSoft.hxx,v 1.60 2008-12-29 20:42:15 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#ifndef FRAMEBUFFER_SOFT_HXX
|
#ifndef FRAMEBUFFER_SOFT_HXX
|
||||||
|
@ -32,7 +32,7 @@ class RectList;
|
||||||
This class implements an SDL software framebuffer.
|
This class implements an SDL software framebuffer.
|
||||||
|
|
||||||
@author Stephen Anthony
|
@author Stephen Anthony
|
||||||
@version $Id: FrameBufferSoft.hxx,v 1.59 2008-12-28 21:01:55 stephena Exp $
|
@version $Id: FrameBufferSoft.hxx,v 1.60 2008-12-29 20:42:15 stephena Exp $
|
||||||
*/
|
*/
|
||||||
class FrameBufferSoft : public FrameBuffer
|
class FrameBufferSoft : public FrameBuffer
|
||||||
{
|
{
|
||||||
|
@ -166,7 +166,7 @@ class FrameBufferSoft : public FrameBuffer
|
||||||
A surface suitable for software rendering mode.
|
A surface suitable for software rendering mode.
|
||||||
|
|
||||||
@author Stephen Anthony
|
@author Stephen Anthony
|
||||||
@version $Id: FrameBufferSoft.hxx,v 1.59 2008-12-28 21:01:55 stephena Exp $
|
@version $Id: FrameBufferSoft.hxx,v 1.60 2008-12-29 20:42:15 stephena Exp $
|
||||||
*/
|
*/
|
||||||
class FBSurfaceSoft : public FBSurface
|
class FBSurfaceSoft : public FBSurface
|
||||||
{
|
{
|
||||||
|
@ -179,7 +179,9 @@ class FBSurfaceSoft : public FBSurface
|
||||||
void vLine(uInt32 x, uInt32 y, uInt32 y2, int color);
|
void vLine(uInt32 x, uInt32 y, uInt32 y2, int color);
|
||||||
void fillRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h, int color);
|
void fillRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h, int color);
|
||||||
void drawChar(const GUI::Font* font, uInt8 c, uInt32 x, uInt32 y, int color);
|
void drawChar(const GUI::Font* font, uInt8 c, uInt32 x, uInt32 y, int color);
|
||||||
void drawBitmap(uInt32* bitmap, Int32 x, Int32 y, int color, Int32 h = 8);
|
void drawBitmap(uInt32* bitmap, uInt32 x, uInt32 y, int color, uInt32 h = 8);
|
||||||
|
void drawBytes(uInt8* data, uInt32 x, uInt32 y, uInt32 rowbytes);
|
||||||
|
void drawSurface(const FBSurface* surface, uInt32 x, uInt32 y);
|
||||||
void addDirtyRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h);
|
void addDirtyRect(uInt32 x, uInt32 y, uInt32 w, uInt32 h);
|
||||||
void getPos(uInt32& x, uInt32& y) const;
|
void getPos(uInt32& x, uInt32& y) const;
|
||||||
void setPos(uInt32 x, uInt32 y);
|
void setPos(uInt32 x, uInt32 y);
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: EventHandler.cxx,v 1.232 2008-12-28 23:47:09 stephena Exp $
|
// $Id: EventHandler.cxx,v 1.233 2008-12-29 20:42:15 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#include <sstream>
|
#include <sstream>
|
||||||
|
@ -869,16 +869,6 @@ void EventHandler::handleJoyHatEvent(int stick, int hat, int value)
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
void EventHandler::handleResizeEvent()
|
|
||||||
{
|
|
||||||
// For now, only the overlay cares about resize events
|
|
||||||
// We don't know which one wants it, so we send it to all of them
|
|
||||||
// These events need to be sent even if the overlay isn't active
|
|
||||||
if(&myOSystem->launcher())
|
|
||||||
myOSystem->launcher().handleResizeEvent();
|
|
||||||
}
|
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void EventHandler::handleEvent(Event::Type event, int state)
|
void EventHandler::handleEvent(Event::Type event, int state)
|
||||||
{
|
{
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: EventHandler.hxx,v 1.112 2008-12-27 23:27:32 stephena Exp $
|
// $Id: EventHandler.hxx,v 1.113 2008-12-29 20:42:15 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#ifndef EVENTHANDLER_HXX
|
#ifndef EVENTHANDLER_HXX
|
||||||
|
@ -61,7 +61,7 @@ enum EventMode {
|
||||||
mapping can take place.
|
mapping can take place.
|
||||||
|
|
||||||
@author Stephen Anthony
|
@author Stephen Anthony
|
||||||
@version $Id: EventHandler.hxx,v 1.112 2008-12-27 23:27:32 stephena Exp $
|
@version $Id: EventHandler.hxx,v 1.113 2008-12-29 20:42:15 stephena Exp $
|
||||||
*/
|
*/
|
||||||
class EventHandler
|
class EventHandler
|
||||||
{
|
{
|
||||||
|
@ -213,11 +213,6 @@ class EventHandler
|
||||||
void leaveDebugMode();
|
void leaveDebugMode();
|
||||||
void takeSnapshot();
|
void takeSnapshot();
|
||||||
|
|
||||||
/**
|
|
||||||
Send a resize event to the handler.
|
|
||||||
*/
|
|
||||||
void handleResizeEvent();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Send an event directly to the event handler.
|
Send an event directly to the event handler.
|
||||||
These events cannot be remapped.
|
These events cannot be remapped.
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: FrameBuffer.cxx,v 1.149 2008-12-28 21:01:55 stephena Exp $
|
// $Id: FrameBuffer.cxx,v 1.150 2008-12-29 20:42:15 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#include <algorithm>
|
#include <algorithm>
|
||||||
|
@ -587,7 +587,6 @@ bool FrameBuffer::changeVidMode(int direction)
|
||||||
if(saveModeChange)
|
if(saveModeChange)
|
||||||
myOSystem->settings().setString("tia_filter", vidmode.gfxmode.name);
|
myOSystem->settings().setString("tia_filter", vidmode.gfxmode.name);
|
||||||
|
|
||||||
myOSystem->eventHandler().handleResizeEvent(); // FIXME - this may no longer be required
|
|
||||||
refresh();
|
refresh();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: FrameBuffer.hxx,v 1.109 2008-12-28 21:01:55 stephena Exp $
|
// $Id: FrameBuffer.hxx,v 1.110 2008-12-29 20:42:15 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#ifndef FRAMEBUFFER_HXX
|
#ifndef FRAMEBUFFER_HXX
|
||||||
|
@ -91,7 +91,7 @@ enum {
|
||||||
turn drawn here as well.
|
turn drawn here as well.
|
||||||
|
|
||||||
@author Stephen Anthony
|
@author Stephen Anthony
|
||||||
@version $Id: FrameBuffer.hxx,v 1.109 2008-12-28 21:01:55 stephena Exp $
|
@version $Id: FrameBuffer.hxx,v 1.110 2008-12-29 20:42:15 stephena Exp $
|
||||||
*/
|
*/
|
||||||
class FrameBuffer
|
class FrameBuffer
|
||||||
{
|
{
|
||||||
|
@ -544,7 +544,7 @@ class FrameBuffer
|
||||||
FrameBuffer type.
|
FrameBuffer type.
|
||||||
|
|
||||||
@author Stephen Anthony
|
@author Stephen Anthony
|
||||||
@version $Id: FrameBuffer.hxx,v 1.109 2008-12-28 21:01:55 stephena Exp $
|
@version $Id: FrameBuffer.hxx,v 1.110 2008-12-29 20:42:15 stephena Exp $
|
||||||
*/
|
*/
|
||||||
// Text alignment modes for drawString()
|
// Text alignment modes for drawString()
|
||||||
enum TextAlignment {
|
enum TextAlignment {
|
||||||
|
@ -624,8 +624,28 @@ class FBSurface
|
||||||
@param color The color of the character
|
@param color The color of the character
|
||||||
@param h The height of the data image
|
@param h The height of the data image
|
||||||
*/
|
*/
|
||||||
virtual void drawBitmap(uInt32* bitmap, Int32 x, Int32 y, int color,
|
virtual void drawBitmap(uInt32* bitmap, uInt32 x, uInt32 y, int color,
|
||||||
Int32 h = 8) = 0;
|
uInt32 h = 8) = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
This method should be called to convert and copy a given row of RGB
|
||||||
|
data into a FrameBuffer surface.
|
||||||
|
|
||||||
|
@param data The data in uInt8 R/G/B format
|
||||||
|
@param row The row of the surface the data should be placed in
|
||||||
|
@param rowbytes The number of bytes in row of 'data'
|
||||||
|
*/
|
||||||
|
virtual void drawBytes(uInt8* data, uInt32 x, uInt32 y, uInt32 rowbytes) = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
This method should be called copy the contents of the given
|
||||||
|
surface into the FrameBuffer surface.
|
||||||
|
|
||||||
|
@param surface The data to draw
|
||||||
|
@param x The x coordinate
|
||||||
|
@param y The y coordinate
|
||||||
|
*/
|
||||||
|
virtual void drawSurface(const FBSurface* surface, uInt32 x, uInt32 y) = 0;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
This method should be called to add a dirty rectangle
|
This method should be called to add a dirty rectangle
|
||||||
|
@ -737,29 +757,3 @@ class FBSurface
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#if 0
|
|
||||||
/**
|
|
||||||
This method should be called to draw an SDL surface.
|
|
||||||
|
|
||||||
@param surface The data to draw
|
|
||||||
@param x The x coordinate
|
|
||||||
@param y The y coordinate
|
|
||||||
*/
|
|
||||||
virtual void drawSurface(const GUI::Surface* surface, Int32 x, Int32 y) = 0;
|
|
||||||
|
|
||||||
/**
|
|
||||||
This method should be called to convert and copy a given row of RGB
|
|
||||||
data into an SDL surface.
|
|
||||||
|
|
||||||
@param surface The data to draw
|
|
||||||
@param row The row of the surface the data should be placed in
|
|
||||||
@param data The data in uInt8 R/G/B format
|
|
||||||
@param rowbytes The number of bytes in row of 'data'
|
|
||||||
*/
|
|
||||||
virtual void bytesToSurface(GUI::Surface* surface, int row,
|
|
||||||
uInt8* data, int rowbytes) const = 0;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: OSystem.cxx,v 1.135 2008-12-27 23:27:32 stephena Exp $
|
// $Id: OSystem.cxx,v 1.136 2008-12-29 20:42:15 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
@ -341,10 +341,6 @@ bool OSystem::createFrameBuffer()
|
||||||
// Setup the SDL joysticks (must be done after FrameBuffer is created)
|
// Setup the SDL joysticks (must be done after FrameBuffer is created)
|
||||||
myEventHandler->setupJoysticks();
|
myEventHandler->setupJoysticks();
|
||||||
|
|
||||||
// FIXME - this next line can probably be removed
|
|
||||||
// Let the system know that we've possibly resized the display
|
|
||||||
myEventHandler->handleResizeEvent();
|
|
||||||
|
|
||||||
// Update the UI palette
|
// Update the UI palette
|
||||||
setUIPalette();
|
setUIPalette();
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: Settings.cxx,v 1.150 2008-12-28 21:01:55 stephena Exp $
|
// $Id: Settings.cxx,v 1.151 2008-12-29 20:42:15 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#include <cassert>
|
#include <cassert>
|
||||||
|
@ -88,7 +88,7 @@ Settings::Settings(OSystem* osystem)
|
||||||
// ROM browser options
|
// ROM browser options
|
||||||
setInternal("launcherres", "640x480");
|
setInternal("launcherres", "640x480");
|
||||||
setInternal("launcherfont", "small");
|
setInternal("launcherfont", "small");
|
||||||
setInternal("romviewer", "false");
|
setInternal("romviewer", "0");
|
||||||
setInternal("lastrom", "");
|
setInternal("lastrom", "");
|
||||||
|
|
||||||
// UI-related options
|
// UI-related options
|
||||||
|
@ -259,6 +259,12 @@ void Settings::validate()
|
||||||
s = getString("launcherfont");
|
s = getString("launcherfont");
|
||||||
if(s != "small" && s != "large")
|
if(s != "small" && s != "large")
|
||||||
setInternal("launcherfont", "small");
|
setInternal("launcherfont", "small");
|
||||||
|
|
||||||
|
i = getInt("romviewer");
|
||||||
|
if(i < 0)
|
||||||
|
setInternal("romviewer", "0");
|
||||||
|
else if(i > 2)
|
||||||
|
setInternal("romviewer", "2");
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
@ -315,7 +321,7 @@ void Settings::usage()
|
||||||
<< " -pspeed <number> Speed of digital emulated paddle movement (1-15)\n"
|
<< " -pspeed <number> Speed of digital emulated paddle movement (1-15)\n"
|
||||||
<< " -sa1 <left|right> Stelladaptor 1 emulates specified joystick port\n"
|
<< " -sa1 <left|right> Stelladaptor 1 emulates specified joystick port\n"
|
||||||
<< " -sa2 <left|right> Stelladaptor 2 emulates specified joystick port\n"
|
<< " -sa2 <left|right> Stelladaptor 2 emulates specified joystick port\n"
|
||||||
<< " -romviewer <1|0> Show ROM info viewer in ROM launcher\n"
|
<< " -romviewer <0|1|2> Show ROM info viewer at given zoom level in ROM launcher (0 for off)\n"
|
||||||
<< " -autoslot <1|0> Automatically switch to next save slot when state saving\n"
|
<< " -autoslot <1|0> Automatically switch to next save slot when state saving\n"
|
||||||
<< " -ssdir <path> The directory to save snapshot files to\n"
|
<< " -ssdir <path> The directory to save snapshot files to\n"
|
||||||
<< " -sssingle <1|0> Generate single snapshot instead of many\n"
|
<< " -sssingle <1|0> Generate single snapshot instead of many\n"
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: DialogContainer.cxx,v 1.51 2008-12-28 21:01:55 stephena Exp $
|
// $Id: DialogContainer.cxx,v 1.52 2008-12-29 20:42:15 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#include "OSystem.hxx"
|
#include "OSystem.hxx"
|
||||||
|
@ -323,13 +323,6 @@ void DialogContainer::handleJoyHatEvent(int stick, int hat, int value)
|
||||||
activeDialog->handleJoyHat(stick, hat, value);
|
activeDialog->handleJoyHat(stick, hat, value);
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
void DialogContainer::handleResizeEvent()
|
|
||||||
{
|
|
||||||
// Send resize event to base dialog; it's up to the dialog to actually listen
|
|
||||||
myBaseDialog->handleCommand(NULL, kResizeCmd, 0, 0);
|
|
||||||
}
|
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void DialogContainer::reset()
|
void DialogContainer::reset()
|
||||||
{
|
{
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: DialogContainer.hxx,v 1.26 2008-12-28 21:01:55 stephena Exp $
|
// $Id: DialogContainer.hxx,v 1.27 2008-12-29 20:42:15 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#ifndef DIALOG_CONTAINER_HXX
|
#ifndef DIALOG_CONTAINER_HXX
|
||||||
|
@ -36,7 +36,7 @@ class OSystem;
|
||||||
a stack, and handles their events.
|
a stack, and handles their events.
|
||||||
|
|
||||||
@author Stephen Anthony
|
@author Stephen Anthony
|
||||||
@version $Id: DialogContainer.hxx,v 1.26 2008-12-28 21:01:55 stephena Exp $
|
@version $Id: DialogContainer.hxx,v 1.27 2008-12-29 20:42:15 stephena Exp $
|
||||||
*/
|
*/
|
||||||
class DialogContainer
|
class DialogContainer
|
||||||
{
|
{
|
||||||
|
@ -118,11 +118,6 @@ class DialogContainer
|
||||||
*/
|
*/
|
||||||
void handleJoyHatEvent(int stick, int hat, int value);
|
void handleJoyHatEvent(int stick, int hat, int value);
|
||||||
|
|
||||||
/**
|
|
||||||
Handle a resize event.
|
|
||||||
*/
|
|
||||||
void handleResizeEvent();
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
Draw the stack of menus (full indicates to redraw all items).
|
Draw the stack of menus (full indicates to redraw all items).
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: GuiObject.hxx,v 1.25 2008-06-13 13:14:51 stephena Exp $
|
// $Id: GuiObject.hxx,v 1.26 2008-12-29 20:42:15 stephena Exp $
|
||||||
//
|
//
|
||||||
// Based on code from ScummVM - Scumm Interpreter
|
// Based on code from ScummVM - Scumm Interpreter
|
||||||
// Copyright (C) 2002-2004 The ScummVM project
|
// Copyright (C) 2002-2004 The ScummVM project
|
||||||
|
@ -43,8 +43,7 @@ enum {
|
||||||
kSetPositionCmd = 'SETP',
|
kSetPositionCmd = 'SETP',
|
||||||
kTabChangedCmd = 'TBCH',
|
kTabChangedCmd = 'TBCH',
|
||||||
kCheckActionCmd = 'CBAC',
|
kCheckActionCmd = 'CBAC',
|
||||||
kRefreshAllCmd = 'REFA',
|
kRefreshAllCmd = 'REFA'
|
||||||
kResizeCmd = 'RESZ'
|
|
||||||
};
|
};
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
|
@ -55,7 +54,7 @@ enum {
|
||||||
This is the base class for all GUI objects/widgets.
|
This is the base class for all GUI objects/widgets.
|
||||||
|
|
||||||
@author Stephen Anthony
|
@author Stephen Anthony
|
||||||
@version $Id: GuiObject.hxx,v 1.25 2008-06-13 13:14:51 stephena Exp $
|
@version $Id: GuiObject.hxx,v 1.26 2008-12-29 20:42:15 stephena Exp $
|
||||||
*/
|
*/
|
||||||
class GuiObject : public CommandReceiver
|
class GuiObject : public CommandReceiver
|
||||||
{
|
{
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: LauncherDialog.cxx,v 1.89 2008-11-30 17:28:03 stephena Exp $
|
// $Id: LauncherDialog.cxx,v 1.90 2008-12-29 20:42:15 stephena Exp $
|
||||||
//
|
//
|
||||||
// Based on code from ScummVM - Scumm Interpreter
|
// Based on code from ScummVM - Scumm Interpreter
|
||||||
// Copyright (C) 2002-2004 The ScummVM project
|
// Copyright (C) 2002-2004 The ScummVM project
|
||||||
|
@ -53,8 +53,7 @@ LauncherDialog::LauncherDialog(OSystem* osystem, DialogContainer* parent,
|
||||||
myGameList(NULL),
|
myGameList(NULL),
|
||||||
myProgressBar(NULL),
|
myProgressBar(NULL),
|
||||||
myRomInfoWidget(NULL),
|
myRomInfoWidget(NULL),
|
||||||
mySelectedItem(0),
|
mySelectedItem(0)
|
||||||
myRomInfoFlag(false)
|
|
||||||
{
|
{
|
||||||
const GUI::Font& font = instance().launcherFont();
|
const GUI::Font& font = instance().launcherFont();
|
||||||
|
|
||||||
|
@ -64,15 +63,6 @@ LauncherDialog::LauncherDialog(OSystem* osystem, DialogContainer* parent,
|
||||||
int xpos = 0, ypos = 0, lwidth = 0;
|
int xpos = 0, ypos = 0, lwidth = 0;
|
||||||
WidgetArray wid;
|
WidgetArray wid;
|
||||||
|
|
||||||
// Check if we want the ROM info viewer
|
|
||||||
// Make sure it will fit within the current bounds
|
|
||||||
myRomInfoFlag = instance().settings().getBool("romviewer");
|
|
||||||
if((w < 640 || h < 480) && myRomInfoFlag)
|
|
||||||
{
|
|
||||||
cerr << "ERROR: ROM launcher too small, deactivating ROM info viewer" << endl;
|
|
||||||
myRomInfoFlag = false;
|
|
||||||
}
|
|
||||||
|
|
||||||
// Show game name
|
// Show game name
|
||||||
lwidth = font.getStringWidth("Select an item from the list ...");
|
lwidth = font.getStringWidth("Select an item from the list ...");
|
||||||
xpos += 10; ypos += 8;
|
xpos += 10; ypos += 8;
|
||||||
|
@ -87,7 +77,16 @@ LauncherDialog::LauncherDialog(OSystem* osystem, DialogContainer* parent,
|
||||||
|
|
||||||
// Add list with game titles
|
// Add list with game titles
|
||||||
xpos = 10; ypos += fontHeight + 5;
|
xpos = 10; ypos += fontHeight + 5;
|
||||||
int listWidth = myRomInfoFlag ? _w - 350 : _w - 20;
|
|
||||||
|
// Before we add the list, we need to know the size of the RomInfoWidget
|
||||||
|
int romWidth = 0;
|
||||||
|
int romSize = instance().settings().getInt("romviewer");
|
||||||
|
if(romSize > 1 && w >= 1000 && h >= 800)
|
||||||
|
romWidth = 375*2;
|
||||||
|
else if(romSize > 0 && w >= 640 && h >= 480)
|
||||||
|
romWidth = 375;
|
||||||
|
|
||||||
|
int listWidth = _w - (romWidth > 0 ? romWidth+25 : 20);
|
||||||
myList = new StringListWidget(this, font, xpos, ypos,
|
myList = new StringListWidget(this, font, xpos, ypos,
|
||||||
listWidth, _h - 28 - bheight - 2*fontHeight);
|
listWidth, _h - 28 - bheight - 2*fontHeight);
|
||||||
myList->setNumberingMode(kListNumberingOff);
|
myList->setNumberingMode(kListNumberingOff);
|
||||||
|
@ -95,12 +94,11 @@ LauncherDialog::LauncherDialog(OSystem* osystem, DialogContainer* parent,
|
||||||
wid.push_back(myList);
|
wid.push_back(myList);
|
||||||
|
|
||||||
// Add ROM info area (if enabled)
|
// Add ROM info area (if enabled)
|
||||||
if(myRomInfoFlag)
|
if(romWidth > 0)
|
||||||
{
|
{
|
||||||
xpos += myList->getWidth() + 15;
|
xpos += myList->getWidth() + 15;
|
||||||
myRomInfoWidget = new RomInfoWidget(this, instance().font(), xpos, ypos,
|
myRomInfoWidget = new RomInfoWidget(this, instance().consoleFont(), xpos, ypos,
|
||||||
326, myList->getHeight());
|
romWidth, myList->getHeight());
|
||||||
wid.push_back(myRomInfoWidget);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Add note textwidget to show any notes for the currently selected ROM
|
// Add note textwidget to show any notes for the currently selected ROM
|
||||||
|
@ -202,7 +200,7 @@ void LauncherDialog::loadConfig()
|
||||||
}
|
}
|
||||||
Dialog::setFocus(getFocusList()[mySelectedItem]);
|
Dialog::setFocus(getFocusList()[mySelectedItem]);
|
||||||
|
|
||||||
if(myRomInfoFlag)
|
if(myRomInfoWidget)
|
||||||
myRomInfoWidget->loadConfig();
|
myRomInfoWidget->loadConfig();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -300,7 +298,7 @@ void LauncherDialog::loadDirListing()
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void LauncherDialog::loadRomInfo()
|
void LauncherDialog::loadRomInfo()
|
||||||
{
|
{
|
||||||
if(!(myRomInfoFlag && myRomInfoWidget)) return;
|
if(!myRomInfoWidget) return;
|
||||||
int item = myList->getSelected();
|
int item = myList->getSelected();
|
||||||
if(item < 0) return;
|
if(item < 0) return;
|
||||||
|
|
||||||
|
@ -314,8 +312,7 @@ void LauncherDialog::loadRomInfo()
|
||||||
|
|
||||||
// Get the properties for this entry
|
// Get the properties for this entry
|
||||||
Properties props;
|
Properties props;
|
||||||
const string& md5 = myGameList->md5(item);
|
instance().propSet().getMD5(myGameList->md5(item), props);
|
||||||
instance().propSet().getMD5(md5, props);
|
|
||||||
|
|
||||||
myRomInfoWidget->setProperties(props);
|
myRomInfoWidget->setProperties(props);
|
||||||
}
|
}
|
||||||
|
@ -406,16 +403,6 @@ void LauncherDialog::handleCommand(CommandSender* sender, int cmd,
|
||||||
updateListing();
|
updateListing();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case kResizeCmd:
|
|
||||||
// Instead of figuring out how to resize the snapshot image,
|
|
||||||
// we just reload it
|
|
||||||
if(myRomInfoFlag)
|
|
||||||
{
|
|
||||||
myRomInfoWidget->initialize();
|
|
||||||
loadRomInfo();
|
|
||||||
}
|
|
||||||
break;
|
|
||||||
|
|
||||||
default:
|
default:
|
||||||
Dialog::handleCommand(sender, cmd, data, 0);
|
Dialog::handleCommand(sender, cmd, data, 0);
|
||||||
}
|
}
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: LauncherDialog.hxx,v 1.35 2008-11-30 17:28:03 stephena Exp $
|
// $Id: LauncherDialog.hxx,v 1.36 2008-12-29 20:42:15 stephena Exp $
|
||||||
//
|
//
|
||||||
// Based on code from ScummVM - Scumm Interpreter
|
// Based on code from ScummVM - Scumm Interpreter
|
||||||
// Copyright (C) 2002-2004 The ScummVM project
|
// Copyright (C) 2002-2004 The ScummVM project
|
||||||
|
@ -92,7 +92,7 @@ class LauncherDialog : public Dialog
|
||||||
|
|
||||||
private:
|
private:
|
||||||
int mySelectedItem;
|
int mySelectedItem;
|
||||||
bool myRomInfoFlag;
|
int myRomInfoSize;
|
||||||
FilesystemNode myCurrentNode;
|
FilesystemNode myCurrentNode;
|
||||||
|
|
||||||
enum {
|
enum {
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: RomInfoWidget.cxx,v 1.10 2008-12-28 21:01:55 stephena Exp $
|
// $Id: RomInfoWidget.cxx,v 1.11 2008-12-29 20:42:15 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#include <cstring>
|
#include <cstring>
|
||||||
|
@ -31,24 +31,18 @@
|
||||||
RomInfoWidget::RomInfoWidget(GuiObject* boss, const GUI::Font& font,
|
RomInfoWidget::RomInfoWidget(GuiObject* boss, const GUI::Font& font,
|
||||||
int x, int y, int w, int h)
|
int x, int y, int w, int h)
|
||||||
: Widget(boss, font, x, y, w, h),
|
: Widget(boss, font, x, y, w, h),
|
||||||
// mySurface(NULL),
|
mySurface(NULL),
|
||||||
myDrawSurface(false),
|
mySurfaceID(-1),
|
||||||
|
mySurfaceIsValid(false),
|
||||||
myHaveProperties(false)
|
myHaveProperties(false)
|
||||||
{
|
{
|
||||||
_flags = WIDGET_ENABLED | WIDGET_RETAIN_FOCUS;
|
_flags = WIDGET_ENABLED;
|
||||||
_bgcolor = _bgcolorhi = kWidColor;
|
_bgcolor = _bgcolorhi = kWidColor;
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
RomInfoWidget::~RomInfoWidget()
|
RomInfoWidget::~RomInfoWidget()
|
||||||
{
|
{
|
||||||
/*
|
|
||||||
if(mySurface)
|
|
||||||
{
|
|
||||||
delete mySurface;
|
|
||||||
mySurface = NULL;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
myRomInfo.clear();
|
myRomInfo.clear();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -68,7 +62,6 @@ void RomInfoWidget::loadConfig()
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void RomInfoWidget::setProperties(const Properties& props)
|
void RomInfoWidget::setProperties(const Properties& props)
|
||||||
{
|
{
|
||||||
return;
|
|
||||||
myHaveProperties = true;
|
myHaveProperties = true;
|
||||||
myProperties = props;
|
myProperties = props;
|
||||||
|
|
||||||
|
@ -83,8 +76,7 @@ return;
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void RomInfoWidget::clearProperties()
|
void RomInfoWidget::clearProperties()
|
||||||
{
|
{
|
||||||
return;
|
myHaveProperties = mySurfaceIsValid = false;
|
||||||
myHaveProperties = myDrawSurface = false;
|
|
||||||
|
|
||||||
// Decide whether the information should be shown immediately
|
// Decide whether the information should be shown immediately
|
||||||
if(instance().eventHandler().state() == EventHandler::S_LAUNCHER)
|
if(instance().eventHandler().state() == EventHandler::S_LAUNCHER)
|
||||||
|
@ -93,29 +85,23 @@ return;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
|
||||||
void RomInfoWidget::initialize()
|
|
||||||
{
|
|
||||||
// Delete surface; a new one will be created by parseProperties
|
|
||||||
// delete mySurface;
|
|
||||||
// mySurface = NULL;
|
|
||||||
}
|
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void RomInfoWidget::parseProperties()
|
void RomInfoWidget::parseProperties()
|
||||||
{
|
{
|
||||||
// FIXME
|
|
||||||
#if 0
|
|
||||||
// Initialize to empty properties entry
|
|
||||||
mySurfaceErrorMsg = "";
|
|
||||||
myDrawSurface = false;
|
|
||||||
myRomInfo.clear();
|
|
||||||
|
|
||||||
// Check if a surface has ever been created; if so, we use it
|
// Check if a surface has ever been created; if so, we use it
|
||||||
// The surface will always be the maximum size, but sometimes we'll
|
// The surface will always be the maximum size, but sometimes we'll
|
||||||
// only draw certain parts of it
|
// only draw certain parts of it
|
||||||
|
mySurface = instance().frameBuffer().surface(mySurfaceID);
|
||||||
if(mySurface == NULL)
|
if(mySurface == NULL)
|
||||||
mySurface = instance().frameBuffer().createSurface(320, 260);
|
{
|
||||||
|
mySurfaceID = instance().frameBuffer().allocateSurface(320, 260, false);
|
||||||
|
mySurface = instance().frameBuffer().surface(mySurfaceID);
|
||||||
|
}
|
||||||
|
|
||||||
|
// Initialize to empty properties entry
|
||||||
|
mySurfaceErrorMsg = "";
|
||||||
|
mySurfaceIsValid = false;
|
||||||
|
myRomInfo.clear();
|
||||||
|
|
||||||
// The input stream for the PNG file
|
// The input stream for the PNG file
|
||||||
ifstream in;
|
ifstream in;
|
||||||
|
@ -155,13 +141,12 @@ void RomInfoWidget::parseProperties()
|
||||||
if(!parseIHDR(width, height, data, size))
|
if(!parseIHDR(width, height, data, size))
|
||||||
throw "Invalid PNG image (IHDR)";
|
throw "Invalid PNG image (IHDR)";
|
||||||
|
|
||||||
mySurface->setClipWidth(width);
|
mySurface->setWidth(width);
|
||||||
mySurface->setClipHeight(height);
|
mySurface->setHeight(height);
|
||||||
}
|
}
|
||||||
else if(type == "IDAT")
|
else if(type == "IDAT")
|
||||||
{
|
{
|
||||||
if(!parseIDATChunk(instance().frameBuffer(), mySurface,
|
if(!parseIDATChunk(mySurface, width, height, data, size))
|
||||||
width, height, data, size))
|
|
||||||
throw "PNG image too large";
|
throw "PNG image too large";
|
||||||
}
|
}
|
||||||
else if(type == "tEXt")
|
else if(type == "tEXt")
|
||||||
|
@ -171,11 +156,11 @@ void RomInfoWidget::parseProperties()
|
||||||
}
|
}
|
||||||
|
|
||||||
in.close();
|
in.close();
|
||||||
myDrawSurface = true;
|
mySurfaceIsValid = true;
|
||||||
}
|
}
|
||||||
catch(const char* msg)
|
catch(const char* msg)
|
||||||
{
|
{
|
||||||
myDrawSurface = false;
|
mySurfaceIsValid = false;
|
||||||
myRomInfo.clear();
|
myRomInfo.clear();
|
||||||
if(data) delete[] data;
|
if(data) delete[] data;
|
||||||
data = NULL;
|
data = NULL;
|
||||||
|
@ -196,40 +181,36 @@ void RomInfoWidget::parseProperties()
|
||||||
myRomInfo.push_back("Controllers: " + myProperties.get(Controller_Left) +
|
myRomInfo.push_back("Controllers: " + myProperties.get(Controller_Left) +
|
||||||
" (left), " + myProperties.get(Controller_Right) + " (right)");
|
" (left), " + myProperties.get(Controller_Right) + " (right)");
|
||||||
// TODO - add the PNG tEXt chunks
|
// TODO - add the PNG tEXt chunks
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
void RomInfoWidget::drawWidget(bool hilite)
|
void RomInfoWidget::drawWidget(bool hilite)
|
||||||
{
|
{
|
||||||
// FIXME
|
FBSurface& s = dialog().surface();
|
||||||
#if 0
|
|
||||||
FrameBuffer& fb = instance().frameBuffer();
|
|
||||||
|
|
||||||
fb.fillRect(_x+2, _y+2, _w-4, _h-4, kWidColor);
|
s.fillRect(_x+2, _y+2, _w-4, _h-4, kWidColor);
|
||||||
fb.box(_x, _y, _w, _h, kColor, kShadowColor);
|
s.box(_x, _y, _w, _h, kColor, kShadowColor);
|
||||||
fb.box(_x, _y+264, _w, _h-264, kColor, kShadowColor);
|
s.box(_x, _y+275, _w, _h-275, kColor, kShadowColor);
|
||||||
|
|
||||||
if(!myHaveProperties) return;
|
if(!myHaveProperties) return;
|
||||||
|
|
||||||
if(myDrawSurface && mySurface)
|
if(mySurfaceIsValid)
|
||||||
{
|
{
|
||||||
int x = (_w - mySurface->getClipWidth()) >> 1;
|
uInt32 x = ((_w - mySurface->getWidth()) >> 1) + getAbsX();
|
||||||
int y = (266 - mySurface->getClipHeight()) >> 1;
|
uInt32 y = ((275 - mySurface->getHeight()) >> 1) + getAbsY();
|
||||||
fb.drawSurface(mySurface, x + getAbsX(), y + getAbsY());
|
s.drawSurface(mySurface, x, y);
|
||||||
}
|
}
|
||||||
else if(mySurfaceErrorMsg != "")
|
else if(mySurfaceErrorMsg != "")
|
||||||
{
|
{
|
||||||
int x = _x + ((_w - _font->getStringWidth(mySurfaceErrorMsg)) >> 1);
|
int x = _x + ((_w - _font->getStringWidth(mySurfaceErrorMsg)) >> 1);
|
||||||
fb.drawString(_font, mySurfaceErrorMsg, x, 120, _w - 10, _textcolor);
|
s.drawString(_font, mySurfaceErrorMsg, x, 120, _w - 10, _textcolor);
|
||||||
}
|
}
|
||||||
int xpos = _x + 5, ypos = _y + 266 + 5;
|
int xpos = _x + 5, ypos = _y + 280 + 5;
|
||||||
for(unsigned int i = 0; i < myRomInfo.size(); ++i)
|
for(unsigned int i = 0; i < myRomInfo.size(); ++i)
|
||||||
{
|
{
|
||||||
fb.drawString(_font, myRomInfo[i], xpos, ypos, _w - 10, _textcolor);
|
s.drawString(_font, myRomInfo[i], xpos, ypos, _w - 10, _textcolor);
|
||||||
ypos += _font->getLineHeight();
|
ypos += _font->getLineHeight();
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
|
@ -284,11 +265,9 @@ bool RomInfoWidget::parseIHDR(int& width, int& height, uInt8* data, int size)
|
||||||
return memcmp(trailer, data + 8, 5) == 0;
|
return memcmp(trailer, data + 8, 5) == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME
|
|
||||||
#if 0
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
bool RomInfoWidget::parseIDATChunk(const FrameBuffer& fb, GUI::Surface* surface,
|
bool RomInfoWidget::parseIDATChunk(FBSurface* surface, int width, int height,
|
||||||
int width, int height, uInt8* data, int size)
|
uInt8* data, int size)
|
||||||
{
|
{
|
||||||
// The entire decompressed image data
|
// The entire decompressed image data
|
||||||
uLongf bufsize = (width * 3 + 1) * height;
|
uLongf bufsize = (width * 3 + 1) * height;
|
||||||
|
@ -300,8 +279,8 @@ bool RomInfoWidget::parseIDATChunk(const FrameBuffer& fb, GUI::Surface* surface,
|
||||||
uInt8* buf_ptr = buffer;
|
uInt8* buf_ptr = buffer;
|
||||||
for(int row = 0; row < height; row++, buf_ptr += pitch)
|
for(int row = 0; row < height; row++, buf_ptr += pitch)
|
||||||
{
|
{
|
||||||
buf_ptr++; // skip past first byte (PNG filter type)
|
buf_ptr++; // skip past first byte (PNG filter type)
|
||||||
fb.bytesToSurface(surface, row, buf_ptr, pitch);
|
surface->drawBytes(buf_ptr, 0, row, pitch);
|
||||||
}
|
}
|
||||||
delete[] buffer;
|
delete[] buffer;
|
||||||
return true;
|
return true;
|
||||||
|
@ -309,7 +288,6 @@ bool RomInfoWidget::parseIDATChunk(const FrameBuffer& fb, GUI::Surface* surface,
|
||||||
delete[] buffer;
|
delete[] buffer;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
// - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
|
||||||
string RomInfoWidget::parseTextChunk(uInt8* data, int size)
|
string RomInfoWidget::parseTextChunk(uInt8* data, int size)
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: RomInfoWidget.hxx,v 1.5 2008-06-19 12:01:31 stephena Exp $
|
// $Id: RomInfoWidget.hxx,v 1.6 2008-12-29 20:42:15 stephena Exp $
|
||||||
//============================================================================
|
//============================================================================
|
||||||
|
|
||||||
#ifndef ROM_INFO_WIDGET_HXX
|
#ifndef ROM_INFO_WIDGET_HXX
|
||||||
|
@ -37,7 +37,6 @@ class RomInfoWidget : public Widget
|
||||||
|
|
||||||
void setProperties(const Properties& props);
|
void setProperties(const Properties& props);
|
||||||
void clearProperties();
|
void clearProperties();
|
||||||
void initialize();
|
|
||||||
void loadConfig();
|
void loadConfig();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
@ -48,16 +47,17 @@ class RomInfoWidget : public Widget
|
||||||
static bool isValidPNGHeader(uInt8* header);
|
static bool isValidPNGHeader(uInt8* header);
|
||||||
static void readPNGChunk(ifstream& in, string& type, uInt8** data, int& size);
|
static void readPNGChunk(ifstream& in, string& type, uInt8** data, int& size);
|
||||||
static bool parseIHDR(int& width, int& height, uInt8* data, int size);
|
static bool parseIHDR(int& width, int& height, uInt8* data, int size);
|
||||||
// static bool parseIDATChunk(const FrameBuffer& fb, GUI::Surface* surface,
|
static bool parseIDATChunk(FBSurface* surface, int width, int height,
|
||||||
// int width, int height, uInt8* data, int size);
|
uInt8* data, int size);
|
||||||
static string parseTextChunk(uInt8* data, int size);
|
static string parseTextChunk(uInt8* data, int size);
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Surface holding the scaled PNG image
|
// Surface id and pointer holding the scaled PNG image
|
||||||
// GUI::Surface* mySurface;
|
FBSurface* mySurface;
|
||||||
|
int mySurfaceID;
|
||||||
|
|
||||||
// Whether the surface should be redrawn by drawWidget()
|
// Whether the surface should be redrawn by drawWidget()
|
||||||
bool myDrawSurface;
|
bool mySurfaceIsValid;
|
||||||
|
|
||||||
// Some ROM properties info, as well as 'tEXt' chunks from the PNG image
|
// Some ROM properties info, as well as 'tEXt' chunks from the PNG image
|
||||||
StringList myRomInfo;
|
StringList myRomInfo;
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: UIDialog.cxx,v 1.15 2008-07-25 12:41:41 stephena Exp $
|
// $Id: UIDialog.cxx,v 1.16 2008-12-29 20:42:15 stephena Exp $
|
||||||
//
|
//
|
||||||
// Based on code from ScummVM - Scumm Interpreter
|
// Based on code from ScummVM - Scumm Interpreter
|
||||||
// Copyright (C) 2002-2004 The ScummVM project
|
// Copyright (C) 2002-2004 The ScummVM project
|
||||||
|
@ -96,6 +96,7 @@ UIDialog::UIDialog(OSystem* osystem, DialogContainer* parent,
|
||||||
ypos += lineHeight + 4;
|
ypos += lineHeight + 4;
|
||||||
|
|
||||||
// Launcher font
|
// Launcher font
|
||||||
|
pwidth = font.getStringWidth("2x (1000x800)");
|
||||||
items.clear();
|
items.clear();
|
||||||
items.push_back("Small", "small");
|
items.push_back("Small", "small");
|
||||||
items.push_back("Large", "large");
|
items.push_back("Large", "large");
|
||||||
|
@ -106,10 +107,14 @@ UIDialog::UIDialog(OSystem* osystem, DialogContainer* parent,
|
||||||
ypos += lineHeight + 4;
|
ypos += lineHeight + 4;
|
||||||
|
|
||||||
// ROM launcher info/snapshot viewer
|
// ROM launcher info/snapshot viewer
|
||||||
xpos += ((_w - 40 - font.getStringWidth("ROM Info viewer")) >> 1);
|
items.clear();
|
||||||
myRomViewerCheckbox = new CheckboxWidget(myTab, font, xpos, ypos,
|
items.push_back("Off", "0");
|
||||||
"ROM Info viewer", 0);
|
items.push_back("1x (640x480) ", "1");
|
||||||
wid.push_back(myRomViewerCheckbox);
|
items.push_back("2x (1000x800)", "2");
|
||||||
|
myRomViewerPopup =
|
||||||
|
new PopUpWidget(myTab, font, xpos, ypos+1, pwidth, lineHeight, items,
|
||||||
|
"ROM Info viewer: ", lwidth);
|
||||||
|
wid.push_back(myRomViewerPopup);
|
||||||
|
|
||||||
// Add message concerning usage
|
// Add message concerning usage
|
||||||
xpos = vBorder; ypos += 2*(lineHeight + 4);
|
xpos = vBorder; ypos += 2*(lineHeight + 4);
|
||||||
|
@ -126,6 +131,7 @@ UIDialog::UIDialog(OSystem* osystem, DialogContainer* parent,
|
||||||
wid.clear();
|
wid.clear();
|
||||||
tabID = myTab->addTab(" Debugger ");
|
tabID = myTab->addTab(" Debugger ");
|
||||||
lwidth = font.getStringWidth("Debugger Height: ");
|
lwidth = font.getStringWidth("Debugger Height: ");
|
||||||
|
pwidth = font.getStringWidth("Standard");
|
||||||
xpos = ypos = vBorder;
|
xpos = ypos = vBorder;
|
||||||
|
|
||||||
// Debugger width and height
|
// Debugger width and height
|
||||||
|
@ -248,11 +254,12 @@ void UIDialog::loadConfig()
|
||||||
myLauncherHeightLabel->setValue(h);
|
myLauncherHeightLabel->setValue(h);
|
||||||
|
|
||||||
// Launcher font
|
// Launcher font
|
||||||
const string& s = instance().settings().getString("launcherfont");
|
const string& font = instance().settings().getString("launcherfont");
|
||||||
myLauncherFontPopup->setSelected(s, "small");
|
myLauncherFontPopup->setSelected(font, "small");
|
||||||
|
|
||||||
// ROM launcher info viewer
|
// ROM launcher info viewer
|
||||||
myRomViewerCheckbox->setState(instance().settings().getBool("romviewer"));
|
const string& viewer = instance().settings().getString("romviewer");
|
||||||
|
myRomViewerPopup->setSelected(viewer, "0");
|
||||||
|
|
||||||
// Debugger size
|
// Debugger size
|
||||||
instance().settings().getSize("debuggerres", w, h);
|
instance().settings().getSize("debuggerres", w, h);
|
||||||
|
@ -291,7 +298,8 @@ void UIDialog::saveConfig()
|
||||||
myLauncherFontPopup->getSelectedTag());
|
myLauncherFontPopup->getSelectedTag());
|
||||||
|
|
||||||
// ROM launcher info viewer
|
// ROM launcher info viewer
|
||||||
instance().settings().setBool("romviewer", myRomViewerCheckbox->getState());
|
instance().settings().setString("romviewer",
|
||||||
|
myRomViewerPopup->getSelectedTag());
|
||||||
|
|
||||||
// Debugger size
|
// Debugger size
|
||||||
instance().settings().setSize("debuggerres",
|
instance().settings().setSize("debuggerres",
|
||||||
|
@ -320,7 +328,8 @@ void UIDialog::setDefaults()
|
||||||
myLauncherWidthLabel->setValue(w);
|
myLauncherWidthLabel->setValue(w);
|
||||||
myLauncherHeightSlider->setValue(h);
|
myLauncherHeightSlider->setValue(h);
|
||||||
myLauncherHeightLabel->setValue(h);
|
myLauncherHeightLabel->setValue(h);
|
||||||
myRomViewerCheckbox->setState(false);
|
myLauncherFontPopup->setSelected("small", "");
|
||||||
|
myRomViewerPopup->setSelected("0", "");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -13,7 +13,7 @@
|
||||||
// See the file "license" for information on usage and redistribution of
|
// See the file "license" for information on usage and redistribution of
|
||||||
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
// this file, and for a DISCLAIMER OF ALL WARRANTIES.
|
||||||
//
|
//
|
||||||
// $Id: UIDialog.hxx,v 1.8 2008-03-23 16:22:46 stephena Exp $
|
// $Id: UIDialog.hxx,v 1.9 2008-12-29 20:42:15 stephena Exp $
|
||||||
//
|
//
|
||||||
// Based on code from ScummVM - Scumm Interpreter
|
// Based on code from ScummVM - Scumm Interpreter
|
||||||
// Copyright (C) 2002-2004 The ScummVM project
|
// Copyright (C) 2002-2004 The ScummVM project
|
||||||
|
@ -50,7 +50,7 @@ class UIDialog : public Dialog
|
||||||
SliderWidget* myLauncherHeightSlider;
|
SliderWidget* myLauncherHeightSlider;
|
||||||
StaticTextWidget* myLauncherHeightLabel;
|
StaticTextWidget* myLauncherHeightLabel;
|
||||||
PopUpWidget* myLauncherFontPopup;
|
PopUpWidget* myLauncherFontPopup;
|
||||||
CheckboxWidget* myRomViewerCheckbox;
|
PopUpWidget* myRomViewerPopup;
|
||||||
|
|
||||||
// Debugger options
|
// Debugger options
|
||||||
SliderWidget* myDebuggerWidthSlider;
|
SliderWidget* myDebuggerWidthSlider;
|
||||||
|
|
Loading…
Reference in New Issue