Python/OSX - Snap Windows To Other Applications

Closed Posted Jun 29, 2015 Paid on delivery
Closed Paid on delivery

What I require is an utility app that, depending on the arguments, will open one or more windows and attach/dock/snap them into another application. The final effect should be something similar to docking panels on a IDE like eclipse.

This is for a pet project and not commercial-grade software. I'm a programmer myself and I intend to develop and improve on the code later. I will opensource the full code and bidders are welcome to work on a github repository from the start.

I plan on supporting Windows and Linux later, so the code that interacts with the OS should be clearly separated and abstracted away from the core of the library. I believe the best fit for this project would be something like Python but I'm open to other suggestions. As you'll see, the UI part of this project is minimal.

The bid is for a library and a wrapper terminal app that accepts the following arguments:

* name or pid of another OSX application (e.g. Chrome)

* variable number of window/options to attach (obviously, up to 4), where each window has the following options:

* name (e.g. firstPanel)

* location (top, bottom, left, right) (can't have duplicates...)

* default width (optional)

* min width (optional, >= 0)

* max width (optional, >= min width)

* url (for testing purposes, explaining more later)

The library should then create the required windows, attach them to the correct side of the application and set the correct width. Depending on the sizes, and available screen size the application should be resized to make sure everything fits.

During the run-time, any resize to the application should resize/move the attached windows and impose the required size restrictions. If possible, should the resize force a window to go out of screen the library should force the OS to refuse to resize behind that point - if this is not possible at all then force the side windows out of screen after they are at the minimum possible width/height.

For testing purposes, each window should contain a webview (browser) that opens the provided url and appends the window name to it. The url, should load a simple page with some javascript that:

* Shows & Updates the window values (name, location, current coordinates, width and height)

* Have 2 buttons, each once pressed sets the size (height or width) to another (different) size. The library should then fix the window size to that value with an animation (resizing both application and windows as necessary).

If possible, the transition while resizing and moving the windows should feel like a normal OS window operation - smooth.

Cocoa Mac OS Objective C Python

Project ID: #7963866

About the project

1 proposal Remote project Active Aug 5, 2015

1 freelancer is bidding on average €250 for this job

anuyadav1

A proposal has not yet been provided

€250 EUR in 5 days
(47 Reviews)
5.6