Lui Controls

From Lazarus wiki
Jump to navigationJump to search

About

Lui Controls is a collection of simple visual controls. Currently it has two components: TToggleLabel and TMenuButton

TToggleLabel

TToggleLabel is a TCustomLabel descendant that can be toggled between two states. It provides properties to define the caption showed in each state and an event to notify the state change. It also has a visual indication (a triangle) of the state.

The main properties are:

 - Expanded (Boolean): Returns or set the label Expanded state
 - Caption (String): The text show when Expanded is False
 - ExpandedCaption (String): The text show when Expanded is True
 - OnChange (TNotifyEvent): Notifies when the Label changes it states 

TMenuButton

TMenuButton is a TCustomSpeedButton descendant that combines with a TPopupMenu to give an integrated look and feel. Its similar to controls found in other toolkits like Eclipse or XUL.

The main properties are:

 - ShowArrow [not available in the svn version]
   If True an arrow button is show in the side of the button. When it's pressed the menu pops. Clicking in the main button fires OnClick.  
   If False only the main button is show. Click in the main button to pop the menu. No OnClick is fired
 
 [svn version]
 - Options:
  - mboShowArrowButton: 
     If True an arrow button is show in the side of the button. When it's pressed the menu pops. Clicking in the main button fires OnClick.
     If False only the main button is show. Click in the main button to pop the menu. No OnClick is fired
  - mboPopupOnMouseUp: If set will popup in the MouseUp event


  • Know issues:
    • Does not work properly in gtk due to LCL bugs 9435 and 9436
      • To make work under gtk, grab the svn version, set mboPopupOnMouseUp and apply the patch of bug 9436. I will update the release file soon!
    • Setting the same PopupMenu to more than one TMenuButton leads to the pressed state not be updated

Screencast

Download

License

Modified LGPL

Author

Luiz Américo Pereira Câmara

Download

LuiPack