paragui-cvs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[paragui-cvs] CVS: paragui/src/widgets pgwidgetlist.cpp,1.3.6.7,1.3.6.8


From: Alexander Pipelka <address@hidden>
Subject: [paragui-cvs] CVS: paragui/src/widgets pgwidgetlist.cpp,1.3.6.7,1.3.6.8
Date: Fri, 23 May 2003 04:17:54 -0400

Update of /cvsroot/paragui/paragui/src/widgets
In directory subversions:/tmp/cvs-serv9829/src/widgets

Modified Files:
      Tag: devel-1-0
        pgwidgetlist.cpp 
Log Message:
- fixed PG_WidgetList bug
- added sample app that triggered the bug (Thanks Alexander Opitz 
<address@hidden>)



Index: pgwidgetlist.cpp
===================================================================
RCS file: /cvsroot/paragui/paragui/src/widgets/pgwidgetlist.cpp,v
retrieving revision 1.3.6.7
retrieving revision 1.3.6.8
diff -C2 -r1.3.6.7 -r1.3.6.8
*** pgwidgetlist.cpp    6 Apr 2003 12:13:07 -0000       1.3.6.7
--- pgwidgetlist.cpp    23 May 2003 08:17:52 -0000      1.3.6.8
***************
*** 187,195 ****
  
  void PG_WidgetList::AddWidget(PG_Widget* w) {
        if(w == NULL) {
                return;
        }
  
!       w->SetVisible(false);
        AddChild(w);
  
--- 187,204 ----
  
  void PG_WidgetList::AddWidget(PG_Widget* w) {
+       bool bGotHidden = false;
+ 
        if(w == NULL) {
                return;
        }
  
!       if(w->IsVisible()) {
!               w->Hide();
!               bGotHidden = true;
!       }
!       else {
!               w->SetVisible(false);
!       }
! 
        AddChild(w);
  
***************
*** 219,222 ****
--- 228,235 ----
        UpdateScrollBarsPos();
  
+       if(bGotHidden) {
+               w->Show();
+       }
+ 
        if(!IsHidden() || IsVisible()) {
                w->SetVisible(true);
***************
*** 487,504 ****
  
  void PG_WidgetList::CheckScrollBars() {
        my_rectVerticalScrollbar.my_height = Height();
        my_rectHorizontalScrollbar.my_width = Width();
  
!       if(my_listheight > (Uint32)Height()) {
!               my_objVerticalScrollbar->SetVisible(my_enableVerticalScrollbar);
        } else {
!               my_objVerticalScrollbar->SetVisible(false);
        }
  
        if(my_listwidth > (Uint32)(Width() - 
((my_objVerticalScrollbar->IsVisible()) ? my_widthScrollbar : 0))) {
!               
my_objHorizontalScrollbar->SetVisible(my_enableHorizontalScrollbar);
  
                if(my_listheight > (Uint32)(Height() - 
my_heightHorizontalScrollbar)) {
!                       
my_objVerticalScrollbar->SetVisible(my_enableVerticalScrollbar);
                }
  
--- 500,537 ----
  
  void PG_WidgetList::CheckScrollBars() {
+       if(!IsVisible()) {
+               return;
+       }
+ 
        my_rectVerticalScrollbar.my_height = Height();
        my_rectHorizontalScrollbar.my_width = Width();
  
!       my_objVerticalScrollbar->SetRange(0, my_listheight - Height() + 
my_heightHorizontalScrollbar);
!       my_objHorizontalScrollbar->SetRange(0, my_listwidth - Width() + 
my_widthScrollbar);
! 
!       my_objVerticalScrollbar->SizeWidget(my_widthScrollbar, 
my_rectVerticalScrollbar.my_height);
!       
my_objHorizontalScrollbar->SizeWidget(my_rectHorizontalScrollbar.my_width, 
my_heightHorizontalScrollbar);
! 
!       if(my_listheight > (Uint32)Height() && my_enableVerticalScrollbar) {
!               my_objVerticalScrollbar->Show();
        } else {
!               my_objVerticalScrollbar->Hide();
        }
  
        if(my_listwidth > (Uint32)(Width() - 
((my_objVerticalScrollbar->IsVisible()) ? my_widthScrollbar : 0))) {
!               if(my_enableHorizontalScrollbar) {
!                       my_objHorizontalScrollbar->Show();
!               }
!               else {
!                       my_objHorizontalScrollbar->Hide();
!               }
  
                if(my_listheight > (Uint32)(Height() - 
my_heightHorizontalScrollbar)) {
!                       if(my_enableVerticalScrollbar) {
!                               my_objVerticalScrollbar->Show();
!                       }
!                       else {
!                               my_objVerticalScrollbar->Hide();
!                       }
                }
  
***************
*** 506,523 ****
                        my_rectVerticalScrollbar.my_height -= 
my_heightHorizontalScrollbar;
                        my_rectHorizontalScrollbar.my_width -= 
my_widthScrollbar;
                }
        } else {
!               my_objHorizontalScrollbar->SetVisible(false);
        }
- 
-       if (my_objVerticalScrollbar->IsVisible()) {
-               my_objVerticalScrollbar->SetRange(0, my_listheight - Height() + 
my_heightHorizontalScrollbar);
-       }
-       if (my_objHorizontalScrollbar->IsVisible()) {
-               my_objHorizontalScrollbar->SetRange(0, my_listwidth - Width() + 
my_widthScrollbar);
-       }
- 
-       my_objVerticalScrollbar->SizeWidget(my_widthScrollbar, 
my_rectVerticalScrollbar.my_height);
-       
my_objHorizontalScrollbar->SizeWidget(my_rectHorizontalScrollbar.my_width, 
my_heightHorizontalScrollbar);
  }
  
--- 539,548 ----
                        my_rectVerticalScrollbar.my_height -= 
my_heightHorizontalScrollbar;
                        my_rectHorizontalScrollbar.my_width -= 
my_widthScrollbar;
+                       my_objVerticalScrollbar->SizeWidget(my_widthScrollbar, 
my_rectVerticalScrollbar.my_height);
+                       
my_objHorizontalScrollbar->SizeWidget(my_rectHorizontalScrollbar.my_width, 
my_heightHorizontalScrollbar);
                }
        } else {
!               my_objHorizontalScrollbar->Hide();
        }
  }
  





reply via email to

[Prev in Thread] Current Thread [Next in Thread]