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. */