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.48 by aloha, Tue Nov 21 01:28:00 2006 UTC revision 1.49 by aloha, Wed Nov 22 05:23:29 2006 UTC
# Line 81  static struct { Line 81  static struct {
81  /* 現在表示されているタブに対するアクセス用各種キャッシュ情報 */  /* 現在表示されているタブに対するアクセス用各種キャッシュ情報 */
82  #define Shiki_CURRENT_TAB_NUM        shiki_editor.current_tabpage_num  #define Shiki_CURRENT_TAB_NUM        shiki_editor.current_tabpage_num
83  #define Shiki_CURRENT_TAB_INFO       shiki_editor.current_tabpage_info  #define Shiki_CURRENT_TAB_INFO       shiki_editor.current_tabpage_info
84  #define Shiki_CURRENT_LOCALE         (shiki_editor.current_tabpage_info)->locale  #define Shiki_CURRENT_CES         (shiki_editor.current_tabpage_info)->locale
85  #define Shiki_CURRENT_UNDO_INFO_LIST (shiki_editor.current_tabpage_info)->undoInfoList  #define Shiki_CURRENT_UNDO_INFO_LIST (shiki_editor.current_tabpage_info)->undoInfoList
86  #define Shiki_CURRENT_TAB            (shiki_editor.current_tabpage_info)->tabpage  #define Shiki_CURRENT_TAB            (shiki_editor.current_tabpage_info)->tabpage
87  #define Shiki_CURRENT_TAB_TITLE      (shiki_editor.current_tabpage_info)->tabpage_label  #define Shiki_CURRENT_TAB_TITLE      (shiki_editor.current_tabpage_info)->tabpage_label
# Line 729  static void update_modeline_label() { Line 729  static void update_modeline_label() {
729    g_snprintf(label, 1024, "--%s- %-10s (Gauche Interaction) [%s]     L%d:%d    ",    g_snprintf(label, 1024, "--%s- %-10s (Gauche Interaction) [%s]     L%d:%d    ",
730        gtk_text_buffer_get_modified(Shiki_CURRENT_TEXT_BUFFER) ? "**" : "--",        gtk_text_buffer_get_modified(Shiki_CURRENT_TEXT_BUFFER) ? "**" : "--",
731        Shiki_CURRENT_BASENAME,        Shiki_CURRENT_BASENAME,
732        Shiki_CURRENT_LOCALE,        Shiki_CURRENT_CES,
733        gtk_text_iter_get_line(&p) + 1,        gtk_text_iter_get_line(&p) + 1,
734        gtk_text_iter_get_line_offset (&p) + 1);        gtk_text_iter_get_line_offset (&p) + 1);
735    gtk_label_set_text(GTK_LABEL(Shiki_EDITOR_MODELINE_LABEL), label);    gtk_label_set_text(GTK_LABEL(Shiki_EDITOR_MODELINE_LABEL), label);
# Line 840  static gboolean delete_event_handler(Gtk Line 840  static gboolean delete_event_handler(Gtk
840    
841  /* ファイルを開く */  /* ファイルを開く */
842  static void open_file(gchar *filename) {  static void open_file(gchar *filename) {
843    gchar *contents, *text = NULL;    gchar *text;
844    gsize br, bw, len;    gchar *utf8filename = g_locale_to_utf8(filename, -1, NULL, NULL, NULL);
845    GError *err = NULL;    GtkTextIter p;
846      ScmObj s, ces;
847    g_return_if_fail(filename != NULL);    
848      /* 新しいバッファを開く */
849    if(g_file_get_contents(filename, &contents, &len, NULL)) {    append_tabpage(g_strdup(filename));
     GtkTextIter p;  
   
     /* 新しいバッファを開く */  
     append_tabpage(g_strdup(filename));  
850    
851      if(!(text = g_locale_to_utf8(contents, -1, &br, &bw, &err)))    Scm_Define(SCM_MODULE(Shiki_CURRENT_BUFFER_ENV), SCM_SYMBOL(SCM_INTERN("*filename*")), SCM_MAKE_STR(utf8filename));
852        gtk_text_buffer_set_text(Shiki_CURRENT_TEXT_BUFFER, contents, len);    Scm_Load("gauche-init.scm", 0);
853      else {    Scm_EvalCString("(use gauche.interactive)", Shiki_CURRENT_BUFFER_ENV);
854        gtk_text_buffer_set_text(Shiki_CURRENT_TEXT_BUFFER, text, len);    Scm_EvalCString("(use gauche.charconv)", Shiki_CURRENT_BUFFER_ENV);
855        Shiki_CURRENT_LOCALE = Shiki_EDITOR_DEFAULT_LOCALE;    Scm_EvalCString("(define contents (call-with-input-file *filename* port->string))", Shiki_CURRENT_BUFFER_ENV);
856      }    Scm_EvalCString("(define ces (ces-guess-from-string contents \"*JP\"))", Shiki_CURRENT_BUFFER_ENV);
857      ces = Scm_EvalCString("ces", Shiki_CURRENT_BUFFER_ENV);
858      Shiki_CURRENT_CES = Scm_GetString(SCM_STRING(ces));
859      s = Scm_EvalCString("(ces-convert contents ces)", Shiki_CURRENT_BUFFER_ENV);
860      text = Scm_GetString(SCM_STRING(s));
861      gtk_text_buffer_set_text(Shiki_CURRENT_TEXT_BUFFER, text, -1);
862      /* バッファ未変更に */
863      gtk_text_buffer_set_modified(Shiki_CURRENT_TEXT_BUFFER, FALSE);
864      /* カーソル位置を先頭に */
865      gtk_text_buffer_get_start_iter(Shiki_CURRENT_TEXT_BUFFER, &p);
866      gtk_text_buffer_place_cursor(Shiki_CURRENT_TEXT_BUFFER, &p);
867      update_modeline_label();
868      gtk_window_set_title (GTK_WINDOW (Shiki_EDITOR_WINDOW), filename);
869      gtk_widget_show_all(GTK_WIDGET(Shiki_EDITOR_NOTEBOOK));
870    
871      /* バッファ未変更に */    g_free(utf8filename);
872      gtk_text_buffer_set_modified(Shiki_CURRENT_TEXT_BUFFER, FALSE);    g_free(filename);
     /* カーソル位置を先頭に */  
     gtk_text_buffer_get_start_iter(Shiki_CURRENT_TEXT_BUFFER, &p);  
     gtk_text_buffer_place_cursor(Shiki_CURRENT_TEXT_BUFFER, &p);  
     update_modeline_label();  
     gtk_window_set_title (GTK_WINDOW (Shiki_EDITOR_WINDOW), filename);  
     gtk_widget_show_all(GTK_WIDGET(Shiki_EDITOR_NOTEBOOK));  
     g_free(contents); g_free(text); g_free(filename);  
873    
874      /* キーワードを色分けする */    /* キーワードを色分けする */
875      scheme_keyword_highlighting_current_buffer();    scheme_keyword_highlighting_current_buffer();
   } else  
     g_printerr("Get file contents error !\n");  
876  }  }
877    
878  /* ファイルをダイアログで指定して開く */  /* ファイルをダイアログで指定して開く */
# Line 1349  static void shiki_editor_window_init(int Line 1349  static void shiki_editor_window_init(int
1349    g_signal_connect(G_OBJECT(icon), "clicked", G_CALLBACK(open_online_help), NULL);    g_signal_connect(G_OBJECT(icon), "clicked", G_CALLBACK(open_online_help), NULL);
1350    gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(icon));    gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(icon));
1351    gtk_tool_item_set_tooltip(icon, toolbar_tips, "ヘルプ", "");    gtk_tool_item_set_tooltip(icon, toolbar_tips, "ヘルプ", "");
1352      
1353    icon = gtk_tool_button_new(gtk_image_new_from_stock (GTK_STOCK_BOLD, iconsize), "");    icon = gtk_tool_button_new(gtk_image_new_from_stock (GTK_STOCK_BOLD, iconsize), "");
1354    g_signal_connect(G_OBJECT(icon), "clicked", G_CALLBACK(select_font), NULL);    g_signal_connect(G_OBJECT(icon), "clicked", G_CALLBACK(select_font), NULL);
1355    gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(icon));    gtk_container_add(GTK_CONTAINER (toolbar), GTK_WIDGET(icon));
# Line 1373  static void shiki_editor_window_init(int Line 1373  static void shiki_editor_window_init(int
1373    /* モードライン作る */    /* モードライン作る */
1374    Shiki_EDITOR_MODELINE_LABEL = gtk_label_new(NULL);    Shiki_EDITOR_MODELINE_LABEL = gtk_label_new(NULL);
1375    gtk_container_add(GTK_CONTAINER (modeline_bg), Shiki_EDITOR_MODELINE_LABEL);    gtk_container_add(GTK_CONTAINER (modeline_bg), Shiki_EDITOR_MODELINE_LABEL);
1376      
1377    gdk_color_parse("black", &COLOR_BLACK);    gdk_color_parse("black", &COLOR_BLACK);
1378    gdk_color_parse("green", &COLOR_GREEN);    gdk_color_parse("green", &COLOR_GREEN);
1379      
1380    gtk_widget_modify_fg(Shiki_EDITOR_MODELINE_LABEL, GTK_STATE_NORMAL, &COLOR_GREEN);    gtk_widget_modify_fg(Shiki_EDITOR_MODELINE_LABEL, GTK_STATE_NORMAL, &COLOR_GREEN);
1381    gtk_widget_modify_bg(modeline_bg, GTK_STATE_NORMAL, &COLOR_BLACK);    gtk_widget_modify_bg(modeline_bg, GTK_STATE_NORMAL, &COLOR_BLACK);
1382    

Legend:
Removed from v.1.48  
changed lines
  Added in v.1.49

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