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.19 by aloha, Sun Nov 12 09:38:40 2006 UTC revision 1.20 by aloha, Sun Nov 12 12:46:34 2006 UTC
# Line 33  static gint editor_indent_width = 2; Line 33  static gint editor_indent_width = 2;
33    
34  /* タブごとの情報を管理する構造体 */  /* タブごとの情報を管理する構造体 */
35  typedef struct {  typedef struct {
36    GtkScrolledWindow *tabpage;       /* タブ */    GtkScrolledWindow *tabpage;          /* タブ */
37    gchar             *tabpage_label; /* ベース (ファイル名) のみ */    gchar             *tabpage_label;    /* ベース (ファイル名) のみ */
38    GtkTextView       *text_view;     /* タブの表示 */    GtkTextView       *text_view;        /* タブの表示 */
39    GtkTextBuffer     *text_buffer;   /* タブのテキストバッファ */    GtkTextBuffer     *text_buffer;      /* タブのテキストバッファ */
40    gchar             *filename;      /* ファイル名のフルパス */    gchar             *filename;         /* ファイル名のフルパス */
41    ScmObj            env;            /* タブごとに独立した Scheme 環境 */    ScmObj            env;               /* タブごとに独立した Scheme 環境 */
42      guint             delete_handler_id; /* トップレベルに登録したハンドラ ID */
43  } ShikiTabInfo;  } ShikiTabInfo;
44    
45  /* エディタ全体に関する情報と,現在表示されているタブ情報へのキャッシュを管理する構造体 */  /* エディタ全体に関する情報と,現在表示されているタブ情報へのキャッシュを管理する構造体 */
# Line 383  static GtkWidget *new_scrolled_text_buff Line 384  static GtkWidget *new_scrolled_text_buff
384    gtk_container_add(GTK_CONTAINER((*tabinfo)->tabpage), GTK_WIDGET((*tabinfo)->text_view));    gtk_container_add(GTK_CONTAINER((*tabinfo)->tabpage), GTK_WIDGET((*tabinfo)->text_view));
385    gtk_widget_set_size_request(GTK_WIDGET((*tabinfo)->text_view), 500, 600);    gtk_widget_set_size_request(GTK_WIDGET((*tabinfo)->text_view), 500, 600);
386    g_signal_connect((*tabinfo)->text_buffer, "mark_set", G_CALLBACK(text_buffer_cursor_moved_handler), (*tabinfo)->text_view);    g_signal_connect((*tabinfo)->text_buffer, "mark_set", G_CALLBACK(text_buffer_cursor_moved_handler), (*tabinfo)->text_view);
387    g_signal_connect(Shiki_EDITOR_WINDOW, "delete_event", G_CALLBACK(delete_event_handler), (*tabinfo)->text_buffer);    /* タブを削除する際,デリートハンドラを削除しておかないと警告が出るから */
388      (*tabinfo)->delete_handler_id = g_signal_connect(Shiki_EDITOR_WINDOW, "delete_event", G_CALLBACK(delete_event_handler), (*tabinfo)->text_buffer);
389    /* 様々な初期化処理 */    /* 様々な初期化処理 */
390    /* 括弧の強調表示のためのタグを作る */    /* 括弧の強調表示のためのタグを作る */
391    gtk_text_buffer_create_tag ((*tabinfo)->text_buffer, "parent_emphasis_background", "background", "green", NULL);    gtk_text_buffer_create_tag ((*tabinfo)->text_buffer, "parent_emphasis_background", "background", "green", NULL);
# Line 553  static void tabsborder_on_off(GtkButton Line 555  static void tabsborder_on_off(GtkButton
555    
556  /* ノートブックからページを削除 */  /* ノートブックからページを削除 */
557  static void remove_tabpage(GtkNotebook *notebook) {  static void remove_tabpage(GtkNotebook *notebook) {
558      /* タブが 1 つしか残っていなかったら消させない */
559      if(g_list_length(Shiki_EDITOR_TAB_INFO_LIST) == 1)
560        return;
561    if(!not_yet_save_changes_really_quit(Shiki_CURRENT_TEXT_BUFFER)) {    if(!not_yet_save_changes_really_quit(Shiki_CURRENT_TEXT_BUFFER)) {
562        /* デリートハンドラをエディタトップレベルのウィジットから取り除く */
563        g_signal_handler_disconnect(Shiki_EDITOR_WINDOW, (Shiki_CURRENT_TAB_INFO)->delete_handler_id);
564        /* タブの中身を削除 */
565        gtk_widget_destroy(GTK_WIDGET(Shiki_CURRENT_TEXT_VIEW));
566      /* タブに対応するタブ情報を削除 */      /* タブに対応するタブ情報を削除 */
567      g_free(Shiki_CURRENT_TAB_TITLE);      g_free(Shiki_CURRENT_TAB_TITLE);
568      g_free(Shiki_CURRENT_FILENAME);      g_free(Shiki_CURRENT_FILENAME);

Legend:
Removed from v.1.19  
changed lines
  Added in v.1.20

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