Skip to content

Instantly share code, notes, and snippets.

@Softwave
Created September 24, 2012 03:52
Show Gist options
  • Save Softwave/3774094 to your computer and use it in GitHub Desktop.
Save Softwave/3774094 to your computer and use it in GitHub Desktop.
Kepler
/* #Script Compiler
* Editor
*/
#include <gtk/gtk.h>
#include <Scintilla.h>
#include <SciLexer.h>
#define PLAT _GTK 1
#include <ScintillaWidget.h>
#include "menu.h"
#include "widgets.h"
#include <stdlib.h>
#include <string.h>
/* Variables */
int global_i = 1;
int i=1;
int global_n = 1;
static int exit_window(GtkWidget*w, GdkEventAny*e, gpointer p) {
gtk_main_quit();
return w||e||p||1; /* Avoids Warnings */
}
int numTabs(int inc) {
inc++;
return inc;
}
void new_file() {
global_n = 1;
add_tab(global_n++);
}
void add_tab(int n) {
int b;
for (i=0; i < n; i++) {
/* *editor;
editor = scintilla_new();
gtk_notebook_append_page(GTK_NOTEBOOK(notebook), editor, NULL); */
system("./kepler");
}
//gtk_notebook_append_page(GTK_NOTEBOOK(notebook), editor, NULL);
}
void saveDialog() {/*
*/
}
void save_c() { /*
*/
}
void comp_c() {
unsigned char len = SSM(SCI_GETLENGTH,NULL,NULL);
char *text = malloc( sizeof(char) * ( len + 1 ) );
len = len+1;
SSM(SCI_GETTEXT, len, text);
puts(text);
FILE *fp = fopen("comp.cs", "w+");
fprintf(fp, "%s",text);
fclose(fp);
system("./SharpCompile.exe comp.cs comp.exe");
system("chmod +x ./comp.exe");
system("./comp.exe");
}
int main(int argc, char **argv) {
gtk_init(&argc, &argv);
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
editor = scintilla_new();
kepler = SCINTILLA(editor);
menubar = gtk_menu_bar_new();
filemenu = gtk_menu_new();
file = gtk_menu_item_new_with_label("File");
file_new = gtk_menu_item_new_with_label("New");
file_open = gtk_menu_item_new_with_label("Open");
file_save = gtk_menu_item_new_with_label("Save");
file_quit = gtk_menu_item_new_with_label("Quit");
editmenu = gtk_menu_new();
edit_edit = gtk_menu_item_new_with_label("Edit");
languagemenu = gtk_menu_new();
language = gtk_menu_item_new_with_label("Language");
language_c = gtk_menu_item_new_with_label("C");
/* New Menu */
buildmenu = gtk_menu_new();
build = gtk_menu_item_new_with_label("Build");
build_compile = gtk_menu_item_new_with_label("Compile");
/* Run and Build Menu */
buildmenu = gtk_menu_new();
tView = gtk_text_view_new();
gtk_menu_item_set_submenu(GTK_MENU_ITEM(file), filemenu);
gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), file_new);
gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), file_open);
gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), file_save);
gtk_menu_shell_append(GTK_MENU_SHELL(filemenu), file_quit);
gtk_menu_shell_append(GTK_MENU_SHELL(menubar), file);
gtk_menu_item_set_submenu(GTK_MENU_ITEM(build), buildmenu);
gtk_menu_shell_append(GTK_MENU_SHELL(buildmenu), build_compile);
gtk_menu_shell_append(GTK_MENU_SHELL(menubar), build);
/* vBox */
vbox = gtk_vbox_new(FALSE, 0);
gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, FALSE, 3);
gtk_box_pack_start(GTK_BOX(vbox), editor, TRUE, TRUE, 3);
gtk_box_pack_start(GTK_BOX(vbox), tView, FALSE, FALSE, 3);
gtk_container_add(GTK_CONTAINER(window), vbox);
gtk_widget_show(vbox);
/* Layout */
gtk_signal_connect(GTK_OBJECT(window), "delete_event", GTK_SIGNAL_FUNC(exit_window), 0);
scintilla_set_id(kepler, 0);
gtk_widget_set_usize(editor, 500, 300);
/* SHOW */
gtk_widget_show_all(window);
char* text_ts;
/* Signals */
gtk_signal_connect_object(GTK_OBJECT(file_new), "activate",GTK_SIGNAL_FUNC(new_file),(gpointer) "file.new");
gtk_signal_connect_object(GTK_OBJECT(build_compile), "activate",GTK_SIGNAL_FUNC(comp_c),(gpointer) "file.new");
gtk_signal_connect_object(GTK_OBJECT(file_save), "activate",GTK_SIGNAL_FUNC(save_c),(gpointer) "file.new");
gtk_signal_connect_object(GTK_OBJECT(file_quit), "activate",GTK_SIGNAL_FUNC(exit_window),(gpointer) "file.new");
//#define SSM(m, w, l) scintilla_send_message(kepler, m, w, l)
/* windowly Default Styling */
SSM(SCI_STYLESETBACK, 32, 0x000000);
//SSM(SCI_STYLESETFORE, 32, 0x00FF00);
SSM(SCI_STYLESETFORE, 32, 0xFFFFFF);
// SSM(SCI_SETMARGINTYPEN, 0, NULL);
SSM(SCI_SETMARGINWIDTHN, 0, 20);
SSM(SCI_STYLECLEARALL, 0, 0);
SSM(SCI_STYLESETFORE, 33, 0x000000);
SSM(SCI_SETLEXER, SCLEX_CPP, 0);
SSM(SCI_SETKEYWORDS, 0, (sptr_t)"int char");
SSM(SCI_STYLESETFORE, SCE_C_COMMENT, 0x808080);
SSM(SCI_STYLESETFORE, SCE_C_COMMENTLINE, 0x808080);
SSM(SCI_STYLESETFORE, SCE_C_NUMBER, 0xC0C000);
SSM(SCI_STYLESETFORE, SCE_C_WORD, 0x00C0C0);
SSM(SCI_STYLESETFORE, SCE_C_STRING, 0xC0C000);
SSM(SCI_STYLESETBOLD, SCE_C_OPERATOR, 1);
/* Show Code */
gtk_widget_show_all(window);
gtk_widget_grab_focus(GTK_WIDGET(editor));
gtk_main();
return 0;
} //End main
#include <gtk/gtk.h>
#include <Scintilla.h>
#include <SciLexer.h>
#define PLAT _GTK 1
#include <ScintillaWidget.h>
GtkWidget *menubar;
GtkWidget *filemenu;
GtkWidget *file;
GtkWidget *file_new;
GtkWidget *file_open;
GtkWidget *file_save;
GtkWidget *file_quit;
GtkWidget *edit_edit;
GtkWidget *editmenu;
GtkWidget *language;
GtkWidget *languagemenu;
GtkWidget *language_c;
GtkWidget *buildmenu;
GtkWidget *build_compile;
GtkWidget *build_run;
GtkWidget *build;
GtkWidget *tView;
char* text_c;
GtkWidget *window;
GtkWidget *editor;
ScintillaObject *kepler;
GtkWidget *vbox;
GtkWidget *pbox;
GtkWidget *save_dialog;
void comp_c();
void save_c();
void add_tab(int n);
void highlight_c();
int nLen;
#define SSM(m, w, l) scintilla_send_message(kepler, m, w, l)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment