aboutsummaryrefslogtreecommitdiff
path: root/engines/cge/gettext.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'engines/cge/gettext.cpp')
-rw-r--r--engines/cge/gettext.cpp174
1 files changed, 79 insertions, 95 deletions
diff --git a/engines/cge/gettext.cpp b/engines/cge/gettext.cpp
index 892ef5ee73..78cc0356a1 100644
--- a/engines/cge/gettext.cpp
+++ b/engines/cge/gettext.cpp
@@ -25,113 +25,97 @@
* Copyright (c) 1994-1995 Janus B. Wisniewski and L.K. Avalon
*/
-#include "cge/gettext.h"
-#include "cge/keybd.h"
-#include "cge/mouse.h"
-#include <string.h>
+#include "cge/gettext.h"
+#include "cge/keybd.h"
+#include "cge/mouse.h"
+#include <string.h>
namespace CGE {
-GET_TEXT * GET_TEXT::Ptr = NULL;
-
-
-
-GET_TEXT::GET_TEXT (const char * info, char * text, int size, void (*click)(void))
-: Text(text), Size(min<int>(size, GTMAX)), Len(min<int>(Size, strlen(text))),
- Cntr(GTBLINK), Click(click), OldKeybClient(KEYBOARD::SetClient(this))
-{
- int i = 2 * TEXT_HM + Font.Width(info);
- Ptr = this;
- Mode = RECT;
- TS[0] = Box((i + 3) & ~3, 2 * TEXT_VM + 2 * FONT_HIG + TEXT_LS);
- SetShapeList(TS);
- Flags.BDel = true;
- Flags.Kill = true;
- memcpy(Buff, text, Len);
- Buff[Len] = ' ';
- Buff[Len+1] = '\0';
- PutLine(0, info);
- Tick();
+GET_TEXT *GET_TEXT::Ptr = NULL;
+
+
+GET_TEXT::GET_TEXT(const char *info, char *text, int size, void (*click)(void))
+ : Text(text), Size(min<int>(size, GTMAX)), Len(min<int>(Size, strlen(text))),
+ Cntr(GTBLINK), Click(click), OldKeybClient(KEYBOARD::SetClient(this)) {
+ int i = 2 * TEXT_HM + Font.Width(info);
+ Ptr = this;
+ Mode = RECT;
+ TS[0] = Box((i + 3) & ~3, 2 * TEXT_VM + 2 * FONT_HIG + TEXT_LS);
+ SetShapeList(TS);
+ Flags.BDel = true;
+ Flags.Kill = true;
+ memcpy(Buff, text, Len);
+ Buff[Len] = ' ';
+ Buff[Len + 1] = '\0';
+ PutLine(0, info);
+ Tick();
}
-
-
-
-
-GET_TEXT::~GET_TEXT (void)
-{
- KEYBOARD::SetClient(OldKeybClient);
- Ptr = NULL;
+GET_TEXT::~GET_TEXT(void) {
+ KEYBOARD::SetClient(OldKeybClient);
+ Ptr = NULL;
}
-
-
-
-
-void GET_TEXT::Tick (void)
-{
- if (++ Cntr >= GTBLINK)
- {
- Buff[Len] ^= (' ' ^ '_');
- Cntr = 0;
- }
- PutLine(1, Buff);
- Time = GTTIME;
+void GET_TEXT::Tick(void) {
+ if (++ Cntr >= GTBLINK) {
+ Buff[Len] ^= (' ' ^ '_');
+ Cntr = 0;
+ }
+ PutLine(1, Buff);
+ Time = GTTIME;
}
-
-
-void GET_TEXT::Touch (uint16 mask, int x, int y)
-{
- static char ogon[] = "";
- static char bezo[] = "ACELNOSXZ";
- char * p;
-
- if (mask & KEYB)
- {
- if (Click) Click();
- switch (x)
- {
- case Enter : Buff[Len] = '\0'; strcpy(Text, Buff);
- for (p = Text; *p; p ++)
- {
- char * q = strchr(ogon, *p);
- if (q) *p = bezo[q-ogon];
- }
- case Esc : SNPOST_(SNKILL, -1, 0, this); break;
- case BSp : if (Len)
- {
- -- Len;
- Buff[Len] = Buff[Len+1];
- Buff[Len+1] = Buff[Len+2];
- }
- break;
- default : if (x < 'A' || x > 'Z')
- {
- if (OldKeybClient)
- OldKeybClient->Touch(mask, x, y);
- }
- else
- {
- if (KEYBOARD::Key[ALT])
- {
- p = strchr(bezo, x);
- if (p) x = ogon[p-bezo];
- }
- if (Len < Size && 2 * TEXT_HM + Font.Width(Buff) + Font.Wid[x] <= W)
- {
- Buff[Len+2] = Buff[Len+1];
- Buff[Len+1] = Buff[Len];
- Buff[Len ++] = x;
- }
- }
- break;
- }
- }
- else SPRITE::Touch(mask, x, y);
+void GET_TEXT::Touch(uint16 mask, int x, int y) {
+ static char ogon[] = "";
+ static char bezo[] = "ACELNOSXZ";
+ char *p;
+
+ if (mask & KEYB) {
+ if (Click)
+ Click();
+ switch (x) {
+ case Enter :
+ Buff[Len] = '\0';
+ strcpy(Text, Buff);
+ for (p = Text; *p; p ++) {
+ char *q = strchr(ogon, *p);
+ if (q)
+ *p = bezo[q - ogon];
+ }
+ case Esc :
+ SNPOST_(SNKILL, -1, 0, this);
+ break;
+ case BSp :
+ if (Len) {
+ --Len;
+ Buff[Len] = Buff[Len + 1];
+ Buff[Len + 1] = Buff[Len + 2];
+ }
+ break;
+ default :
+ if (x < 'A' || x > 'Z') {
+ if (OldKeybClient)
+ OldKeybClient->Touch(mask, x, y);
+ } else {
+ if (KEYBOARD::Key[ALT]) {
+ p = strchr(bezo, x);
+ if (p)
+ x = ogon[p - bezo];
+ }
+ if (Len < Size && 2 * TEXT_HM + Font.Width(Buff) + Font.Wid[x] <= W) {
+ Buff[Len + 2] = Buff[Len + 1];
+ Buff[Len + 1] = Buff[Len];
+ Buff[Len ++] = x;
+ }
+ }
+ break;
+ }
+ } else
+ SPRITE::Touch(mask, x, y);
}
} // End of namespace CGE