From 2bca7e5f60869eb60d244abbefdf32e6515997b5 Mon Sep 17 00:00:00 2001 From: "me@ow.nekobit.net" Date: Tue, 29 Mar 2022 12:55:14 +0000 Subject: [PATCH] Navigation buttons FossilOrigin-Name: 59bfcfb0ad3b7b3959f168c546a83f1ed52d1bf558a18f0934879999a3d74d0a --- src/navigation.c | 35 +++++++++++++++++++++++++++++++++++ src/navigation.h | 26 ++++++++++++++++++++++++++ src/timeline.c | 6 ++++-- static/navigation.html | 4 ++-- 4 files changed, 67 insertions(+), 4 deletions(-) create mode 100644 src/navigation.c create mode 100644 src/navigation.h diff --git a/src/navigation.c b/src/navigation.c new file mode 100644 index 0000000..c1bb9a3 --- /dev/null +++ b/src/navigation.c @@ -0,0 +1,35 @@ +/* + * Treebird - Lightweight frontend for Pleroma + * Copyright (C) 2022 Nekobit + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +#include "navigation.h" + +#include "easprintf.h" + +// Pages +#include "../static/navigation.chtml" + +char* construct_navigation_box(char* prev_id, char* next_id, size_t* size) +{ + char* nav_html; + + size_t s = easprintf(&nav_html, data_navigation_html, + prev_id, + next_id); + if (size) *size = s; + return nav_html; +} diff --git a/src/navigation.h b/src/navigation.h new file mode 100644 index 0000000..124ccf8 --- /dev/null +++ b/src/navigation.h @@ -0,0 +1,26 @@ +/* + * Treebird - Lightweight frontend for Pleroma + * Copyright (C) 2022 Nekobit + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +#ifndef NAVIGATION_H +#define NAVIGATION_H +#include +#include + +char* construct_navigation_box(char* prev_id, char* next_id, size_t* size); + +#endif // NAVIGATION_H diff --git a/src/timeline.c b/src/timeline.c index 85d7197..a004bcf 100644 --- a/src/timeline.c +++ b/src/timeline.c @@ -24,6 +24,7 @@ #include "status.h" #include "easprintf.h" #include "reply.h" +#include "navigation.h" #include "../static/navigation.chtml" @@ -62,8 +63,9 @@ void tl_public(mastodont_t* api, int local) // Create post box post_box = construct_post_box(NULL, "", NULL); - navigation_box = construct_navigation_box(); - easprintf(&output, "%s%s%s", post_box, status_format, data_navigation_html); + navigation_box = construct_navigation_box( + statuses[0].id, statuses[status_count].id, NULL); + easprintf(&output, "%s%s%s", post_box, status_format, navigation_box); struct base_page b = { .locale = L10N_EN_US, diff --git a/static/navigation.html b/static/navigation.html index d6b2d58..608b14f 100644 --- a/static/navigation.html +++ b/static/navigation.html @@ -11,7 +11,7 @@
@@ -20,7 +20,7 @@