Commit Graph

311 Commits

Author SHA1 Message Date
c26d30dffc decorator: use server API 2015-11-27 12:18:53 +01:00
acb0ddd9ef decorator: generalize include/decorator/window.h
This change makes it possible to reuse the generic window decorator
classes in include/decorator/ for decorators of a different structure.
E.g., instead of painting decorations on a single nitpicker session,
each window may paint its decorations into additional window-specific
nitpicker sessions.
2015-11-27 12:18:53 +01:00
493386ed27 wm: prevent superfluous session upgrades
For each session upgrade performed by a wm client as part of the
Nitpicker::Connection::buffer function, the window manager wrongly
upgraded the wrapped nitpicker session twice: Once by handling the
Root::upgrade, and again by handling of the server-side 'buffer'
operation. Here, the 'buffer' operation was implemented by not merely
forwarding the RPC request to the wrapped nitpicker session but by
calling the 'buffer' method on the wrapped session's connection
object, which implictly issues session upgrades. Consequently,
the window manager would transfer twice the amount of the session
upgrades it received by its clients to nitpicker and eventually ran
out of memory.

The patch fixes the problem by eliminating the call of the
Nitpicker::Connection::buffer method and instead merely forward the RPC
requests to the wrapped nitpicker sessions.
2015-11-27 12:18:53 +01:00
461776a29c wm: support multiple decorator sessions 2015-11-27 12:18:53 +01:00
5f2d92f916 gems: add experimental mixer_gui based on Qt
Issue #1770.
2015-11-18 12:22:07 +01:00
759b9ed1ad floating window layouter: bring focused window to front 2015-11-04 14:09:30 +01:00
9aff45ae8c floating window layouter: fix padding 2015-11-04 14:09:30 +01:00
75111c4f1a wm: sanitize the view title
By replacing '"' by ''', we work around issue #1757.
2015-11-04 14:09:30 +01:00
220d143e44 decorator: fix detection of hovered window control 2015-11-04 14:09:29 +01:00
755d2cce05 gems: turn launcher into a panel-like application 2015-11-04 14:09:29 +01:00
519eb334e9 menu view: add hbox layout, support widget reorder
This patch, complements the existing vbox layout with a hbox layout and
improves the response to dynamic dialog updates. The new version support
disappearing widgets and the reordering of widgets. Furthermore, this
patch ensures that the 'Widget::_layout' functions are executed after
updating a new version of the dialog.
2015-11-04 14:09:29 +01:00
5456175d07 menu view: change style to be less obtrusive 2015-11-04 14:09:29 +01:00
3726cafb28 window layouter: no focus update on hover reset 2015-11-04 14:09:28 +01:00
57ce50a3d4 window layouter: handle maximize/unmaximize 2015-10-06 12:18:56 +02:00
818840ca6a wm: provide physical screen mode to layouter 2015-10-06 12:18:56 +02:00
a8cca8e1b3 window layouter: respond to window closer 2015-10-06 12:18:56 +02:00
4164c9edec wm: allow resize requests to 0x0 2015-10-06 12:18:55 +02:00
dcc4b8c313 wm/layouter/decorator: propagate window controls 2015-10-06 12:18:55 +02:00
0efd908e27 wm: support clients in "direct" role 2015-10-06 12:18:55 +02:00
e27ebd0368 wm/layouter: respond to external focus requests 2015-10-06 12:18:55 +02:00
cdb87a7c4f window layouter: handle hidden windows 2015-10-06 12:18:55 +02:00
e0233604fa wm: handling of temporarily hidden views 2015-10-06 12:18:55 +02:00
0ab74e61d7 wm: handle Nitpicker::Session::session_control 2015-10-06 12:18:55 +02:00
afac1e86bb decorator: window colors and controls
This patch improves the decorator in two ways. First, it enables the
assignment of window colors depending on the window labels. This
configuration can be changed dynamically. Second, it adds the handling
of window controls for closing, maximizing, minimizing windows.

Issue #1689
Fixes #1688
2015-10-06 12:18:54 +02:00
20f961cbd8 cli_monitor, launcher: handle exiting subsystems
Until now, the CLI monitor and the laucher allowed the user to explitly
kill subsystems but both used to ignore gracefully exiting subsystems.
It was the user's job to remove the remains of those subsystems. The
patch takes the burden of manually killing exited subsystems from the
user.

Fixes #1685
2015-09-30 15:48:12 +02:00
7e3bcb1e39 tcp_terminal: signal available bytes on partial read
If a client provides a read buffer of insufficient size for all
available data, we have two options

1) Leave it to the client to do partial reads until not further data is
   available, or

2) Signal the client that there still some bytes on a partial read.

As the second option seems more robust it's implemented in this commit.

Fixes #1705
2015-09-30 12:20:40 +02:00
be9e157a3d wm: free up weak pointers during view destruction
Fixes #1675
2015-09-30 12:20:35 +02:00
458b4d6fc4 base: redesign object pool using lambda interface
Instead of returning pointers to locked objects via a lookup function,
the new object pool implementation restricts object access to
functors resp. lambda expressions that are applied to the objects
within the pool itself.

Fix #884
Fix #1658
2015-09-09 15:14:28 +02:00
c2ff0ae9d4 Minor cleanup fixes
- Fix spelling errors
- Remove extra semicolons
- Remove extra spaces

Fixes #1650
2015-08-21 11:00:59 +02:00
785cac7168 decorator: consider partially transparent windows
This patch changes the window manager, the decorator, and the
floating window layouter to propagate the usage of an alpha channel from
the client application to the decorator. This way, the decorator can
paint the decoration elements behind the affected windows, which would
otherwise be skipped.
2015-07-07 19:48:06 +02:00
caa809e593 CPU load display application 2015-07-07 19:48:05 +02:00
259b127f96 Polygon drawing and rudimentary 3D routines
This patch adds two new painters located at gems/include/polygon_gfx.
Both painters draw convex polygons with an arbirary number of points.
The shaded-polygon painter interpolates the color and alpha values
whereas the textured-polygon painter applies a texture to the polygon.
The painters are accompanied by simplistic 3D routines located at
gems/include/nano3d/ and a corresponding example (gems/run/nano3d.run).
2015-07-07 19:48:04 +02:00
c74a4fbbe2 wm: decouple decorator and layouter from wm 2015-07-06 12:22:28 +02:00
a3d78d3779 window layouter: let focus follow the pointer 2015-07-06 12:22:28 +02:00
d7256c60a0 window decorator: limit update rate to 50 fps 2015-07-06 12:22:27 +02:00
69da1fa1ed wm/layouter: Raise window on click 2015-07-06 12:22:27 +02:00
a3d287f23d decorator: update hover report on layout change
Fixes #1590
2015-06-22 14:43:39 +02:00
7a8c088fc6 gems: remove d3m
D3m is superseded by now. Altough there is no direct replacement
combining various other components is equal to its functionality.

Issue #1456.
2015-04-23 16:48:00 +02:00
d9d65aa86b base: use reference for ascii_to output argument
Issue #1477
2015-04-17 16:13:19 +02:00
c76de84f0a gems: let run decorator-stress on 64bit
Fixes #1247
2015-03-27 11:53:12 +01:00
c745f9b48c nitpicker: forward touch events
Issue #1444
2015-03-19 08:57:19 +01:00
ff422ccc6e backdrop: respond to config changes
Fixes #1376
2015-01-26 12:28:42 +01:00
0f18ecc142 base: handle input overflow exception
Fixes #1348
2015-01-09 11:52:06 +01:00
6244c6ec97 gems: launcher application 2014-10-13 15:21:55 +02:00
cc303c4671 gems: new menu-view application
The menu view generates a simple dialog of widgets and reports the
hovered element. It is meant to be embedded into applications that
require simple GUIs but don't want to deal with the pecularities of
a full-blown widget set.
2014-10-13 15:21:54 +02:00
ece64db196 gems: move reusable wm headers to include/gems 2014-10-13 15:21:54 +02:00
ec565c1ded gems: add include/gems/animator.h
The utility for animating GUI elements was formerly private to
'app/decorator'.
2014-10-13 15:21:54 +02:00
9129db03c4 gems: nit_fader 2014-10-13 15:21:54 +02:00
94f9e989df wm: invalidate dataspaces on model updates
If the Rom_session::update function returns false, the ROM dataspace may
have been physically destructed (and core has removed all mappings).
In this case, we have to omit the detach operation in the destructor
of 'Attached_dataspace' to avoid detaching the same region twice.
2014-10-13 15:21:54 +02:00
c48a4ebce8 os: add texture_rgb888.h and texture_rgb565.h
The headers 'texture_rgb565.h' and 'texture_rgb888' contain
template specializations needed for using the 'Texture::rgba' function
for the respective pixel formats. The specializations were formerly
contained in application-local code.
2014-10-13 15:21:53 +02:00