void DrawTransparentBitmapDeprecated(uint32 * screen, uint32 x, uint32 y, uint32 * bitmap);
void DrawTransparentBitmap(uint32 * screen, uint32 x, uint32 y, const void * bitmap);
void DrawBitmap(uint32 * screen, uint32 x, uint32 y, const void * bitmap);
-void ClearScreenRectangle(uint32 * screen, uint32 x, uint32 y, uint32 w, uint32 h);
+//Should call this FillScreenRectangle with a number representing the RGBA value to fill. !!! FIX !!!
+//void ClearScreenRectangle(uint32 * screen, uint32 x, uint32 y, uint32 w, uint32 h);
+void FillScreenRectangle(uint32 * screen, uint32 x, uint32 y, uint32 w, uint32 h, uint32 color);
void DrawStringTrans(uint32 * screen, uint32 x, uint32 y, uint32 color, uint8 opacity, const char * text, ...);
void DrawStringOpaque(uint32 * screen, uint32 x, uint32 y, uint32 color1, uint32 color2, const char * text, ...);
void DrawString(uint32 * screen, uint32 x, uint32 y, bool invert, const char * text, ...);
{
public:
TextEdit(uint32 x = 0, uint32 y = 0, uint32 w = 0, uint32 h = 0): Element(x, y, w, h),
- fgColor(0xFF8484FF), bgColor(0xFF84FF4D), text(""), caretPos(0) {}
- TextEdit(uint32 x, uint32 y, string s, uint32 fg = 0xFF8484FF, uint32 bg = 0xFF84FF4D):
- Element(x, y, 0, 0), fgColor(fg), bgColor(bg), text(s), caretPos(0) {}
+ fgColor(0xFF8484FF), bgColor(0xFF84FF4D), text(""), caretPos(0),
+ maxScreenSize(10) {}
+ TextEdit(uint32 x, uint32 y, string s, uint32 mss = 10, uint32 fg = 0xFF8484FF,
+ uint32 bg = 0xFF84FF4D): Element(x, y, 0, 0), fgColor(fg), bgColor(bg), text(s),
+ caretPos(0), maxScreenSize(mss) {}
virtual void HandleKey(SDLKey key);
virtual void HandleMouseMove(uint32 x, uint32 y) {}
virtual void HandleMouseButton(uint32 x, uint32 y, bool mouseDown) {}
uint32 fgColor, bgColor;
string text;
uint32 caretPos;
+ uint32 maxScreenSize;
};
//Set different filters depending on type passed in on construction, e.g., filename, amount, etc...?
{
//Need to handle shift key as well...
text[caretPos++] = key;
+ Draw();
}
else if (key == SDLK_BACKSPACE)
{
+
}
else if (key == SDLK_DELETE)
{
void TextEdit::Draw(uint32 offsetX/*= 0*/, uint32 offsetY/*= 0*/)
{
if (text.length() > 0)
+ {
+ FillScreenRectangle(screenBuffer, extents.x + offsetX, extents.y + offsetY, FONT_WIDTH * maxScreenSize, FONT_HEIGHT, bgColor);
// DrawString(screenBuffer, extents.x + offsetX, extents.y + offsetY, false, "%s", text.c_str());
DrawStringOpaque(screenBuffer, extents.x + offsetX, extents.y + offsetY, fgColor, bgColor, "%s", text.c_str());
+ }
+
+ // Draw the caret (underscore? or vertical line?)
}
}
//
-// Clear a portion of the screen
+// Fill a portion of the screen with the passed in color
//
-void ClearScreenRectangle(uint32 * screen, uint32 x, uint32 y, uint32 w, uint32 h)
+void FillScreenRectangle(uint32 * screen, uint32 x, uint32 y, uint32 w, uint32 h, uint32 color)
+//void ClearScreenRectangle(uint32 * screen, uint32 x, uint32 y, uint32 w, uint32 h)
{
uint32 pitch = sdlemuGetOverlayWidthInPixels();
uint32 address = x + (y * pitch);
for(uint32 yy=0; yy<h; yy++)
for(uint32 xx=0; xx<w; xx++)
- *(screen + address + xx + (yy * pitch)) = 0;
+ *(screen + address + xx + (yy * pitch)) = color;
}
// doDSPDis = true;
//Problem: Need to do this *only* when the state changes from visible to not...
+//Also, need to clear out the GUI when not on (when showMessage is active...)
if (showGUI || showMessage)
sdlemuEnableOverlay();
else
// Some QnD GUI stuff here...
if (showGUI)
{
- ClearScreenRectangle(overlayPixels, 8, 1*FONT_HEIGHT, 128, 4*FONT_HEIGHT);
+ FillScreenRectangle(overlayPixels, 8, 1*FONT_HEIGHT, 128, 4*FONT_HEIGHT, 0x00000000);
extern uint32 gpu_pc, dsp_pc;
DrawString(overlayPixels, 8, 1*FONT_HEIGHT, false, "GPU PC: %08X", gpu_pc);
DrawString(overlayPixels, 8, 2*FONT_HEIGHT, false, "DSP PC: %08X", dsp_pc);
window->AddElement(new SlideSwitch(8, 120, (bool *)&vjs.glFilter, "Sharp", "Blurry"));
window->AddElement(new SlideSwitch(8, 152, (bool *)&vjs.renderType, "Normal render", "TV style"));
+ window->AddElement(new TextEdit(88, 8, vjs.ROMPath, 20, 0xFF8484FF, 0xFF000000));
+
+/*TextEdit(uint32 x, uint32 y, string s, uint32 mss = 10, uint32 fg = 0xFF8484FF,
+ uint32 bg = 0xFF84FF4D): Element(x, y, 0, 0), fgColor(fg), bgColor(bg), text(s),
+ caretPos(0), maxScreenSize(mss) {}*/
// Missing:
// * BIOS path
// * ROM path