Develop and Download Open Source Software

Browse CVS Repository

Diff of /shiki/shiki/buffer.c

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

revision 1.10 by aloha, Wed Nov 29 05:08:46 2006 UTC revision 1.11 by aloha, Wed Nov 29 14:58:27 2006 UTC
# Line 74  static void insert_text_handler(GtkTextB Line 74  static void insert_text_handler(GtkTextB
74  }  }
75    
76  /* バッファの状態に合わせてモードラインを変更 */  /* バッファの状態に合わせてモードラインを変更 */
77  static void update_modeline_label() {  void Shiki_update_modeline(GtkTextBuffer *buffer) {
78    static gchar label[1024];    gtk_label_set_text(GTK_LABEL(Shiki_EDITOR_MODELINE_LABEL), Scm_GetString(SCM_STRING(Scm_EvalCString("(if *mode-line-format* (*mode-line-format*) \"\")", Shiki_CURRENT_BUFFER_ENV))));
   GtkTextIter p;  
   gtk_text_buffer_get_iter_at_mark(Shiki_CURRENT_TEXT_BUFFER, &p, gtk_text_buffer_get_insert(Shiki_CURRENT_TEXT_BUFFER));  
   
   g_snprintf(label, 1024, "--%s- %-10s (Gauche Interaction) [%s]     L%d:%d    ",  
       gtk_text_buffer_get_modified(Shiki_CURRENT_TEXT_BUFFER) ? "**" : "--",  
       Shiki_CURRENT_BASENAME,  
       Shiki_CURRENT_CES,  
       gtk_text_iter_get_line(&p) + 1,  
       gtk_text_iter_get_line_offset (&p) + 1);  
   gtk_label_set_text(GTK_LABEL(Shiki_EDITOR_MODELINE_LABEL), label);  
79  }  }
80    
81  /* バッファからテキストが消去された */  /* バッファからテキストが消去された */
# Line 101  static void delete_range_handler(GtkText Line 91  static void delete_range_handler(GtkText
91    Shiki_CURRENT_UNDO_INFO_LIST = g_list_prepend(Shiki_CURRENT_UNDO_INFO_LIST, undoInfo);    Shiki_CURRENT_UNDO_INFO_LIST = g_list_prepend(Shiki_CURRENT_UNDO_INFO_LIST, undoInfo);
92  }  }
93    
94    static void cursor_moved_handler() {
95      Shiki_update_modeline(Shiki_CURRENT_TEXT_BUFFER);
96    }
97    
98  /* ノートブックにタブとページ (バッファ) を追加 */  /* ノートブックにタブとページ (バッファ) を追加 */
99  GtkTextBuffer *Shiki_new_buffer_create(gchar *filename) {  GtkTextBuffer *Shiki_new_buffer_create(gchar *filename) {
100    /*-------------------- 新しいタブを作る ----------------------------------*/    /*-------------------- 新しいタブを作る ----------------------------------*/
# Line 133  GtkTextBuffer *Shiki_new_buffer_create(g Line 127  GtkTextBuffer *Shiki_new_buffer_create(g
127    gtk_widget_set_size_request(GTK_WIDGET(tabinfo->text_view), 680, 700);    gtk_widget_set_size_request(GTK_WIDGET(tabinfo->text_view), 680, 700);
128    
129    gtk_container_add(GTK_CONTAINER(tabinfo->tabpage), GTK_WIDGET(tabinfo->text_view));    gtk_container_add(GTK_CONTAINER(tabinfo->tabpage), GTK_WIDGET(tabinfo->text_view));
130    g_signal_connect(tabinfo->text_buffer, "mark_set", G_CALLBACK(update_modeline_label), tabinfo->text_view);    g_signal_connect(tabinfo->text_buffer, "mark_set", G_CALLBACK(cursor_moved_handler), tabinfo->text_view);
131    g_signal_connect(tabinfo->text_buffer, "insert-text", G_CALLBACK(insert_text_handler), NULL);    g_signal_connect(tabinfo->text_buffer, "insert-text", G_CALLBACK(insert_text_handler), NULL);
132    g_signal_connect(tabinfo->text_buffer, "delete-range", G_CALLBACK(delete_range_handler), NULL);    g_signal_connect(tabinfo->text_buffer, "delete-range", G_CALLBACK(delete_range_handler), NULL);
133    
# Line 162  GtkTextBuffer *Shiki_new_buffer_create(g Line 156  GtkTextBuffer *Shiki_new_buffer_create(g
156    /* 開いたページに移動する */    /* 開いたページに移動する */
157    gtk_notebook_set_current_page(Shiki_EDITOR_NOTEBOOK, g_list_length(Shiki_EDITOR_BUFFER_LIST) - 1);    gtk_notebook_set_current_page(Shiki_EDITOR_NOTEBOOK, g_list_length(Shiki_EDITOR_BUFFER_LIST) - 1);
158    //Shiki_CURRENT_TAB_INFO = tabinfo;    //Shiki_CURRENT_TAB_INFO = tabinfo;
159      
160      Scm_EvalCString("(set! *mode-line-format* (lambda () (format #f \"--~A- ~A (Gauche Interaction) [GtkDefault (utf8)]     L~S:~S             \" (if (buffer-modified-p) \"--\" \"**\") (buffer-name (selected-buffer)) (current-line-number) (current-column))))", tabinfo->env);
161    return tabinfo->text_buffer;    return tabinfo->text_buffer;
162  }  }
163    
# Line 209  void Shiki_create_file_buffer(const gcha Line 205  void Shiki_create_file_buffer(const gcha
205    /* カーソル位置を先頭に */    /* カーソル位置を先頭に */
206    gtk_text_buffer_get_start_iter(Shiki_CURRENT_TEXT_BUFFER, &p);    gtk_text_buffer_get_start_iter(Shiki_CURRENT_TEXT_BUFFER, &p);
207    gtk_text_buffer_place_cursor(Shiki_CURRENT_TEXT_BUFFER, &p);    gtk_text_buffer_place_cursor(Shiki_CURRENT_TEXT_BUFFER, &p);
208    update_modeline_label();    Shiki_update_modeline(Shiki_CURRENT_TEXT_BUFFER);
209    gtk_widget_show_all(GTK_WIDGET(Shiki_EDITOR_NOTEBOOK));    gtk_widget_show_all(GTK_WIDGET(Shiki_EDITOR_NOTEBOOK));
210  }  }
211    

Legend:
Removed from v.1.10  
changed lines
  Added in v.1.11

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