How to show a message box from the filter

keens312 keens312 at hotmail.com
Wed Aug 6 16:36:31 PDT 2008


> keens312 wrote:
> >>> keens312 wrote:
> >>>>> keens312 wrote:
> >>>>>> Hello,
> >>>>>>
> >>>>>> I am developing a filter driver on Mac OSX.
> >>>>>>
> >>>>>> A messagebox(with a button on it) should be show up in some cases.
> >>>>>>
> >>>>>> Does the CUPS provide a way to define the UI in Drv file and show it up with cups APIs?
> >>>>> No, there is no way for you to directly communicate with the user.
> >>>>>
> >>>>> Keep in mind that your filter may not be running on the same system
> >>>>> as the user, or the user may not be logged onto the console when the
> >>>>> job actually gets printed.
> >>>>>
> >>>>> About all you can do is use STATE: messages to make the printer queue
> >>>>> icon bounce in the dock so that the user can correct the problem, but
> >>>>> your driver will need to monitor the printer to know when to continue.
> >>>>>
> >>>>> --
> >>>>> ______________________________________________________________________
> >>>>> Michael Sweet, Easy Software Products           mike at easysw dot com
> >>>> Hi Michael,
> >>>>
> >>>> I have to make a workaround for this, since there is no button on printer.
> >>>>
> >>>> We just take into consideration in the case that filter running on the same system as user.
> >>>>
> >>>> My plan is to call an external application in filter with LSOpenApplication API. When user click the button on the external application, triggered the job left.
> >>> That will not work - your filter isn't running as the login user and
> >>> has no access to the screen.  You MUST have a program either running
> >>> or registered with launchd in the user's account so that it can
> >>> receive the message from your filter and then display a dialog to the
> >>> currently logged in user.
> >>>
> >>> That said, a printer driver that depends on communicating with the
> >>> user will have serious issues - it won't work with printer sharing,
> >>> users will not like dialogs popping up randomly over their
> >>> applications, and it exposes confidential jobs to interception by
> >>> the user at the computer when the job prints.
> >>>
> >>> --
> >>> ______________________________________________________________________
> >>> Michael R Sweet                        Senior Printing System Engineer
> >>>
> >> Michael,
> >>
> >> I am trying the way registed with launchd.
> >>
> >> LaunchService document does not help me to write the code.
> >>
> >> Is there any sample code about LaunchService?
> >>
> >> or could you please tell me the APIs that I should use in my cases?
> >>
> >> Thanks very much.
> >> Keene
> > Finally I find the correct document
> > http://developer.apple.com/documentation/MacOSX/Conceptual/BPSystemStartup/BPSystemStartup.html
> >
> > What I need to do is make Launch Agent, which is per user-session, and has the ability to access window server.
> >
> > The Launch Agent will be started when user login, and it will be running on backend and listen on the TCP port I specified. If the defined command received, agent will display the window and bring it to the topmost. CUPS filter driver will send the command.
> >
> > I have to programming for the IPC between agent and filter.
> >
> > Am I correct?
>
> Basically, yes.  The only change I would make would be to use a UNIX
> domain socket instead of a TCP socket, then you can easily tie the
> launch agent to a particular print queue.
>
> --
> ______________________________________________________________________
> Michael R Sweet                        Senior Printing System Engineer
>
Hi Michael,

I will use UDS, but I have no idea how to tie the agent to print queue.

Could you please give me more advice about how to tie?

Thanks
Keene




More information about the cups mailing list