Created
September 24, 2012 03:52
-
-
Save Softwave/3774094 to your computer and use it in GitHub Desktop.
Kepler
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
/* #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 |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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