le4a
le4a

Reputation: 39

how to add a y-scrollbar to qx.ui.menu.Menu

I have a lot of qx.ui.menu.Button and I want to add a scrollbar to it, how can I do it?

`var menu = new qx.ui.menu.Menu();
var button1 = new qx.ui.menu.Button("Line 431");
var button2 = new qx.ui.menu.Button("Line 30");
var forwardButton = new qx.ui.toolbar.SplitButton(
  "Next",
  null,
  menu
);
var forwardButton2 = new qx.ui.toolbar.SplitButton(
  "Next2",
  null,
  menu
);
//buttons should go one after another
//scroll = new qx.ui.container.Scroll();
//scroll._add()
this.getRoot().add(forwardButton);
this.getRoot().add(forwardButton2, {top: 30});`

the scrollbar should be like it exists for qx.ui.list.List

Upvotes: 1

Views: 51

Answers (1)

goldim
goldim

Reputation: 460

The solution is to use combination of Popup and List widgets:

// Create a button
const button1 = new qx.ui.form.Button("Click me", "test/test.png");

const model = new qx.data.Array(["a", "ab", "abc", "abcd", "abcde", "abcdef", "abcdefg", "abcdefgh"]);
const list = new qx.ui.list.List(model);
list.addListener("changeValue", function(value){console.log(value)}, this);

const popup = new qx.ui.popup.Popup(new qx.ui.layout.Grow());
popup.add(list);


// Document is the application root
const doc = this.getRoot();

// Add button to document at fixed coordinates
doc.add(button1, {left: 100, top: 50});

// Add an event listener
button1.addListener("execute", function() {
  popup.show();
  popup.placeToWidget(button1);
});

Upvotes: 1

Related Questions