72
73 LPCTSTR AwtList::GetClassName() {
74 return TEXT("LISTBOX");
75 }
76
77 /* Create a new AwtList object and window. */
78 AwtList* AwtList::Create(jobject peer, jobject parent)
79 {
80 JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
81
82 jobject target = NULL;
83 AwtList* c = NULL;
84
85 try {
86 if (env->EnsureLocalCapacity(1) < 0) {
87 return NULL;
88 }
89
90 PDATA pData;
91 AwtCanvas* awtParent;
92 JNI_CHECK_PEER_GOTO(parent, done);
93
94 awtParent = (AwtCanvas*)pData;
95 JNI_CHECK_NULL_GOTO(awtParent, "null awtParent", done);
96
97 /* target is Hjava_awt_List * */
98 target = env->GetObjectField(peer, AwtObject::targetID);
99 JNI_CHECK_NULL_GOTO(target, "null target", done);
100
101 c = new AwtList();
102
103 {
104
105 /*
106 * NOTE: WS_CLIPCHILDREN is excluded so that repaint requests
107 * from Java will pass through the wrap to the native listbox.
108 */
109 DWORD wrapStyle = WS_CHILD | WS_CLIPSIBLINGS;
110 DWORD wrapExStyle = 0;
111
112 DWORD style = WS_CHILD | WS_CLIPSIBLINGS | WS_VSCROLL | WS_HSCROLL |
113 LBS_NOINTEGRALHEIGHT | LBS_NOTIFY | LBS_OWNERDRAWFIXED;
114 DWORD exStyle = WS_EX_CLIENTEDGE;
115
911 ses->list = env->NewGlobalRef(self);
912 ses->index = pos;
913
914 AwtToolkit::GetInstance().SyncCall(AwtList::_Select, ses);
915 // global ref and ses are deleted in _Select
916
917 CATCH_BAD_ALLOC;
918 }
919
920 /*
921 * Class: sun_awt_windows_WListPeer
922 * Method: deselect
923 * Signature: (I)V
924 */
925 JNIEXPORT void JNICALL
926 Java_sun_awt_windows_WListPeer_deselect(JNIEnv *env, jobject self,
927 jint pos)
928 {
929 TRY;
930
931 PDATA pData;
932 JNI_CHECK_PEER_RETURN(self);
933
934 SelectElementStruct *ses = new SelectElementStruct;
935 ses->list = env->NewGlobalRef(self);
936 ses->index = pos;
937
938 AwtToolkit::GetInstance().SyncCall(AwtList::_Deselect, ses);
939 // global ref and ses are deleted in _Deselect
940
941 CATCH_BAD_ALLOC;
942 }
943
944 /*
945 * Class: sun_awt_windows_WListPeer
946 * Method: makeVisible
947 * Signature: (I)V
948 */
949 JNIEXPORT void JNICALL
950 Java_sun_awt_windows_WListPeer_makeVisible(JNIEnv *env, jobject self,
951 jint pos)
952 {
953 TRY;
977 sms->list = env->NewGlobalRef(self);
978 sms->on = on;
979
980 AwtToolkit::GetInstance().SyncCall(AwtList::_SetMultipleSelections, sms);
981 // global ref and sms are deleted in AwtList::_SetMultipleSelections
982
983 CATCH_BAD_ALLOC;
984 }
985
986 /*
987 * Class: sun_awt_windows_WListPeer
988 * Method: create
989 * Signature: (Lsun/awt/windows/WComponentPeer;)V
990 */
991 JNIEXPORT void JNICALL
992 Java_sun_awt_windows_WListPeer_create(JNIEnv *env, jobject self,
993 jobject parent)
994 {
995 TRY;
996
997 PDATA pData;
998 JNI_CHECK_PEER_RETURN(parent);
999 AwtToolkit::CreateComponent(self, parent,
1000 (AwtToolkit::ComponentFactory)AwtList::Create);
1001 JNI_CHECK_PEER_CREATION_RETURN(self);
1002
1003 CATCH_BAD_ALLOC;
1004 }
1005
1006 /*
1007 * Class: sun_awt_windows_WListPeer
1008 * Method: isSelected
1009 * Signature: (I)Z
1010 */
1011 JNIEXPORT jboolean JNICALL
1012 Java_sun_awt_windows_WListPeer_isSelected(JNIEnv *env, jobject self,
1013 jint index)
1014 {
1015 TRY;
1016
1017 SelectElementStruct *ses = new SelectElementStruct;
1018 ses->list = env->NewGlobalRef(self);
1019 ses->index = index;
1020
1021 return (jboolean)AwtToolkit::GetInstance().SyncCall(
|
72
73 LPCTSTR AwtList::GetClassName() {
74 return TEXT("LISTBOX");
75 }
76
77 /* Create a new AwtList object and window. */
78 AwtList* AwtList::Create(jobject peer, jobject parent)
79 {
80 JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
81
82 jobject target = NULL;
83 AwtList* c = NULL;
84
85 try {
86 if (env->EnsureLocalCapacity(1) < 0) {
87 return NULL;
88 }
89
90 PDATA pData;
91 AwtCanvas* awtParent;
92
93 JNI_CHECK_PEER_GOTO(parent, done);
94 awtParent = (AwtCanvas*)pData;
95
96 /* target is Hjava_awt_List * */
97 target = env->GetObjectField(peer, AwtObject::targetID);
98 JNI_CHECK_NULL_GOTO(target, "null target", done);
99
100 c = new AwtList();
101
102 {
103
104 /*
105 * NOTE: WS_CLIPCHILDREN is excluded so that repaint requests
106 * from Java will pass through the wrap to the native listbox.
107 */
108 DWORD wrapStyle = WS_CHILD | WS_CLIPSIBLINGS;
109 DWORD wrapExStyle = 0;
110
111 DWORD style = WS_CHILD | WS_CLIPSIBLINGS | WS_VSCROLL | WS_HSCROLL |
112 LBS_NOINTEGRALHEIGHT | LBS_NOTIFY | LBS_OWNERDRAWFIXED;
113 DWORD exStyle = WS_EX_CLIENTEDGE;
114
910 ses->list = env->NewGlobalRef(self);
911 ses->index = pos;
912
913 AwtToolkit::GetInstance().SyncCall(AwtList::_Select, ses);
914 // global ref and ses are deleted in _Select
915
916 CATCH_BAD_ALLOC;
917 }
918
919 /*
920 * Class: sun_awt_windows_WListPeer
921 * Method: deselect
922 * Signature: (I)V
923 */
924 JNIEXPORT void JNICALL
925 Java_sun_awt_windows_WListPeer_deselect(JNIEnv *env, jobject self,
926 jint pos)
927 {
928 TRY;
929
930 SelectElementStruct *ses = new SelectElementStruct;
931 ses->list = env->NewGlobalRef(self);
932 ses->index = pos;
933
934 AwtToolkit::GetInstance().SyncCall(AwtList::_Deselect, ses);
935 // global ref and ses are deleted in _Deselect
936
937 CATCH_BAD_ALLOC;
938 }
939
940 /*
941 * Class: sun_awt_windows_WListPeer
942 * Method: makeVisible
943 * Signature: (I)V
944 */
945 JNIEXPORT void JNICALL
946 Java_sun_awt_windows_WListPeer_makeVisible(JNIEnv *env, jobject self,
947 jint pos)
948 {
949 TRY;
973 sms->list = env->NewGlobalRef(self);
974 sms->on = on;
975
976 AwtToolkit::GetInstance().SyncCall(AwtList::_SetMultipleSelections, sms);
977 // global ref and sms are deleted in AwtList::_SetMultipleSelections
978
979 CATCH_BAD_ALLOC;
980 }
981
982 /*
983 * Class: sun_awt_windows_WListPeer
984 * Method: create
985 * Signature: (Lsun/awt/windows/WComponentPeer;)V
986 */
987 JNIEXPORT void JNICALL
988 Java_sun_awt_windows_WListPeer_create(JNIEnv *env, jobject self,
989 jobject parent)
990 {
991 TRY;
992
993 AwtToolkit::CreateComponent(self, parent,
994 (AwtToolkit::ComponentFactory)AwtList::Create);
995
996 CATCH_BAD_ALLOC;
997 }
998
999 /*
1000 * Class: sun_awt_windows_WListPeer
1001 * Method: isSelected
1002 * Signature: (I)Z
1003 */
1004 JNIEXPORT jboolean JNICALL
1005 Java_sun_awt_windows_WListPeer_isSelected(JNIEnv *env, jobject self,
1006 jint index)
1007 {
1008 TRY;
1009
1010 SelectElementStruct *ses = new SelectElementStruct;
1011 ses->list = env->NewGlobalRef(self);
1012 ses->index = index;
1013
1014 return (jboolean)AwtToolkit::GetInstance().SyncCall(
|