37 Key thekeys[KB_ROWS][KB_COLUMNS] = {
92 memcpy(keys, thekeys,
sizeof(thekeys));
95 keyTextboxImg =
new GuiImage(keyTextbox);
96 keyTextboxImg->setAlignment(ALIGN_H::CENTRE, ALIGN_V::TOP);
97 keyTextboxImg->setPosition(0, 0);
98 this->
append(keyTextboxImg);
102 kbText->setPosition(0, 13);
108 keyMediumOver =
new GuiImageData(keyboard_mediumkey_over_png);
110 keyLargeOver =
new GuiImageData(keyboard_largekey_over_png);
112 keySoundOver =
new GuiSound(button_over_pcm, button_over_pcm_size, SOUND::PCM);
113 keySoundClick =
new GuiSound(button_click_pcm, button_click_pcm_size, SOUND::PCM);
118 keyBackImg =
new GuiImage(keyMedium);
119 keyBackOverImg =
new GuiImage(keyMediumOver);
121 keyBack =
new GuiButton(keyMedium->getWidth(), keyMedium->getHeight());
122 keyBack->setImage(keyBackImg);
123 keyBack->setImageOver(keyBackOverImg);
124 keyBack->setLabel(keyBackText);
125 keyBack->setSoundOver(keySoundOver);
126 keyBack->setSoundClick(keySoundClick);
132 keyCapsImg =
new GuiImage(keyMedium);
133 keyCapsOverImg =
new GuiImage(keyMediumOver);
135 keyCaps =
new GuiButton(keyMedium->getWidth(), keyMedium->getHeight());
136 keyCaps->setImage(keyCapsImg);
137 keyCaps->setImageOver(keyCapsOverImg);
138 keyCaps->setLabel(keyCapsText);
139 keyCaps->setSoundOver(keySoundOver);
140 keyCaps->setSoundClick(keySoundClick);
146 keyShiftImg =
new GuiImage(keyMedium);
147 keyShiftOverImg =
new GuiImage(keyMediumOver);
149 keyShift =
new GuiButton(keyMedium->getWidth(), keyMedium->getHeight());
150 keyShift->setImage(keyShiftImg);
151 keyShift->setImageOver(keyShiftOverImg);
152 keyShift->setLabel(keyShiftText);
153 keyShift->setSoundOver(keySoundOver);
154 keyShift->setSoundClick(keySoundClick);
160 keySpaceImg =
new GuiImage(keyLarge);
161 keySpaceOverImg =
new GuiImage(keyLargeOver);
162 keySpace =
new GuiButton(keyLarge->getWidth(), keyLarge->getHeight());
163 keySpace->setImage(keySpaceImg);
164 keySpace->setImageOver(keySpaceOverImg);
165 keySpace->setSoundOver(keySoundOver);
166 keySpace->setSoundClick(keySoundClick);
167 keySpace->setTrigger(trigA);
168 keySpace->setPosition(0, 4*42+80);
169 keySpace->setAlignment(ALIGN_H::CENTRE, ALIGN_V::TOP);
170 keySpace->setEffectGrow();
173 char txt[2] = { 0, 0 };
175 for(
int i=0; i<KB_ROWS; i++)
177 for(
int j=0; j<KB_COLUMNS; j++)
179 if(keys[i][j].ch !=
'\0')
181 txt[0] = keys[i][j].ch;
183 keyImgOver[i][j] =
new GuiImage(keyOver);
185 keyTxt[i][j]->
setAlignment(ALIGN_H::CENTRE, ALIGN_V::BOTTOM);
186 keyTxt[i][j]->setPosition(0, -10);
187 keyBtn[i][j] =
new GuiButton(key->getWidth(), key->getHeight());
188 keyBtn[i][j]->setImage(keyImg[i][j]);
189 keyBtn[i][j]->setImageOver(keyImgOver[i][j]);
190 keyBtn[i][j]->setSoundOver(keySoundOver);
191 keyBtn[i][j]->setSoundClick(keySoundClick);
192 keyBtn[i][j]->setTrigger(trigA);
193 keyBtn[i][j]->setLabel(keyTxt[i][j]);
194 keyBtn[i][j]->setPosition(j*42+21*i+40, i*42+80);
195 keyBtn[i][j]->setEffectGrow();
196 this->
append(keyBtn[i][j]);
252 for (uint8_t i = 0; i <
_elements.size(); i++)
259 if(keySpace->getState() == STATE::CLICKED)
262 if(len < kbtextmaxlen-1)
268 keySpace->setState(STATE::SELECTED, c->
getChannel());
270 else if(keyBack->getState() == STATE::CLICKED)
276 kbText->setText(GetDisplayText(
kbtextstr));
278 keyBack->setState(STATE::SELECTED, c->
getChannel());
280 else if(keyShift->getState() == STATE::CLICKED)
283 keyShift->setState(STATE::SELECTED, c->
getChannel());
286 else if(keyCaps->getState() == STATE::CLICKED)
289 keyCaps->setState(STATE::SELECTED, c->
getChannel());
293 char txt[2] = { 0, 0 };
297 for(
int i=0; i<KB_ROWS; i++)
299 for(
int j=0; j<KB_COLUMNS; j++)
301 if(keys[i][j].ch !=
'\0')
306 txt[0] = keys[i][j].chShift;
308 txt[0] = keys[i][j].ch;
310 keyTxt[i][j]->setText(txt);
313 if(keyBtn[i][j]->
getState() == STATE::CLICKED)
317 if(len < kbtextmaxlen-1)
329 kbText->setText(GetDisplayText(
kbtextstr));
330 keyBtn[i][j]->setState(STATE::SELECTED, c->
getChannel());
Display, manage, and manipulate text in the GUI.
void setAlignment(ALIGN_H hor, ALIGN_V vert)
Sets the text alignment.