[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-panel-devel
Subject:    Re: Creating Plasma::Containments or Plasma::PopupApplets via the
From:       Richard Dale <richard.j.dale () gmail ! com>
Date:       2009-04-24 11:22:15
Message-ID: 491684420904240422n5cf2bfaap55ec1ba18453af7f () mail ! gmail ! com
[Download RAW message or body]

On Thu, Apr 23, 2009 at 9:56 PM, Aaron J. Seigo <aseigo@kde.org> wrote:
> On Thursday 23 April 2009, Richard Dale wrote:
>> There are gl bindings for Ruby which work well with the Qt GL*
>> classes, and I would think python has some.
>>
>> I need to add a new servicetype for the new PopupApplet and so I've
>> got a file called plasma-applet-popupapplet.desktop containing this:
>>
>> [Desktop Entry]
>> Type=ServiceType
>> X-KDE-ServiceType=Plasma/PopupApplet
>
> this would require one for each type of applet, and might give people the
> wrong idea about having to include that in their c++ ones? well, can't hurt
> any.. only other option would be to have an X-Plasma-AppletSpecialization
> entry or some other nonsense, so this looks the cleanest.
>
>> The Containment one also has these lines:
>>
>> [PropertyDef::X-Plasma-ContainmentCategories]
>> Type=QStringList
>>
>> Do I need an equivalent one for Plasma/PopupApplets?
>
> no, this is to map containments to panel vs desktop vs screensaver, etc.
>
> applets don't need (and shouldn't have) this...
>
>> C++ PopupApplets don't seem to have their own service defined and they
>> are just Plasma/Applets. I think I've seen this in a .desktop file
>> though:
>>
>> ServiceTypes=Plasma/Applet,Plasma/PopupApplet
>>
>> Is that what we should have - or is it just wrong, and there should
>> only ever be one ServiceType defined for plasma things in .desktop
>> files?
>
> it isn't wrong, but it also doesn't matter for c++ applets.
>
>> I was going to add this to the 4.2 branch, but if it needs
>> translations in the service type files, then maybe I shouldn't.
>
> yes, it probably would unless there was no Name= entry, and i don't think
> that's valid?
OK, I've added the new Plasma/PopupApplet service type to the trunk
only, and not the 4.2 branch. I have added the code to instantiate a
scripting popup applet to applet.cpp in both the trunk and branch
though.

The ruby bindings for the script engine in the 4.2 branch and the
trunk, also have new PlasmaScripting::Containment and
PlasmaScripting::PopupApplet classes. I've added the Techbase Extender
Tutorial example translated to Ruby in
kdebase/workspace/plasma/scriptengines/ruby/examples/applets/extendertutorial.

We can't add scripting GLApplets because we would need a callback for
paintGLInterface, and for now I don't think it is worth bothering
(maybe wait until there is a possible craze in the future for writing
3D applets).

        /**
         * Reimplement this method to render using OpenGL. QPainter passed
         * to this method will always use OpenGL engine and rendering
         * using OpenGL api directly is supported.
         */
        virtual void paintGLInterface(QPainter *painter,
                                      const QStyleOptionGraphicsItem *option);


-- Richard
_______________________________________________
Plasma-devel mailing list
Plasma-devel@kde.org
https://mail.kde.org/mailman/listinfo/plasma-devel
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic