| 41 |
static GtkWidget *statusbar; |
static GtkWidget *statusbar; |
| 42 |
static GtkWidget *modeline_label; |
static GtkWidget *modeline_label; |
| 43 |
|
|
| 44 |
|
/* このアプリケーションについて */ |
| 45 |
|
static void about_this_application() { |
| 46 |
|
GtkAboutDialog *about = GTK_ABOUT_DIALOG(gtk_about_dialog_new()); |
| 47 |
|
const gchar *authors[] = { |
| 48 |
|
"若槻俊宏 (あろは) <alohakun@gmail.com>" |
| 49 |
|
}; |
| 50 |
|
gtk_about_dialog_set_authors(about, authors); |
| 51 |
|
gtk_about_dialog_set_copyright(about, "Copyright(C)2006 WAKATSUKI Toshihiro"); |
| 52 |
|
gtk_about_dialog_set_name(about, "式 (SHIKI)"); |
| 53 |
|
gtk_about_dialog_set_website_label(about, "本当に30日でエディタが出来上がるのかを試してみるBlog"); |
| 54 |
|
gtk_about_dialog_set_website(about, "http://alohakun.blog7.fc2.com/blog-category-29.html"); |
| 55 |
|
gtk_dialog_run(GTK_DIALOG(about)); |
| 56 |
|
gtk_widget_destroy(GTK_WIDGET(about)); |
| 57 |
|
} |
| 58 |
|
|
| 59 |
/* 現在のバッファのカーソル位置の行番号を取得 */ |
/* 現在のバッファのカーソル位置の行番号を取得 */ |
| 60 |
static gint get_current_line_number(GtkTextBuffer *b) { |
static gint get_current_line_number(GtkTextBuffer *b) { |
| 61 |
GtkTextIter p; |
GtkTextIter p; |
| 66 |
/* バッファの状態に合わせてモードラインを変更 */ |
/* バッファの状態に合わせてモードラインを変更 */ |
| 67 |
static void update_modeline_label() { |
static void update_modeline_label() { |
| 68 |
gchar* basename = g_path_get_basename(current_tabpage_label); |
gchar* basename = g_path_get_basename(current_tabpage_label); |
| 69 |
gchar* l = g_strdup_printf("-E:%s %-10s (Lisp Interaction)--L%d--------------------------------------", |
gchar* l = g_strdup_printf("-E:%s %-10s (Gauche Interaction)--L%d--------------------------------------", |
| 70 |
gtk_text_buffer_get_modified(current_text_buffer) ? "**" : "--", |
gtk_text_buffer_get_modified(current_text_buffer) ? "**" : "--", |
| 71 |
basename, get_current_line_number(current_text_buffer)); |
basename, get_current_line_number(current_text_buffer)); |
| 72 |
gtk_label_set_text(GTK_LABEL(modeline_label), l); |
gtk_label_set_text(GTK_LABEL(modeline_label), l); |
| 225 |
buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view)); |
buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view)); |
| 226 |
gtk_container_add(GTK_CONTAINER(scrolledwindow), view); |
gtk_container_add(GTK_CONTAINER(scrolledwindow), view); |
| 227 |
g_signal_connect(G_OBJECT(editor_window), "delete_event", G_CALLBACK(delete_event_handler), buffer); |
g_signal_connect(G_OBJECT(editor_window), "delete_event", G_CALLBACK(delete_event_handler), buffer); |
| 228 |
gtk_widget_set_size_request(GTK_WIDGET(view), 500, 500); |
gtk_widget_set_size_request(GTK_WIDGET(view), 500, 700); |
| 229 |
g_signal_connect(buffer, "mark_set", G_CALLBACK(text_buffer_cursor_moved_handler), view); |
g_signal_connect(buffer, "mark_set", G_CALLBACK(text_buffer_cursor_moved_handler), view); |
| 230 |
/* 様々な初期化処理 */ |
/* 様々な初期化処理 */ |
| 231 |
/* 括弧の強調表示のためのタグを作る */ |
/* 括弧の強調表示のためのタグを作る */ |
| 677 |
gtk_tool_item_set_tooltip(icon, toolbar_tips, "バッファを閉じます", |
gtk_tool_item_set_tooltip(icon, toolbar_tips, "バッファを閉じます", |
| 678 |
"まだ内容が保存されていない場合は警告します"); |
"まだ内容が保存されていない場合は警告します"); |
| 679 |
|
|
| 680 |
gtk_box_pack_start(GTK_BOX(vbox), modeline_label = gtk_label_new("-E:** *scratch* (Lisp Interaction)--L1--All---------------------------------"), TRUE, TRUE, 0); |
icon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-dialog-info", iconsize), "append"); |
| 681 |
|
g_signal_connect(G_OBJECT(icon), "clicked", G_CALLBACK(about_this_application), NULL); |
| 682 |
|
gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(icon)); |
| 683 |
|
gtk_tool_item_set_tooltip(icon, toolbar_tips, "このアプリケーションについて", ""); |
| 684 |
|
|
| 685 |
|
gtk_box_pack_start(GTK_BOX(vbox), modeline_label = gtk_label_new("-E:** *scratch* (Gauche Interaction)--L1--All---------------------------------"), TRUE, TRUE, 0); |
| 686 |
|
|
| 687 |
/* C-x C-s などの状態を表示するステータスバーをウィンドウボトムに追加 */ |
/* C-x C-s などの状態を表示するステータスバーをウィンドウボトムに追加 */ |
| 688 |
statusbar = gtk_statusbar_new(); |
statusbar = gtk_statusbar_new(); |