Mercurial > vim
comparison src/gui_gtk_x11.c @ 846:db44f7b81373 v7.0f03
updated for version 7.0f03
author | vimboss |
---|---|
date | Thu, 27 Apr 2006 21:47:44 +0000 |
parents | d3bbb5dd3913 |
children | e73f2978bd40 |
comparison
equal
deleted
inserted
replaced
845:0fe7765dcb8e | 846:db44f7b81373 |
---|---|
3119 #endif /* FEAT_TOOLBAR */ | 3119 #endif /* FEAT_TOOLBAR */ |
3120 | 3120 |
3121 #if defined(FEAT_GUI_TABLINE) || defined(PROTO) | 3121 #if defined(FEAT_GUI_TABLINE) || defined(PROTO) |
3122 static int ignore_tabline_evt = FALSE; | 3122 static int ignore_tabline_evt = FALSE; |
3123 static GtkWidget *tabline_menu; | 3123 static GtkWidget *tabline_menu; |
3124 static GtkTooltips *tabline_tooltip; | |
3124 static int clicked_page; /* page clicked in tab line */ | 3125 static int clicked_page; /* page clicked in tab line */ |
3125 | 3126 |
3126 /* | 3127 /* |
3127 * Handle selecting an item in the tab line popup menu. | 3128 * Handle selecting an item in the tab line popup menu. |
3128 */ | 3129 */ |
3129 /*ARGSUSED*/ | 3130 /*ARGSUSED*/ |
3130 static void | 3131 static void |
3131 tabline_menu_handler(GtkMenuItem *item, gpointer user_data) | 3132 tabline_menu_handler(GtkMenuItem *item, gpointer user_data) |
3132 { | 3133 { |
3133 | |
3134 /* Add the string cmd into input buffer */ | 3134 /* Add the string cmd into input buffer */ |
3135 send_tabline_menu_event(clicked_page, (int)(long)user_data); | 3135 send_tabline_menu_event(clicked_page, (int)(long)user_data); |
3136 | 3136 |
3137 if (gtk_main_level() > 0) | 3137 if (gtk_main_level() > 0) |
3138 gtk_main_quit(); | 3138 gtk_main_quit(); |
3202 /* Past all the labels, return zero. */ | 3202 /* Past all the labels, return zero. */ |
3203 clicked_page = 0; | 3203 clicked_page = 0; |
3204 break; | 3204 break; |
3205 } | 3205 } |
3206 label = gtk_notebook_get_tab_label(GTK_NOTEBOOK(gui.tabline), page); | 3206 label = gtk_notebook_get_tab_label(GTK_NOTEBOOK(gui.tabline), page); |
3207 | |
3207 /* The label size apparently doesn't include the spacing, estimate | 3208 /* The label size apparently doesn't include the spacing, estimate |
3208 * it by the page position. */ | 3209 * it by the page position. */ |
3209 if (page->allocation.x * 2 + label->allocation.x | 3210 if (page->allocation.x * 2 + label->allocation.x |
3210 + label->allocation.width + 1 >= x) | 3211 + label->allocation.width + 1 >= x) |
3211 break; | 3212 break; |
3299 */ | 3300 */ |
3300 void | 3301 void |
3301 gui_mch_update_tabline(void) | 3302 gui_mch_update_tabline(void) |
3302 { | 3303 { |
3303 GtkWidget *page; | 3304 GtkWidget *page; |
3305 GtkWidget *event_box; | |
3304 GtkWidget *label; | 3306 GtkWidget *label; |
3305 tabpage_T *tp; | 3307 tabpage_T *tp; |
3306 int nr = 0; | 3308 int nr = 0; |
3307 int curtabidx = 0; | 3309 int curtabidx = 0; |
3308 char_u *labeltext; | 3310 char_u *labeltext; |
3322 if (page == NULL) | 3324 if (page == NULL) |
3323 { | 3325 { |
3324 /* Add notebook page */ | 3326 /* Add notebook page */ |
3325 page = gtk_vbox_new(FALSE, 0); | 3327 page = gtk_vbox_new(FALSE, 0); |
3326 gtk_widget_show(page); | 3328 gtk_widget_show(page); |
3329 event_box = gtk_event_box_new(); | |
3330 gtk_widget_show(event_box); | |
3327 label = gtk_label_new("-Empty-"); | 3331 label = gtk_label_new("-Empty-"); |
3332 #ifdef TABLINE_TOOLTIP | |
3333 gtk_container_add(GTK_CONTAINER(event_box), label); | |
3334 #else | |
3335 event_box = label; | |
3336 #endif | |
3328 gtk_widget_show(label); | 3337 gtk_widget_show(label); |
3329 gtk_notebook_insert_page(GTK_NOTEBOOK(gui.tabline), | 3338 gtk_notebook_insert_page(GTK_NOTEBOOK(gui.tabline), |
3330 page, | 3339 page, |
3331 label, | 3340 event_box, |
3332 nr++); | 3341 nr++); |
3333 } | 3342 } |
3334 | 3343 |
3344 event_box = gtk_notebook_get_tab_label(GTK_NOTEBOOK(gui.tabline), page); | |
3345 #ifdef TABLINE_TOOLTIP | |
3346 label = GTK_BIN(event_box)->child; | |
3347 #else | |
3348 label = event_box; | |
3349 #endif | |
3335 get_tabline_label(tp, FALSE); | 3350 get_tabline_label(tp, FALSE); |
3336 labeltext = CONVERT_TO_UTF8(NameBuff); | 3351 labeltext = CONVERT_TO_UTF8(NameBuff); |
3337 gtk_notebook_set_tab_label_text(GTK_NOTEBOOK(gui.tabline), page, | 3352 gtk_label_set_text(GTK_LABEL(label), (const char *)labeltext); |
3338 (const gchar *)labeltext); | |
3339 CONVERT_TO_UTF8_FREE(labeltext); | 3353 CONVERT_TO_UTF8_FREE(labeltext); |
3354 | |
3355 #ifdef TABLINE_TOOLTIP | |
3356 get_tabline_label(tp, TRUE); | |
3357 labeltext = CONVERT_TO_UTF8(NameBuff); | |
3358 gtk_tooltips_set_tip(GTK_TOOLTIPS(tabline_tooltip), event_box, | |
3359 (const char *)labeltext, NULL); | |
3360 CONVERT_TO_UTF8_FREE(labeltext); | |
3361 #endif | |
3340 } | 3362 } |
3341 | 3363 |
3342 /* Remove any old labels. */ | 3364 /* Remove any old labels. */ |
3343 while (gtk_notebook_get_nth_page(GTK_NOTEBOOK(gui.tabline), nr) != NULL) | 3365 while (gtk_notebook_get_nth_page(GTK_NOTEBOOK(gui.tabline), nr) != NULL) |
3344 gtk_notebook_remove_page(GTK_NOTEBOOK(gui.tabline), nr); | 3366 gtk_notebook_remove_page(GTK_NOTEBOOK(gui.tabline), nr); |
3662 gtk_box_pack_start(GTK_BOX(vbox), gui.tabline, FALSE, FALSE, 0); | 3684 gtk_box_pack_start(GTK_BOX(vbox), gui.tabline, FALSE, FALSE, 0); |
3663 gtk_notebook_set_show_border(GTK_NOTEBOOK(gui.tabline), FALSE); | 3685 gtk_notebook_set_show_border(GTK_NOTEBOOK(gui.tabline), FALSE); |
3664 gtk_notebook_set_show_tabs(GTK_NOTEBOOK(gui.tabline), FALSE); | 3686 gtk_notebook_set_show_tabs(GTK_NOTEBOOK(gui.tabline), FALSE); |
3665 gtk_notebook_set_scrollable(GTK_NOTEBOOK(gui.tabline), TRUE); | 3687 gtk_notebook_set_scrollable(GTK_NOTEBOOK(gui.tabline), TRUE); |
3666 | 3688 |
3667 { | 3689 tabline_tooltip = gtk_tooltips_new(); |
3668 GtkWidget *page, *label; | 3690 gtk_tooltips_enable(GTK_TOOLTIPS(tabline_tooltip)); |
3691 | |
3692 { | |
3693 GtkWidget *page, *label, *event_box; | |
3669 | 3694 |
3670 /* Add the first tab. */ | 3695 /* Add the first tab. */ |
3671 page = gtk_vbox_new(FALSE, 0); | 3696 page = gtk_vbox_new(FALSE, 0); |
3672 gtk_widget_show(page); | 3697 gtk_widget_show(page); |
3673 gtk_container_add(GTK_CONTAINER(gui.tabline), page); | 3698 gtk_container_add(GTK_CONTAINER(gui.tabline), page); |
3674 label = gtk_label_new("-Empty-"); | 3699 label = gtk_label_new("-Empty-"); |
3675 gtk_widget_show(label); | 3700 gtk_widget_show(label); |
3676 gtk_notebook_set_tab_label(GTK_NOTEBOOK(gui.tabline), page, label); | 3701 #ifdef TABLINE_TOOLTIP |
3702 event_box = gtk_event_box_new(); | |
3703 gtk_widget_show(event_box); | |
3704 gtk_container_add(GTK_CONTAINER(event_box), label); | |
3705 #else | |
3706 event_box = label; | |
3707 #endif | |
3708 gtk_notebook_set_tab_label(GTK_NOTEBOOK(gui.tabline), page, event_box); | |
3677 } | 3709 } |
3678 gtk_signal_connect(GTK_OBJECT(gui.tabline), "switch_page", | 3710 gtk_signal_connect(GTK_OBJECT(gui.tabline), "switch_page", |
3679 GTK_SIGNAL_FUNC(on_select_tab), NULL); | 3711 GTK_SIGNAL_FUNC(on_select_tab), NULL); |
3680 | 3712 |
3681 /* Create a popup menu for the tab line and connect it. */ | 3713 /* Create a popup menu for the tab line and connect it. */ |