BBjPopupMenu::setAttribute

Description

In BBj 19.10 and higher, this method sets a BBjPopupMenu attribute.

Syntax

Return Value

Method

void

setAttribute(string attribute, string value)

Parameters

Variable

Description

attribute

Specifies an attribute to be set on the control.

value

Specifies the value of that attribute.

Return Value

None.

Remarks

This functionality is primarily intended for setting low-level BUI element attributes or DWC component attributes. When running in GUI, the attributes don't affect the control itself, but may be used by the developer.

Sample Program

BBjPopupMenu::setAttribute Example

rem ' CSS sampler
sysgui = unt
open (sysgui)"X0"
sysgui! = bbjapi().getSysGui()
window! = sysgui!.addWindow(50,50,325,500,"CSS Sampler",$00090003$)
window!.setCallback(window!.ON_CLOSE,"eoj")
text$ = "The quick brown fox jumps over the lazy dog."
edit! = window!.addEditBox(100,25,25,275,50,text$,$$)
edit!.setName("MyEditBox")
print edit!.getName()
popupMenu! = edit!.addPopupMenu()
popupMenu!.setName("MyPopupMenu")
print popupMenu!.getName()
popupMenu!.setAttribute("property","value")
print popupMenu!.getAttribute("property")
popupMenu!.putClientProperty("property","value")
print popupMenu!.getClientProperty("property")
item1! = popupMenu!.addMenuItem(-1,"Popup Item 1",1,0)
item1!.setCallback(item1!.ON_POPUP_ITEM_SELECT,"popup")
item2! = popupMenu!.addMenuItem(-1,"Popup Item 2",1,1)
item2!.setCallback(item2!.ON_POPUP_ITEM_SELECT,"popup")
item3! = popupMenu!.addMenuItem(-1,"Popup Item 3",1,0)
item3!.setCallback(item3!.ON_POPUP_ITEM_SELECT,"popup")
border! = window!.addCheckBox(101,25,100,275,25,"borderStyle",$$)
border!.setCallback(border!.ON_CHECK_ON,"addStyle")
border!.setCallback(border!.ON_CHECK_OFF,"removeStyle")
shadow! = window!.addCheckBox(102,25,125,275,25,"shadowStyle",$$)
shadow!.setCallback(shadow!.ON_CHECK_ON,"addStyle")
shadow!.setCallback(shadow!.ON_CHECK_OFF,"removeStyle")
background! = window!.addCheckBox(103,25,150,275,25,"backgroundStyle",$$)
background!.setCallback(background!.ON_CHECK_ON,"addStyle")
background!.setCallback(background!.ON_CHECK_OFF,"removeStyle")
popupStyle1! = window!.addCheckBox(104,25,175,275,25,"popupStyle1",$$)
popupStyle1!.setCallback(popupStyle1!.ON_CHECK_ON,"addPopupStyle")
popupStyle1!.setCallback(popupStyle1!.ON_CHECK_OFF,"removePopupStyle")
popupStyle2! = window!.addCheckBox(105,25,200,275,25,"popupStyle2",$$)
popupStyle2!.setCallback(popupStyle2!.ON_CHECK_ON,"addPopupStyle")
popupStyle2!.setCallback(popupStyle2!.ON_CHECK_OFF,"removePopupStyle")
windowStyle! = window!.addCheckBox(106,25,225,275,25,"windowStyle",$$)
windowStyle!.setCallback(windowStyle!.ON_CHECK_ON,"addWindowStyle")
windowStyle!.setCallback(windowStyle!.ON_CHECK_OFF,"removeWindowStyle")
titlebarStyle! = window!.addCheckBox(107,25,250,275,25,"titleStyle",$$)
titlebarStyle!.setCallback(titlebarStyle!.ON_CHECK_ON,"addTitleBarStyle")
titlebarStyle!.setCallback(titlebarStyle!.ON_CHECK_OFF,"removeTitleBarStyle")
getStyles! = window!.addButton(1,25,300,125,25,"getStyles",$$)
getStyles!.setCallback(getStyles!.ON_BUTTON_PUSH,"getStyles")
clearStyles! = window!.addButton(2,175,300,125,25,"clearStyles",$$)
clearStyles!.setCallback(clearStyles!.ON_BUTTON_PUSH,"clearStyles")
window!.addStaticText(108,5,355,50,25,"Style:",$8000$)
style! = window!.addEditBox(109,60,350,240,25,"",$$)
window!.addStaticText(110,5,405,50,25,"Value:",$8000$)
value! = window!.addEditBox(111,60,400,240,25,"",$$)
getStyle! = window!.addButton(3,5,450,80,25,"Get Style",$$)
getStyle!.setCallback(getStyle!.ON_BUTTON_PUSH,"getStyle")
getComputedStyle! = window!.addButton(4,90,450,145,25,"Get Computed Style",$$)
getComputedStyle!.setCallback(getComputedStyle!.ON_BUTTON_PUSH,"getComputedStyle")
setStyle! = window!.addButton(5,240,450,80,25,"Set Style",$$)
setStyle!.setCallback(setStyle!.ON_BUTTON_PUSH,"setStyle")
process_events
eoj:
release
getStyles:
  i = msgbox(edit!.getStyles().toString(),0,"getStyles")
return
clearStyles:
  border!.setSelected(0)
  shadow!.setSelected(0)
  background!.setSelected(0)
  popup!.setSelected(0)
  important!.setSelected(0)
  windowStyle!.setSelected(0)
  titlebarStyle!.setSelected(0)
  edit!.clearStyles()
  popupMenu!.clearStyles()
  item1!.clearStyles()
  item2!.clearStyles()
  item3!.clearStyles()
  window!.clearStyles()
  window!.clearTitleBarStyles()
return
addStyle:
  event! = sysgui!.getLastEvent()
  control! = event!.getControl()
  style$ = control!.getText()
  edit!.addStyle(style$)
  print edit!.getStyles()
return
removeStyle:
  event! = sysgui!.getLastEvent()
  control! = event!.getControl()
  style$ = control!.getText()
  edit!.removeStyle(style$)
  print edit!.getStyles()
return
addPopupStyle:
  event! = sysgui!.getLastEvent()
  control! = event!.getControl()
  style$ = control!.getText()
  popupMenu!.addStyle(style$)
  item1!.addStyle(style$)
  item2!.addStyle(style$)
  item3!.addStyle(style$)
  print popupMenu!.getStyles()
return
removePopupStyle:
  event! = sysgui!.getLastEvent()
  control! = event!.getControl()
  style$ = control!.getText()
  popupMenu!.removeStyle(style$)
  item1!.removeStyle(style$)
  item2!.removeStyle(style$)
  item3!.removeStyle(style$)
  print popupMenu!.getStyles()
return
addWindowStyle:
  event! = sysgui!.getLastEvent()
  control! = event!.getControl()
  style$ = control!.getText()
  window!.addStyle(style$)
  print window!.getStyles()
return
removeWindowStyle:
  event! = sysgui!.getLastEvent()
  control! = event!.getControl()
  style$ = control!.getText()
  window!.removeStyle(style$)
  print window!.getStyles()
return
addTitleBarStyle:
  event! = sysgui!.getLastEvent()
  control! = event!.getControl()
  style$ = control!.getText()
  window!.addTitleBarStyle(style$)
  print window!.getTitleBarStyles()
return
removeTitleBarStyle:
  event! = sysgui!.getLastEvent()
  control! = event!.getControl()
  style$ = control!.getText()
  window!.removeTitleBarStyle(style$)
  print window!.getTitleBarStyles()
return
getStyle:
  value!.setText(popupMenu!.getStyle(style!.getText()))
return
getComputedStyle:
  rem ' getComputedStyle only works with visible components
  popupMenu!.show(edit!,0,0)
  value!.setText(popupMenu!.getComputedStyle(style!.getText()))
  popupMenu!.hide()
return
setStyle:
  edit!.setStyle(style!.getText(),value!.getText())
  popupMenu!.setStyle(style!.getText(),value!.getText())
return
popup:
  event! = sysgui!.getLastEvent()
  print event!.getEventName()," ",event!.getMenuItem().getText()
return

Sample CSS

BBjPopupMenu::setAttribute Example CSS

.backgroundStyle
{
  background: rgb(242,245,246) !important;
  background: -moz-linear-gradient(top,  rgba(242,245,246,1) 0%, rgba(227,234,237,1) 37%, rgba(200,215,220,1) 100%) !important;
  background: -webkit-gradient(linear, left top, left bottom, color-stop(0%,rgba(242,245,246,1)), color-stop(37%,rgba(227,234,237,1)), color-stop(100%,rgba(200,215,220,1))) !important;
  background: -webkit-linear-gradient(top,  rgba(242,245,246,1) 0%,rgba(227,234,237,1) 37%,rgba(200,215,220,1) 100%) !important;
  background: -o-linear-gradient(top,  rgba(242,245,246,1) 0%,rgba(227,234,237,1) 37%,rgba(200,215,220,1) 100%) !important;
  background: -ms-linear-gradient(top,  rgba(242,245,246,1) 0%,rgba(227,234,237,1) 37%,rgba(200,215,220,1) 100%) !important;
  background: linear-gradient(to bottom,  rgba(242,245,246,1) 0%,rgba(227,234,237,1) 37%,rgba(200,215,220,1) 100%) !important;
  filter: progid:DXImageTransform.Microsoft.gradient( startColorstr='#f2f5f6', endColorstr='#c8d7dc',GradientType=0 ) !important;
}

.borderStyle
{
  border-radius: 15px !important;
  border-width: 2px !important;
}

.shadowStyle
{
  box-shadow: 7px 7px 5px rgba(50, 50, 50, 0.5) !important;
}

.Caption.BBjTopLevelWindow-titleBar.titleStyle
{
    background: #8195a9;
    background: -moz-linear-gradient(top, #889db3, #8195a9 49%, #7a8da0 50%, #738596 98%, #8195a9 100%);
    background: -webkit-gradient(linear, left top, left bottom, color-stop(0%, #889db3), color-stop(49%, #8195a9), color-stop(50%, #7a8da0), color-stop(98%, #738596), color-stop(100%, #8195a9));
    background: -webkit-linear-gradient(top, #889db3 0%, #8195a9 49%, #7a8da0 50%, #738596 98%, #8195a9 100%);
    background: -o-linear-gradient(top, #889db3 0%, #8195a9 49%, #7a8da0 50%, #738596 98%, #8195a9 100%);
    background: -ms-linear-gradient(top, #889db3 0%, #8195a9 49%, #7a8da0 50%, #738596 98%, #8195a9 100%);
    background: linear-gradient(to bottom, #889db3 0%, #8195a9 49%, #7a8da0 50%, #738596 98%, #8195a9 100%);
    filter: progid:DXImageTransform.Microsoft.gradient(startColorstr='@colorNew1', endColorstr='@colorNew5', GradientType=0);
    color: #f8fafc;
    text-shadow: 0 1px 4px #404040;
}

.BBjPopupMenu.popupStyle1
{
  background: blue !important;
  color: yellow !important;
}

.BBjMenuItem.popupStyle1,.BBjCheckableMenuItem.popupStyle1
{
  background: blue !important;
  color: yellow !important;
}

.BBjPopupMenu.popupStyle2

  background: yellow !important;
  color: blue !important;
}

.BBjMenuItem.popupStyle2,.BBjCheckableMenuItem.popupStyle2

  background: yellow !important;
  color: blue !important;
}

See Also

BBjAPI

BBjSysGui

BBjWindow

BBjPopupMenu

See the BBj Object Diagram for an illustration of the relationship between BBj Objects.