I've developed a VBA-style add-on for PowerPoint in C# using NetOffice Framework, https://github.com/NetOfficeFw . The add-on is now working, and in fact my question is not really related to that.
On my desktop PC I have four screens, and when PowerPoint is in "slide show mode" it takes over two of the screens, one for the slide show and one for the presenter screen, both shown in full screen mode. The normal PowerPoint window is also still there on one of the other two screens.
On my old portable PC with an extra screen connected, the extra screen normally shows a mirror image of the built-in display. But when PowerPoint goes into "slide show mode" it somehow reconfigures the system and shows the slide show in full screen on the connected screen and the presenter screen on the built-in display. Very clever.
But what exactly has PowerPoint done, and how? Is this documented anywhere?
This is mostly just to satisfy my curiosity. I have now recoded my add-on so it works - I was previously using the .Net System.Windows.Forms.Screen class to figure out where to position the mouse cursor when I'd placed PowerPoint in "slide show mode", but that doesn't work on my portable PC because it maintains that there is still only one screen on the system.
Older versions of PPT behave differently but current versions, when you start a slide show, change your windows video settings from mirror to extend and put the slide show view on the second monitor unless you override the default settings. Then it resets the video to the previous setting when you end the slide show.
When you extend the display across multiple monitors, Windows sees it as one large screen, which explains why your PC reports only the one screen, I think.
Related
I am using QTP 11.0 and a java button in my application is highlighted in big monitor screen(19 or 20 inch) but not in Laptop screen(14 or 15 inch).
I have to click the button and a pop up will be seen,this works fine in big screen but in laptop screen the pop up does not appear.Is there any workaround?
In small screen the scroll bar appears and the java button is below the screen, but in big screen its appeared without scrolling so its working fine with the big screen.
Also i have tried if scroll down is possible through scripting in small screen ,but scroll down does not work NOR does pgDown pgUP works in the application.
Addins selected are ActiveX,Java,Web
Advanced thanks...
As per the given information I assume that the problem is with the object properties of the java button. Could you try adding only htmlid/name property & try highlighting the object in both the screens? Please disable object identification, location & indexing if applicable. If possible share the properties of the object for further analysis.
Does QTP fail to recognise the button during play back? QTP may not highlight the button because it is not visible; but in most cases it will be able to perform actions (such as click event) on the button. Make the button visible in web page / application and try clicking on Highlight button in QTP.
I wrote an Awesomium 1.7.2 plugin that displays a bunch of text and contains a few buttons. While the plugin functions fine, I have some strange display issues.
I have a separate program that I sometimes "Dock" at the top of my computer screen. When I do that, the text inside my Awesomium window gets warped a little (see screenshots below). That's because that window THINKS that it's maximized, but the screen has been compressed by 20 to 30 pixels; whatever the height of that separate, docked window is.
Other programs seem to be smart enough to render text appropriately when I add/remove my docked program. Also, when I view these web pages directly in a web-browser, they get resized properly after the dock change. It's only when they're inside of this Awesomium control where they don't respond properly to another program being docked. How can I make my html controls behave this way inside of the Awesomium window?
Update: I tried 1.7.3 as well, but the problem still exists.
Update: I also posted this question on answers.awesomium.com and awesomium.zendesk.com, but that hasn't helped.
SCREENSHOTS
Maximized without a docked program present:
Maximized WITH a docked program present and warped, compressed text:
We have 4 monitors on a wall for graphing. Looking to put them all into use in fullscreen mode. Right now if I do it it just uses one. Just looking to see if it is possible to create an app that allows me to use all 4 with like a simple uiwebview for each monitor.
Should of mentioned this.. Looking for a simple code sample of how to do this or pointers on where to get answers.
Yes, it is possible.
Standard Lion fullscreen mode allows for one "primary window", which is sized to take up the entire main screen, and as many "auxiliary windows" (inspector panels, etc.) as you want, which are not automatically sized in any way.
Go into Xcode, create a simple project, and edit the xib. For the existing window, go to the Attributes Inspector and make sure that Full Screen is set to "Primary Window". Now in the object browser, drag three Panels into the app. Go through them and make sure each one has "Utility Panel" for Style, "Auxiliary Window" for Full Screen, and either "Inferred Behavior" or "Transient Behavior" for Exposé. Now, when the first window goes into full screen mode (e.g., when you get the appropriate notification or NSWindowDelegate method), size and move the other three windows to take over the other three screens.
This is all documented pretty well in the Implementing the Full-Screen Experience section of the "Mac App Programming Guide" in the 10.7 Core Library.
If you're just looking to put a web view on each screen, it may be easier to use -[NSView enterFullScreenMode:withOptions:]. This isn't Lion's new full-screen mode, it's the earlier technique. It has different behavior in terms of whether the app is in a separate space, etc.
I am writing a Mac application, in Cocoa, that needs the ability to 'lock down' the computer. Basically, I am writing a small agent that will sit in the background and when prompted, throw up a window that covers the entire screen, including the status bar, and shows a message (something like "give me back my computer, thief!").
The window has two requirements: it can't be moved and it can't be closed, minimized or otherwise disabled - just a big blob sitting on the screen, making sure the thief can't use the computer. I have all the agent stuff lined up, but I need help coding this window. Does anyone have any ideas?
Thanks,
Chris
P.S - In my dream world, this window would show up even at the login screen. The agent will be running by then, but I am not sure if OS X will allow it...
What you're asking for is basically to turn the user's computer into a not-very-functional kiosk. See also this technote on the same subject.
For display, alternatives to the full-screen view mode described in the Kiosk Mode document include:
Capture all the displays and draw directly to them using Quartz Display Services.
Set your window's frame to the frame of its screen and set its window level really high. You'll need to create one such window per screen.
I want to create a full Screen Cocoa application, however my app is slightly different from a conventional fullscreen app.
This app would be below everything else, so underneath the menu bar and the Dock, etc. It would have a large image covering up the Desktop and icons, with a custom NSView in the middle with a table view, etc. If this concept is hard to understand then here is an image:
http://img10.imageshack.us/img10/6308/mockupo.png
The only part that might be a bit confusing is the background image. This background image is NOT the wallpaper of the computer, but part of the app. So when the app is launched, it goes into full screen mode and puts itself underneath the dock and the menu bar, and underneath all other windows too. So it draws the background image to cover the screen (including Desktop and icons). Then has a custom NSView in the middle containing my controls.
What's the best way to go about doing this?
Thanks
Make a borderless window, the size of the menu-bar screen (screen 0—not [NSScreen mainScreen]), positioned at 0,0, with window level kCGDesktopWindowLevel.
Remember that you will need to observe for screen frame-change notifications (when the user changes the screen dimensions), and that you should correctly handle the case of no screen at all (headless Mac).
I think #Peter Hosey’s solution should work, but to make other windows go on top, you will probably need to change the window level to something else.
But, I implore you, do not do this. This will be the most bugly application the Macintosh has ever seen. There are a lot of really good user interface paradigms that you can use, and "replicating" the main desktop interface of Mac OS X is generally not one of them. That is, unless you are reimplementing Time Machine or something like that.