Если у кого есть желание и возможность помочь прикрутить меню к animage, то вот результат некоторой работы
-смещены некоторые элементы окна из-за того что в стилях окна теперь прописано рисовать в координатах рабочей области
-отвалился курсор в рабочей области
-при выборе некоторых пунктов меню происходит вылет (например Undo)
P.S. к сожалению код animage сложен для поддержки и дальнейшего развития
Из явных косяков:libkmenu
-
- Attachments
-
-
animage.zip (49.77 KiB)Downloaded 349 times
-
Видимо, ещё один Tinypad...
А по поводу несрабатывания пунктов меню мысли есть?
А по поводу несрабатывания пунктов меню мысли есть?
Вопрос по меню, какого размера структуру следует давать в функцию kmenu_init ?
Старую на 40 байт или новую на 192 байта? Потому как я заметил что в редакторе t_edit у меня структура старого образца system_colors на 40 байт.
Старую на 40 байт или новую на 192 байта? Потому как я заметил что в редакторе t_edit у меня структура старого образца system_colors на 40 байт.
Расширенную, на 192 байта. В последней версии библиотеки, можно передать NULL
rev 6224
Нашел и обновил очень старый пример использования меню (аж со 180-й ревизии не менялся).
Там была на кнопках какая-то непонятная штука похожая на меню. Заменил его на библиотечное kmenu.
Нашел и обновил очень старый пример использования меню (аж со 180-й ревизии не менялся).
Там была на кнопках какая-то непонятная штука похожая на меню. Заменил его на библиотечное kmenu.
Исправил небольшой баг с мышкой
если запустить техt editor (расположен на боковой панели) и после этого перекрыть его заголовок
заголовком другого приложения (окна), то он всё равно будет выводить выбранные меню при курсоре мыши над ними
- Attachments
-
-
kmenu.obj (9.01 KiB)Downloaded 334 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;
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 321 times
-
О, лови разработчика!
Есть баг - подменю _второго уровня_ не работает - и не закрывается вовремя и не срабатывает как событие.
Если надо, выложу собранный пример вечером из c-layer
Есть баг - подменю _второго уровня_ не работает - и не закрывается вовремя и не срабатывает как событие.
Если надо, выложу собранный пример вечером из c-layer
Да, пример хотелось бы взглянуть.
Т.к. в моем демо (прикрепил) вроде нет таких проблем
Т.к. в моем демо (прикрепил) вроде нет таких проблем
- Attachments
-
-
menu_demo (29 KiB)Downloaded 343 times
-
Работает, спасибо.
P.S. Во время тестирования меню, приложение один раз вылетело, воспроизвести вылет потом так и не удалось.
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));
Картинка два появляется по щелчку на Encoding, и событий 211, 212 не приходит.
Без исходников не могу поковырять ни пример ни либу (
- Attachments
-
-
kmenu2.png (1.87 KiB)Viewed 12061 times
-
kmenu1.png (1.95 KiB)Viewed 12061 times
-
Who is online
Users browsing this forum: Ahrefs [Bot] and 2 guests