I fixed this earlier today, but forgot to send out an email at the time 
:)

Should fix both this new bug and Eric's original problem.

On 2002.02.06 12:29 Micah Dowty wrote:
> Ok, i temporarily reverted the change that causes this. I'll track
> down
> the bug probably later today. The change i made would only run
> div_rebuild() if the size/position of a widget changes. It fixed a
> multiple-redraw problem that Eric found, but looks like it causes
> worse
> problems :(
> 
> On Wed, Feb 06, 2002 at 05:07:36PM +0100, Philippe Ney wrote:
> > Hi Micah,
> >
> > Since the last changes of the server, I note a problem that seems to
> be due to resizing of widgets.
> > The following code highlight the problem.
> > The 'toggle' button juste toggle the size of the ~laucher~ between 0
> and PG_S_ALL.
> > And when the ~laucher~ is graphically corrupted, you can retrieve it
> as good by changing the size of the window.
> >
> > I hope this is of some help for you,
> > -philippe
> >
> >
> > ---8<----------------------------------------
> >
> > #include <stdio.h>
> > #include <stdlib.h>
> >
> > #include <picogui.h>
> >
> >
> > /*
> >  * define the grid of the button for the Launcher
> >  * a 'NULL' define a new line and a double 'NULL' for the end of the
> grid
> >  * (this is due to the algo for grid construction)
> >  */
> > static char *buttongrid[] = {
> >   NULL,"ToDo","Web","Games",
> >   NULL,"Calculator","Mail","Expenses",
> >   NULL,"Addresses","Calendar","Notes",
> >   NULL,NULL
> > };
> >
> > static pghandle wLauncherApp;
> >
> >
> > /* Load the Launcher app in memory */
> > int launcher_load(void) {
> >   char* s;
> >   int   i;
> >   pghandle wRow=0,wButton=0,wGridbox=0;
> >
> >   wLauncherApp = pgRegisterApp(PG_APP_NORMAL,"Launcher Panel",0);
> >
> >   /* Box widget that occupies ... */
> >   wGridbox = pgNewWidget(PG_WIDGET_BOX,0,0);
> >   pgSetWidget(PGDEFAULT,PG_WP_SIDE,PG_S_ALL,0); /* ... all the free
> space */
> >
> >   /* The Launcher panel */
> >   for (i=0;;i++) {
> >     s = buttongrid[i];
> >     if (s) {   /* Add a button to the row */
> >       wButton = pgNewWidget(PG_WIDGET_FLATBUTTON,
> >                             wButton ? PG_DERIVE_AFTER :
> PG_DERIVE_INSIDE,
> >                             wButton ? wButton : wRow);
> >       pgSetWidget(PGDEFAULT,
> >                   PG_WP_TEXT,pgNewString(s),
> >                   PG_WP_SIZEMODE,PG_SZMODE_CNTFRACT,
> >                   PG_WP_SIZE,pgFraction(1,3),
> >                   0);
> >       pgSetPayload(PGDEFAULT,(unsigned long) s);
> >     }
> >     else {     /* Add a row */
> >       if (!buttongrid[i+1])   /* Two consecutive NULLs, exit */
> >         break;
> >
> >       wRow = pgNewWidget(PG_WIDGET_BOX,
> >                          wRow ? PG_DERIVE_AFTER : PG_DERIVE_INSIDE,
> >                          wRow ? wRow : wGridbox);
> >       pgSetWidget(PGDEFAULT,
> >                   PG_WP_TRANSPARENT,1,
> >                   PG_WP_SIDE,PG_S_BOTTOM,
> >                   PG_WP_SIZEMODE,PG_SZMODE_CNTFRACT,
> >                   PG_WP_SIZE,pgFraction(1,3),
> >                   0);
> >       wButton = 0;
> >     }
> >   }
> > }
> >
> > /* toggle the size of the launcher */
> > int toggle_btn_handler(struct pgEvent *evt) {
> >   static int size = 0;
> >   static int last_size = 1;
> >
> >   last_size = (last_size ? 0 : 1);
> >   printf("%i\n",last_size);
> >   size = PG_S_ALL * last_size;
> >
> >   if(wLauncherApp)
> >     /* the handle is not 0 then the Launcher app is already loaded
> */
> >     pgSetWidget(wLauncherApp,PG_WP_SIZE,size,0);
> >
> >   return 0;
> > }
> >
> >
> > /* Main program */
> > int main(int argc, char **argv) {
> >   pgInit(argc,argv);
> >
> >   pgRegisterApp( PG_APP_TOOLBAR,"Toolbar",
> >              PG_APPSPEC_SIDE,PG_S_BOTTOM,
> >              0 );
> >
> >   pgNewWidget(PG_WIDGET_BUTTON, 0, 0);
> >   pgSetWidget(PGDEFAULT,
> >           PG_WP_SIDE,PG_S_LEFT,
> >               PG_WP_TEXT,pgNewString("Toggle"),
> >               0);
> >   pgBind(PGDEFAULT,PG_WE_ACTIVATE,&toggle_btn_handler,NULL);
> >
> >   /* Call the launcher panel */
> >   launcher_load();
> >
> >   pgEventLoop();
> >
> >   return 0;
> > }
> >
> > /* The End */
> >
> > _______________________________________________
> > Pgui-devel mailing list
> > [EMAIL PROTECTED]
> > https://lists.sourceforge.net/lists/listinfo/pgui-devel
> 
> --
> Only you can prevent creeping featurism!
> 
> _______________________________________________
> Pgui-devel mailing list
> [EMAIL PROTECTED]
> https://lists.sourceforge.net/lists/listinfo/pgui-devel
> 

_______________________________________________
Pgui-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/pgui-devel

Reply via email to