Compare commits

..

No commits in common. "d2476dac0aa7eefbd89136c4df0880d3873f54fa" and "815d009b16bff0eab5025badd338c4c75a27f359" have entirely different histories.

8 changed files with 0 additions and 175 deletions

1
.gitignore vendored
View file

@ -1 +0,0 @@
*.out

View file

@ -1,7 +0,0 @@
CC = gcc
main.out: main.c ui.c
$(CC) main.c ui.c -o main.out $(shell pkg-config --cflags --libs gtk+-3.0) $(shell pkg-config --cflags --libs luajit)
clean:
@rm main.out

View file

@ -1,5 +1,2 @@
# browser-thing
Dependencies:
- luajit
- gtk3

View file

@ -1,29 +0,0 @@
--[[ utility functions ]]--
function _el(name)
return function(args)
return { name, args }
end
end
h1 = _el("h1")
t = _el("text")
b = _el("b")
input = _el("input")
--[[ page module ]]--
page = {}
function page.Commit(content)
--__ext_pageview_clear()
for i, v in pairs(content) do
-- tag_name = v[1]
-- tag_props = v[2]
print(v[1], v[2])
__ext_pageview_append_tag(v[1], v[2])
end
end

98
main.c
View file

@ -1,98 +0,0 @@
#include <stdio.h>
#include <gtk/gtk.h>
#include "ui.h"
#include <lua.h>
#include <lualib.h>
#include <lauxlib.h>
#include <luajit.h>
static int start_lua(GtkApplication* app) {
int status;
lua_State* L;
int ret;
GtkWidget *page_window, *scrolled, *pageview;
GtkTextBuffer* pageview_buffer;
scrolled = gtk_scrolled_window_new(NULL, NULL);
pageview_buffer = gtk_text_buffer_new(NULL);
pageview = gtk_text_view_new_with_buffer(pageview_buffer);
gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(pageview), GTK_WRAP_WORD_CHAR);
gtk_text_view_set_editable(pageview, 0);
gtk_text_view_set_cursor_visible(pageview, 0);
page_window = gtk_application_window_new(app);
gtk_window_set_title(GTK_WINDOW(page_window), "Window");
gtk_window_set_default_size(GTK_WINDOW(page_window), 200, 200);
gtk_container_add(GTK_CONTAINER(scrolled), GTK_WIDGET(pageview));
gtk_container_add(GTK_CONTAINER(page_window), GTK_WIDGET(scrolled));
gtk_widget_show_all(page_window);
L = luaL_newstate(); // open Lua
if (!L) {
fprintf(stderr, "error: failed to create lua state");
return -1;
}
printf("lua: ready\n");
int pageview_append_tag(lua_State* L) {
const char* tag_type = luaL_checkstring(L, 1);
if (strcmp(tag_type, "text") == 0) {
printf(tag_type);
const char* tag_text = luaL_checkstring(L, 2);
GtkTextIter iter;
gtk_text_buffer_get_end_iter(pageview_buffer, &iter);
gtk_text_buffer_insert(pageview_buffer, &iter, tag_text, -1);
} else {
return luaL_error(L, "tried to create tag that does not exist");
}
return 0;
}
lua_pushcfunction(L, pageview_append_tag);
lua_setglobal(L, "__ext_pageview_append_tag");
luaL_openlibs(L);
status = luaL_loadfile(L, "corescripts/_global.lua");
ret = lua_pcall(L, 0, 0, 0);
if (ret != 0) {
fprintf(stderr, "lua: corescript: error: %s\n", lua_tostring(L, -1));
return 1;
}
status = luaL_loadfile(L, "pages/test.lua");
ret = lua_pcall(L, 0, 0, 0);
if (ret != 0) {
fprintf(stderr, "lua: error: %s\n", lua_tostring(L, -1));
return 1;
}
lua_close(L);
return 0;
}
static void activate(GtkApplication* app, gpointer user_data) {
printf("gtk: ready\n");
start_lua(app);
}
static int start_gtk(int* argc, char*** argv) {
int status = 1;
struct application_state state = new_application();
g_signal_connect(state.app, "activate", G_CALLBACK(activate), NULL);
status = g_application_run(G_APPLICATION(state.app), *argc, *argv);
g_object_unref(state.app);
return status;
}
int main(int argc, char** argv) {
start_gtk(&argc, &argv);
}

View file

@ -1,8 +0,0 @@
function Home()
return {
t("Hello"),
t(" wow")
}
end
page.Commit(Home())

11
ui.c
View file

@ -1,11 +0,0 @@
#include "ui.h"
struct application_state new_application() {
GtkApplication* gapp;
gapp = gtk_application_new("xyz.hippoz.nettle", G_APPLICATION_FLAGS_NONE);
struct application_state state = {.app = gapp};
return state;
}

18
ui.h
View file

@ -1,18 +0,0 @@
#ifndef __UI_H
#define __UI_H
#include <gtk/gtk.h>
enum ElementType {
Heading1,
Text
};
struct application_state {
GtkApplication* app;
};
struct application_state new_application();
void add_element(enum ElementType elementType);
#endif