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