Matthias Elter has written a tutorial (print version; example source tarballs) on developing panel applets for Kicker, the KDE 2 panel. Kicker is a complete rewrite from the KDE 1 panel; this was done mainly to increase the panel's extensibility. KDE 2.0 introduced the panel applet API and KDE 2.1 added the panel extension API. The tutorial teaches you how to implement a simple panel applet using the panel applet API. From the tutorial: "Both the applet and extension APIs are simple. This qualifies writing a panel applet as
a suitable task for an introduction to KDE programming."

Comments

can someone please help me with a problem that I have with the extension child panel. I dislike the extension taskbar panel but i get my desired result when i use a child panel with the taskbar applet enabled. Problem is that everytime I restart KDE the applet does not start with the panel. I have to add it everytime. Anyhelp on how to get the taskbar applet to start with the child panel when i load KDE.

I made up a quick shell script to do this.. it only handles one child applet right now and uses DCOP to add the applet. Just take the shell script at the end of this post and save it in /usr/bin/kickapplets.sh (or wherever else you want it) and then edit /yourhomedir/.kde/share/config/kickerapplets and add the .desktop files one by one.. mine looks like

ktaskbarappler.desktop
clockappler.desktop

Then put an entry in your Autostart folder or /usr/bin/startkde to call 'sh /usr/bin/kickerapplers.sh' and your done.

Does anyone have any hints as to how to set the initial size and position of applets? this is the only annoying thing left.. all my applets get crammed on the left side of the screen.

This is bug #23234, and debian bug #93006 ( http://bugs.debian.org/93006 ). I found the problem and submitted a patch to Debian, which AFAIK is in the latest Debian packages in their pool (hence that Debian bug is marked closed). I don't know whether anyone's sent it "upstream" yet.

If anyone's interested, here's the (very small) patch to fix it. Someone just forgot to call _containerArea->init() in the ChildPanelExtension constructor, so it doesn't load the settings. Looking at the files shows it's fine saving them.

Is it an applet?
If so then under preferences on the panel (right click) click the applets tab, and make sure that that applet is trusted and loads internally. This assumes that you trust it of course...

Ask and ye shall recieve! Actually, the KDE developers are one step ahead of you - its been in CVS for a while (which means it'll be in 2.2), along with the ability to have only one panel-hider button instead of two, a couple more panel applets, faster Konqeror, more and better window decorations (IceWM theme importer!), more KControl modules (and improvements to existing ones, such as the screensaver module - now I have almost *twice* as many screensavers available!), more bugfixes, IMAP in KMail, and more! Everything people have been asking for and some stuff that they haven't even thought to ask for yet!

One thing I was wondering about is whether KDE applications can be extended in the same fashion as third-parties manage to extend Microsoft Office and especially Internet Explorer.

Just look how deeply the Internet Explorer Powertools (or however they called this extensions pack) manages to hook into IE. Copernic's (www.copernic.com) search tools also manage to plug into all of IE's context-menus, allowing you to perform a search of any word inside the page you're seeing (not to mention integrating into the toolbar and menus).

My credit card company has recently begun offering disposable credit card numbers, which are generated and filled-in simply by clicking a button on the IE toolbar. Assuming they wanted the feature for Linux as well, would they have an actual ability to build it?

My credit card company has recently begun offering disposable credit card numbers, which are generated and filled-in simply by clicking a button on the IE toolbar. Assuming they wanted the feature for Linux as well, would they have an actual ability to build it?

In a word - yes. In fact, you can add a tool to any properly written KDE application, not just Konqueror.

There was even a tutorial posted to the dot recently (that created a HTML Validator), that immediately spawned a Babelfish translator plugin and quick Java/Javascript/cookie configure plugin. See http://dot.kde.org/980429423/ for more information.

When I log out from kde some settings (I mean child panel applets and some changes to the icons of application button) are lost. Every time.
I use Mandrake 8.0 and kde-2.1.1
Any suggestion is appreciated.

It's great to see the improvements in kicker (as well as all other parts of KDE!), but would it be out of line to suggest making it more GNOME-like, in terms of flexibility sometime in the future? Recently I played around a bit with the GNOME panel, and was really impressed. Some of the features I'd like to see eventually:

1. No distinction between "child" panels and the main panel. Right now, it's kind of awkward to work with the child panel, and it doesn't work quite the same as the main one (And IIRC you can only have one child panel onscreen).

2. More mobility. Allow panels to be positioned along any edge or corner of the screen; improve resizability (I'm using a CVS version right now that allows short panels, but it's a little buggy); perhaps the ability to slide them around easily.

3. Some way to group items in "sub-panels." I'd like to see a scenario like this: Say I want to put lots of app buttons on a panel, but I want some to be small and some large. I could create a sub-panel object to hold, say, the small icons, and that object would rest on the panel. The subpanel would work pretty much like a regular panel: you could configure it to show large/small/medium icons and other things like that.

4. Better taskbar and/or kasbar. It'd be nice to be able to configure it to "group" windows by certain criteria (window caption, class, etc.) so that all windows of a group would only show up as one item on the taskbar; then clicking on that button would pop up a menu of the actual windows.

5. Ability to edit and move menu items right in the menus, like in Win98 and above. In my experience it saves a lot of time not having to open a menu editor app.

A workaround for #5 which may save you some time, is to drag a shortcut to the panel, make the changes from there, then remove the extra shortcut. It adds two extra steps, but still saves considerable time compared to loading a menu editor and trying to find the right item again.