< prev index next >

src/windows/native/sun/windows/awt_ScrollPane.cpp

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


  79 }
  80 
  81 LPCTSTR AwtScrollPane::GetClassName() {
  82     return TEXT("SunAwtScrollPane");
  83 }
  84 
  85 /* Create a new AwtScrollPane object and window.   */
  86 AwtScrollPane* AwtScrollPane::Create(jobject self, jobject parent)
  87 {
  88     JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
  89     jobject target = NULL;
  90     AwtScrollPane* c = NULL;
  91 
  92     try {
  93         if (env->EnsureLocalCapacity(1) < 0) {
  94             return NULL;
  95         }
  96 
  97         PDATA pData;
  98         AwtComponent* awtParent;
  99         JNI_CHECK_PEER_GOTO(parent, done);
 100 

 101         awtParent = (AwtComponent*)pData;
 102         JNI_CHECK_NULL_GOTO(awtParent, "null awtParent", done);
 103 
 104         target = env->GetObjectField(self, AwtObject::targetID);
 105         JNI_CHECK_NULL_GOTO(target, "null target", done);
 106 
 107         c = new AwtScrollPane();
 108 
 109         {
 110             DWORD style = WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS;
 111             jint scrollbarDisplayPolicy =
 112                 env->GetIntField(target, scrollbarDisplayPolicyID);
 113 
 114             if (scrollbarDisplayPolicy
 115                     == java_awt_ScrollPane_SCROLLBARS_ALWAYS) {
 116                 style |= WS_HSCROLL | WS_VSCROLL;
 117             }
 118             DWORD exStyle = WS_EX_CLIENTEDGE;
 119 
 120             if (GetRTL()) {
 121                 exStyle |= WS_EX_RIGHT | WS_EX_LEFTSCROLLBAR;
 122                 if (GetRTLReadingOrder())


 662     AwtScrollPane::postScrollEventID =
 663         env->GetMethodID(cls, "postScrollEvent", "(IIIZ)V");
 664     DASSERT(AwtScrollPane::postScrollEventID != NULL);
 665 
 666     CATCH_BAD_ALLOC;
 667 }
 668 
 669 /*
 670  * Class:     sun_awt_windows_WScrollPanePeer
 671  * Method:    create
 672  * Signature: (Lsun/awt/windows/WComponentPeer;)V
 673  */
 674 JNIEXPORT void JNICALL
 675 Java_sun_awt_windows_WScrollPanePeer_create(JNIEnv *env, jobject self,
 676                                             jobject parent)
 677 {
 678     TRY;
 679 
 680     DTRACE_PRINTLN2("%x: WScrollPanePeer.create(%x)", self, parent);
 681 
 682     PDATA pData;
 683     JNI_CHECK_PEER_RETURN(parent);
 684     AwtToolkit::CreateComponent(self, parent,
 685                                 (AwtToolkit::ComponentFactory)
 686                                 AwtScrollPane::Create);

 687     JNI_CHECK_PEER_CREATION_RETURN(self);
 688     ((AwtScrollPane*)pData)->VerifyState();
 689 
 690     CATCH_BAD_ALLOC;
 691 }
 692 
 693 /*
 694  * Class:     sun_awt_windows_WScrollPanePeer
 695  * Method:    getOffset
 696  * Signature: (I)I
 697  */
 698 JNIEXPORT jint JNICALL
 699 Java_sun_awt_windows_WScrollPanePeer_getOffset(JNIEnv *env, jobject self,
 700                                                jint orient)
 701 {
 702     TRY;
 703 
 704     GetOffsetStruct *gos = new GetOffsetStruct;
 705     gos->scrollpane = env->NewGlobalRef(self);
 706     gos->orient = orient;




  79 }
  80 
  81 LPCTSTR AwtScrollPane::GetClassName() {
  82     return TEXT("SunAwtScrollPane");
  83 }
  84 
  85 /* Create a new AwtScrollPane object and window.   */
  86 AwtScrollPane* AwtScrollPane::Create(jobject self, jobject parent)
  87 {
  88     JNIEnv *env = (JNIEnv *)JNU_GetEnv(jvm, JNI_VERSION_1_2);
  89     jobject target = NULL;
  90     AwtScrollPane* c = NULL;
  91 
  92     try {
  93         if (env->EnsureLocalCapacity(1) < 0) {
  94             return NULL;
  95         }
  96 
  97         PDATA pData;
  98         AwtComponent* awtParent;

  99 
 100         JNI_CHECK_PEER_GOTO(parent, done);
 101         awtParent = (AwtComponent*)pData;

 102 
 103         target = env->GetObjectField(self, AwtObject::targetID);
 104         JNI_CHECK_NULL_GOTO(target, "null target", done);
 105 
 106         c = new AwtScrollPane();
 107 
 108         {
 109             DWORD style = WS_CHILD | WS_CLIPCHILDREN | WS_CLIPSIBLINGS;
 110             jint scrollbarDisplayPolicy =
 111                 env->GetIntField(target, scrollbarDisplayPolicyID);
 112 
 113             if (scrollbarDisplayPolicy
 114                     == java_awt_ScrollPane_SCROLLBARS_ALWAYS) {
 115                 style |= WS_HSCROLL | WS_VSCROLL;
 116             }
 117             DWORD exStyle = WS_EX_CLIENTEDGE;
 118 
 119             if (GetRTL()) {
 120                 exStyle |= WS_EX_RIGHT | WS_EX_LEFTSCROLLBAR;
 121                 if (GetRTLReadingOrder())


 661     AwtScrollPane::postScrollEventID =
 662         env->GetMethodID(cls, "postScrollEvent", "(IIIZ)V");
 663     DASSERT(AwtScrollPane::postScrollEventID != NULL);
 664 
 665     CATCH_BAD_ALLOC;
 666 }
 667 
 668 /*
 669  * Class:     sun_awt_windows_WScrollPanePeer
 670  * Method:    create
 671  * Signature: (Lsun/awt/windows/WComponentPeer;)V
 672  */
 673 JNIEXPORT void JNICALL
 674 Java_sun_awt_windows_WScrollPanePeer_create(JNIEnv *env, jobject self,
 675                                             jobject parent)
 676 {
 677     TRY;
 678 
 679     DTRACE_PRINTLN2("%x: WScrollPanePeer.create(%x)", self, parent);
 680 


 681     AwtToolkit::CreateComponent(self, parent,
 682                                 (AwtToolkit::ComponentFactory)
 683                                 AwtScrollPane::Create);
 684     PDATA pData;
 685     JNI_CHECK_PEER_CREATION_RETURN(self);
 686     ((AwtScrollPane*)pData)->VerifyState();
 687 
 688     CATCH_BAD_ALLOC;
 689 }
 690 
 691 /*
 692  * Class:     sun_awt_windows_WScrollPanePeer
 693  * Method:    getOffset
 694  * Signature: (I)I
 695  */
 696 JNIEXPORT jint JNICALL
 697 Java_sun_awt_windows_WScrollPanePeer_getOffset(JNIEnv *env, jobject self,
 698                                                jint orient)
 699 {
 700     TRY;
 701 
 702     GetOffsetStruct *gos = new GetOffsetStruct;
 703     gos->scrollpane = env->NewGlobalRef(self);
 704     gos->orient = orient;


< prev index next >