00001
00012 #ifndef _LABEL_H_
00013 #define _LABEL_H_
00014
00015 #include "../jnilib.h"
00016
00017 #ifdef __cplusplus
00018 extern "C" {
00019 #endif
00020
00022 #define CLS_LABEL "java/awt/Label"
00023
00024 struct Label_;
00025
00026 struct LabelCPP_;
00027
00028 #ifdef __cplusplus
00029 typedef LabelCPP_ Label;
00030 #define createLabel createLabelCPP
00031 #define deleteLabel deleteLabelCPP
00032 #else
00033 typedef struct Label_ Label;
00034 #define createLabel createLabelC
00035 #define deleteLabel deleteLabelC
00036 #endif
00037
00041 typedef struct LabelData {
00042 jclass clslabel;
00043 jobject label;
00044 jmethodID msetText;
00045 jmethodID mgetText;
00046 } LabelData;
00047
00051 typedef struct Label_ {
00052 LabelData label;
00053 jobject (*getObject)(Label* label);
00054 void (*setText)(Label* label, const char* text);
00055 char* (*getText)(Label* label);
00056 void (*setSize)(Label* label, jint width, jint height);
00057 jint (*getHeight)(Label* label);
00058 jint (*getWidth)(Label* label);
00059 void (*setLocation)(Label* label, jint x, jint y);
00060 jint (*getX)(Label* label);
00061 jint (*getY)(Label* label);
00062 } Label_;
00063
00067 typedef struct LabelCPP_ {
00068 LabelData label;
00069 struct Label_ *functions;
00070
00071 #ifdef __cplusplus
00072 jobject getObject() {
00073 return functions->getObject(this);
00074 }
00075
00076 void setText(const char* text) {
00077 functions->setText(this, text);
00078 }
00079
00080 char* getText() {
00081 return functions->getText(this);
00082 }
00083
00084 void setSize(jint width, jint height) {
00085 functions->setSize(this, width, height);
00086 }
00087
00088 jint getHeight() {
00089 return functions->getHeight(this);
00090 }
00091
00092 jint getWidth() {
00093 return functions->getWidth(this);
00094 }
00095
00096 void setLocation(jint x, jint y) {
00097 functions->setLocation(this, x, y);
00098 }
00099
00100 jint getX() {
00101 return functions->getX(this);
00102 }
00103
00104 jint getY() {
00105 return functions->getY(this);
00106 }
00107
00108 #endif
00109 } LabelCPP_;
00110
00111
00112 void createLabelC(Label_* label);
00113 void createLabelCPP(LabelCPP_* label);
00114 void deleteLabelC(Label_* label);
00115 void deleteLabelCPP(LabelCPP_* label);
00116
00117 #ifdef __cplusplus
00118 }
00119 #endif
00120
00121 #endif
00122
00123