libkmenu

Discussing libraries simplifying applications development
  • Видимо, ещё один Tinypad...

    А по поводу несрабатывания пунктов меню мысли есть?
  • Вопрос по меню, какого размера структуру следует давать в функцию kmenu_init ?
    Старую на 40 байт или новую на 192 байта? Потому как я заметил что в редакторе t_edit у меня структура старого образца system_colors на 40 байт.
  • Расширенную, на 192 байта. В последней версии библиотеки, можно передать NULL
  • rev 6224
    Нашел и обновил очень старый пример использования меню (аж со 180-й ревизии не менялся).
    Там была на кнопках какая-то непонятная штука похожая на меню. Заменил его на библиотечное kmenu.
  • Исправил небольшой баг с мышкой
    если запустить техt editor (расположен на боковой панели) и после этого перекрыть его заголовок
    заголовком другого приложения (окна), то он всё равно будет выводить выбранные меню при курсоре мыши над ними
    Attachments
    kmenu.obj (9.01 KiB)
    Downloaded 327 times
  • Где можно найти объявление типов t_rect и t_font?
    to infinity and beyond
  • В файле api.h (например, здесь).

    typedef struct {
    uint16_t left, top, right, bottom;
    } t_rect;


    typedef struct {
    int type;
    uint32_t color;
    union {
    uint32_t bgcolor;
    void *buffer;
    };
    } t_font;
  • Исправлена установка маски событий из-за чего родительское окно получало события от мышки даже в неактивном состоянии (http://bugs.kolibri-n.org/index.php?id=1)
    Небольшие косметические изменения ввиде увеличенных отступов
    Attachments
    kmenu.obj (6.79 KiB)
    Downloaded 309 times
  • О, лови разработчика!

    Есть баг - подменю _второго уровня_ не работает - и не закрывается вовремя и не срабатывает как событие.

    Если надо, выложу собранный пример вечером из c-layer
  • Да, пример хотелось бы взглянуть.

    Т.к. в моем демо (прикрепил) вроде нет таких проблем
    Attachments
    menu_demo (29 KiB)
    Downloaded 332 times
  • Работает, спасибо.

    P.S. Во время тестирования меню, приложение один раз вылетело, воспроизвести вылет потом так и не удалось.
    Из хаоса в космос
  • Siemargl wrote:О, лови разработчика!

    Есть баг - подменю _второго уровня_ не работает - и не закрывается вовремя и не срабатывает как событие.

    Если надо, выложу собранный пример вечером из c-layer
    Пока не забыл - пункт Б: если окно приложения не скинованноесоздано без флага "координаты относительно клиентской обл",
    то kmenu отрисовывается поверх строки заголовка окна.

    Возможно, мы неверно что то используем:
    Вот исходник http://websvn.kolibrios.org/filedetails ... _example.c
    Структуры тут http://websvn.kolibrios.org/filedetails ... ri_kmenu.h
    Spoiler:

    Code: Select all

      kmenu_init(NULL);
     
      ksubmenu_t *sub_menu1 = ksubmenu_new();
      ksubmenu_add(sub_menu1, kmenuitem_new(KMENUITEM_NORMAL, "Open", 101));
      ksubmenu_add(sub_menu1, kmenuitem_new(KMENUITEM_NORMAL, "Save", 102));
      ksubmenu_add(sub_menu1, kmenuitem_new(KMENUITEM_SEPARATOR, NULL, 0));
      ksubmenu_add(sub_menu1, kmenuitem_new(KMENUITEM_NORMAL, "Exit", 103));
     
      ksubmenu_t *sub_menu2 = ksubmenu_new();
      ksubmenu_add(sub_menu2, kmenuitem_new(KMENUITEM_NORMAL, "Find", 201));
      ksubmenu_add(sub_menu2, kmenuitem_new(KMENUITEM_NORMAL, "Replace", 202));
     
      ksubmenu_t *sub_menu22 = ksubmenu_new();
      ksubmenu_add(sub_menu22, kmenuitem_new(KMENUITEM_NORMAL, "CP1251", 211));
      ksubmenu_add(sub_menu22, kmenuitem_new(KMENUITEM_NORMAL, "UTF-8", 212));
      ksubmenu_add(sub_menu2, kmenuitem__submenu_new(KMENUITEM_SUBMENU, "Encoding", sub_menu22));
     
      ksubmenu_t *main_menu = ksubmenu_new();
      ksubmenu_add(main_menu, kmenuitem__submenu_new(KMENUITEM_SUBMENU, "File", sub_menu1));
      ksubmenu_add(main_menu, kmenuitem__submenu_new(KMENUITEM_SUBMENU, "Edit", sub_menu2));
    Здесь kmenuitem_new() и kmenuitem__submenu_new() это одна и та же экспортируемая функция kmenuitem_new, отличается только типом параметра.

    Картинка два появляется по щелчку на Encoding, и событий 211, 212 не приходит.

    Без исходников не могу поковырять ни пример ни либу (
    Attachments
    kmenu2.png
    kmenu2.png (1.87 KiB)
    Viewed 11216 times
    kmenu1.png
    kmenu1.png (1.95 KiB)
    Viewed 11216 times
  • Who is online

    Users browsing this forum: No registered users and 2 guests