@Vitaliy_dzen

Как создать popup menu в связке: iup + lua?

За основу взял пример "menu" из папки examples, никаких проблем при переделке под свои нужды нет, хочу добавить всплывающее меню по правому клику.
Справка подсказывает: "A popup menu is displayed for the user using the IupPopup function (usually on the mouse position) and disappears when an item is selected."
Пока проблему не решил. Просьба поделиться минимальным рабочим примером.
  • Вопрос задан
  • 89 просмотров
Решения вопроса 1
@Vitaliy_dzen Автор вопроса
Ответ подсказали на ru.stackoverflow.com, привожу весь код:
require("iuplua")

cv       = iup.canvas {size="300x100", xmin=0, xmax=99, posx=0, dx=10}
dlg      = iup.dialog{iup.frame{cv}; title="IupCanvas"}

mnu = iup.menu
{
  iup.submenu
  {
    iup.menu
    {
      iup.item{title="IupItem 1 Checked",value="ON"},
      iup.separator{},
      iup.item{title="IupItem 2 Disabled",active="NO"}
    } 
    ;title="IupSubMenu 1"
  },
  iup.item{title="IupItem 3"},
  iup.item{title="IupItem 4"}
}

function cv:button_cb(button, pressed, x, y, status)
    if button == 51 and pressed == 0 then
        mnu:popup(iup.MOUSEPOS, iup.MOUSEPOS)
    end
end

dlg:showxy(iup.CENTER,iup.CENTER)

if (iup.MainLoopLevel()==0) then
  iup.MainLoop()
  iup.Close()
end

Вся изюминка в функции
function cv:button_cb(button, pressed, x, y, status)

переопределяя cv можно делать всплывающие меню для любого элемента интерфейса.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы