button.c

Go to the documentation of this file.
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 } /* extern "C" */
00263 #endif
00264 
00265 /* end of file button.c */

Generated on Sat Nov 19 14:11:10 2005 for GrubC by  doxygen 1.4.4