/[beaver]/beaver/src/editor.c
ViewVC logotype

Diff of /beaver/src/editor.c

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

revision 1.15 by mikix, Tue Jun 10 00:11:56 2003 UTC revision 1.16 by mikix, Sun Aug 17 03:51:54 2003 UTC
# Line 133  void load_file_contents_into_buffer (gin Line 133  void load_file_contents_into_buffer (gin
133  {  {
134          gboolean success;          gboolean success;
135          GError *error = NULL;          GError *error = NULL;
136          gchar *buffer;          gchar *buffer = NULL;
137                    
138          /* Read file */          /* Read file */
139          success = g_file_get_contents (filename, &buffer, NULL, &error);          success = g_file_get_contents (filename, &buffer, NULL, &error);
140                    
141            if (!success && error->code == G_FILE_ERROR_NOENT)
142            {
143                    /* We are trying to open a non-existant file.  This is OK.
144                       We merely set the buffer to empty and treat it like a
145                       success. */
146                    success = TRUE;
147                    buffer = g_strdup ("");
148            }
149            
150          if (!success)          if (!success)
151          {          {
152                  gchar *primary;                  gchar *primary;
# Line 216  void load_file_contents_into_buffer (gin Line 225  void load_file_contents_into_buffer (gin
225  ** Return values :  ** Return values :
226  **  void  **  void
227  */  */
228  void            open_file_in_editor(GtkWidget *Editor,  void open_file_in_editor (GtkWidget *Editor, const gchar *Filename,
229                                              const gchar *Filename, gint CurrentPage)                            gint CurrentPage)
230  {  {
231    GtkTextIter           start;          GtkTextIter start;
232    GtkTextBuffer         *Buffer;          GtkTextBuffer *Buffer;
233              
234    START_FCN          START_FCN
235              
236    Buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (Editor));          Buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (Editor));
237              
238    if (Filename)          /* connect our buffer */
239    {          FPROPS (CurrentPage, Buffer) = Buffer;
240          gtk_source_buffer_begin_not_undoable_action (GTK_SOURCE_BUFFER (Buffer));          
241          load_file_contents_into_buffer (CurrentPage, Filename);          gtk_source_view_set_show_line_numbers (GTK_SOURCE_VIEW (Editor),
242          gtk_source_buffer_end_not_undoable_action (GTK_SOURCE_BUFFER (Buffer));                                                 Settings.show_line_numbers);
243    }          gtk_source_view_set_show_margin (GTK_SOURCE_VIEW (Editor),
244    else                                           Settings.show_margin);
245    {          gtk_source_view_set_tabs_width (GTK_SOURCE_VIEW (Editor),
246      gtk_source_buffer_set_highlight (GTK_SOURCE_BUFFER (Buffer), FALSE);                                          Settings.tab_width);
247    }          gtk_source_view_set_auto_indent (GTK_SOURCE_VIEW (Editor),
248                                           Settings.auto_indent);
249              
250    /* display line numbers */          if (Filename)
251    gtk_source_view_set_show_line_numbers (GTK_SOURCE_VIEW (Editor), Settings.show_line_numbers);          {
252                      gtk_source_buffer_begin_not_undoable_action (
253    /* display margin */                     GTK_SOURCE_BUFFER (Buffer));
254    gtk_source_view_set_show_margin (GTK_SOURCE_VIEW (Editor), Settings.show_margin);                  load_file_contents_into_buffer (CurrentPage, Filename);
255                      gtk_source_buffer_end_not_undoable_action (GTK_SOURCE_BUFFER (Buffer));
256    /* tab width */          }
257    gtk_source_view_set_tabs_width (GTK_SOURCE_VIEW (Editor), Settings.tab_width);          else
258              {
259    /* connect new buffer */          gtk_source_buffer_set_highlight (GTK_SOURCE_BUFFER (Buffer), FALSE);
260    FPROPS (CurrentPage, Buffer) = Buffer;          }
261              
262    gtk_text_buffer_get_start_iter(Buffer, &start);          gtk_text_buffer_get_start_iter (Buffer, &start);
263    gtk_text_buffer_place_cursor(Buffer, &start);          gtk_text_buffer_place_cursor (Buffer, &start);
264    gtk_widget_grab_focus(Editor);          gtk_widget_grab_focus (Editor);
265    gtk_text_buffer_set_modified(Buffer, FALSE);          
266    FPROPS(CurrentPage, Format) = get_format_type (CurrentPage);          FPROPS (CurrentPage, Format) = get_format_type (CurrentPage);
267    FPROPS(CurrentPage, LastSave) = time (NULL);          FPROPS (CurrentPage, LastSave) = time (NULL);
268              
269    gtk_source_view_set_auto_indent (GTK_SOURCE_VIEW (Editor), Settings.auto_indent);          note_format ();
270              note_saveable ();
271    note_saveable ();          
272              g_signal_connect_swapped (G_OBJECT (Buffer), "can-undo",
273    g_signal_connect_swapped (G_OBJECT (Buffer), "can-undo",                                    G_CALLBACK (note_redoundo),
274          G_CALLBACK (note_redoundo), GINT_TO_POINTER (CurrentPage));                                GINT_TO_POINTER (CurrentPage));
275    g_signal_connect_swapped (G_OBJECT (Buffer), "can-redo",          g_signal_connect_swapped (G_OBJECT (Buffer), "can-redo",
276          G_CALLBACK (note_redoundo), GINT_TO_POINTER (CurrentPage));                                    G_CALLBACK (note_redoundo),
277    g_signal_connect (G_OBJECT (Editor), "key-press-event",                                GINT_TO_POINTER (CurrentPage));
278          G_CALLBACK (catch_mult_line_indents), GINT_TO_POINTER (CurrentPage));          g_signal_connect (G_OBJECT (Editor), "key-press-event",
279    g_signal_connect(G_OBJECT(Buffer), "modified-changed",                            G_CALLBACK (catch_mult_line_indents),
280            G_CALLBACK (buffer_changed), NULL);                        GINT_TO_POINTER (CurrentPage));
281              g_signal_connect (G_OBJECT(Buffer), "modified-changed",
282    note_format ();                            G_CALLBACK (buffer_changed), NULL);
283              
284    END_FCN          gtk_text_buffer_set_modified (Buffer, FALSE);
285    return;          
286            END_FCN
287            return;
288  }  }
289    
290  gboolean catch_mult_line_indents (GtkWidget *widget, GdkEventKey *event, gpointer data)  gboolean catch_mult_line_indents (GtkWidget *widget, GdkEventKey *event, gpointer data)

Legend:
Removed from v.1.15  
changed lines
  Added in v.1.16

savannah-hackers-public@gnu.org
ViewVC Help
Powered by ViewVC 1.1.26