00001
00012 #include "label.h"
00013 #include "component.h"
00014
00015 #ifdef __cplusplus
00016 extern "C" {
00017 #endif
00018
00026 jobject getLabelObject(Label* label) {
00027 return label->label.label;
00028 }
00029
00038 void setLabelText(Label* label, const char* text) {
00039 jstring jtext = createJString(text);
00040 callVoidMethod(label->label.label, label->label.msetText, jtext);
00041 deleteGlobalReference(jtext);
00042 }
00043
00053 char* getLabelText(Label* label) {
00054 char* text;
00055 jstring jtext;
00056 jtext = (jstring) callObjectMethod(label->label.label, label->label.mgetText);
00057 text = convertJString(jtext);
00058 deleteLocalReference(jtext);
00059 return text;
00060 }
00061
00072 void setLabelSize(Label* label, jint width, jint height) {
00073 setSize(label->label.label, width, height);
00074 }
00075
00086 jint getLabelWidth(Label* label) {
00087 return getWidth(label->label.label);
00088 }
00089
00100 jint getLabelHeight(Label* label) {
00101 return getHeight(label->label.label);
00102 }
00103
00114 void setLabelLocation(Label* label, jint x, jint y) {
00115 setLocation(label->label.label, x, y);
00116 }
00117
00128 jint getLabelX(Label* label) {
00129 return getX(label->label.label);
00130 }
00131
00142 jint getLabelY(Label* label) {
00143 return getY(label->label.label);
00144 }
00145
00151 void initLabel_(Label_* label) {
00152 label->getObject = &getLabelObject;
00153 label->setText = &setLabelText;
00154 label->getText = &getLabelText;
00155
00156 label->setSize = &setLabelSize;
00157 label->getWidth = &getLabelWidth;
00158 label->getHeight = &getLabelHeight;
00159 label->setLocation = &setLabelLocation;
00160 label->getX = &getLabelX;
00161 label->getY = &getLabelY;
00162 }
00163
00170 void createLabel_(Label* label) {
00171 label->label.clslabel = findClass(CLS_LABEL);
00172 label->label.mgetText = findMethod(label->label.clslabel, "getText", "()Ljava/lang/String;");
00173 label->label.msetText = findMethod(label->label.clslabel, "setText", "(Ljava/lang/String;)V");
00174
00175 label->label.label = newObjectBySignature(label->label.clslabel, "()V");
00176 }
00177
00184 void createLabelCPP(LabelCPP_* label) {
00185 label->functions = (Label_*)malloc(sizeof(Label_));
00186 initLabel_(label->functions);
00187 createLabel_((Label*)label);
00188 }
00189
00196 void createLabelC(Label_* label) {
00197 initLabel_(label);
00198 createLabel_((Label*)label);
00199 }
00200
00206 void deleteLabel_(Label* label) {
00207 deleteGlobalReference(label->label.label);
00208 deleteGlobalReference(label->label.clslabel);
00209 }
00210
00216 void deleteLabelCPP(LabelCPP_* label) {
00217 deleteLabel_((Label*)label);
00218 free(label->functions);
00219 }
00220
00226 void deleteLabelC(Label_* label) {
00227 deleteLabel_((Label*)label);
00228 }
00229
00230 #ifdef __cplusplus
00231 }
00232 #endif
00233
00234