| 41 |
static GtkWidget *statusbar; |
static GtkWidget *statusbar; |
| 42 |
static GtkWidget *modeline_label; |
static GtkWidget *modeline_label; |
| 43 |
|
|
| 44 |
|
static void font_selection_ok(GtkWidget *button, GtkWidget *font_dialog) { |
| 45 |
|
gchar *font_name = gtk_font_selection_dialog_get_font_name (GTK_FONT_SELECTION_DIALOG (font_dialog)); |
| 46 |
|
if(font_name) { |
| 47 |
|
GtkRcStyle *style = gtk_rc_style_new (); |
| 48 |
|
pango_font_description_free(style->font_desc); |
| 49 |
|
style->font_desc = pango_font_description_from_string(font_name); |
| 50 |
|
gtk_widget_modify_style (GTK_WIDGET(current_text_view), style); |
| 51 |
|
g_free (font_name); |
| 52 |
|
} |
| 53 |
|
} |
| 54 |
|
|
| 55 |
|
static void select_font(){ |
| 56 |
|
GtkWidget *font_dialog = gtk_font_selection_dialog_new("Font Selection Dialog"); |
| 57 |
|
g_signal_connect (GTK_FONT_SELECTION_DIALOG (font_dialog)->ok_button, "clicked", G_CALLBACK(font_selection_ok), font_dialog); |
| 58 |
|
gtk_dialog_run(GTK_DIALOG(font_dialog)); |
| 59 |
|
gtk_widget_destroy(font_dialog); |
| 60 |
|
} |
| 61 |
|
|
| 62 |
/* このアプリケーションについて */ |
/* このアプリケーションについて */ |
| 63 |
static void about_this_application() { |
static void about_this_application() { |
| 64 |
GtkAboutDialog *about = GTK_ABOUT_DIALOG(gtk_about_dialog_new()); |
GtkAboutDialog *about = GTK_ABOUT_DIALOG(gtk_about_dialog_new()); |
| 85 |
static void update_modeline_label() { |
static void update_modeline_label() { |
| 86 |
gchar* basename = g_path_get_basename(current_tabpage_label); |
gchar* basename = g_path_get_basename(current_tabpage_label); |
| 87 |
gchar* l = g_strdup_printf("-E:%s %-10s (Gauche Interaction)--L%d--------------------------------------", |
gchar* l = g_strdup_printf("-E:%s %-10s (Gauche Interaction)--L%d--------------------------------------", |
| 88 |
gtk_text_buffer_get_modified(current_text_buffer) ? "**" : "--", |
gtk_text_buffer_get_modified(current_text_buffer) ? "**" : "--", |
| 89 |
basename, get_current_line_number(current_text_buffer)); |
basename, get_current_line_number(current_text_buffer)); |
| 90 |
gtk_label_set_text(GTK_LABEL(modeline_label), l); |
gtk_label_set_text(GTK_LABEL(modeline_label), l); |
| 91 |
g_free(l); g_free(basename); |
g_free(l); g_free(basename); |
| 92 |
} |
} |
| 694 |
gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(icon)); |
gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(icon)); |
| 695 |
gtk_tool_item_set_tooltip(icon, toolbar_tips, "バッファを閉じます", |
gtk_tool_item_set_tooltip(icon, toolbar_tips, "バッファを閉じます", |
| 696 |
"まだ内容が保存されていない場合は警告します"); |
"まだ内容が保存されていない場合は警告します"); |
| 697 |
|
icon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-bold", iconsize), "append"); |
| 698 |
|
g_signal_connect(G_OBJECT(icon), "clicked", G_CALLBACK(select_font), NULL); |
| 699 |
|
gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(icon)); |
| 700 |
|
gtk_tool_item_set_tooltip(icon, toolbar_tips, "フォントの変更", ""); |
| 701 |
|
|
| 702 |
icon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-dialog-info", iconsize), "append"); |
icon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-dialog-info", iconsize), "append"); |
| 703 |
g_signal_connect(G_OBJECT(icon), "clicked", G_CALLBACK(about_this_application), NULL); |
g_signal_connect(G_OBJECT(icon), "clicked", G_CALLBACK(about_this_application), NULL); |
| 705 |
gtk_tool_item_set_tooltip(icon, toolbar_tips, "このアプリケーションについて", ""); |
gtk_tool_item_set_tooltip(icon, toolbar_tips, "このアプリケーションについて", ""); |
| 706 |
|
|
| 707 |
gtk_box_pack_start(GTK_BOX(vbox), modeline_label = gtk_label_new("-E:** *scratch* (Gauche Interaction)--L1--All---------------------------------"), TRUE, TRUE, 0); |
gtk_box_pack_start(GTK_BOX(vbox), modeline_label = gtk_label_new("-E:** *scratch* (Gauche Interaction)--L1--All---------------------------------"), TRUE, TRUE, 0); |
| 708 |
|
|
| 709 |
/* C-x C-s などの状態を表示するステータスバーをウィンドウボトムに追加 */ |
/* C-x C-s などの状態を表示するステータスバーをウィンドウボトムに追加 */ |
| 710 |
statusbar = gtk_statusbar_new(); |
statusbar = gtk_statusbar_new(); |
| 711 |
gtk_box_pack_start(GTK_BOX(vbox), statusbar, TRUE, TRUE, 0); |
gtk_box_pack_start(GTK_BOX(vbox), statusbar, TRUE, TRUE, 0); |
| 714 |
/* キーバインドのハンドリングを登録 */ |
/* キーバインドのハンドリングを登録 */ |
| 715 |
g_signal_connect(G_OBJECT(notebook), "key-press-event", G_CALLBACK (signal_key_press_handler), GINT_TO_POINTER(contextid)); |
g_signal_connect(G_OBJECT(notebook), "key-press-event", G_CALLBACK (signal_key_press_handler), GINT_TO_POINTER(contextid)); |
| 716 |
g_signal_connect(G_OBJECT(notebook), "key-release-event", G_CALLBACK (signal_key_release_handler), GINT_TO_POINTER(contextid)); |
g_signal_connect(G_OBJECT(notebook), "key-release-event", G_CALLBACK (signal_key_release_handler), GINT_TO_POINTER(contextid)); |
| 717 |
|
|
| 718 |
/* デフォルトのページを追加 */ |
/* デフォルトのページを追加 */ |
| 719 |
gtk_notebook_prepend_page(GTK_NOTEBOOK(notebook), new_scrolled_text_buffer(), gtk_label_new("*scratch*")); |
gtk_notebook_prepend_page(GTK_NOTEBOOK(notebook), new_scrolled_text_buffer(), gtk_label_new("*scratch*")); |
| 720 |
|
|