projects
/
goodguy
/
history.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
prevent popup deactivation while button_down
[goodguy/history.git]
/
cinelerra-5.0
/
guicast
/
bcmenupopup.C
diff --git
a/cinelerra-5.0/guicast/bcmenupopup.C
b/cinelerra-5.0/guicast/bcmenupopup.C
index e465d01f1315790e2f0b919b2ad3682a46559f7a..0d418cb8c4f442b3657d55eea63fb4a87cb42b38 100644
(file)
--- 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"
#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;
item_bg[0] = 0;
item_bg[1] = 0;
item_bg[2] = 0;
+ check = 0;
}
BC_MenuPopup::~BC_MenuPopup()
}
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 item_bg[0];
delete item_bg[1];
delete item_bg[2];
+ delete check;
}
int BC_MenuPopup::initialize(BC_WindowBase *top_level,
}
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);
}
{
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);
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);
}
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;
}
return 0;
}
@@
-185,13
+194,11
@@
int BC_MenuPopup::dispatch_translation_event()
if(popup)
{
int new_x = x +
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 +
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,
// 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);
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;
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
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;
menu_items.values[i]->y = h;
menu_items.values[i]->highlighted = 0;