Develop and Download Open Source Software

Browse CVS Repository

Diff of /shiki/shiki/shiki.c

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.25 by aloha, Mon Nov 13 17:49:40 2006 UTC revision 1.26 by aloha, Tue Nov 14 03:27:35 2006 UTC
# Line 45  typedef struct { Line 45  typedef struct {
45  /* エディタ全体に関する情報と,現在表示されているタブ情報へのキャッシュを管理する構造体 */  /* エディタ全体に関する情報と,現在表示されているタブ情報へのキャッシュを管理する構造体 */
46  struct {  struct {
47    GtkWidget     *editor_window;    GtkWidget     *editor_window;
48      GtkNotebook   *notebook;
49    GtkWidget     *statusbar;    GtkWidget     *statusbar;
50    GtkWidget     *modeline_label;    GtkWidget     *modeline_label;
51    GList         *tabInfoList;    GList         *tabInfoList;
# Line 58  struct { Line 59  struct {
59   *        そもそも TAB_INFO_LIST が入っちゃってるのに   *        そもそも TAB_INFO_LIST が入っちゃってるのに
60   *        そうすれば,一気に全体的に API が簡素になるはず */   *        そうすれば,一気に全体的に API が簡素になるはず */
61  #define Shiki_EDITOR_WINDOW         shiki_editor.editor_window  #define Shiki_EDITOR_WINDOW         shiki_editor.editor_window
62    #define Shiki_EDITOR_NOTEBOOK       shiki_editor.notebook
63  #define Shiki_EDITOR_STATUSBAR      shiki_editor.statusbar  #define Shiki_EDITOR_STATUSBAR      shiki_editor.statusbar
64  #define Shiki_EDITOR_MODELINE_LABEL shiki_editor.modeline_label  #define Shiki_EDITOR_MODELINE_LABEL shiki_editor.modeline_label
65  #define Shiki_EDITOR_TAB_INFO_LIST  shiki_editor.tabInfoList  #define Shiki_EDITOR_TAB_INFO_LIST  shiki_editor.tabInfoList
# Line 852  static void online_help_handler(GtkWidge Line 854  static void online_help_handler(GtkWidge
854    
855  /* エディタの編集画面の初期化 */  /* エディタの編集画面の初期化 */
856  static void shiki_editor_window_init(int argc, char **argv) {  static void shiki_editor_window_init(int argc, char **argv) {
857    GtkWidget *vbox, *toolbar, *notebook;    GtkWidget *vbox, *toolbar;
858    GtkToolItem *icon;    GtkToolItem *icon;
859    GtkIconSize iconsize;    GtkIconSize iconsize;
860    GtkTooltips *toolbar_tips = gtk_tooltips_new();    GtkTooltips *toolbar_tips = gtk_tooltips_new();
# Line 871  static void shiki_editor_window_init(int Line 873  static void shiki_editor_window_init(int
873    toolbar = gtk_toolbar_new();    toolbar = gtk_toolbar_new();
874    gtk_box_pack_start(GTK_BOX(vbox), toolbar, FALSE, FALSE, 0);    gtk_box_pack_start(GTK_BOX(vbox), toolbar, FALSE, FALSE, 0);
875    
876    notebook = gtk_notebook_new();    Shiki_EDITOR_NOTEBOOK = GTK_NOTEBOOK(gtk_notebook_new());
877    g_signal_connect(G_OBJECT(notebook), "switch-page", GTK_SIGNAL_FUNC(switch_tabpage_handler), NULL);    g_signal_connect(G_OBJECT(Shiki_EDITOR_NOTEBOOK), "switch-page", GTK_SIGNAL_FUNC(switch_tabpage_handler), NULL);
878    
879    /* ツールバーに付けるアイコンの設定 */    /* ツールバーに付けるアイコンの設定 */
880    gtk_toolbar_set_style(GTK_TOOLBAR (toolbar), GTK_TOOLBAR_ICONS);    gtk_toolbar_set_style(GTK_TOOLBAR (toolbar), GTK_TOOLBAR_ICONS);
# Line 883  static void shiki_editor_window_init(int Line 885  static void shiki_editor_window_init(int
885    /* ファイル開く */    /* ファイル開く */
886    oicon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-open", iconsize), "");    oicon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-open", iconsize), "");
887    /* 「開く」ボタンにファイルを読み込むアクションを関連付ける */    /* 「開く」ボタンにファイルを読み込むアクションを関連付ける */
888    g_signal_connect(G_OBJECT(oicon), "clicked", G_CALLBACK(open_file_handler), G_OBJECT(notebook));    g_signal_connect(G_OBJECT(oicon), "clicked", G_CALLBACK(open_file_handler), G_OBJECT(Shiki_EDITOR_NOTEBOOK));
889    gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(oicon));    gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(oicon));
890    gtk_tool_item_set_tooltip(oicon, toolbar_tips, "ファイルを開きます",    gtk_tool_item_set_tooltip(oicon, toolbar_tips, "ファイルを開きます",
891        "新しいバッファを開いて,そこにファイルの内容を展開します.");        "新しいバッファを開いて,そこにファイルの内容を展開します.");
# Line 891  static void shiki_editor_window_init(int Line 893  static void shiki_editor_window_init(int
893    /* バッファ保存 */    /* バッファ保存 */
894    sicon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-save", iconsize), "");    sicon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-save", iconsize), "");
895    /* 「保存」ボタンにファイルを書き出すアクションを関連付ける */    /* 「保存」ボタンにファイルを書き出すアクションを関連付ける */
896    g_signal_connect(G_OBJECT(sicon), "clicked", G_CALLBACK(save_file_handler), G_OBJECT(notebook));    g_signal_connect(G_OBJECT(sicon), "clicked", G_CALLBACK(save_file_handler), G_OBJECT(Shiki_EDITOR_NOTEBOOK));
897    gtk_container_add (GTK_CONTAINER (toolbar), GTK_WIDGET(sicon));          gtk_container_add (GTK_CONTAINER (toolbar), GTK_WIDGET(sicon));      
898    gtk_tool_item_set_tooltip(sicon, toolbar_tips, "バッファを保存します",    gtk_tool_item_set_tooltip(sicon, toolbar_tips, "バッファを保存します",
899        "バッファにファイル名が設定されていない場合には,ダイアログを開いてファイル名を取得します");        "バッファにファイル名が設定されていない場合には,ダイアログを開いてファイル名を取得します");
# Line 899  static void shiki_editor_window_init(int Line 901  static void shiki_editor_window_init(int
901    /* バッファを別名保存 */    /* バッファを別名保存 */
902    saicon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-save-as", iconsize), "");    saicon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-save-as", iconsize), "");
903    /* 「別名保存」ボタンに別名のファイル開いて内容を書き出すアクションを関連付ける */    /* 「別名保存」ボタンに別名のファイル開いて内容を書き出すアクションを関連付ける */
904    g_signal_connect(G_OBJECT(saicon), "clicked", G_CALLBACK(save_file_as_handler), G_OBJECT(notebook));    g_signal_connect(G_OBJECT(saicon), "clicked", G_CALLBACK(save_file_as_handler), G_OBJECT(Shiki_EDITOR_NOTEBOOK));
905    gtk_container_add (GTK_CONTAINER (toolbar), GTK_WIDGET(saicon));    gtk_container_add (GTK_CONTAINER (toolbar), GTK_WIDGET(saicon));
906    gtk_tool_item_set_tooltip(saicon, toolbar_tips, "バッファを別名保存します",    gtk_tool_item_set_tooltip(saicon, toolbar_tips, "バッファを別名保存します",
907        "");        "");
# Line 907  static void shiki_editor_window_init(int Line 909  static void shiki_editor_window_init(int
909    /* バッファ実行 */    /* バッファ実行 */
910    eicon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-execute", iconsize), "");    eicon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-execute", iconsize), "");
911    /* 「選択範囲をロード」ボタンに libgauche を関連付ける */    /* 「選択範囲をロード」ボタンに libgauche を関連付ける */
912    g_signal_connect(G_OBJECT(eicon), "clicked", G_CALLBACK(load_region_handler), G_OBJECT(notebook));    g_signal_connect(G_OBJECT(eicon), "clicked", G_CALLBACK(load_region_handler), G_OBJECT(Shiki_EDITOR_NOTEBOOK));
913    gtk_container_add (GTK_CONTAINER (toolbar), GTK_WIDGET(eicon));    gtk_container_add (GTK_CONTAINER (toolbar), GTK_WIDGET(eicon));
914    gtk_tool_item_set_tooltip(eicon, toolbar_tips, "選択範囲の S 式をロードします (load-region-lisp)",    gtk_tool_item_set_tooltip(eicon, toolbar_tips, "選択範囲の S 式をロードします (load-region-lisp)",
915        "Scheme (gauche) で評価できる S 式を評価します.");        "Scheme (gauche) で評価できる S 式を評価します.");
916    
917    gtk_container_add(GTK_CONTAINER(Shiki_EDITOR_WINDOW), vbox);    gtk_container_add(GTK_CONTAINER(Shiki_EDITOR_WINDOW), vbox);
918    gtk_container_add(GTK_CONTAINER(vbox), notebook);    gtk_container_add(GTK_CONTAINER(vbox), GTK_WIDGET(Shiki_EDITOR_NOTEBOOK));
919    
920    icon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-apply", iconsize), "");    icon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-apply", iconsize), "");
921    g_signal_connect(G_OBJECT(icon), "clicked", G_CALLBACK(tabsborder_on_off), G_OBJECT(notebook));    g_signal_connect(G_OBJECT(icon), "clicked", G_CALLBACK(tabsborder_on_off), G_OBJECT(Shiki_EDITOR_NOTEBOOK));
922    gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(icon));    gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(icon));
923    gtk_tool_item_set_tooltip(icon, toolbar_tips, "タブの on/off", "");    gtk_tool_item_set_tooltip(icon, toolbar_tips, "タブの on/off", "");
924    
925    icon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-preferences", iconsize), "");    icon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-preferences", iconsize), "");
926    g_signal_connect(G_OBJECT(icon), "clicked", G_CALLBACK(rotate_tab_position), G_OBJECT(notebook));    g_signal_connect(G_OBJECT(icon), "clicked", G_CALLBACK(rotate_tab_position), G_OBJECT(Shiki_EDITOR_NOTEBOOK));
927    gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(icon));    gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(icon));
928    gtk_tool_item_set_tooltip(icon, toolbar_tips, "タブ位置の設定", "");    gtk_tool_item_set_tooltip(icon, toolbar_tips, "タブ位置の設定", "");
929    
930    icon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-add", iconsize), "");    icon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-add", iconsize), "");
931    g_signal_connect(G_OBJECT(icon), "clicked", G_CALLBACK(append_tabpage_handler), G_OBJECT(notebook));    g_signal_connect(G_OBJECT(icon), "clicked", G_CALLBACK(append_tabpage_handler), G_OBJECT(Shiki_EDITOR_NOTEBOOK));
932    gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(icon));    gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(icon));
933    gtk_tool_item_set_tooltip(icon, toolbar_tips, "新規バッファを開きます", "");    gtk_tool_item_set_tooltip(icon, toolbar_tips, "新規バッファを開きます", "");
934    
935    icon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-delete", iconsize), "");    icon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-delete", iconsize), "");
936    g_signal_connect(G_OBJECT(icon), "clicked", G_CALLBACK(clear_current_buffer), G_OBJECT(notebook));    g_signal_connect(G_OBJECT(icon), "clicked", G_CALLBACK(clear_current_buffer), G_OBJECT(Shiki_EDITOR_NOTEBOOK));
937    gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(icon));    gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(icon));
938    gtk_tool_item_set_tooltip(icon, toolbar_tips, "バッファの内容を全消去",    gtk_tool_item_set_tooltip(icon, toolbar_tips, "バッファの内容を全消去",
939        "まだ内容が保存されていない場合でも警告しません");        "まだ内容が保存されていない場合でも警告しません");
940    
941    icon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-close", iconsize), "");    icon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-close", iconsize), "");
942    g_signal_connect(G_OBJECT(icon), "clicked", G_CALLBACK(remove_tabpage_handler), G_OBJECT(notebook));    g_signal_connect(G_OBJECT(icon), "clicked", G_CALLBACK(remove_tabpage_handler), G_OBJECT(Shiki_EDITOR_NOTEBOOK));
943    gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(icon));    gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(icon));
944    gtk_tool_item_set_tooltip(icon, toolbar_tips, "バッファを閉じます",    gtk_tool_item_set_tooltip(icon, toolbar_tips, "バッファを閉じます",
945        "まだ内容が保存されていない場合は警告します");        "まだ内容が保存されていない場合は警告します");
# Line 948  static void shiki_editor_window_init(int Line 950  static void shiki_editor_window_init(int
950    gtk_tool_item_set_tooltip(icon, toolbar_tips, "フォントの変更", "");    gtk_tool_item_set_tooltip(icon, toolbar_tips, "フォントの変更", "");
951    
952    icon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-connect", iconsize), "");    icon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-connect", iconsize), "");
953    g_signal_connect(G_OBJECT(icon), "clicked", G_CALLBACK(load_scheme_file_by_gauche), G_OBJECT(notebook));    g_signal_connect(G_OBJECT(icon), "clicked", G_CALLBACK(load_scheme_file_by_gauche), G_OBJECT(Shiki_EDITOR_NOTEBOOK));
954    gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(icon));    gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(icon));
955    gtk_tool_item_set_tooltip(icon, toolbar_tips, "Scheme ファイルをロード", "");    gtk_tool_item_set_tooltip(icon, toolbar_tips, "Scheme ファイルをロード", "");
956    
957    icon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-convert", iconsize), "");    icon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-convert", iconsize), "");
958    g_signal_connect(G_OBJECT(icon), "clicked", G_CALLBACK(load_buffer_by_gauche), G_OBJECT(notebook));    g_signal_connect(G_OBJECT(icon), "clicked", G_CALLBACK(load_buffer_by_gauche), G_OBJECT(Shiki_EDITOR_NOTEBOOK));
959    gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(icon));    gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(icon));
960    gtk_tool_item_set_tooltip(icon, toolbar_tips, "バッファをロード", "");    gtk_tool_item_set_tooltip(icon, toolbar_tips, "バッファをロード", "");
961    
962    icon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-dialog-question", iconsize), "");    icon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-dialog-question", iconsize), "");
963    g_signal_connect(G_OBJECT(icon), "clicked", G_CALLBACK(online_help_handler), notebook);    g_signal_connect(G_OBJECT(icon), "clicked", G_CALLBACK(online_help_handler), Shiki_EDITOR_NOTEBOOK);
964    gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(icon));    gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(icon));
965    gtk_tool_item_set_tooltip(icon, toolbar_tips, "ヘルプ", "");    gtk_tool_item_set_tooltip(icon, toolbar_tips, "ヘルプ", "");
966    
# Line 975  static void shiki_editor_window_init(int Line 977  static void shiki_editor_window_init(int
977    contextid = gtk_statusbar_get_context_id(GTK_STATUSBAR(Shiki_EDITOR_STATUSBAR), "");    contextid = gtk_statusbar_get_context_id(GTK_STATUSBAR(Shiki_EDITOR_STATUSBAR), "");
978    
979    /* キーバインドのハンドリングを登録 */    /* キーバインドのハンドリングを登録 */
980    g_signal_connect(G_OBJECT(notebook), "key-press-event", G_CALLBACK (signal_key_press_handler), GINT_TO_POINTER(contextid));    g_signal_connect(G_OBJECT(Shiki_EDITOR_NOTEBOOK), "key-press-event", G_CALLBACK (signal_key_press_handler), GINT_TO_POINTER(contextid));
981    g_signal_connect(G_OBJECT(notebook), "key-release-event", G_CALLBACK (signal_key_release_handler), GINT_TO_POINTER(contextid));    g_signal_connect(G_OBJECT(Shiki_EDITOR_NOTEBOOK), "key-release-event", G_CALLBACK (signal_key_release_handler), GINT_TO_POINTER(contextid));
982    
983    /* 引数に指定されたファイルを開く */    /* 引数に指定されたファイルを開く */
984    if(argc >= 2) {    if(argc >= 2) {
985      int i;      int i;
986      for(i = 1; i < argc; i++)      for(i = 1; i < argc; i++)
987        open_file(GTK_NOTEBOOK(notebook), g_strdup(argv[i]));        open_file(Shiki_EDITOR_NOTEBOOK, g_strdup(argv[i]));
988    } else /* 指定されてなければ,デフォルトのページを追加 */    } else /* 指定されてなければ,デフォルトのページを追加 */
989      open_online_help(GTK_NOTEBOOK(notebook));      open_online_help(Shiki_EDITOR_NOTEBOOK);
990    
991    gtk_widget_grab_focus(notebook);    gtk_widget_grab_focus(GTK_WIDGET(Shiki_EDITOR_NOTEBOOK));
992    gtk_widget_show_all(Shiki_EDITOR_WINDOW);    gtk_widget_show_all(Shiki_EDITOR_WINDOW);
993  }  }
994    

Legend:
Removed from v.1.25  
changed lines
  Added in v.1.26

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26