00001
00011 #include "textfield.h"
00012 #include "component.h"
00013
00014 #ifdef __cplusplus
00015 extern "C" {
00016 #endif
00017
00025 jobject getTextFieldObject(TextField* textfield) {
00026 return textfield->textfield.textfield;
00027 }
00028
00037 void setTextFieldText(TextField* textfield, const char* text) {
00038 jstring jtext = createJString(text);
00039 callVoidMethod(textfield->textfield.textfield, textfield->textfield.msetText, jtext);
00040 deleteGlobalReference(jtext);
00041 }
00042
00052 char* getTextFieldText(TextField* textfield) {
00053 char* text;
00054 jstring jtext;
00055 jtext = (jstring) callObjectMethod(textfield->textfield.textfield, textfield->textfield.mgetText);
00056 text = convertJString(jtext);
00057 deleteLocalReference(jtext);
00058 return text;
00059 }
00060
00071 void setTextFieldSize(TextField* textfield, jint width, jint height) {
00072 setSize(textfield->textfield.textfield, width, height);
00073 }
00074
00085 jint getTextFieldWidth(TextField* textfield) {
00086 return getWidth(textfield->textfield.textfield);
00087 }
00088
00099 jint getTextFieldHeight(TextField* textfield) {
00100 return getHeight(textfield->textfield.textfield);
00101 }
00102
00113 void setTextFieldLocation(TextField* textfield, jint x, jint y) {
00114 setLocation(textfield->textfield.textfield, x, y);
00115 }
00116
00127 jint getTextFieldX(TextField* textfield) {
00128 return getX(textfield->textfield.textfield);
00129 }
00130
00141 jint getTextFieldY(TextField* textfield) {
00142 return getY(textfield->textfield.textfield);
00143 }
00144
00154 jint getTextFieldColumns(TextField* textfield) {
00155 return callIntMethod(textfield->textfield.textfield, textfield->textfield.mgetColumns);
00156 }
00157
00166 void setTextFieldColumns(TextField* textfield, jint columns) {
00167 callVoidMethod(textfield->textfield.textfield, textfield->textfield.msetColumns, columns);
00168 }
00169
00175 void initTextField_(TextField_* textfield) {
00176 textfield->getObject = &getTextFieldObject;
00177 textfield->setText = &setTextFieldText;
00178 textfield->getText = &getTextFieldText;
00179
00180 textfield->setSize = &setTextFieldSize;
00181 textfield->getWidth = &getTextFieldWidth;
00182 textfield->getHeight = &getTextFieldHeight;
00183 textfield->setLocation = &setTextFieldLocation;
00184 textfield->getX = &getTextFieldX;
00185 textfield->getY = &getTextFieldY;
00186 textfield->getColumns = &getTextFieldColumns;
00187 textfield->setColumns = &setTextFieldColumns;
00188 }
00189
00196 void createTextField_(TextField* textfield) {
00197 textfield->textfield.clstextfield = findClass(CLS_TEXTFIELD);
00198 textfield->textfield.mgetText = findMethod(textfield->textfield.clstextfield, "getText", "()Ljava/lang/String;");
00199 textfield->textfield.msetText = findMethod(textfield->textfield.clstextfield, "setText", "(Ljava/lang/String;)V");
00200 textfield->textfield.msetColumns = findMethod(textfield->textfield.clstextfield, "setColumns", "(I)V");
00201 textfield->textfield.mgetColumns = findMethod(textfield->textfield.clstextfield, "getColumns", "()I");
00202
00203 textfield->textfield.textfield = newObjectBySignature(textfield->textfield.clstextfield, "()V");
00204 }
00205
00212 void createTextFieldCPP(TextFieldCPP_* textfield) {
00213 textfield->functions = (TextField_*)malloc(sizeof(TextField_));
00214 initTextField_(textfield->functions);
00215 createTextField_((TextField*)textfield);
00216 }
00217
00224 void createTextFieldC(TextField_* textfield) {
00225 initTextField_(textfield);
00226 createTextField_((TextField*)textfield);
00227 }
00228
00234 void deleteTextField_(TextField* textfield) {
00235 deleteGlobalReference(textfield->textfield.textfield);
00236 deleteGlobalReference(textfield->textfield.clstextfield);
00237 }
00238
00244 void deleteTextFieldCPP(TextFieldCPP_* textfield) {
00245 deleteTextField_((TextField*)textfield);
00246 free(textfield->functions);
00247 }
00248
00254 void deleteTextFieldC(TextField_* textfield) {
00255 deleteTextField_((TextField*)textfield);
00256 }
00257
00258 #ifdef __cplusplus
00259 }
00260 #endif
00261
00262