Jeck - Keypad and deck editor fixes.
* Fixed a call to profileFile() in deck editor that was using the wrong form. * Spacebar works, keypad now does smart capitalization (switches to lower case on second letter)
This commit is contained in:
@@ -1,69 +1,69 @@
|
||||
#ifndef _SIMPLEPAD_H_
|
||||
#define _SIMPLEPAD_H_
|
||||
|
||||
#include <string>
|
||||
#include <JGui.h>
|
||||
#include <JLBFont.h>
|
||||
#include "hge/hgeparticle.h"
|
||||
|
||||
enum SIMPLE_KEYS{
|
||||
KPD_A, KPD_B, KPD_C, KPD_D, KPD_E, KPD_F,
|
||||
KPD_G, KPD_H, KPD_I, KPD_J, KPD_K, KPD_L,
|
||||
KPD_M, KPD_N, KPD_O, KPD_P, KPD_Q, KPD_R,
|
||||
KPD_S, KPD_T, KPD_U, KPD_V, KPD_W, KPD_X,
|
||||
KPD_Y, KPD_Z, KPD_SPACE, KPD_OK, KPD_CANCEL,
|
||||
KPD_DEL, KPD_CAPS, KPD_0, KPD_1, KPD_2, KPD_3,
|
||||
KPD_4, KPD_5, KPD_6, KPD_7, KPD_8, KPD_9,
|
||||
KPD_MAX,
|
||||
KPD_NOWHERE = 254,
|
||||
KPD_INPUT = 255,
|
||||
};
|
||||
|
||||
struct SimpleKey{
|
||||
SimpleKey( string _ds, int _id);
|
||||
string displayValue;
|
||||
unsigned char id;
|
||||
unsigned char adjacency[4];
|
||||
};
|
||||
|
||||
class SimplePad{
|
||||
public:
|
||||
friend class GameSettings;
|
||||
|
||||
string buffer;
|
||||
string title;
|
||||
unsigned int cursorPos();
|
||||
bool isActive() {return bActive;};
|
||||
void Render();
|
||||
void Update(float dt);
|
||||
void pressKey(unsigned char id);
|
||||
|
||||
|
||||
|
||||
SimplePad();
|
||||
~SimplePad();
|
||||
|
||||
int mX; int mY;
|
||||
|
||||
private:
|
||||
void linkKeys(int from, int to, int dir);
|
||||
SimpleKey * Add(string display, unsigned char id);
|
||||
void MoveSelection(unsigned char dir);
|
||||
void Start(string value, string * _dest=NULL);
|
||||
string Finish();
|
||||
|
||||
bool bActive;
|
||||
bool bCapslock;
|
||||
bool bShowCancel, bShowNumpad;
|
||||
bool bCanceled;
|
||||
int nbitems;
|
||||
unsigned int cursor;
|
||||
int selected;
|
||||
int priorKey; //The prior key from those places.
|
||||
SimpleKey * keys[KPD_MAX];
|
||||
string * dest;
|
||||
string original; //For cancelling.
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
#ifndef _SIMPLEPAD_H_
|
||||
#define _SIMPLEPAD_H_
|
||||
|
||||
#include <string>
|
||||
#include <JGui.h>
|
||||
#include <JLBFont.h>
|
||||
#include "hge/hgeparticle.h"
|
||||
|
||||
enum SIMPLE_KEYS{
|
||||
KPD_A, KPD_B, KPD_C, KPD_D, KPD_E, KPD_F,
|
||||
KPD_G, KPD_H, KPD_I, KPD_J, KPD_K, KPD_L,
|
||||
KPD_M, KPD_N, KPD_O, KPD_P, KPD_Q, KPD_R,
|
||||
KPD_S, KPD_T, KPD_U, KPD_V, KPD_W, KPD_X,
|
||||
KPD_Y, KPD_Z, KPD_SPACE, KPD_OK, KPD_CANCEL,
|
||||
KPD_DEL, KPD_CAPS, KPD_0, KPD_1, KPD_2, KPD_3,
|
||||
KPD_4, KPD_5, KPD_6, KPD_7, KPD_8, KPD_9,
|
||||
KPD_MAX,
|
||||
KPD_NOWHERE = 254,
|
||||
KPD_INPUT = 255,
|
||||
};
|
||||
|
||||
struct SimpleKey{
|
||||
SimpleKey( string _ds, int _id);
|
||||
string displayValue;
|
||||
unsigned char id;
|
||||
unsigned char adjacency[4];
|
||||
};
|
||||
|
||||
class SimplePad{
|
||||
public:
|
||||
friend class GameSettings;
|
||||
|
||||
string buffer;
|
||||
string title;
|
||||
unsigned int cursorPos();
|
||||
bool isActive() {return bActive;};
|
||||
void Render();
|
||||
void Update(float dt);
|
||||
void pressKey(unsigned char id);
|
||||
|
||||
|
||||
|
||||
SimplePad();
|
||||
~SimplePad();
|
||||
|
||||
int mX; int mY;
|
||||
|
||||
private:
|
||||
void linkKeys(int from, int to, int dir);
|
||||
SimpleKey * Add(string display, unsigned char id);
|
||||
void MoveSelection(unsigned char dir);
|
||||
void Start(string value, string * _dest=NULL);
|
||||
string Finish();
|
||||
|
||||
bool bActive;
|
||||
bool bCapslock;
|
||||
bool bShowCancel, bShowNumpad;
|
||||
bool bCanceled;
|
||||
int nbitems;
|
||||
unsigned int cursor;
|
||||
int selected;
|
||||
int priorKey; //The prior key from those places.
|
||||
SimpleKey * keys[KPD_MAX];
|
||||
string * dest;
|
||||
string original; //For cancelling.
|
||||
};
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
@@ -98,7 +98,7 @@ void GameStateDeckViewer::Start()
|
||||
|
||||
menu = NEW SimpleMenu(11,this,menuFont,SCREEN_WIDTH/2-100,20);
|
||||
menu->Add(11,"Save");
|
||||
menu->Add(12,"Rename deck");
|
||||
menu->Add(12,"Save & Rename");
|
||||
menu->Add(13,"Switch decks without saving");
|
||||
menu->Add(14,"Back to main menu");
|
||||
menu->Add(15,"Cancel");
|
||||
@@ -216,8 +216,10 @@ void GameStateDeckViewer::Update(float dt)
|
||||
|
||||
if(newDeckname != ""){
|
||||
loadDeck(deckNum);
|
||||
if(myDeck && myDeck->parent)
|
||||
if(myDeck && myDeck->parent){
|
||||
myDeck->parent->meta_name = newDeckname;
|
||||
myDeck->save();
|
||||
}
|
||||
}
|
||||
newDeckname = "";
|
||||
}
|
||||
@@ -708,7 +710,7 @@ int GameStateDeckViewer::loadDeck(int deckid){
|
||||
char deckname[256];
|
||||
sprintf(deckname,"deck%i.txt",deckid);
|
||||
SAFE_DELETE(myDeck);
|
||||
myDeck = NEW DeckDataWrapper(NEW MTGDeck(options.profileFile(deckname).c_str(), mParent->collection));
|
||||
myDeck = NEW DeckDataWrapper(NEW MTGDeck(options.profileFile(deckname,"",false,false).c_str(), mParent->collection));
|
||||
MTGCard * current = myDeck->getNext();
|
||||
while (current){
|
||||
int howmanyinDeck = myDeck->cards[current];
|
||||
|
||||
@@ -145,6 +145,15 @@ void SimplePad::pressKey(unsigned char key){
|
||||
cursor++;
|
||||
|
||||
buffer.insert(cursor,input);
|
||||
|
||||
//Auto swap capitalization
|
||||
if(bCapslock && buffer.size() == 1)
|
||||
bCapslock = !bCapslock;
|
||||
}
|
||||
else if(key == KPD_SPACE){
|
||||
if(cursor < buffer.size())
|
||||
cursor++;
|
||||
buffer.insert(cursor," ");
|
||||
}
|
||||
else if(key == KPD_CAPS)
|
||||
bCapslock = !bCapslock;
|
||||
|
||||
Reference in New Issue
Block a user