rendered paste bodyIndex: qtmenupeer.cpp
===================================================================
RCS file: /sources/classpath/classpath/native/jni/qt-peer/qtmenupeer.cpp,v
retrieving revision 1.5
diff -u -r1.5 qtmenupeer.cpp
--- qtmenupeer.cpp 22 Nov 2005 20:41:06 -0000 1.5
+++ qtmenupeer.cpp 28 May 2006 18:05:27 -0000
@@ -44,9 +44,11 @@
#include "slotcallbacks.h"
#include "componentevent.h"
-#define ADDMENU 0
-#define ADDITEM 1
-#define ADDSEPA 2
+typedef enum ActionType {
+ ActionMenu,
+ ActionItem,
+ ActionSeparator
+} ActionType;
// Sets the title, but also tear-off.
class MenuTitleEvent : public AWTEvent {
@@ -81,18 +83,18 @@
private:
QMenu *menu;
QAction *action;
- int isMenu; // 0 to add a menu, 1 to add an item, 2 to add a seperator
+ ActionType actionType; // type of action to add
JavaVM *vm;
jobject menuPeer;
jobject itemPeer;
public:
MenuAction(JNIEnv *env, jobject mp, jobject ip, QMenu *m, QAction *a,
- bool ismenu) : AWTEvent()
+ ActionType actionType) : AWTEvent()
{
menu = m;
action = a;
- isMenu = ismenu;
+ this->actionType = actionType;
env->GetJavaVM( &vm );
menuPeer = env->NewGlobalRef( mp );
if( ip != NULL )
@@ -104,35 +106,22 @@
void runEvent()
{
JNIEnv *env;
- QAction *newAction; // adding an action creates a new duplicate.
vm->GetEnv((void **)&env, JNI_VERSION_1_1);
-
- switch(isMenu)
- {
- case ADDMENU:
- newAction = menu->addMenu( (QMenu *)action );
- break;
- case ADDITEM:
- newAction = menu->addAction(action->text());
- newAction->setSeparator(action->isSeparator());
- newAction->setCheckable(action->isCheckable());
- // delete action;
- break;
- case ADDSEPA:
- newAction = menu->addSeparator();
- break;
- }
+ if (actionType == ActionMenu)
+ menu->addMenu ((QMenu *) action);
+ else
+ menu->addAction (action);
jclass menuCls = env->GetObjectClass( menuPeer );
jmethodID mid = env->GetMethodID(menuCls, "add", "(J)V");
env->DeleteLocalRef(menuCls);
- env->CallVoidMethod( menuPeer, mid, (jlong)newAction );
+ env->CallVoidMethod( menuPeer, mid, (jlong)action );
env->DeleteGlobalRef( menuPeer );
if( itemPeer != NULL )
{
- setNativeObject( env, itemPeer, newAction );
- connectAction(newAction, env, itemPeer);
+ setNativeObject( env, itemPeer, action );
+ connectAction(action, env, itemPeer);
env->DeleteGlobalRef( itemPeer );
}
}
@@ -190,7 +179,7 @@
QMenu *menu = (QMenu *)getNativeObject( env, obj );
assert( menu );
mainThread->postEventToMain( new MenuAction( env, obj, NULL,
- menu, NULL, ADDSEPA ) );
+ menu, NULL, ActionSeparator ) );
}
/*
@@ -205,7 +194,7 @@
QAction *action = (QAction *)getNativeObject( env, item );
assert( action );
- mainThread->postEventToMain( new MenuAction( env, obj, item, menu, action, ADDITEM ));
+ mainThread->postEventToMain( new MenuAction( env, obj, item, menu, action, ActionItem ));
}
/*
@@ -220,7 +209,7 @@
QMenu *insMenu = (QMenu *)getNativeObject(env, menu);
assert( insMenu );
- mainThread->postEventToMain( new MenuAction( env, obj, menu, thisMenu, (QAction *)insMenu, ADDMENU ) );
+ mainThread->postEventToMain( new MenuAction( env, obj, menu, thisMenu, (QAction *)insMenu, ActionMenu ) );
}
/*