X-Git-Url: http://git.cinelerra-gg.org/git/?a=blobdiff_plain;f=cinelerra-5.0%2Fguicast%2Fbcmenupopup.C;h=0d418cb8c4f442b3657d55eea63fb4a87cb42b38;hb=7150970246a9935d304b1f094c209f69cfd7adb3;hp=e465d01f1315790e2f0b919b2ad3682a46559f7a;hpb=2d99bb8ce591f05a31464b517d85dc2bc35b2abe;p=goodguy%2Fhistory.git diff --git a/cinelerra-5.0/guicast/bcmenupopup.C b/cinelerra-5.0/guicast/bcmenupopup.C index e465d01f..0d418cb8 100644 --- a/cinelerra-5.0/guicast/bcmenupopup.C +++ b/cinelerra-5.0/guicast/bcmenupopup.C @@ -19,6 +19,7 @@ * */ +#include "bcdisplayinfo.h" #include "bcmenubar.h" #include "bcmenuitem.h" #include "bcmenupopup.h" @@ -45,6 +46,7 @@ BC_MenuPopup::BC_MenuPopup() item_bg[0] = 0; item_bg[1] = 0; item_bg[2] = 0; + check = 0; } BC_MenuPopup::~BC_MenuPopup() @@ -59,6 +61,7 @@ BC_MenuPopup::~BC_MenuPopup() delete item_bg[0]; delete item_bg[1]; delete item_bg[2]; + delete check; } int BC_MenuPopup::initialize(BC_WindowBase *top_level, @@ -86,6 +89,7 @@ int BC_MenuPopup::initialize(BC_WindowBase *top_level, { window_bg = new BC_Pixmap(top_level, resources->menu_popup_bg); } + if(resources->menu_item_bg) { item_bg[0] = new BC_Pixmap(top_level, resources->menu_item_bg[0], PIXMAP_ALPHA); @@ -93,6 +97,11 @@ int BC_MenuPopup::initialize(BC_WindowBase *top_level, item_bg[2] = new BC_Pixmap(top_level, resources->menu_item_bg[2], PIXMAP_ALPHA); } + if(resources->check) + { + check = new BC_Pixmap(top_level, resources->check, PIXMAP_ALPHA); + } + return 0; } @@ -185,13 +194,11 @@ int BC_MenuPopup::dispatch_translation_event() if(popup) { int new_x = x + - (top_level->last_translate_x - - top_level->prev_x - - top_level->get_resources()->get_left_border()); + (top_level->last_translate_x - top_level->prev_x - + BC_DisplayInfo::get_left_border()); int new_y = y + - (top_level->last_translate_y - - top_level->prev_y - - top_level->get_resources()->get_top_border()); + (top_level->last_translate_y - top_level->prev_y - + BC_DisplayInfo::get_top_border()); // printf("BC_MenuPopup::dispatch_translation_event %d %d %d %d\n", // top_level->prev_x, @@ -369,7 +376,7 @@ int BC_MenuPopup::get_dimensions() for(i = 0; i < menu_items.total; i++) { text_w = 10 + top_level->get_text_width(MEDIUMFONT, menu_items.values[i]->text); - if(menu_items.values[i]->checked) text_w += 20; + if(menu_items.values[i]->checked) text_w += check->get_w() + 1; key_w = 10 + top_level->get_text_width(MEDIUMFONT, menu_items.values[i]->hotkey_text); if(text_w > widest_text) widest_text = text_w; @@ -378,7 +385,10 @@ int BC_MenuPopup::get_dimensions() if(!strcmp(menu_items.values[i]->text, "-")) menu_items.values[i]->h = 5; else - menu_items.values[i]->h = top_level->get_text_height(MEDIUMFONT) + 4; + { + menu_items.values[i]->h = item_bg[0] ? item_bg[0]->get_h() : + top_level->get_text_height(MEDIUMFONT) + 4; + } menu_items.values[i]->y = h; menu_items.values[i]->highlighted = 0;