< prev index next >

src/windows/native/sun/windows/awt_List.cpp

Print this page
rev 12527 : 8165543: Better window framing
Reviewed-by: serb


  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(
< prev index next >