summary refs log tree commit diff stats
path: root/ide/main.nim
diff options
context:
space:
mode:
Diffstat (limited to 'ide/main.nim')
-rwxr-xr-xide/main.nim234
1 files changed, 0 insertions, 234 deletions
diff --git a/ide/main.nim b/ide/main.nim
deleted file mode 100755
index a7e9bb642..000000000
--- a/ide/main.nim
+++ /dev/null
@@ -1,234 +0,0 @@
-# The beginning of an IDE for Nimrod
-#  (c) 2008 Andreas Rumpf
-
-import os, glib2, gtk2, libglade2, dialogs, parseopt
-
-proc on_window_destroy(obj: PGtkObject, data: pointer) {.cdecl.} =
-  gtk_main_quit()
-
-const
-  GuiTemplate = "/media/hda1/Eigenes/nimrod/ide/nimide.glade"
-
-type
-  TTab = object of TObject
-    textview: PGtkTextView
-    filename: string
-    untitled: bool
-
-  TMyTextEditor = object of TObject
-    window: PGtkWindow
-    statusbar: PGtkStatusBar
-    textview: PGtkTextview
-    statusbarContextId: int
-
-
-
-proc on_about_menu_item_activate(menuItem: PGtkMenuItem,
-                                 e: var TMyTextEditor) {.cdecl.} =
-  gtk_show_about_dialog(e.window,
-    "comments", "A fast and leight-weight IDE for Nimrod",
-    "copyright", "Copyright \xc2\xa9 2008 Andreas Rumpf",
-    "version", "0.1",
-    "website", "http://nimrod.ethexor.com",
-    "program-name", "Nimrod IDE",
-    nil)
-
-proc load_file(e: var TMyTextEditor, filename: string) =
-  var
-    err: pointer
-    status: cstring
-    text: cstring
-    result: bool
-    buffer: PGtkTextBuffer
-  discard gtk_statusbar_push(e.statusbar, e.statusbar_context_id, "Loading...")
-  while gtk_events_pending() != 0: discard gtk_main_iteration()
-
-  # get the file contents
-  result = g_file_get_contents(filename, addr(text), nil, addr(err))
-  if not result:
-    error(e.window, "Cannot load file")
-    #g_error_free(err)
-
-  # disable the text view while loading the buffer with the text
-  gtk_widget_set_sensitive(e.text_view, false)
-  buffer = gtk_text_view_get_buffer(e.text_view)
-  gtk_text_buffer_set_text(buffer, text, -1)
-  gtk_text_buffer_set_modified(buffer, false)
-  gtk_widget_set_sensitive(e.text_view, true)
-  g_free(text)
-
-  e.filename = filename
-  gtk_statusbar_pop(e.statusbar, e.statusbar_context_id)
-  reset_default_status(e)
-
-proc write_file(e: var TMyTextEditor, filename: string) =
-  var
-    err: ptr GError
-    status: cstring
-    text: cstring
-    result: bool
-    buffer: PGtkTextBuffer
-    start, ende: TGtkTextIter
-  # add Saving message to status bar and ensure GUI is current
-  gtk_statusbar_push(e.statusbar, e.statusbar_context_id, "Saving....")
-  while gtk_events_pending(): gtk_main_iteration()
-
-  # disable text view and get contents of buffer
-  gtk_widget_set_sensitive(editor->text_view, FALSE)
-  buffer = gtk_text_view_get_buffer(e.text_view)
-  gtk_text_buffer_get_start_iter(buffer, start)
-  gtk_text_buffer_get_end_iter(buffer, ende)
-  text = gtk_text_buffer_get_text(buffer, start, ende, FALSE)
-  gtk_text_buffer_set_modified(buffer, false)
-  gtk_widget_set_sensitive(e.text_view, true)
-  # set the contents of the file to the text from the buffer
-  if filename != "":
-    result = g_file_set_contents(filename, text, -1, addr(err))
-  else:
-    result = g_file_set_contents(editor->filename, text, -1, addr(err))
-  if not result:
-    error_message("cannot save")
-    g_error_free(err)
-  g_free(text)
-  if filename != "":
-    e.filename = filename
-  gtk_statusbar_pop(e.statusbar, e.statusbar_context_id)
-  reset_default_status(editor)
-
-
-proc check_for_save(e: var TMyTextEditor): bool =
-  GtkTextBuffer           *buffer;
-  buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (editor->text_view));
-  if gtk_text_buffer_get_modified(buffer):
-    GtkWidget       *dialog;
-    const gchar *msg  = "Do you want to save the changes you have made?";
-    dialog = gtk_message_dialog_new (nil,
-                                     GTK_DIALOG_MODAL or
-                                       GTK_DIALOG_DESTROY_WITH_PARENT,
-                                     GTK_MESSAGE_QUESTION,
-                                     GTK_BUTTONS_YES_NO,
-                                     msg);
-    gtk_window_set_title (GTK_WINDOW (dialog), "Save?");
-    result = gtk_dialog_run(dialog) != GTK_RESPONSE_NO
-    gtk_widget_destroy(dialog)
-
-proc initApp(e: var TMyTextEditor) =
-  var
-    builder: PGladeXML
-    window: PGtkWidget
-    fontDesc: PPangoFontDescription
-    id: int
-  builder = glade_xml_new(GuiTemplate, nil, nil)
-  if builder == nil:
-    error_message("cannot open: " & GuiTemplate)
-    quit(1)
-  # get the components:
-  e.window = GTK_WINDOW(glade_xml_get_widget(builder, "window"))
-  e.statusbar = GTK_STATUSBAR(glade_xml_get_widget(builder, "statusbar"))
-  e.textview = GTK_TEXTVIEW(glade_xml_get_widget(builder, "textview"))
-
-  # connect the signal handlers:
-  glade_xml_signal_connect(builder, "on_window_destroy",
-                           GCallback(on_window_destroy))
-
-  font_desc = pango_font_description_from_string("monospace 10")
-  gtk_widget_modify_font(e.textview, font_desc)
-  pango_font_description_free(font_desc)
-  gtk_window_set_default_icon_name(GTK_STOCK_EDIT)
-
-  id = gtk_statusbar_get_context_id(e.statusbar, "Nimrod IDE")
-  e.statusbarContextId = id
-  reset_default_status(e)
-
-  e.filename = ""
-
-
-proc main() =
-  var
-    editor: TMyTextEditor
-
-  initApp(editor)
-  gtk_widget_show(editor.window)
-  gtk_main()
-
-gtk_nimrod_init()
-main()
-
-proc on_window_delete_event(widget: PGtkWidget, event: PGdkEvent,
-                       e: TMyTextEditor): bool {.cdecl.} =
-  if check_for_save(editor):
-    on_save_menu_item_activate(nil, editor)
-  result = false
-
-proc on_new_menu_item_activate(GtkMenuItem *menuitem, TutorialTextEditor *editor)
-  GtkTextBuffer           *buffer;
-
-  if check_for_save(editor):
-    on_save_menu_item_activate(nil, editor)
-
-  /* clear editor for a new file */
-  editor->filename = nil;
-  buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW (editor->text_view));
-  gtk_text_buffer_set_text(buffer, "", -1);
-  gtk_text_buffer_set_modified(buffer, FALSE);
-
-  reset_default_status(editor);
-
-
-proc on_open_menu_item_activate(menuItem: PGtkMenuItem,
-                                TutorialTextEditor *editor) =
-  gchar                   *filename;
-
-  if check_for_save(editor):
-    on_save_menu_item_activate(nil, editor)
-  filename = get_open_filename(editor)
-  if filename != nil: load_file(editor, filename)
-
-proc on_save_menu_item_activate(menuItem: PGtkMenuItem, TutorialTextEditor *editor) =
-  gchar                   *filename;
-  if (editor->filename == nil)
-  {
-    filename = get_save_filename(editor);
-    if (filename != nil) write_file(editor, filename);
-  }
-  else write_file(editor, nil);
-
-proc on_save_as_menu_item_activate(GtkMenuItem *menuitem,
-                                   TutorialTextEditor *editor) =
-  gchar                   *filename;
-
-  filename = get_save_filename(editor)
-  if filename != nil: write_file(editor, filename)
-
-proc on_quit_menu_item_activate(GtkMenuItem *menuitem, TutorialTextEditor *editor)
-  if check_for_save(editor):
-    on_save_menu_item_activate(nil, editor)
-  gtk_main_quit()
-
-proc on_cut_menu_item_activate(GtkMenuItem *menuitem, TutorialTextEditor *editor) =
-  GtkTextBuffer           *buffer;
-  GtkClipboard            *clipboard;
-
-  clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD);
-  buffer = gtk_text_view_get_buffer(editor->text_view)
-  gtk_text_buffer_cut_clipboard(buffer, clipboard, TRUE)
-
-proc on_copy_menu_item_activate(GtkMenuItem *menuitem, TutorialTextEditor *editor) =
-  GtkTextBuffer           *buffer;
-  GtkClipboard            *clipboard;
-  clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD)
-  buffer = gtk_text_view_get_buffer(editor->text_view)
-  gtk_text_buffer_copy_clipboard(buffer, clipboard)
-
-
-proc on_paste_menu_item_activate(GtkMenuItem *menuitem, TutorialTextEditor *editor)
-  GtkTextBuffer           *buffer;
-  GtkClipboard            *clipboard;
-  clipboard = gtk_clipboard_get(GDK_SELECTION_CLIPBOARD)
-  buffer = gtk_text_view_get_buffer(editor->text_view)
-  gtk_text_buffer_paste_clipboard(buffer, clipboard, nil, TRUE)
-
-proc on_delete_menu_item_activate(GtkMenuItem *menuitem, TutorialTextEditor *editor)
-  GtkTextBuffer           *buffer;
-  buffer = gtk_text_view_get_buffer(editor->text_view);
-  gtk_text_buffer_delete_selection(buffer, FALSE, TRUE);