popupmenu class

Provides a popup menu.
Inherits
object widget
Description
This widget can be used to display a popup menu.Technically, a popup menu consists of a list of menu items.
You add items with insertItem(). An item is either a string. In addition, items can have an optional icon drawn on the very left side.
Functions
$insertItem(<text:string>,[icon_id:string])
Inserts menu items into a popup menu with optional icon and return the popup identifier.
$insertWidget(<widget:object>)
Inserts widget items int a popup menu and return the popup identifier.
The widget is treats as a separator; this means that the item is not selectable and you can, for example, simply insert a label if you need a popup menu with a title.
$insertHandle(<text_label:string>,<popupmenu:object>,[icon])
Inserts a submenu with optional icon into the popup menu.
$exec([<widget:objects>,<x:uinteger>,<y:integer>])
If called without paramaters show the popup menu at the current pointer position.
With the optional parameters show the popup menu at the coordinate x,y widget parameter relative.
$removeItem(<popup_id:Uinteger>)
Removes the menu item that has the identifier id.
$removeItemAt(<index:uinteger>)
Removes the menu item at position index.
$insertSeparator(<index:uinteger>)
Inserts a separator at position index.
If the index is negative the separator becomes the last menu item.
$activatedEvent(<popup_id:uinteger>)
This function is called when a menu item and return the the item id.
The default implementation emits the $activated() signal.
$highligthtedEvent(<popup_id:uinteger>)
This function is called when a menu item is highlighted and return the item id.
The default implementation emits the $highlighted() signal.
Signals
$activated()
This signal is emitted by the default implementation of $activatedEvent().
$highlighted()
This signal is emitted by the default implementation of $highlightedEvent().
|-EXAMPLE POPUP MENU-|
|--Start: # First of all we create an array wich will be used to create random colors.
%Hex[]=$array(0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F)

class (ws,widget)
{
#In the constructor we create everything that belong to the single widget.
    constructor
    {
        #Geometry of the widget and setting-up of popupmenu
        $$->$setGeometry(%X,%Y,100,100)
     $$->%lay=$new(layout,$$)
        #Here we generate a cicle to create our labels inside the widget.
        %i=0
        while (%i<10)
        {
            $$->%label=$new(label,$$)
            $$->%label->$settext("Another class by N\&G")
            #We set our foreground's coulor using the hex arrey in random way.
            %color=%Hex[$rand(14)]%Hex[$rand(14)]%Hex[$rand(14)]%Hex[$rand(14)]%Hex[$rand(14)]%Hex[$rand(14)]
            $$->%label->$setforegroundcolor(%color)
            $$->%label->$setautoresize(1)
            #We add the label to the widget's popupmenu.
            $$->%lay->$addwidget($$->%label,%i,0)
            %i++;
        }
        #We make the popupmenu relative to this widget: this is merely demonstrative.
        #because it creates 25 identical popups.
        $$->%Popupmenu=$new(popupmenu,$$)
        #we create the label widget wich will be used as popup's title
        $$->%Popuptitle=$new(label)
        $$->%Popuptitle->$settext(<B><U>"Windows Options"</B></U>)
        $$->%Popuptitle->$setAlignment(Center)
        #and we add it.
        %A=$$->%Popuptitle
        $$->%Popupmenu->$insertwidget(%A)
        #Here we keep the various IDs in the arrays
        %Tile[%I]=$$->%Popupmenu->$insertItem("Tile",118)
        %Cascade[%I]=$$->%Popupmenu->$insertItem("Cascade",115)
        $$->%Popupmenu->$insertSeparator(3)
        %Closeactw[%I]=$$->%Popupmenu->$insertItem("Close Active Window",08)
        %Closeallw[%I]=$$->%Popupmenu->$insertItem("Close All Window",58)
        $$->$show()
        privateimpl($$->%Popupmenu,activatedEvent)
        {
            %id=$0
            %i = 0
            #with this cicle we control wich of the items has been called comparing the id given back by the event with our arrays created before;
            while (%i<20)
            {
                if (%id == %Tile[%i]) return %Workspace->$tile()
                if (%id == %Cascade[%i]) return %Workspace->$cascade()
                if (%id == %Closeactw[%i]) return %Workspace->$closeactivewindow()
                if (%id == %Closeallw[%i]) return %Workspace->$closeallwindows()
                %i ++
            }
        }
    }
#we activate the popup pushing the right mouse button on the widget
mousepressevent
    {
     if ($0 == 1) $$->%Popupmenu->$exec()
    }
}
%Workspace=$new(workspace)
%Workspace->$resize(640,480)
%I=0
%Cicle=1
while (%I<20)
{
    %X=$rand(500)
    %Y=$rand(480)
    %Widget=$new(ws,%Workspace)
    %I++
}
#Let's show! %Workspace->$show
|--End.


Index, Object Classes
KVIrc 3.9.99 Documentation
Generated by root at Wed Oct 17 19:34:06 2007