ui/gtk/menu.c

changeset 148
4e0b38bbd6c4
parent 140
c03c338a7dcf
child 164
1d912f78fd1d
equal deleted inserted replaced
147:2e384acc89a6 148:4e0b38bbd6c4
455 evt.eventdata = NULL; 455 evt.eventdata = NULL;
456 evt.intval = gtk_check_menu_item_get_active(ci); 456 evt.intval = gtk_check_menu_item_get_active(ci);
457 event->callback(&evt, event->userdata); 457 event->callback(&evt, event->userdata);
458 } 458 }
459 459
460 int ui_checkitem_get(UiInteger *i) { 460 int64_t ui_checkitem_get(UiInteger *i) {
461 int state = gtk_check_menu_item_get_active(i->obj); 461 int state = gtk_check_menu_item_get_active(i->obj);
462 i->value = state; 462 i->value = state;
463 return state; 463 return state;
464 } 464 }
465 465
466 void ui_checkitem_set(UiInteger *i, int value) { 466 void ui_checkitem_set(UiInteger *i, int64_t value) {
467 i->value = value; 467 i->value = value;
468 gtk_check_menu_item_set_active(i->obj, value); 468 gtk_check_menu_item_set_active(i->obj, value);
469 } 469 }
470 470
471 471
476 static gboolean ui_button_press_event(GtkWidget *widget, GdkEvent *event, GtkMenu *menu) { 476 static gboolean ui_button_press_event(GtkWidget *widget, GdkEvent *event, GtkMenu *menu) {
477 if(event->type == GDK_BUTTON_PRESS) { 477 if(event->type == GDK_BUTTON_PRESS) {
478 GdkEventButton *e = (GdkEventButton*)event; 478 GdkEventButton *e = (GdkEventButton*)event;
479 if(e->button == 3) { 479 if(e->button == 3) {
480 gtk_widget_show_all(GTK_WIDGET(menu)); 480 gtk_widget_show_all(GTK_WIDGET(menu));
481 gtk_menu_popup(menu, NULL, NULL, NULL, NULL, e->button, e->time); 481 ui_contextmenu_popup(menu);
482 return TRUE; 482 return TRUE;
483 } 483 }
484 } 484 }
485 return FALSE; 485 return FALSE;
486 } 486 }
499 ct->menu = menu; 499 ct->menu = menu;
500 return menu; 500 return menu;
501 } 501 }
502 502
503 void ui_contextmenu_popup(UIMENU menu) { 503 void ui_contextmenu_popup(UIMENU menu) {
504 #if GTK_MAJOR_VERSION >= 3 && GTK_MINOR_VERSION >= 16
505 gtk_menu_popup_at_pointer(menu, NULL);
506 #else
504 gtk_menu_popup(menu, NULL, NULL, 0, 0, 0, gtk_get_current_event_time()); 507 gtk_menu_popup(menu, NULL, NULL, 0, 0, 0, gtk_get_current_event_time());
508 #endif
505 } 509 }
506 510
507 void ui_widget_menuitem(UiObject *obj, char *label, ui_callback f, void *userdata) { 511 void ui_widget_menuitem(UiObject *obj, char *label, ui_callback f, void *userdata) {
508 ui_widget_menuitem_gr(obj, label, f, userdata, -1); 512 ui_widget_menuitem_gr(obj, label, f, userdata, -1);
509 } 513 }

mercurial