00001
00011 #include "textarea.h"
00012 #include "component.h"
00013
00014 #ifdef __cplusplus
00015 extern "C" {
00016 #endif
00017
00025 jobject getTextAreaObject(TextArea* textarea) {
00026 return textarea->textarea.textarea;
00027 }
00028
00037 void setTextAreaText(TextArea* textarea, const char* text) {
00038 jstring jtext = createJString(text);
00039 callVoidMethod(textarea->textarea.textarea, textarea->textarea.msetText, jtext);
00040 deleteGlobalReference(jtext);
00041 }
00042
00052 char* getTextAreaText(TextArea* textarea) {
00053 char* text;
00054 jstring jtext;
00055 jtext = (jstring) callObjectMethod(textarea->textarea.textarea, textarea->textarea.mgetText);
00056 text = convertJString(jtext);
00057 deleteLocalReference(jtext);
00058 return text;
00059 }
00060
00071 void setTextAreaSize(TextArea* textarea, jint width, jint height) {
00072 setSize(textarea->textarea.textarea, width, height);
00073 }
00074
00085 jint getTextAreaWidth(TextArea* textarea) {
00086 return getWidth(textarea->textarea.textarea);
00087 }
00088
00099 jint getTextAreaHeight(TextArea* textarea) {
00100 return getHeight(textarea->textarea.textarea);
00101 }
00102
00113 void setTextAreaLocation(TextArea* textarea, jint x, jint y) {
00114 setLocation(textarea->textarea.textarea, x, y);
00115 }
00116
00127 jint getTextAreaX(TextArea* textarea) {
00128 return getX(textarea->textarea.textarea);
00129 }
00130
00141 jint getTextAreaY(TextArea* textarea) {
00142 return getY(textarea->textarea.textarea);
00143 }
00144
00154 jint getTextAreaColumns(TextArea* textarea) {
00155 return callIntMethod(textarea->textarea.textarea, textarea->textarea.mgetColumns);
00156 }
00157
00166 void setTextAreaColumns(TextArea* textarea, jint columns) {
00167 callVoidMethod(textarea->textarea.textarea, textarea->textarea.msetColumns, columns);
00168 }
00169
00179 jint getTextAreaRows(TextArea* textarea) {
00180 return callIntMethod(textarea->textarea.textarea, textarea->textarea.mgetRows);
00181 }
00182
00191 void setTextAreaRows(TextArea* textarea, jint rows) {
00192 callVoidMethod(textarea->textarea.textarea, textarea->textarea.msetRows, rows);
00193 }
00194
00200 void initTextArea_(TextArea_* textarea) {
00201 textarea->getObject = &getTextAreaObject;
00202 textarea->setText = &setTextAreaText;
00203 textarea->getText = &getTextAreaText;
00204
00205 textarea->setSize = &setTextAreaSize;
00206 textarea->getWidth = &getTextAreaWidth;
00207 textarea->getHeight = &getTextAreaHeight;
00208 textarea->setLocation = &setTextAreaLocation;
00209 textarea->getX = &getTextAreaX;
00210 textarea->getY = &getTextAreaY;
00211 textarea->getColumns = &getTextAreaColumns;
00212 textarea->setColumns = &setTextAreaColumns;
00213 textarea->setRows = &setTextAreaRows;
00214 textarea->getRows = &getTextAreaRows;
00215 }
00216
00223 void createTextArea_(TextArea* textarea) {
00224 textarea->textarea.clstextarea = findClass(CLS_TEXTAREA);
00225 textarea->textarea.mgetText = findMethod(textarea->textarea.clstextarea, "getText", "()Ljava/lang/String;");
00226 textarea->textarea.msetText = findMethod(textarea->textarea.clstextarea, "setText", "(Ljava/lang/String;)V");
00227 textarea->textarea.msetColumns = findMethod(textarea->textarea.clstextarea, "setColumns", "(I)V");
00228 textarea->textarea.mgetColumns = findMethod(textarea->textarea.clstextarea, "getColumns", "()I");
00229 textarea->textarea.msetRows = findMethod(textarea->textarea.clstextarea, "setRows", "(I)V");
00230 textarea->textarea.mgetRows = findMethod(textarea->textarea.clstextarea, "getRows", "()I");
00231
00232 textarea->textarea.textarea = newObjectBySignature(textarea->textarea.clstextarea, "()V");
00233 }
00234
00241 void createTextAreaCPP(TextAreaCPP_* textarea) {
00242 textarea->functions = (TextArea_*)malloc(sizeof(TextArea_));
00243 initTextArea_(textarea->functions);
00244 createTextArea_((TextArea*)textarea);
00245 }
00246
00253 void createTextAreaC(TextArea_* textarea) {
00254 initTextArea_(textarea);
00255 createTextArea_((TextArea*)textarea);
00256 }
00257
00263 void deleteTextArea_(TextArea* textarea) {
00264 deleteGlobalReference(textarea->textarea.textarea);
00265 deleteGlobalReference(textarea->textarea.clstextarea);
00266 }
00267
00273 void deleteTextAreaCPP(TextAreaCPP_* textarea) {
00274 deleteTextArea_((TextArea*)textarea);
00275 free(textarea->functions);
00276 }
00277
00283 void deleteTextAreaC(TextArea_* textarea) {
00284 deleteTextArea_((TextArea*)textarea);
00285 }
00286
00287 #ifdef __cplusplus
00288 }
00289 #endif
00290
00291