paragui-cvs
[Top][All Lists]
Advanced

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

[paragui-cvs] CVS: paragui/src/widgets pgbutton.cpp,1.8,1.9 pgimage.cpp,


From: Alexander Pipelka <address@hidden>
Subject: [paragui-cvs] CVS: paragui/src/widgets pgbutton.cpp,1.8,1.9 pgimage.cpp,1.3,1.4 pglayout.cpp,1.3,1.4 pglistbox.cpp,1.8,1.9 pglistboxbaseitem.cpp,1.7,1.8 pglistboxitem.cpp,1.8,1.9 pgprogressbar.cpp,1.4,1.5 pgradiobutton.cpp,1.7,1.8 pgrichedit.cpp,1.5,1.6 pgscrollbar.cpp,1.6,1.7 pgthemewidget.cpp,1.6,1.7 pgwidget.cpp,1.15,1.16 pgwidgetlist.cpp,1.12,1.13
Date: Sun, 18 Aug 2002 04:12:57 -0400

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

Modified Files:
        pgbutton.cpp pgimage.cpp pglayout.cpp pglistbox.cpp 
        pglistboxbaseitem.cpp pglistboxitem.cpp pgprogressbar.cpp 
        pgradiobutton.cpp pgrichedit.cpp pgscrollbar.cpp 
        pgthemewidget.cpp pgwidget.cpp pgwidgetlist.cpp 
Log Message:
synced with the devel-1-0-x tree.



Index: pgbutton.cpp
===================================================================
RCS file: /cvsroot/paragui/paragui/src/widgets/pgbutton.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -r1.8 -r1.9
*** pgbutton.cpp        28 Apr 2002 16:35:30 -0000      1.8
--- pgbutton.cpp        18 Aug 2002 08:12:53 -0000      1.9
***************
*** 22,26 ****
      Last Update:      $Author$
      Update Date:      $Date$
-     Source File:      $Source$
      CVS/RCS Revision: $Revision$
      Status:           $State$
--- 22,25 ----
***************
*** 98,101 ****
--- 97,102 ----
        FreeSurfaces();
        FreeIcons();
+       
+       delete my_internaldata;
  }
  

Index: pgimage.cpp
===================================================================
RCS file: /cvsroot/paragui/paragui/src/widgets/pgimage.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** pgimage.cpp 15 Apr 2002 13:35:36 -0000      1.3
--- pgimage.cpp 18 Aug 2002 08:12:53 -0000      1.4
***************
*** 49,53 ****
  void PG_Image::eventBlit(SDL_Surface* srf, const PG_Rect& src, const PG_Rect& 
dst) {
        if(my_image == NULL) {
!               return;
        }
  
--- 49,53 ----
  void PG_Image::eventBlit(SDL_Surface* srf, const PG_Rect& src, const PG_Rect& 
dst) {
        if(my_image == NULL) {
!               return;                                                      
        }
  

Index: pglayout.cpp
===================================================================
RCS file: /cvsroot/paragui/paragui/src/widgets/pglayout.cpp,v
retrieving revision 1.3
retrieving revision 1.4
diff -C2 -r1.3 -r1.4
*** pglayout.cpp        26 Jun 2002 16:00:21 -0000      1.3
--- pglayout.cpp        18 Aug 2002 08:12:53 -0000      1.4
***************
*** 1109,1113 ****
  
                if ((XMLParser->InhTagFlags & INHTAGFLAG_HIDE) == 0)
!                       XMLParser->ParentObject->Show();
                else
                        XMLParser->ParentObject->Hide();
--- 1109,1115 ----
  
                if ((XMLParser->InhTagFlags & INHTAGFLAG_HIDE) == 0)
!                       if(XMLParser->ParentObject->GetParent() == NULL) {
!                               XMLParser->ParentObject->Show();
!                       }
                else
                        XMLParser->ParentObject->Hide();
***************
*** 1123,1127 ****
        }
  
!       ((PG_WidgetList *)(XMLParser->ParentObject))->AddChild(WidgetToAdd);
  }
  
--- 1125,1129 ----
        }
  
! //    ((PG_WidgetList *)(XMLParser->ParentObject))->AddChild(WidgetToAdd);
  }
  

Index: pglistbox.cpp
===================================================================
RCS file: /cvsroot/paragui/paragui/src/widgets/pglistbox.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -r1.8 -r1.9
*** pglistbox.cpp       26 Jun 2002 16:00:21 -0000      1.8
--- pglistbox.cpp       18 Aug 2002 08:12:53 -0000      1.9
***************
*** 38,42 ****
  }
  
! PG_ListBox::~PG_ListBox() {}
  
  /*void PG_ListBox::AddWidget(PG_Widget* w) {
--- 38,43 ----
  }
  
! PG_ListBox::~PG_ListBox() {
! }
  
  /*void PG_ListBox::AddWidget(PG_Widget* w) {
***************
*** 115,118 ****
--- 116,122 ----
        my_selectedItem = NULL;
        PG_WidgetList::DeleteAll();
+       ScrollToX(0);
+       ScrollToY(0);
+       Update();
  }
  

Index: pglistboxbaseitem.cpp
===================================================================
RCS file: /cvsroot/paragui/paragui/src/widgets/pglistboxbaseitem.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -r1.7 -r1.8
*** pglistboxbaseitem.cpp       28 Jun 2002 10:33:50 -0000      1.7
--- pglistboxbaseitem.cpp       18 Aug 2002 08:12:53 -0000      1.8
***************
*** 29,32 ****
--- 29,33 ----
  #include "pglistboxbaseitem.h"
  #include "pglistbox.h"
+ #include "pglog.h"
  
  PG_ListBoxBaseItem::PG_ListBoxBaseItem(PG_ListBox* parent, int height, void* 
userdata) : PG_Label(parent, PG_Rect(0,0,100,20), NULL) {
***************
*** 37,48 ****
  
        SetAlignment(PG_TA_LEFT);
!       
        if(parent != NULL) {
                SizeWidget(parent->w, height);
        }
-       //parent->AddChild(this);
  }
  
  PG_ListBoxBaseItem::~PG_ListBoxBaseItem() {
  }
  
--- 38,52 ----
  
        SetAlignment(PG_TA_LEFT);
! 
        if(parent != NULL) {
                SizeWidget(parent->w, height);
        }
  }
  
  PG_ListBoxBaseItem::~PG_ListBoxBaseItem() {
+ /*    if(GetParent()->GetSelectedItem() == this) {
+               GetParent()->SelectItem(NULL);
+               GetParent()->RemoveWidget(this, true, true);
+       }*/
  }
  
***************
*** 67,72 ****
                }
        }
- 
-       Update();
  }
  
--- 71,74 ----

Index: pglistboxitem.cpp
===================================================================
RCS file: /cvsroot/paragui/paragui/src/widgets/pglistboxitem.cpp,v
retrieving revision 1.8
retrieving revision 1.9
diff -C2 -r1.8 -r1.9
*** pglistboxitem.cpp   28 Jun 2002 10:33:50 -0000      1.8
--- pglistboxitem.cpp   18 Aug 2002 08:12:53 -0000      1.9
***************
*** 40,43 ****
--- 40,44 ----
                my_bkmode[i] = BKMODE_TILE;
                my_blend[i] = 0;
+               my_gradient[i] = NULL;
        }
  

Index: pgprogressbar.cpp
===================================================================
RCS file: /cvsroot/paragui/paragui/src/widgets/pgprogressbar.cpp,v
retrieving revision 1.4
retrieving revision 1.5
diff -C2 -r1.4 -r1.5
*** pgprogressbar.cpp   27 Apr 2002 15:36:55 -0000      1.4
--- pgprogressbar.cpp   18 Aug 2002 08:12:53 -0000      1.5
***************
*** 22,36 ****
      Last Update:      $Author$
      Update Date:      $Date$
-     Source File:      $Source$
      CVS/RCS Revision: $Revision$
      Status:           $State$
  */
  
- #include <cmath>
- 
  #include "pgapplication.h"
  #include "pgprogressbar.h"
  #include "pgdraw.h"
  #include "pgtheme.h"
  
  PG_ProgressBar::PG_ProgressBar(PG_Widget* parent, const PG_Rect& r, const 
char* style) : PG_ThemeWidget(parent, r) {
--- 22,35 ----
      Last Update:      $Author$
      Update Date:      $Date$
      CVS/RCS Revision: $Revision$
      Status:           $State$
  */
  
  #include "pgapplication.h"
  #include "pgprogressbar.h"
  #include "pgdraw.h"
  #include "pgtheme.h"
+ 
+ #include <cmath>
  
  PG_ProgressBar::PG_ProgressBar(PG_Widget* parent, const PG_Rect& r, const 
char* style) : PG_ThemeWidget(parent, r) {

Index: pgradiobutton.cpp
===================================================================
RCS file: /cvsroot/paragui/paragui/src/widgets/pgradiobutton.cpp,v
retrieving revision 1.7
retrieving revision 1.8
diff -C2 -r1.7 -r1.8
*** pgradiobutton.cpp   6 May 2002 10:40:50 -0000       1.7
--- pgradiobutton.cpp   18 Aug 2002 08:12:53 -0000      1.8
***************
*** 2,23 ****
      ParaGUI - crossplatform widgetset
      Copyright (C) 2000,2001,2002  Alexander Pipelka
!  
      This library is free software; you can redistribute it and/or
      modify it under the terms of the GNU Library General Public
      License as published by the Free Software Foundation; either
      version 2 of the License, or (at your option) any later version.
!  
      This library is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      Library General Public License for more details.
!  
      You should have received a copy of the GNU Library General Public
      License along with this library; if not, write to the Free
      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
!  
      Alexander Pipelka
      address@hidden
!  
      Last Update:      $Author$
      Update Date:      $Date$
--- 2,23 ----
      ParaGUI - crossplatform widgetset
      Copyright (C) 2000,2001,2002  Alexander Pipelka
! 
      This library is free software; you can redistribute it and/or
      modify it under the terms of the GNU Library General Public
      License as published by the Free Software Foundation; either
      version 2 of the License, or (at your option) any later version.
! 
      This library is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      Library General Public License for more details.
! 
      You should have received a copy of the GNU Library General Public
      License along with this library; if not, write to the Free
      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
! 
      Alexander Pipelka
      address@hidden
! 
      Last Update:      $Author$
      Update Date:      $Date$
***************
*** 171,182 ****
  }
  
- /*void PG_RadioButton::SetTextFormat(const char* text, ...) {
-       va_list ap;
-       va_start(ap, text);
- 
-       my_widgetLabel->SetTextFormat(text, ap);
- }*/
- 
  const char* PG_RadioButton::GetText() {
        return my_widgetLabel->GetText();
  }
--- 171,179 ----
  }
  
  const char* PG_RadioButton::GetText() {
        return my_widgetLabel->GetText();
+ }
+ 
+ void PG_RadioButton::SetAlignment(int a) {
+       my_widgetLabel->SetAlignment(a);
  }

Index: pgrichedit.cpp
===================================================================
RCS file: /cvsroot/paragui/paragui/src/widgets/pgrichedit.cpp,v
retrieving revision 1.5
retrieving revision 1.6
diff -C2 -r1.5 -r1.6
*** pgrichedit.cpp      26 Jun 2002 16:00:21 -0000      1.5
--- pgrichedit.cpp      18 Aug 2002 08:12:53 -0000      1.6
***************
*** 2,23 ****
     ParaGUI - crossplatform widgetset
     Copyright (C) 2000,2001,2002  Alexander Pipelka
!  
     This library is free software; you can redistribute it and/or
     modify it under the terms of the GNU Library General Public
     License as published by the Free Software Foundation; either
     version 2 of the License, or (at your option) any later version.
!  
     This library is distributed in the hope that it will be useful,
     but WITHOUT ANY WARRANTY; without even the implied warranty of
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     Library General Public License for more details.
!  
     You should have received a copy of the GNU Library General Public
     License along with this library; if not, write to the Free
     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
!  
     Alexander Pipelka
     address@hidden
!  
     Last Update:      $Author$
     Update Date:      $Date$
--- 2,23 ----
     ParaGUI - crossplatform widgetset
     Copyright (C) 2000,2001,2002  Alexander Pipelka
! 
     This library is free software; you can redistribute it and/or
     modify it under the terms of the GNU Library General Public
     License as published by the Free Software Foundation; either
     version 2 of the License, or (at your option) any later version.
! 
     This library is distributed in the hope that it will be useful,
     but WITHOUT ANY WARRANTY; without even the implied warranty of
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     Library General Public License for more details.
! 
     You should have received a copy of the GNU Library General Public
     License along with this library; if not, write to the Free
     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
! 
     Alexander Pipelka
     address@hidden
! 
     Last Update:      $Author$
     Update Date:      $Date$
***************
*** 181,185 ****
                        increment = 0;
                *word = my_text.substr(searchFrom, result - searchFrom + 
increment);
! 
                if ((Uint32)my_text[result] == 
my_Marks[MARK_NONBREAKABLE_SPACE]) {
                        std::string newword;
--- 181,185 ----
                        increment = 0;
                *word = my_text.substr(searchFrom, result - searchFrom + 
increment);
!               
                if ((Uint32)my_text[result] == 
my_Marks[MARK_NONBREAKABLE_SPACE]) {
                        std::string newword;
***************
*** 550,553 ****
--- 550,570 ----
            }  
  }    */
+       return true;
+ }
+ 
+ bool PG_RichEdit::LoadText(const char* textfile) {
+       PG_DataContainer* text = PG_FileArchive::ReadFile(textfile);
+       
+       if(text == NULL) {
+               return false;
+       }
+       
+       // Hmm,...
+       // size() returns the number of loaded bytes. We have to terminate the 
text with 0.
+       // Last character will be truncated by this (i love valgrind).
+       text->data()[text->size()-1] = 0;
+       SetText(text->data());
+       
+       delete text;
        return true;
  }

Index: pgscrollbar.cpp
===================================================================
RCS file: /cvsroot/paragui/paragui/src/widgets/pgscrollbar.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -r1.6 -r1.7
*** pgscrollbar.cpp     6 May 2002 10:40:50 -0000       1.6
--- pgscrollbar.cpp     18 Aug 2002 08:12:53 -0000      1.7
***************
*** 2,23 ****
      ParaGUI - crossplatform widgetset
      Copyright (C) 2000,2001,2002  Alexander Pipelka
!  
      This library is free software; you can redistribute it and/or
      modify it under the terms of the GNU Library General Public
      License as published by the Free Software Foundation; either
      version 2 of the License, or (at your option) any later version.
!  
      This library is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      Library General Public License for more details.
!  
      You should have received a copy of the GNU Library General Public
      License along with this library; if not, write to the Free
      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
!  
      Alexander Pipelka
      address@hidden
!  
      Last Update:      $Author$
      Update Date:      $Date$
--- 2,23 ----
      ParaGUI - crossplatform widgetset
      Copyright (C) 2000,2001,2002  Alexander Pipelka
! 
      This library is free software; you can redistribute it and/or
      modify it under the terms of the GNU Library General Public
      License as published by the Free Software Foundation; either
      version 2 of the License, or (at your option) any later version.
! 
      This library is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      Library General Public License for more details.
! 
      You should have received a copy of the GNU Library General Public
      License along with this library; if not, write to the Free
      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
! 
      Alexander Pipelka
      address@hidden
! 
      Last Update:      $Author$
      Update Date:      $Date$
***************
*** 60,64 ****
          if ((Sint16)position[2].h < 0)
              position[2].h = 0;
- 
                position[3].x = 0;
                position[3].w = r.my_width;
--- 60,63 ----

Index: pgthemewidget.cpp
===================================================================
RCS file: /cvsroot/paragui/paragui/src/widgets/pgthemewidget.cpp,v
retrieving revision 1.6
retrieving revision 1.7
diff -C2 -r1.6 -r1.7
*** pgthemewidget.cpp   28 Apr 2002 16:35:30 -0000      1.6
--- pgthemewidget.cpp   18 Aug 2002 08:12:53 -0000      1.7
***************
*** 109,113 ****
  
                b = t->FindProperty(widgettype, objectname, "simplebackground");
!               my_internaldata->simplebackground = (b != -1) ? b : 
my_internaldata->simplebackground;
  
                b = t->FindProperty(widgettype, objectname, "nocache");
--- 109,116 ----
  
                b = t->FindProperty(widgettype, objectname, "simplebackground");
!               if(b != -1) {
!                       SetSimpleBackground(b);
!               }
!               //my_internaldata->simplebackground = (b != -1) ? b : 
my_internaldata->simplebackground;
  
                b = t->FindProperty(widgettype, objectname, "nocache");
***************
*** 156,160 ****
  
        if(g) {
!               my_gradient = *g;
                my_has_gradient = true;
        }
--- 159,163 ----
  
        if(g) {
!               SetGradient(*g);
                my_has_gradient = true;
        }
***************
*** 299,302 ****
--- 302,312 ----
        my_gradient = grad;
        my_has_gradient = true;
+       DeleteThemedSurface(my_internaldata->cachesurface);
+       my_internaldata->cachesurface = NULL;
+       Redraw();
+ }
+ 
+ PG_Gradient PG_ThemeWidget::GetGradient() {
+       return my_gradient;
  }
  
***************
*** 481,485 ****
  
        SDL_Surface *surface = SDL_CreateRGBSurface(
!                                  SDL_SWSURFACE,
                                   r.my_width,
                                   r.my_height,
--- 491,495 ----
  
        SDL_Surface *surface = SDL_CreateRGBSurface(
!                                  SDL_HWSURFACE,
                                   r.my_width,
                                   r.my_height,
***************
*** 511,513 ****
--- 521,534 ----
        }
        my_SurfaceCache.DeleteSurface(surface);
+ }
+ 
+ void PG_ThemeWidget::SetSimpleBackground(bool simple) {
+       my_internaldata->simplebackground = simple;
+       DeleteThemedSurface(my_internaldata->cachesurface);
+       my_internaldata->cachesurface = NULL;
+       Redraw();
+ }
+ 
+ void PG_ThemeWidget::SetBackgroundColor(const SDL_Color& c) {
+       my_internaldata->backgroundcolor = c;
  }

Index: pgwidget.cpp
===================================================================
RCS file: /cvsroot/paragui/paragui/src/widgets/pgwidget.cpp,v
retrieving revision 1.15
retrieving revision 1.16
diff -C2 -r1.15 -r1.16
*** pgwidget.cpp        26 Jun 2002 16:00:21 -0000      1.15
--- pgwidget.cpp        18 Aug 2002 08:12:53 -0000      1.16
***************
*** 2,23 ****
     ParaGUI - crossplatform widgetset
     Copyright (C) 2000,2001,2002  Alexander Pipelka
!  
     This library is free software; you can redistribute it and/or
     modify it under the terms of the GNU Library General Public
     License as published by the Free Software Foundation; either
     version 2 of the License, or (at your option) any later version.
!  
     This library is distributed in the hope that it will be useful,
     but WITHOUT ANY WARRANTY; without even the implied warranty of
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     Library General Public License for more details.
!  
     You should have received a copy of the GNU Library General Public
     License along with this library; if not, write to the Free
     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
!  
     Alexander Pipelka
     address@hidden
!  
     Last Update:      $Author$
     Update Date:      $Date$
--- 2,23 ----
     ParaGUI - crossplatform widgetset
     Copyright (C) 2000,2001,2002  Alexander Pipelka
! 
     This library is free software; you can redistribute it and/or
     modify it under the terms of the GNU Library General Public
     License as published by the Free Software Foundation; either
     version 2 of the License, or (at your option) any later version.
! 
     This library is distributed in the hope that it will be useful,
     but WITHOUT ANY WARRANTY; without even the implied warranty of
     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
     Library General Public License for more details.
! 
     You should have received a copy of the GNU Library General Public
     License along with this library; if not, write to the Free
     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
! 
     Alexander Pipelka
     address@hidden
! 
     Last Update:      $Author$
     Update Date:      $Date$
***************
*** 246,250 ****
  bool PG_Widget::AcceptEvent(const SDL_Event * event) {
  
!       if (!IsVisible()) {
                return false;
        }
--- 246,250 ----
  bool PG_Widget::AcceptEvent(const SDL_Event * event) {
  
!       if (!IsVisible() || IsHidden()) {
                return false;
        }
***************
*** 691,702 ****
        ReleaseInputFocus();
  
!       RestoreBackground();
  
        if(!PG_Application::GetBulkMode()) {
                UpdateRect(my_internaldata->rectClip);
        }
  
-       SDL_SetClipRect(my_srfScreen, NULL);
- 
        if(!PG_Application::GetBulkMode()) {
                PG_Application::LockScreen();
--- 691,701 ----
        ReleaseInputFocus();
  
!       SDL_SetClipRect(my_srfScreen, NULL);
  
        if(!PG_Application::GetBulkMode()) {
+               //RestoreBackground();
                UpdateRect(my_internaldata->rectClip);
        }
  
        if(!PG_Application::GetBulkMode()) {
                PG_Application::LockScreen();
***************
*** 775,779 ****
                }
        }
! 
        PG_Application::UnlockScreen();
  }
--- 774,778 ----
                }
        }
!       
        PG_Application::UnlockScreen();
  }
***************
*** 939,949 ****
  
        if(font != NULL)
!               SetFontName(font);
  
        if (fontsize > 0)
!               SetFontSize(fontsize);
  
        if (fontstyle >= 0)
!               SetFontStyle(fontstyle);
  
        c = t->FindColor(widgettype, objectname, "textcolor");
--- 938,948 ----
  
        if(font != NULL)
!               SetFontName(font, true);
  
        if (fontsize > 0)
!               SetFontSize(fontsize, true);
  
        if (fontstyle >= 0)
!               SetFontStyle(fontstyle, true);
  
        c = t->FindColor(widgettype, objectname, "textcolor");
***************
*** 1463,1467 ****
  
  void PG_Widget::DrawText(int x, int y, const char* text) {
!       DrawText(PG_Rect(x,y,0,0), text);
  }
  
--- 1462,1466 ----
  
  void PG_Widget::DrawText(int x, int y, const char* text) {
!       DrawText(PG_Rect(x,y,w,h), text);
  }
  
***************
*** 1480,1488 ****
  void PG_Widget::DrawText(const PG_Rect& rect, const char* text, const 
SDL_Color& c) {
        SetFontColor(c);
!       DrawText(PG_Rect(x,y,0,0), text);
  }
  
  void PG_Widget::DrawText(int x, int y, const char* text, const SDL_Color& c) {
!       DrawText(PG_Rect(x,y,0,0), text, c);
  }
  
--- 1479,1487 ----
  void PG_Widget::DrawText(const PG_Rect& rect, const char* text, const 
SDL_Color& c) {
        SetFontColor(c);
!       DrawText(rect, text);
  }
  
  void PG_Widget::DrawText(int x, int y, const char* text, const SDL_Color& c) {
!       DrawText(PG_Rect(x,y,w,h), text, c);
  }
  
***************
*** 1496,1505 ****
        my_internaldata->quitModalLoop = false;
  
        while(!my_internaldata->quitModalLoop) {
                SDL_WaitEvent(&event);
!               ProcessEvent(&event, true);
                PG_Application::DrawCursor();
        }
  
        return 0;
  }
--- 1495,1516 ----
        my_internaldata->quitModalLoop = false;
  
+       // run while in modal mode
        while(!my_internaldata->quitModalLoop) {
                SDL_WaitEvent(&event);
!               if(event.type == SDL_USEREVENT) {
!                       
PG_Application::GetInstance().PumpIntoEventQueue(&event);
!               }
!               else {
!                       ProcessEvent(&event, true);
!               }
                PG_Application::DrawCursor();
        }
  
+       // poll all remaining events out of the eventloop
+       // there might be callback messages still in there
+       
+       while(SDL_PollEvent(&event)) {
+               ProcessEvent(&event, true);
+       }
        return 0;
  }
***************
*** 1804,1807 ****
--- 1815,1823 ----
  
  void PG_Widget::SetDirtyUpdate(bool bDirtyUpdate) {
+       if(PG_Application::GetDirtyUpdatesDisabled()) {
+               my_internaldata->dirtyUpdate = false;
+               return;
+       }
+       
        my_internaldata->dirtyUpdate = bDirtyUpdate;
  }
***************
*** 1813,1816 ****
--- 1829,1841 ----
  void PG_Widget::SetHidden(bool hidden) {
        my_internaldata->hidden = hidden;
+       if(my_internaldata->childList == NULL) {
+               return;
+       }
+       PG_RectList::iterator list = my_internaldata->childList->begin();
+ 
+       while (list != my_internaldata->childList->end()) {
+               (*list)->SetHidden(hidden);
+               list++;
+       }
  }
  

Index: pgwidgetlist.cpp
===================================================================
RCS file: /cvsroot/paragui/paragui/src/widgets/pgwidgetlist.cpp,v
retrieving revision 1.12
retrieving revision 1.13
diff -C2 -r1.12 -r1.13
*** pgwidgetlist.cpp    26 Jun 2002 16:00:21 -0000      1.12
--- pgwidgetlist.cpp    18 Aug 2002 08:12:53 -0000      1.13
***************
*** 2,23 ****
      ParaGUI - crossplatform widgetset
      Copyright (C) 2000,2001,2002  Alexander Pipelka
!  
      This library is free software; you can redistribute it and/or
      modify it under the terms of the GNU Library General Public
      License as published by the Free Software Foundation; either
      version 2 of the License, or (at your option) any later version.
!  
      This library is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      Library General Public License for more details.
!  
      You should have received a copy of the GNU Library General Public
      License along with this library; if not, write to the Free
      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
!  
      Alexander Pipelka
      address@hidden
!  
      Last Update:      $Author$
      Update Date:      $Date$
--- 2,23 ----
      ParaGUI - crossplatform widgetset
      Copyright (C) 2000,2001,2002  Alexander Pipelka
! 
      This library is free software; you can redistribute it and/or
      modify it under the terms of the GNU Library General Public
      License as published by the Free Software Foundation; either
      version 2 of the License, or (at your option) any later version.
! 
      This library is distributed in the hope that it will be useful,
      but WITHOUT ANY WARRANTY; without even the implied warranty of
      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
      Library General Public License for more details.
! 
      You should have received a copy of the GNU Library General Public
      License along with this library; if not, write to the Free
      Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
! 
      Alexander Pipelka
      address@hidden
! 
      Last Update:      $Author$
      Update Date:      $Date$
***************
*** 197,200 ****
--- 197,202 ----
  
  void PG_WidgetList::AddChild(PG_Widget* w) {
+       PG_LogDBG("PG_WidgetList::AddChild()");
+       
        if(w == NULL) {
                return;
***************
*** 252,257 ****
                w = *list;
                w->Hide();
                delete w;
-               //my_widgetList.erase(list);
                list = my_widgetList.begin();
        }
--- 254,259 ----
                w = *list;
                w->Hide();
+               my_widgetList.erase(list);
                delete w;
                list = my_widgetList.begin();
        }





reply via email to

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