Hello I'm not sure if it right place to write but I haven't found more
accurate.
I've just got crazy idea about new panel for KDE WS Desktop (I'm not sure if
it fit well other WS's)
Brief explanation of my idea:
Definitions:
Panel View is containment (for all panel or just part of traditional panel)
that's lay-outing all elements.
Content Element is a object representing something that should be sown on the
panel. I has specified type (e.g: menu tree, window handle,application
shortcut, action progress, notification,media controller and more ). Each CE
can have describing properties.
Content View, is a widget/plasmoid being graphical representation of CE or of
group of few CE
Content Provider is collection of CE. It is a plugin. (Maybe Data Engine
Plugin?)
Content Adapter is simple java script code that look for some type of CE's,
consume them (or maybe keep some them in some cases), and add corresponding
CV's to PV.
Some notes:
1) There could be few type of PV. I see two good examples:
a) icon view like taskbar in Win7 or standard system tray.
b) multirow bars like standard task manager
2) To each PV one or few CP and CA are assigned.
3) Any CP could be assigned to any PV
4) I think not any CA could be assigned to any PV. Becouse e.g we have CA
that's adding analog clock. It could be difficult to add it multirow task bar.
So CV could depend on PV.
5) Ordering items i think CP could set hints to each element, it could be used
by CA that give their own hints used by PV to display CV in correct order.
6)Grouping of CE. CA can more than one CE to one CV. However some kind of
groping could be done by CP.
7) Some CE can be adapted by more than one CA. Each CA assigned to panel has
priority. CE adapted by CA is usually consumed and not available for CA's with
lower priority.
8) Setup. Above model is very flexible. However it will be probably to
difficult for most of users. The setting of CA and CP would be hide in some
advanced section. End user would have preconfigured templates and maybe some
configuration options doing all "magic" (by java script)
9) All user interface could be done in javascript and qml. CP could be done in
c++ or also in js.
Examples:
Ex 1.
Traditional system tray:
two content providers: Notification Items ikons and X-Embeded
content adapters: one content adapter mapping items to system tray icons
Extra ca could be add to support NI with own menu adding icon with menu
plasmaoid in stand of standard icon In that could be few variants of CA adding
different types of menu plasmoids one with standard menu and one with kickoff-
like.
Ex 2.
Traditional Task bar:
one CP with list of tasks
one CA making panel buttons
but that's not all. Imagine we have another CP providing media control CE. Let
it be handle for d-bus media api assigned to well known window. Now we adding
new CA that make from window ce and related to it media ce one mutton with
player controls.
Similar thing could be done with progress notifications.
It could be also done come magic like notifications scrolling on some button
ore expose window tabs on task bar.
Ex. 3
Fancy panel:
We have win7 macOs like panel.
On the panel could be one or more menu. Application launchers (that consuming
task, shortcut, tray icon, progress) into one interactive icons.
Ex....
Some notification elements:
im message notifications could be map to drop down chat plasmoids
one or few plasmoids with list of unread mails
device notifier could be normal menu with kickoff-like or lancelot-like or
standard menu appearance (depending on CV added by CA)
and all could be context activity connected (different CA, CP per activity or
they depend on current activity)
As you Can see this idea could replace most of standard panel functionality.
It could be done as migration panel to QML. It could be develop in the near
the standard panel.
How do you think, would it be step forward or not. Anybody interested in my
idea? Or it is much over-thought?
Greetings
Krzysztof
>> Visit http://mail.kde.org/mailman/listinfo/kde-devel#unsub to unsubscribe <<