Subversion Repositories Kolibri OS

Rev

Rev 5811 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  1. //Leency - 2012-2013
  2.  
  3. char *ITEMS_LIST[]={
  4. #ifdef LANG_RUS
  5. "Посмотреть исходник",
  6. "Редактировать исходник",
  7. "История",
  8. "Очистить кэш картинок",
  9. "Менеджер загрузок",
  10. #else
  11. "View source",
  12. "Edit source",
  13. "History",
  14. "Free image cache",
  15. "Download Manager",
  16. #endif
  17. 0};
  18.  
  19. llist menu;
  20.  
  21. void menu_rmb()
  22. {
  23.         proc_info MenuForm;
  24.  
  25.         menu.ClearList();
  26.         while (ITEMS_LIST[menu.count]) menu.count++;
  27.         menu.SetSizes(2,2,177,menu.count*19,19);
  28.         SetEventMask(100111b);
  29.  
  30.         _BEGIN_APPLICATION_MENU:
  31.         switch(WaitEvent())
  32.         {
  33.         case evMouse:
  34.                 GetProcessInfo(#MenuForm, SelfInfo);
  35.                 if (!CheckActiveProcess(MenuForm.ID)) ExitProcess();
  36.                 mouse.get();
  37.                 if (menu.ProcessMouse(mouse.x, mouse.y)) DrawMenuList();
  38.                 if (mouse.lkm)&&(mouse.up) ItemClick();
  39.                 break;
  40.                                
  41.         case evKey:
  42.                 GetKeys();
  43.                 if (key_scancode==SCAN_CODE_ESC) ExitProcess();
  44.                 if (key_scancode==SCAN_CODE_ENTER) ItemClick();
  45.                 if (menu.ProcessKey(key_scancode)) DrawMenuList();
  46.                 break;
  47.                                
  48.         case evReDraw:
  49.                 DefineAndDrawWindow(Form.left+mouse.x-6,Form.top+mouse.y+GetSkinHeight()+3,menu.w+2,menu.h+4,0x01, 0, 0, 0x01fffFFF);
  50.                 DrawPopup(0,0,menu.w,menu.h+3,0, col_bg,border_color);
  51.                 DrawMenuList();                        
  52.         }
  53.         goto _BEGIN_APPLICATION_MENU;
  54. }
  55.  
  56. void DrawMenuList()
  57. {
  58.         int N;
  59.  
  60.         for (N=0; N<menu.count; N++;)
  61.         {
  62.                 if (N==menu.cur_y)
  63.                         DrawBar(menu.x, N*menu.item_h+menu.y, menu.w-3, menu.item_h, 0x94AECE);
  64.                 else
  65.                 {
  66.                         DrawBar(menu.x, N*menu.item_h+menu.y, menu.w-3, menu.item_h, col_bg);
  67.                         WriteText(19,N*menu.item_h+9,0x80,0xf2f2f2,ITEMS_LIST[N]);
  68.                 }
  69.                 WriteText(18,N*menu.item_h+8,0x80,0x000000,ITEMS_LIST[N]);
  70.         }
  71. }
  72.  
  73. void ItemClick()
  74. {
  75.         action_buf = VIEW_SOURCE + menu.cur_y;
  76.         ExitProcess();
  77. }