6 Replies Latest reply on May 9, 2017 2:02 PM by JJMack

    Can I hook into an On Dialog Open method call?

    Nyxeka

      So, I've been using photoshop for a long time, and I'm also a programmer. I've never tried to delve into the API though.

       

      One thing that REALLY bugs me about photoshop is that I switch between monitors on a fairly regular basis, depending on whether I'm sculpting, drawing, modelling, just trying to create some procedural texture or text stuff, etc...

       

      I use Windows 10, btw.

       

      So, I'm wondering, is there an easy way for me to write a script that hooks into some OnDialogOpen method to take dialog windows and open them in the same monitor that Photoshop is open in? (I'd probably use something w/ Windows to check which window that it's in, or perhaps I could even manually set it to open up all dialog windows in a specific monitor, or even manually set the area that I want them to stick to via an interface or something.

       

      I'm seriously considering getting into plugin scripting, but only if this is possible. Has anyone tried it? Is there literally any easy way that I can access the photoshop dialog windows via scripting? Things like colour palette, file open, various filter/image adjustment windows, etc...?

       

      Thanks in advanced

        • 1. Re: Can I hook into an On Dialog Open method call?
          Nyxeka Level 1

          EDIT: "(I'd probably use something w/ Windows to check which monitor that it's in, or perhaps I could even manually set it to open up all dialog windows in a specific monitor, or even manually set the area that I want them to stick to via an interface or something.)"

          • 2. Re: Can I hook into an On Dialog Open method call?
            JJMack Most Valuable Participant

            With Photoshop javascript support you do not have control over where file open and save dialog open. On windows PC They seem to open position at location you last close that type of file dialog and the size it was closed.   Folder selection Dialog seems always to with its top left corner in the center of Photoshop main window the size it was last closed.  Mac may be different Photoshop uses the Platform OS file system dialog s.

            • 3. Re: Can I hook into an On Dialog Open method call?
              Nyxeka Level 1

              Alright. How about all of the other dialog windows? (The one's that I mentioned - for example: Hue adjustment, PNG settings save dialog, colour picker, filter dialogs, etc...)

               

              I understand that the file open dialog is accessed by Photoshop through an operating systems API. That's not a problem, as it doesn't open in the wrong monitor

              • 4. Re: Can I hook into an On Dialog Open method call?
                JJMack Most Valuable Participant

                Most of Photoshop Features and Plug-in etc control their dialog windows. Adobe also re-implemented ScriptUI in I believe CC 2015. Some things do not work like the old  ScriptUI one is where dialog pop-open. ScriptUI now open all dialog centered on the the display it opne on. The old dlg.frameLocation setting no longer works is also does not cause a script error if coded. However you can code an onshow function for the dialog and move the dialog be where where you want.   You may be able to get Photoshop Displays configuration.  It is view able  in Photoshop's System Information. So I'm sure you can get that information.  However withe High-resolution Displays, Adobe UI scaling and System Scaling and changes being made in these areas. You may want to hold-off moving dialog s to different displays then which it wants to open on. Just position it on the displays it opens on.

                • 5. Re: Can I hook into an On Dialog Open method call?
                  Nyxeka Level 1

                  Thanks.

                   

                  Ah, so if I can re-position a dialog window on the display that it opens on, would I be able to exceed the edges of display by simply giving it a set of coordinates that are outside of the screen, onto another monitor?

                   

                  Say I've got two monitors side by side, each one is 1920x1080. Photoshop is open in the right monitor.

                   

                  Let's say I was using photoshop in the left monitor before, so the dialog opens there. (this is the case so far by the way, photoshop hasn't seemed to figure out how to open dialog boxes in the same monitor photoshop resides in). So, could I reposition the dialog to the second monitor by simply adding 1920 pixels in the X axis to its location? (or do vice-versa by subtracting 1920 pixels?)

                  Obviously I'd figure out a way to check and see if the window is actually visible, though. Wouldn't want to lose a dialog outside the screen in the wrong direction.

                   

                  Should be fairly simple to grab monitor resolution automatically, or even possibly prompt the user the first time they run the plugin...

                  • 6. Re: Can I hook into an On Dialog Open method call?
                    JJMack Most Valuable Participant

                    Nyxeka  wrote

                     

                    Should be fairly simple to grab monitor resolution automatically, or even possibly prompt the user the first time they run the plugin...

                    At one time I played with putting  Dialog on the Display I wanted and to some extent was successful.   Prompting the user may not always work and you may need to get the size of the displays all the time.  I dynamically attach and detach a third display on my workstation. and If I want I can use Windows scaling and may chang scaling on mt 4K display/  Photoshop sees all the these system  dynamic changes and reelects that information in Photoshop system information.   You can change you machines Displays configuration. 

                     

                    Photoshop system information  reflect the Displayed scaled number of pixels.  If you set Photoshop's Preference UI saclling all display will have their number of pixels  reduced be a factor of 4   1/2 with 1/2 height.   It would also be posible to also use windows acalinf where different display  can be scaled a different factior lie 1.25x, 1.5x etc Adobe's 2x UI setting would quater the pise that Widow show the displays to be.

                     

                    The wonderful world of high-resolution displays mixed with low-resolution displays. Dell now markets a 8K display that  has a 280DPI resolution. 32" $5K  8K px7680 x 4320 at 60 Hz

                    http://www.dell.com/en-us/shop/dell-ultrasharp-32-8k-monitor-up3218k/apd/210-alez/monitors -monitor-accessories