password-pasture - Initial demo of entry selector

This commit is contained in:
2022-08-08 01:12:30 -04:00
parent 73947dd7ef
commit fd5266351e
2 changed files with 64 additions and 14 deletions
+1 -1
View File
@@ -1,5 +1,5 @@
#!/usr/bin/env sh
rm -rf cmake-build-debug CMakeFiles cmake_install.cmake CMakeCache.txt Makefile
rm -rf CMakeFiles cmake_install.cmake CMakeCache.txt Makefile
cmake ./
sleep 10 # prevents clock skew
make
+56 -6
View File
@@ -1,5 +1,4 @@
#include <gtk/gtk.h>
//#include <string.h>
void password_convert(GtkEntryBuffer *buffer)
{
@@ -112,16 +111,36 @@ void sshyp_sync()
system("sshyp sync");
}
void entry_list_populate()
{
char *entries[] =
{
"entry1\n", "entry2\n", "entry3\n"
};
printf("%s", entries[1]);
}
void set_selection_label(GtkWidget *button, gpointer *label)
{
const char *button_label = gtk_button_get_label(GTK_BUTTON(button));
gtk_label_set_text(GTK_LABEL(label), button_label);
}
static void activate(GtkApplication* app)
{
GtkWidget *window;
GtkWidget *button_debug, *button_sync, *button_unlock, *button_shear, *button_read, *button_edit, *button_copy;
GtkWidget *box_main, *box_browse_controls;
GtkWidget *box_main, *box_browse_page, *box_browse_controls;
GtkWidget *header_bar;
GtkWidget *stack;
GtkWidget *stack_switcher;
GtkWidget *box_home, *sshyp_logo, *label_home1;
GtkStackPage *page_info;
GtkListBox *list_box;
GtkWidget *scrollable;
GtkWidget *entry_button;
GtkWidget *label_selected;
char *button_label;
window = gtk_application_window_new(app);
gtk_window_set_title(GTK_WINDOW(window), "");
@@ -139,8 +158,8 @@ static void activate(GtkApplication* app)
gtk_header_bar_pack_end(GTK_HEADER_BAR(header_bar), button_unlock);
button_debug = gtk_button_new_from_icon_name("applications-science");
g_signal_connect_swapped(button_debug, "clicked", G_CALLBACK(copy_edit_field_prompt), window);
//gtk_header_bar_pack_end(GTK_HEADER_BAR(header_bar), button_debug);
g_signal_connect(button_debug, "clicked", G_CALLBACK(entry_list_populate), NULL);
gtk_header_bar_pack_end(GTK_HEADER_BAR(header_bar), button_debug);
// !!start main stack stuff!!
@@ -167,14 +186,45 @@ static void activate(GtkApplication* app)
button_copy = gtk_button_new_from_icon_name("edit-copy");
g_signal_connect_swapped(button_copy, "clicked", G_CALLBACK(copy_edit_field_prompt), window);
gtk_widget_set_hexpand(button_copy, TRUE);
box_browse_page = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
label_selected = gtk_label_new("no entry selected");
gtk_widget_set_hexpand(label_selected, TRUE);
gtk_widget_set_halign(label_selected, GTK_ALIGN_CENTER);
box_browse_controls = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
gtk_widget_set_valign(box_browse_controls, GTK_ALIGN_START);
gtk_widget_set_size_request(box_browse_controls, -1, 50);
gtk_widget_set_vexpand(box_browse_controls, TRUE);
gtk_box_append(GTK_BOX(box_browse_controls), button_shear);
gtk_box_append(GTK_BOX(box_browse_controls), button_read);
gtk_box_append(GTK_BOX(box_browse_controls), button_edit);
gtk_box_append(GTK_BOX(box_browse_controls), button_copy);
gtk_box_append(GTK_BOX(box_browse_page), label_selected);
gtk_box_append(GTK_BOX(box_browse_page), box_browse_controls);
// SCROLLABLE METHOD
scrollable = gtk_scrolled_window_new();
list_box = (GtkListBox *) gtk_list_box_new();
gtk_widget_set_vexpand(GTK_WIDGET(list_box), TRUE);
button_label = "/test/test1";
entry_button = gtk_button_new_with_label(button_label);
gtk_label_set_xalign(GTK_LABEL(gtk_button_get_child(GTK_BUTTON(entry_button))), GTK_JUSTIFY_LEFT);
gtk_button_set_has_frame(GTK_BUTTON(entry_button), FALSE);
g_signal_connect(entry_button, "clicked", G_CALLBACK(set_selection_label), (gpointer *)label_selected);
gtk_list_box_append(list_box, gtk_separator_new(GTK_ORIENTATION_HORIZONTAL));
gtk_list_box_append(list_box, entry_button);
button_label = "/test/test2";
entry_button = gtk_button_new_with_label(button_label);
gtk_label_set_xalign(GTK_LABEL(gtk_button_get_child(GTK_BUTTON(entry_button))), GTK_JUSTIFY_LEFT);
gtk_button_set_has_frame(GTK_BUTTON(entry_button), FALSE);
g_signal_connect(entry_button, "clicked", G_CALLBACK(set_selection_label), (gpointer *)label_selected);
gtk_list_box_append(list_box, gtk_separator_new(GTK_ORIENTATION_HORIZONTAL));
gtk_list_box_append(list_box, entry_button);
gtk_scrolled_window_set_child(GTK_SCROLLED_WINDOW(scrollable), GTK_WIDGET(list_box));
// END SCROLLABLE METHOD
gtk_box_append(GTK_BOX(box_browse_page), GTK_WIDGET(scrollable));
// info
box_home = gtk_box_new(GTK_ORIENTATION_VERTICAL, 10);
@@ -189,7 +239,7 @@ static void activate(GtkApplication* app)
stack_switcher = gtk_stack_switcher_new();
page_info = gtk_stack_add_titled(GTK_STACK(stack), box_home, "info", "info");
gtk_stack_page_set_icon_name(GTK_STACK_PAGE(page_info), "help-about");
gtk_stack_add_titled(GTK_STACK(stack), box_browse_controls, "browse", "browse");
gtk_stack_add_titled(GTK_STACK(stack), box_browse_page, "browse", "browse");
gtk_stack_switcher_set_stack(GTK_STACK_SWITCHER(stack_switcher), GTK_STACK(stack));
gtk_header_bar_pack_start(GTK_HEADER_BAR(header_bar), stack_switcher);