Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Catalog · How the catalog works

Random project

Lazarus.UnityAppIndicators

A patch for Lazarus implementing TTrayIcon on Unity

View on GitHub

Anyone may press Interesting, signed in or not. It helps others find this project.

Member rating

No ratings yet.

Sign in to rate this project.

README

Lazarus.UnityAppIndicators

This is the fix for Lazarus TTrayIcon on Unity.

To use git the code above and:

  • Add 'unitywsctrls.pas' to 'lazarus/lcl/interfaces/gtk2'
  • Apply patch to your 'lazarus' folder
  • Rebuild the 'lcl' package with the gtk2 widget set

A linux x86_64 compiled executable example is included.

A Few Notes

It seems to me (which I say a lot because I'm not 100% positive) that app indicators in Unity were designed to restrict programmers and guide the UI design of Ubuntu in a specific direction. Namely to create more uniform visual styles and user interaction with apps.

As such I believe the following restrictions to apply to Unity app indicators:

  • You cannot receive click or any mouse events for icons in the tray.
  • A menu is required for an app indicator and the only action allowed is to show the menu when the mouse clicks with either button on a tray icon.
  • Menu items cannot have with sub menus
  • An app can only have one app indicator and attempts to destroy or create a new one fail.
  • You can only set the menu for an app indicator one time.
  • Icons can be set from files only (you are supposed to use /usr/icons/share with themes).

I made a few workarounds to get by some of these issues. For example I use /tmp/appindicator to store icons temporarily. There are a few others as well, but this implementation was the best I could come up with for now.