| 45 |
/* エディタ全体に関する情報と,現在表示されているタブ情報へのキャッシュを管理する構造体 */ |
/* エディタ全体に関する情報と,現在表示されているタブ情報へのキャッシュを管理する構造体 */ |
| 46 |
struct { |
struct { |
| 47 |
GtkWidget *editor_window; |
GtkWidget *editor_window; |
| 48 |
|
GtkClipboard *clipboard; |
| 49 |
GtkNotebook *notebook; |
GtkNotebook *notebook; |
| 50 |
GtkWidget *statusbar; |
GtkWidget *statusbar; |
| 51 |
GtkWidget *modeline_label; |
GtkWidget *modeline_label; |
| 56 |
|
|
| 57 |
/* シングルトンオブジェクトの定義 */ |
/* シングルトンオブジェクトの定義 */ |
| 58 |
#define Shiki_EDITOR_WINDOW shiki_editor.editor_window |
#define Shiki_EDITOR_WINDOW shiki_editor.editor_window |
| 59 |
|
#define Shiki_EDITOR_CLIPBOARD shiki_editor.clipboard |
| 60 |
#define Shiki_EDITOR_NOTEBOOK shiki_editor.notebook |
#define Shiki_EDITOR_NOTEBOOK shiki_editor.notebook |
| 61 |
#define Shiki_EDITOR_STATUSBAR shiki_editor.statusbar |
#define Shiki_EDITOR_STATUSBAR shiki_editor.statusbar |
| 62 |
#define Shiki_EDITOR_MODELINE_LABEL shiki_editor.modeline_label |
#define Shiki_EDITOR_MODELINE_LABEL shiki_editor.modeline_label |
| 711 |
gtk_text_buffer_get_start_iter(Shiki_CURRENT_TEXT_BUFFER, &start); |
gtk_text_buffer_get_start_iter(Shiki_CURRENT_TEXT_BUFFER, &start); |
| 712 |
gtk_text_buffer_get_end_iter(Shiki_CURRENT_TEXT_BUFFER, &end); |
gtk_text_buffer_get_end_iter(Shiki_CURRENT_TEXT_BUFFER, &end); |
| 713 |
gtk_text_buffer_remove_tag_by_name(Shiki_CURRENT_TEXT_BUFFER, "parent_emphasis_background", &start, &end); |
gtk_text_buffer_remove_tag_by_name(Shiki_CURRENT_TEXT_BUFFER, "parent_emphasis_background", &start, &end); |
| 714 |
|
|
| 715 |
if(event->state & GDK_CONTROL_MASK && event->state & GDK_MOD1_MASK) { |
if(event->state & GDK_CONTROL_MASK && event->state & GDK_MOD1_MASK) { |
| 716 |
switch(event->keyval) { |
switch(event->keyval) { |
| 717 |
case GDK_at : /* C-M-SPC */ |
case GDK_at : /* C-M-SPC */ |
| 727 |
} |
} |
| 728 |
break; |
break; |
| 729 |
} |
} |
| 730 |
} |
} else if(event->state & GDK_CONTROL_MASK) { |
|
if(event->state & GDK_CONTROL_MASK) { |
|
| 731 |
switch(event->keyval) { |
switch(event->keyval) { |
| 732 |
case GDK_f : /* Ctrl + f : forward */ |
case GDK_f : /* Ctrl + f : forward */ |
| 733 |
forward_current_buffer(); |
forward_current_buffer(); |
| 783 |
case GDK_k : /* Ctrl + k : タブを閉じる */ |
case GDK_k : /* Ctrl + k : タブを閉じる */ |
| 784 |
remove_tabpage(); |
remove_tabpage(); |
| 785 |
break; |
break; |
| 786 |
|
|
| 787 |
|
case GDK_w : /* Ctrl + w : カット */ |
| 788 |
|
gtk_text_buffer_cut_clipboard(Shiki_CURRENT_TEXT_BUFFER, Shiki_EDITOR_CLIPBOARD, TRUE); |
| 789 |
|
break; |
| 790 |
|
|
| 791 |
|
case GDK_y : /* Ctrl + y : ヤンク */ |
| 792 |
|
{GtkTextIter p; |
| 793 |
|
gtk_text_buffer_get_iter_at_mark(Shiki_CURRENT_TEXT_BUFFER,&p, gtk_text_buffer_get_insert(Shiki_CURRENT_TEXT_BUFFER)); |
| 794 |
|
gtk_text_buffer_paste_clipboard(Shiki_CURRENT_TEXT_BUFFER, Shiki_EDITOR_CLIPBOARD, &p, TRUE); |
| 795 |
|
} |
| 796 |
|
break; |
| 797 |
} |
} |
| 798 |
} |
} |
| 799 |
return FALSE; |
return FALSE; |
| 902 |
"C-n : ↓ に移動 (next line)\n" |
"C-n : ↓ に移動 (next line)\n" |
| 903 |
"C-p : ↑ に移動 (previous line)\n\n" |
"C-p : ↑ に移動 (previous line)\n\n" |
| 904 |
"C-h : バックスペース\n\n" |
"C-h : バックスペース\n\n" |
| 905 |
|
"C-w : カット\n" |
| 906 |
|
"C-y : ヤンク (ペースト)\n\n" |
| 907 |
"C-e : カーソル後ろの S 式を評価 (eval-expression)\n" |
"C-e : カーソル後ろの S 式を評価 (eval-expression)\n" |
| 908 |
"C-j : カーソル手前の S 式を評価 (eval-last-sexp)\n" |
"C-j : カーソル手前の S 式を評価 (eval-last-sexp)\n" |
| 909 |
"(emacs/xyzzy の *scratch* バッファと同じ)\n\n" |
"(emacs/xyzzy の *scratch* バッファと同じ)\n\n" |
| 910 |
|
"C-M-@ : カーソル以降の S 式を選択 (mark-sexp)\n" |
| 911 |
|
"C-M-SPC : カーソル手前の S 式を選択 (mark-last-sexp)\n" |
| 912 |
"C-x C-c : 終了.ウィンドウの × ボタンを押したのと同じ\n\n" |
"C-x C-c : 終了.ウィンドウの × ボタンを押したのと同じ\n\n" |
| 913 |
|
|
| 914 |
"また,内容が失われる恐れがあるときには全て「Really Quit ?」のように警告します.\n", -1); |
"また,内容が失われる恐れがあるときには全て「Really Quit ?」のように警告します.\n", -1); |
| 933 |
Shiki_EDITOR_WINDOW = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
Shiki_EDITOR_WINDOW = gtk_window_new(GTK_WINDOW_TOPLEVEL); |
| 934 |
g_signal_connect(G_OBJECT(Shiki_EDITOR_WINDOW), "destroy", G_CALLBACK(gtk_main_quit), NULL); |
g_signal_connect(G_OBJECT(Shiki_EDITOR_WINDOW), "destroy", G_CALLBACK(gtk_main_quit), NULL); |
| 935 |
|
|
| 936 |
|
/* システムのデフォルトクリップボードを取得 */ |
| 937 |
|
Shiki_EDITOR_CLIPBOARD = gtk_clipboard_get(GDK_SELECTION_PRIMARY); |
| 938 |
|
|
| 939 |
/* パッキングボックスを作る */ |
/* パッキングボックスを作る */ |
| 940 |
vbox = gtk_vbox_new(FALSE, 0); |
vbox = gtk_vbox_new(FALSE, 0); |
| 941 |
/* ツールバー作る */ |
/* ツールバー作る */ |