[comp.sys.mac.programmer] Floating windows and gophers

dfranck@x102c.harris-atd.com (franck deniz 01591) (05/02/91)

No Flames !! I am a beginner and I am not really sure if I am
even asking this question correctly, but here goes:

I have created 2 (with the potential of multiple) floating windows
in an appliction.  I want a ~periodic~ method to be executed within
each window (ex print a string to the window) simultaneously, or at
least appear that way to the user (it is not necessarily the same
string) .  I am currently doing this by overwriting the dwadle()
method. However, I have noticed that in CApplication that Idle()
executes dwadle only along a single object's chain of command (ie first
the objects gopher, then its supervisor, on up the bureacacy), but 
does not go horizontally to other objects. What am currently doing to
at least have something executing is to create the 2 documents and set
the ggopher to a window's itsgopher or mainpane and thus only one
window is updated continuously. How do I get ggopher to  recognize
both? 
or
HOW do I "multi-method" between objects?? Should ~I~ keep a list of
objects in my application (along with their gophers) and then dwadle
them?  (to a novice like myself, this terminology is ~quite~ amusing--
i would love to see someones expression after hearing me asking which
gopher to dwadle {8-) ) 

There just seems like there is an easier way..

!!!!HELP!!!!!

Deniz Franck

From the ashes of disaster grow the roses of success...
  -- Chitty Chitty Bang Bang

ech@cbnewsk.att.com (ned.horvath) (05/02/91)

From article <6176@trantor.harris-atd.com>, by dfranck@x102c.harris-atd.com (franck deniz 01591):
> I have created 2 (with the potential of multiple) floating windows
> in an appliction.  I want a ~periodic~ method to be executed within
> each window (ex print a string to the window) simultaneously, or at
> least appear that way to the user (it is not necessarily the same
> string) .  I am currently doing this by overwriting the dwadle()
> method. However, I have noticed that in CApplication that Idle()
> executes dwadle only along a single object's chain of command (ie first
> the objects gopher, then its supervisor, on up the bureacacy), but 
> does not go horizontally to other objects...

What you may want to do is put your floater updates into CChores,
attached to gApplication->itsIdleChores, and override the Application's
Dawdle() to ensure that the Chores get time often enough.  If you're
concerned about "simutaneity," zap both floaters from a single Chore.

This may not be the only way, but it works...
-- 

=Ned Horvath=
ehorvath@attmail.com