00001
00012 #include "button.h"
00013 #include "component.h"
00014
00015 #ifdef __cplusplus
00016 extern "C" {
00017 #endif
00018
00026 jobject getButtonObject(Button* button) {
00027 return button->button.button;
00028 }
00029
00038 void setButtonLabel(Button* button, const char* label) {
00039 jstring jlabel = createJString(label);
00040 callVoidMethod(button->button.button, button->button.msetLabel, jlabel);
00041 deleteGlobalReference(jlabel);
00042 }
00043
00053 char* getButtonLabel(Button* button) {
00054 char* label;
00055 jstring jlabel;
00056 jlabel = (jstring) callObjectMethod(button->button.button, button->button.mgetLabel);
00057 label = convertJString(jlabel);
00058 deleteLocalReference(jlabel);
00059 return label;
00060 }
00061
00072 void setButtonSize(Button* button, jint width, jint height) {
00073 setSize(button->button.button, width, height);
00074 }
00075
00086 jint getButtonWidth(Button* button) {
00087 return getWidth(button->button.button);
00088 }
00089
00100 jint getButtonHeight(Button* button) {
00101 return getHeight(button->button.button);
00102 }
00103
00114 void setButtonLocation(Button* button, jint x, jint y) {
00115 setLocation(button->button.button, x, y);
00116 }
00117
00128 jint getButtonX(Button* button) {
00129 return getX(button->button.button);
00130 }
00131
00142 jint getButtonY(Button* button) {
00143 return getY(button->button.button);
00144 }
00145
00157 ActionListener addButtonActionListener(Button* button, void (*func)(Component)) {
00158 return addActionListener(button->button.button, func);
00159 }
00160
00170 void removeButtonActionListener(Button* button, ActionListener al) {
00171 removeActionListener(button->button.button, al);
00172 }
00173
00179 void initButton_(Button_* button) {
00180 button->getObject = &getButtonObject;
00181 button->setLabel = &setButtonLabel;
00182 button->getLabel = &getButtonLabel;
00183
00184 button->setSize = &setButtonSize;
00185 button->getWidth = &getButtonWidth;
00186 button->getHeight = &getButtonHeight;
00187 button->setLocation = &setButtonLocation;
00188 button->getX = &getButtonX;
00189 button->getY = &getButtonY;
00190
00191 button->addActionListener = &addButtonActionListener;
00192 button->removeActionListener = &removeButtonActionListener;
00193 }
00194
00201 void createButton_(Button* button) {
00202 button->button.clsbutton = findClass(CLS_BUTTON);
00203 button->button.mgetLabel = findMethod(button->button.clsbutton, "getLabel", "()Ljava/lang/String;");
00204 button->button.msetLabel = findMethod(button->button.clsbutton, "setLabel", "(Ljava/lang/String;)V");
00205
00206 button->button.button = newObjectBySignature(button->button.clsbutton, "()V");
00207 }
00208
00215 void createButtonCPP(ButtonCPP_* button) {
00216 button->functions = (Button_*)malloc(sizeof(Button_));
00217 initButton_(button->functions);
00218 createButton_((Button*)button);
00219 }
00220
00227 void createButtonC(Button_* button) {
00228 initButton_(button);
00229 createButton_((Button*)button);
00230 }
00231
00237 void deleteButton_(Button* button) {
00238 deleteGlobalReference(button->button.button);
00239 deleteGlobalReference(button->button.clsbutton);
00240 }
00241
00247 void deleteButtonCPP(ButtonCPP_* button) {
00248 deleteButton_((Button*)button);
00249 free(button->functions);
00250 }
00251
00257 void deleteButtonC(Button_* button) {
00258 deleteButton_((Button*)button);
00259 }
00260
00261 #ifdef __cplusplus
00262 }
00263 #endif
00264
00265