Comments (14)
Any news on popping out docked panels?
from phosphor.
(For reference, the other thread is #50.)
from phosphor.
That would be a really useful feature! I'd be really happy if the design of that feature will later on allow for flexible replacement of the panel's parent window while it is floating. For example, we would like to be able to float panels in Electron browser windows. A web application may want to have the choice to use either browser popup windows or floating div containers.
from phosphor.
@forman I'm not sure I follow you. Can you elaborate a bit more on the behavior you're looking for?
from phosphor.
@sccolbert I suppose @vrmerlin intends something like the feature golden-layout has.
See: https://golden-layout.com/examples/
(click on the stacked icon on the right, to open the tab in a new window while retaining its size)
It could be handy, even if g-l implementation is a bit heavy.
--R
from phosphor.
Yes! That's the feature I'd like to see.
from phosphor.
@sccolbert If I run a native desktop application that has docking window support, for example Photoshop, and I undock a tool panel I will get another native desktop window that I can place somewhere on the desktop, may it be next to, behind, or on top my main application window. I can also place it on another screen. Such desktop applications could be built with electron and still using a webtech stack. However, electron comes without such panel support, but it lets you open new native windows through its JS API.
If I'd decide to use PhosphorJS and electron for my desktop application (which I would really like to do) and it will one day support #153, I'd like to configure PhosphorJS' new undocking mechanism so it will create native windows for its floating panels through electron (e.g. by some window factory / dependency injection pattern) rather than letting it create just pseudo windows implemented by draggable div
elements or so. The latter would be limited to the bounds of the (browser) window's content area rendered by the browser engine. An alternative to draggable div
elements would be to let panels float in browser popup windows as it is done in golden-layout, as @RobertoMalatesta mentioned.
Hopefully this makes my issue a little clearer. I have to admit I'm a webtech beginner which may explain why I can't express my issue better. (Everything seems so much more complicated in JS compared to e.g. Java/Swing, which I use since 15 years and where there are several options for mature docking frameworks. Of course, for the desktop only.)
from phosphor.
It would be nice to have both options but in web apps with floating toolbars it's probably more practical to have the toolbars float as freely movable divs. Otherwise they'll always move behind the main browser window when clicking anywhere else. In a native Electron app you might be able to somehow configure the floating windows to stay above the main one, but browsers won't give you such access to the window manager.
Still, if I have two large tabs (for example an Excel-like grid view and a visualization of the data) and a multi-monitor setup, I might want to put each tab on its own monitor (in a separate browser window).
from phosphor.
Having the ability to pop-out tabs as free-floating windows (like in Golden Layout) is a planned feature. The other option of in-browser draggable "div windows" (like an MDI interface) is not something I'm interested in building.
from phosphor.
That's great, I'm also against the "div windows" solution as used e.g. in Dock Spawn. But still, will you consider in your design the customization of creating a floating panel's host window? I mentioned one use case where I and most likely many other electron users will want to create electron browser windows.
from phosphor.
I'd love to have real floating windows with a host browser window, if there's a way to do that also outside Electron. But if I have a movable information panel for example showing what's under the mouse, it really sucks if it disappears under the browser at every click. Would you take a PR for "div windows" or is the feature simply out of the question?
I can't argue against using parent and child windows in Electron but I'd need the same also for browsers, so preferably both features.
from phosphor.
@forman Yes, I can make the window factory customizable.
@jjrv We can do the best we can with native browser child windows for now. I'll wait and see how much demand there is for MDI-style stay-on-top windows.
from phosphor.
@sccolbert I'd rather need the MDI-style windows, to support toolbars that can be docked or floated on top of a map view. Can you look at PR #196 if I'm going in the right direction and if it would have a chance of getting merged once fully implemented? Are the implementation and coding style acceptable?
from phosphor.
Hi guys! First of all congrats for this project. It seems to have huge potential. Now the question. Do you have any news regarding this popup panels feature? On #50 @sccolbert referred about a new widget (FloatingWindow) is that idea being developed?
from phosphor.
Related Issues (20)
- Datagrid: Asynchronous TextRenderer functions HOT 6
- Datastore load testing HOT 2
- distributing as es6 HOT 2
- [Docs/Examples] Codesandbox template / Storybook support HOT 6
- [Question] Hot reloading phosphor widgets? HOT 4
- Applying zoom to parent of some phosphor widgets breaks mouse targeting HOT 5
- Enable setting context menu icon HOT 2
- Deprecated user-defined Event API HOT 2
- [Question] There may be invalid code in reallocSizers function HOT 1
- Save layouts to local file and restore them HOT 1
- Is there a list of projects which make use of phosphor that one could check out? HOT 2
- Add a "pass thru" virtualdom element that accepts a custom rendering callback HOT 1
- Mac-only keyboard shortcut HOT 10
- Datagrid: investigate using CanvasKit
- Some FocusTracker and TabBar unittests fail in master on OS X with latest Firefox HOT 1
- Stretch factors and size basis should be initialized when sizer is created.
- Make Phosphor safe to load on the page more than once HOT 4
- Tokens that extend other tokens HOT 5
- GridLayout.removeWidget bug HOT 2
- GridLayout tests
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from phosphor.