unofficial mirror of emacs-devel@gnu.org 
 help / color / mirror / code / Atom feed
* Subwindow xwidget
@ 2019-04-29 20:10 Evgeny Zajcev
  2019-04-29 21:41 ` joakim
  0 siblings, 1 reply; 4+ messages in thread
From: Evgeny Zajcev @ 2019-04-29 20:10 UTC (permalink / raw)
  To: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 508 bytes --]

In XEmacs there is nice "subwindow" glyph type, which could be used to
display contents of foreign application (such as video player).  Internally
it is just ordinary subwindow of fixed geometry with API to get its XID,
which you specify to foreign application to render to.

Is it possible to do the same in GNU Emacs or would it be hard to implement?

Unfortunately xwidget functionality is limited to "webkit" type of widget,
and it does not provide API to get XID of the widget's window.

Thanks

-- 
lg

[-- Attachment #2: Type: text/html, Size: 736 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Subwindow xwidget
  2019-04-29 20:10 Subwindow xwidget Evgeny Zajcev
@ 2019-04-29 21:41 ` joakim
  2019-04-30 10:33   ` Evgeny Zajcev
  0 siblings, 1 reply; 4+ messages in thread
From: joakim @ 2019-04-29 21:41 UTC (permalink / raw)
  To: Evgeny Zajcev; +Cc: emacs-devel

Evgeny Zajcev <lg.zevlg@gmail.com> writes:

> In XEmacs there is nice "subwindow" glyph type, which could be used to display contents of foreign application (such as video player).  Internally it is just ordinary
> subwindow of fixed geometry with API to get its XID, which you specify to foreign application to render to.
>
> Is it possible to do the same in GNU Emacs or would it be hard to implement?
>
> Unfortunately xwidget functionality is limited to "webkit" type of widget, and it does not provide API to get XID of the widget's window.
>
> Thanks

I'm not really sure if its possible to do what you ask out of the box, but I can
explain a little bit about the xwidget implementation.

xwidgets are supposed to follow the emacs windowing paradigm so you can
split an emacs window with a xwidget, and then you get for instance two
copies of the same xwidget on screen. This is done by off-screen copying
of window bitmaps from the off screen widget.

The original branch of xwidget also allowed for different types of
widgets apart from the webkit one. One of those widgets was a generic
container widget, such that you could embed emacs inside emacs for
instance. Some screenshots: https://www.emacswiki.org/emacs/EmacsXWidgets

That branch is bitrotted, but resides both on savannah and github
https://github.com/jave/xwidget-emacs

But you only need the xwidget complexity if you actually need the
of-screen copying which you only need if you care about your widget to
follow the emacs paradigm of window splitting and so on.

If you just want your video window to appear at a fixed position inside
emacs, that is doable by other means, and I think there are a couple of
projects that do that.

Regards,
-- 
Joakim Verona
joakim@verona.se



^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Subwindow xwidget
  2019-04-29 21:41 ` joakim
@ 2019-04-30 10:33   ` Evgeny Zajcev
  2019-04-30 12:47     ` joakim
  0 siblings, 1 reply; 4+ messages in thread
From: Evgeny Zajcev @ 2019-04-30 10:33 UTC (permalink / raw)
  To: joakim; +Cc: emacs-devel

[-- Attachment #1: Type: text/plain, Size: 2371 bytes --]

вт, 30 апр. 2019 г. в 00:41, <joakim@verona.se>:

> Evgeny Zajcev <lg.zevlg@gmail.com> writes:
>
> > In XEmacs there is nice "subwindow" glyph type, which could be used to
> display contents of foreign application (such as video player).  Internally
> it is just ordinary
> > subwindow of fixed geometry with API to get its XID, which you specify
> to foreign application to render to.
> >
> > Is it possible to do the same in GNU Emacs or would it be hard to
> implement?
> >
> > Unfortunately xwidget functionality is limited to "webkit" type of
> widget, and it does not provide API to get XID of the widget's window.
> >
> > Thanks
>
> I'm not really sure if its possible to do what you ask out of the box, but
> I can
> explain a little bit about the xwidget implementation.
>
> xwidgets are supposed to follow the emacs windowing paradigm so you can
> split an emacs window with a xwidget, and then you get for instance two
> copies of the same xwidget on screen. This is done by off-screen copying
> of window bitmaps from the off screen widget.
>

This could be very hard to implement since foreign app might use overlays
such as in XVIDEO, so copying just window content as bitmap won't work.  In
my case this is exactly what video player do


>
> The original branch of xwidget also allowed for different types of
> widgets apart from the webkit one. One of those widgets was a generic
> container widget, such that you could embed emacs inside emacs for
> instance. Some screenshots: https://www.emacswiki.org/emacs/EmacsXWidgets
>
> That branch is bitrotted, but resides both on savannah and github
> https://github.com/jave/xwidget-emacs
>
>
This looks SO nice! why this is not merged into GNU Emacs ?


> But you only need the xwidget complexity if you actually need the
> of-screen copying which you only need if you care about your widget to
> follow the emacs paradigm of window splitting and so on.
>
> If you just want your video window to appear at a fixed position inside
> emacs, that is doable by other means, and I think there are a couple of
> projects that do that.
>

Which projects do you mean?

I want something that is driven by foreign app, but it looks like it is
part of the Emacs, so buffer scrolling moves the subwindow accordingly to
its position and so on

-- 
lg

[-- Attachment #2: Type: text/html, Size: 3450 bytes --]

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Subwindow xwidget
  2019-04-30 10:33   ` Evgeny Zajcev
@ 2019-04-30 12:47     ` joakim
  0 siblings, 0 replies; 4+ messages in thread
From: joakim @ 2019-04-30 12:47 UTC (permalink / raw)
  To: Evgeny Zajcev; +Cc: emacs-devel

Evgeny Zajcev <lg.zevlg@gmail.com> writes:

> вт, 30 апр. 2019 г. в 00:41, <joakim@verona.se>:
>
>  Evgeny Zajcev <lg.zevlg@gmail.com> writes:
>
>  > In XEmacs there is nice "subwindow" glyph type, which could be used to display contents of foreign application (such as video player).  Internally it is just
>  ordinary
>  > subwindow of fixed geometry with API to get its XID, which you specify to foreign application to render to.
>  >
>  > Is it possible to do the same in GNU Emacs or would it be hard to implement?
>  >
>  > Unfortunately xwidget functionality is limited to "webkit" type of widget, and it does not provide API to get XID of the widget's window.
>  >
>  > Thanks
>
>  I'm not really sure if its possible to do what you ask out of the box, but I can
>  explain a little bit about the xwidget implementation.
>
>  xwidgets are supposed to follow the emacs windowing paradigm so you can
>  split an emacs window with a xwidget, and then you get for instance two
>  copies of the same xwidget on screen. This is done by off-screen copying
>  of window bitmaps from the off screen widget.
>
> This could be very hard to implement since foreign app might use overlays such as in XVIDEO, so copying just window content as bitmap won't work.  In my case this is
> exactly what video player do

Well I did implement videoplayer with mplayer using this technique in
emacs. In practice it worked okay-ish. Performance wasn't the
problem. In fact you can watch youtube in emacs using the existing
webkit widget(at least it was possible). It is of limited use though.

You can watch video in a terminal based emacs using aalib based
variants, doesnt mean its really useful though.

>  
>  
>  The original branch of xwidget also allowed for different types of
>  widgets apart from the webkit one. One of those widgets was a generic
>  container widget, such that you could embed emacs inside emacs for
>  instance. Some screenshots: https://www.emacswiki.org/emacs/EmacsXWidgets
>
>  That branch is bitrotted, but resides both on savannah and github
>  https://github.com/jave/xwidget-emacs
>
> This looks SO nice! why this is not merged into GNU Emacs ?

Emacs has quality standards :)


>  
>  But you only need the xwidget complexity if you actually need the
>  of-screen copying which you only need if you care about your widget to
>  follow the emacs paradigm of window splitting and so on.
>
>  If you just want your video window to appear at a fixed position inside
>  emacs, that is doable by other means, and I think there are a couple of
>  projects that do that.
>
> Which projects do you mean?

Like the ones that implement window managers with emacs, I don't recall
the names.

>
> I want something that is driven by foreign app, but it looks like it
> is part of the Emacs, so buffer scrolling moves the subwindow
> accordingly to its position and so on


-- 
Joakim Verona
joakim@verona.se



^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2019-04-30 12:47 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-04-29 20:10 Subwindow xwidget Evgeny Zajcev
2019-04-29 21:41 ` joakim
2019-04-30 10:33   ` Evgeny Zajcev
2019-04-30 12:47     ` joakim

Code repositories for project(s) associated with this public inbox

	https://git.savannah.gnu.org/cgit/emacs.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).