commit 31d7e0fb51baf658999cb7b5a2e82a26eb9b4654
parent 4e187f7e6c3c012bfe74f57f349dbdeea55ff49b
Author: lash <dev@holbrook.no>
Date: Sun, 26 May 2024 20:35:07 +0100
WIP New menu impl builds
Diffstat:
7 files changed, 67 insertions(+), 72 deletions(-)
diff --git a/src/Makefile b/src/Makefile
@@ -6,7 +6,7 @@ LDFLAGS += $(LIBS)
#all: aux resource $(OBJS)
# $(CC) $(CFLAGS) main.c -o a.out $(OBJS) $(LDFLAGS) aux/varint/varint.o
-all: aux $(OBJS)
+all: asn aux $(OBJS)
asn:
make -C asn1 compile
diff --git a/src/aux/beamenu/gen.c b/src/aux/beamenu/gen.c
@@ -230,10 +230,8 @@ int write_data() {
int write_defs() {
char *p;
- char *pr;
struct beamenu_node *o;
char buf[1024];
- char buf_r[1024];
char k[KEYMAXLEN + 1];
int c;
int f;
@@ -241,11 +239,6 @@ int write_defs() {
int r;
int i;
- p = "\nchar *beamenu_dst_r[] = {\n";
- strcpy(buf_r, p);
- l = strlen(p);
- pr = buf_r + l;
-
f = open("beamenu_defs.h", O_WRONLY | O_CREAT, S_IRWXU);
r = 0;
@@ -262,8 +255,6 @@ int write_defs() {
for (i = 0; i < BEAMENU_N_DST; i++) {
o = beamenu_get(i);
strcpy(k, o->cn);
- c = sprintf(pr, "\t\"%s\",\n", k);
- pr += c;
r = uc(k);
sprintf(buf, "#define BEAMENU_DST_%s %d\n", k, i);
l = strlen(buf);
@@ -274,9 +265,9 @@ int write_defs() {
}
r += c;
}
- sprintf(pr, "};\n");
- l = strlen(buf_r);
- c = write(f, buf_r, l);
+ sprintf(buf, "\nextern char *beamenu_dst_r[];\n");
+ l = strlen(buf);
+ c = write(f, buf, l);
if (c != l) {
close(f);
return 0;
@@ -298,6 +289,58 @@ int write_defs() {
}
+int write_impl() {
+ char *p;
+ struct beamenu_node *o;
+ char buf[1024];
+ char k[KEYMAXLEN + 1];
+ int r;
+ int c;
+ int i;
+ int l;
+ int f;
+
+ f = open("beamenu_defs.c", O_WRONLY | O_CREAT, S_IRWXU);
+
+ r = 0;
+ p = "char *beamenu_dst_r[] = {\n";
+ strcpy(buf, p);
+ l = strlen(p);
+ c = write(f, buf, l);
+ if (c != l) {
+ close(f);
+ return 0;
+ }
+ r += c;
+ p += c;
+
+ for (i = 0; i < BEAMENU_N_DST; i++) {
+ o = beamenu_get(i);
+ strcpy(k, o->cn);
+ sprintf(buf, "\t\"%s\",\n", k);
+ l = strlen(buf);
+ c = write(f, buf, l);
+ if (c != l) {
+ close(f);
+ return 0;
+ }
+ r += c;
+ }
+
+ p = "};\n";
+ strcpy(buf, p);
+ l = strlen(p);
+ c = write(f, buf, l);
+ if (c != l) {
+ close(f);
+ return 0;
+ }
+ r += c;
+
+ close(f);
+ return r;
+}
+
int main(int argc, char **argv) {
int i;
int r;
@@ -381,5 +424,10 @@ int main(int argc, char **argv) {
return 1;
}
+ r = write_impl();
+ if (!r) {
+ return 1;
+ }
+
return 0;
}
diff --git a/src/gtk/kee-menu.c b/src/gtk/kee-menu.c
@@ -247,12 +247,10 @@ int kee_menu_set(KeeMenu *o, GtkWidget *widget) {
int kee_menu_prev(KeeMenu *o) {
GtkWidget *widget;
- const char *label;
widget = kee_nav_back();
gtk_stack_set_visible_child(o->stack, widget);
- //label = gtk_stack_get_visible_child_name(o->stack);
kee_menu_header_update(o, KEE_NAV_LABEL);
return ERR_OK;
diff --git a/src/gtk/nav.h b/src/gtk/nav.h
@@ -6,7 +6,7 @@
#include <beamenu_defs.h>
#define KEE_NAV_NOW kee_nav_get()
-#define KEE_NAV_LABEL kee_nav_label()
+#define KEE_NAV_LABEL kee_nav_get_label()
#ifndef KEE_NAV_N_DST
#define KEE_NAV_N_DST BEAMENU_N_DST + 1
@@ -19,7 +19,7 @@ int kee_nav_init(const char *path);
int kee_nav_set(GtkWidget *, int idx);
int kee_nav_unset(int idx);
GtkWidget* kee_nav_get();
-char* kee_nav_label();
+char* kee_nav_get_label();
GtkWidget* kee_nav_back(); // returns new current widget
#endif // _KEE_NAV_H
diff --git a/src/gtk/ui.c b/src/gtk/ui.c
@@ -9,7 +9,7 @@
#include "settings.h"
#include "context.h"
#include "state.h"
-#include "view.h"
+//#include "view.h"
#include "menu.h"
#include "kee-import.h"
#include "kee-entry-list.h"
@@ -88,8 +88,9 @@ void ui_build(GtkApplication *gapp, struct kee_context *ctx) {
widget = kee_entry_list_new(G_LIST_MODEL(ctx->entry_store), win);
kee_menu_add(win, "view", widget);
- kee_menu_next(win, "view");
- kee_menu_next(win, "unlock");
+ //kee_menu_next(win, "view");
+ kee_menu_next(win, BEAMENU_DST_LIST);
+ kee_menu_next(win, BEAMENU_DST_KEY);
import = kee_import_new(win);
kee_menu_add(win, "import", GTK_WIDGET(import));
diff --git a/src/gtk/view.c b/src/gtk/view.c
@@ -1,34 +0,0 @@
-#include <gtk/gtk.h>
-
-#include "debug.h"
-#include "view.h"
-#include "nav.h"
-
-static struct KeeView view;
-
-void kee_view_init(GtkStack *stack) {
- if (view.stack != NULL) {
- return;
- }
- view.stack = stack;
-}
-
-int kee_view_add(GtkWidget *widget, const char *label) {
- gtk_stack_add_named(view.stack, widget, label);
- return ERR_OK;
-}
-
-int kee_view_next(const char *label) {
- GtkWidget *widget;
-
- widget = gtk_stack_get_child_by_name(view.stack, label);
- kee_nav_push(&view.nav, widget);
- gtk_stack_set_visible_child(view.stack, widget);
- return ERR_OK;
-}
-
-int kee_view_prev() {
- kee_nav_pop(&view.nav);
- gtk_stack_set_visible_child(view.stack, view.nav.now);
- return ERR_OK;
-}
diff --git a/src/gtk/view.h b/src/gtk/view.h
@@ -1,18 +0,0 @@
-#ifndef _KEE_VIEW_H
-#define _KEE_VIEW_H
-
-#include <gtk/gtk.h>
-
-#include "nav.h"
-
-struct KeeView {
- GtkStack *stack;
- struct KeeNav nav;
-};
-
-void kee_view_init(GtkStack *stack);
-int kee_view_add(GtkWidget *widget, const char *label);
-int kee_view_next(const char *label);
-int kee_view_prev();
-
-#endif // _KEE_VIEW_H