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.13 by aloha, Sat Nov 11 04:05:06 2006 UTC revision 1.14 by aloha, Sat Nov 11 05:03:37 2006 UTC
# Line 41  static GtkTextBuffer *current_text_buffe Line 41  static GtkTextBuffer *current_text_buffe
41  static GtkWidget *statusbar;  static GtkWidget *statusbar;
42  static GtkWidget *modeline_label;  static GtkWidget *modeline_label;
43    
44    static gchar *get_all_buffer_contents(GtkTextBuffer *buffer);
45    static gchar *load_cstring_by_gauche(gchar *s);
46    
47    /* バッファをまるごとロード */
48    static void load_buffer_by_gauche() {
49      GtkTextIter p;
50      gtk_text_buffer_get_end_iter(current_text_buffer, &p);
51      gtk_text_buffer_insert(current_text_buffer, &p, "\n\n", -1);
52      gtk_text_buffer_insert(current_text_buffer, &p, load_cstring_by_gauche(get_all_buffer_contents(current_text_buffer)), -1);
53    }
54    
55    static gchar *get_filename_from_dialog(const gchar *msg);
56    
57    /* ファイルをロード */
58    static void load_scheme_file_by_gauche(GtkNotebook *notebook) {
59      gchar *contents, *text;
60      gsize br, bw, len;
61      GError *err = NULL;
62      gchar *filename = get_filename_from_dialog("File Selection");
63      GtkTextIter p;
64    
65      if(!filename) return;
66      
67      gtk_text_buffer_get_end_iter(current_text_buffer, &p);
68      gtk_text_buffer_insert(current_text_buffer, &p, "\n\n", -1);
69    
70      if(g_file_get_contents(filename, &contents, &len, NULL)) {
71        if(!(text = g_locale_to_utf8(contents, -1, &br, &bw, &err)))
72          gtk_text_buffer_insert(current_text_buffer, &p, load_cstring_by_gauche(text), -1);
73        else
74          gtk_text_buffer_insert(current_text_buffer, &p, load_cstring_by_gauche(contents), -1);
75      }
76      g_free(text); g_free(contents); g_free(filename);
77    }
78    
79  /* gauche を起動して文字列をロード */  /* gauche を起動して文字列をロード */
80  static gchar *load_cstring_by_gauche(gchar *s) {  static gchar *load_cstring_by_gauche(gchar *s) {
81    gchar *msg;    gchar *msg;
# Line 83  static void font_selection_ok(GtkWidget Line 118  static void font_selection_ok(GtkWidget
118    }    }
119  }  }
120    
121    /* フォントを選択させるイベントハンドラ */
122  static void select_font(){  static void select_font(){
123    GtkWidget *font_dialog = gtk_font_selection_dialog_new("Font Selection Dialog");    GtkWidget *font_dialog = gtk_font_selection_dialog_new("Font Selection Dialog");
124    g_signal_connect (GTK_FONT_SELECTION_DIALOG (font_dialog)->ok_button, "clicked", G_CALLBACK(font_selection_ok), font_dialog);    g_signal_connect (GTK_FONT_SELECTION_DIALOG (font_dialog)->ok_button, "clicked", G_CALLBACK(font_selection_ok), font_dialog);
# Line 274  static GtkWidget *new_scrolled_text_buff Line 310  static GtkWidget *new_scrolled_text_buff
310    buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view));    buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view));
311    gtk_container_add(GTK_CONTAINER(scrolledwindow), view);    gtk_container_add(GTK_CONTAINER(scrolledwindow), view);
312    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);
313    gtk_widget_set_size_request(GTK_WIDGET(view), 500, 700);    gtk_widget_set_size_request(GTK_WIDGET(view), 500, 600);
314    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);
315    /* 様々な初期化処理 */    /* 様々な初期化処理 */
316    /* 括弧の強調表示のためのタグを作る */    /* 括弧の強調表示のためのタグを作る */
# Line 357  static gchar *eval_cstring_by_gauche(gch Line 393  static gchar *eval_cstring_by_gauche(gch
393  }  }
394    
395  /* 緑ボタンのハンドリング.バッファの選択範囲の S 式をロード (逐次評価) */  /* 緑ボタンのハンドリング.バッファの選択範囲の S 式をロード (逐次評価) */
396  static void buffer_exec_handler(GtkWidget *widget,  GtkWidget *notebook) {  static void load_region_handler(GtkWidget *widget,  GtkWidget *notebook) {
397    
398    GtkTextIter start, end, p;    GtkTextIter start, end, p;
399    gchar *code;    gchar *code;
# Line 696  static void editor_window_init() { Line 732  static void editor_window_init() {
732    
733    /* バッファ実行 */    /* バッファ実行 */
734    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), "");
735    /* バッファを実行ボタンに libgauche を関連付ける */    /* 「選択範囲をロード」ボタンに libgauche を関連付ける */
736    g_signal_connect(G_OBJECT(eicon), "clicked", G_CALLBACK(buffer_exec_handler), G_OBJECT(notebook));    g_signal_connect(G_OBJECT(eicon), "clicked", G_CALLBACK(load_region_handler), G_OBJECT(notebook));
737    gtk_container_add (GTK_CONTAINER (toolbar), GTK_WIDGET(eicon));    gtk_container_add (GTK_CONTAINER (toolbar), GTK_WIDGET(eicon));
738    gtk_tool_item_set_tooltip(eicon, toolbar_tips, "選択範囲の S 式を評価します",    gtk_tool_item_set_tooltip(eicon, toolbar_tips, "選択範囲の S 式をロードします (load-region-lisp)",
739        "Scheme (gauche) で評価できる S 式を評価します.");        "Scheme (gauche) で評価できる S 式を評価します.");
740    
741    gtk_container_add(GTK_CONTAINER(editor_window), vbox);    gtk_container_add(GTK_CONTAINER(editor_window), vbox);
# Line 713  static void editor_window_init() { Line 749  static void editor_window_init() {
749    icon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-preferences", iconsize), "append");    icon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-preferences", iconsize), "append");
750    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( notebook));
751    gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(icon));    gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(icon));
752    gtk_tool_item_set_tooltip(icon, toolbar_tips, "タブの位置の設定", "");    gtk_tool_item_set_tooltip(icon, toolbar_tips, "タブ位置の設定", "");
753    
754    icon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-add", iconsize), "append");    icon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-add", iconsize), "append");
755    g_signal_connect(G_OBJECT(icon), "clicked", G_CALLBACK(append_tabpage), G_OBJECT( notebook));    g_signal_connect(G_OBJECT(icon), "clicked", G_CALLBACK(append_tabpage), G_OBJECT( notebook));
# Line 730  static void editor_window_init() { Line 766  static void editor_window_init() {
766    gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(icon));    gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(icon));
767    gtk_tool_item_set_tooltip(icon, toolbar_tips, "フォントの変更", "");    gtk_tool_item_set_tooltip(icon, toolbar_tips, "フォントの変更", "");
768    
769        icon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-connect", iconsize), "append");
770      g_signal_connect(G_OBJECT(icon), "clicked", G_CALLBACK(load_scheme_file_by_gauche), G_OBJECT( notebook));
771      gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(icon));
772      gtk_tool_item_set_tooltip(icon, toolbar_tips, "Scheme ファイルをロード", "");
773    
774      icon = gtk_tool_button_new(gtk_image_new_from_stock ("gtk-convert", iconsize), "append");
775      g_signal_connect(G_OBJECT(icon), "clicked", G_CALLBACK(load_buffer_by_gauche), G_OBJECT( notebook));
776      gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(icon));
777      gtk_tool_item_set_tooltip(icon, toolbar_tips, "バッファをロード", "");
778    
779    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");
780    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);
781    gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(icon));    gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(icon));

Legend:
Removed from v.1.13  
changed lines
  Added in v.1.14

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