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 <<

Reply via email to