Board.KolibriOS.org

Official KolibriOS board
It is currently Thu Apr 25, 2019 7:13 am

All times are UTC+03:00




Post new topic  Reply to topic  [ 43 posts ]  Go to page Previous 1 2 3
Author Message
 Post subject: Re: libkmenu
PostPosted: Wed Nov 04, 2015 12:48 pm 
Offline

Joined: Thu Jan 26, 2006 8:47 pm
Posts: 284
Если у кого есть желание и возможность помочь прикрутить меню к animage, то вот результат некоторой работы
Attachment:
animage.png
animage.png [ 10.86 KiB | Viewed 3328 times ]

Из явных косяков:
-смещены некоторые элементы окна из-за того что в стилях окна теперь прописано рисовать в координатах рабочей области
-отвалился курсор в рабочей области
-при выборе некоторых пунктов меню происходит вылет (например Undo)

P.S. к сожалению код animage сложен для поддержки и дальнейшего развития


Attachments:
animage.zip [49.77 KiB]
Downloaded 81 times
Top
   
 Post subject: Re: libkmenu
PostPosted: Wed Nov 04, 2015 3:38 pm 
Offline
Mentor/Kernel Developer
User avatar

Joined: Thu Mar 26, 2015 5:16 pm
Posts: 1259
Видимо, ещё один Tinypad...

А по поводу несрабатывания пунктов меню мысли есть?


Top
   
 Post subject: Re: libkmenu
PostPosted: Sun Nov 29, 2015 12:22 am 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 811
Вопрос по меню, какого размера структуру следует давать в функцию kmenu_init ?
Старую на 40 байт или новую на 192 байта? Потому как я заметил что в редакторе t_edit у меня структура старого образца system_colors на 40 байт.


Top
   
 Post subject: Re: libkmenu
PostPosted: Mon Nov 30, 2015 12:01 pm 
Offline

Joined: Thu Jan 26, 2006 8:47 pm
Posts: 284
Расширенную, на 192 байта. В последней версии библиотеки, можно передать NULL


Top
   
 Post subject: Re: libkmenu
PostPosted: Sun Feb 14, 2016 11:42 pm 
Offline
User avatar

Joined: Mon Oct 27, 2008 10:10 pm
Posts: 811
rev 6224
Нашел и обновил очень старый пример использования меню (аж со 180-й ревизии не менялся).
Там была на кнопках какая-то непонятная штука похожая на меню. Заменил его на библиотечное kmenu.


Top
   
 Post subject: Re: libkmenu
PostPosted: Fri Feb 19, 2016 5:15 pm 
Offline

Joined: Thu Jan 26, 2006 8:47 pm
Posts: 284
Исправил небольшой баг с мышкой

Quote:
если запустить техt editor (расположен на боковой панели) и после этого перекрыть его заголовок
заголовком другого приложения (окна), то он всё равно будет выводить выбранные меню при курсоре мыши над ними


Attachments:
kmenu.obj [9.01 KiB]
Downloaded 74 times
Top
   
 Post subject: Re: libkmenu
PostPosted: Mon Aug 22, 2016 3:18 am 
Offline

Joined: Tue Apr 12, 2011 11:19 pm
Posts: 1143
Где можно найти объявление типов t_rect и t_font?

_________________
я лишь учусь


Top
   
 Post subject: Re: libkmenu
PostPosted: Mon Aug 22, 2016 11:05 am 
Offline
Mentor
User avatar

Joined: Tue Jan 15, 2008 11:27 am
Posts: 752
В файле 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;


Top
   
 Post subject: Re: libkmenu
PostPosted: Wed Oct 26, 2016 1:52 pm 
Offline

Joined: Thu Jan 26, 2006 8:47 pm
Posts: 284
Исправлена установка маски событий из-за чего родительское окно получало события от мышки даже в неактивном состоянии (http://bugs.kolibri-n.org/index.php?id=1)
Небольшие косметические изменения ввиде увеличенных отступов


Attachments:
kmenu.obj [6.79 KiB]
Downloaded 64 times
Top
   
 Post subject: Re: libkmenu
PostPosted: Wed Oct 26, 2016 3:15 pm 
Offline

Joined: Tue Mar 08, 2016 11:00 pm
Posts: 432
О, лови разработчика!

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

Если надо, выложу собранный пример вечером из c-layer


Top
   
 Post subject: Re: libkmenu
PostPosted: Wed Oct 26, 2016 3:55 pm 
Offline

Joined: Thu Jan 26, 2006 8:47 pm
Posts: 284
Да, пример хотелось бы взглянуть.

Т.к. в моем демо (прикрепил) вроде нет таких проблем


Attachments:
menu_demo [29 KiB]
Downloaded 68 times
Top
   
 Post subject: Re: libkmenu
PostPosted: Wed Oct 26, 2016 4:42 pm 
Offline
Designer
User avatar

Joined: Thu Jan 25, 2007 3:33 pm
Posts: 4993
Работает, спасибо.

P.S. Во время тестирования меню, приложение один раз вылетело, воспроизвести вылет потом так и не удалось.

_________________
Через тернии к звездам


Top
   
 Post subject: Re: libkmenu
PostPosted: Wed Oct 26, 2016 6:25 pm 
Offline

Joined: Tue Mar 08, 2016 11:00 pm
Posts: 432
Siemargl wrote:
О, лови разработчика!

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

Если надо, выложу собранный пример вечером из c-layer

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

Возможно, мы неверно что то используем:
Вот исходник http://websvn.kolibrios.org/filedetails ... _example.c
Структуры тут http://websvn.kolibrios.org/filedetails ... ri_kmenu.h
Spoiler: Show
Code:
  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 2751 times ]
kmenu1.png
kmenu1.png [ 1.95 KiB | Viewed 2751 times ]
Top
   
Display posts from previous:  Sort by  
Post new topic  Reply to topic  [ 43 posts ]  Go to page Previous 1 2 3

All times are UTC+03:00


Who is online

Users browsing this forum: No registered users and 2 guests


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
Powered by phpBB® Forum Software © phpBB Limited