popupmenu class

# 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.4.0 Documentation
Generated by loris at Mon Mar 17 20:35:38 2008