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 #!/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 ./ cmake ./
sleep 10 # prevents clock skew sleep 10 # prevents clock skew
make make
+63 -13
View File
@@ -1,5 +1,4 @@
#include <gtk/gtk.h> #include <gtk/gtk.h>
//#include <string.h>
void password_convert(GtkEntryBuffer *buffer) void password_convert(GtkEntryBuffer *buffer)
{ {
@@ -112,16 +111,36 @@ void sshyp_sync()
system("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) static void activate(GtkApplication* app)
{ {
GtkWidget *window; GtkWidget *window;
GtkWidget *button_debug, *button_sync, *button_unlock, *button_shear, *button_read, *button_edit, *button_copy; 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 *header_bar;
GtkWidget *stack; GtkWidget *stack;
GtkWidget *stack_switcher; GtkWidget *stack_switcher;
GtkWidget *box_home, *sshyp_logo, *label_home1; GtkWidget *box_home, *sshyp_logo, *label_home1;
GtkStackPage *page_info; GtkStackPage *page_info;
GtkListBox *list_box;
GtkWidget *scrollable;
GtkWidget *entry_button;
GtkWidget *label_selected;
char *button_label;
window = gtk_application_window_new(app); window = gtk_application_window_new(app);
gtk_window_set_title(GTK_WINDOW(window), ""); 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); gtk_header_bar_pack_end(GTK_HEADER_BAR(header_bar), button_unlock);
button_debug = gtk_button_new_from_icon_name("applications-science"); button_debug = gtk_button_new_from_icon_name("applications-science");
g_signal_connect_swapped(button_debug, "clicked", G_CALLBACK(copy_edit_field_prompt), window); g_signal_connect(button_debug, "clicked", G_CALLBACK(entry_list_populate), NULL);
//gtk_header_bar_pack_end(GTK_HEADER_BAR(header_bar), button_debug); gtk_header_bar_pack_end(GTK_HEADER_BAR(header_bar), button_debug);
// !!start main stack stuff!! // !!start main stack stuff!!
@@ -167,14 +186,45 @@ static void activate(GtkApplication* app)
button_copy = gtk_button_new_from_icon_name("edit-copy"); button_copy = gtk_button_new_from_icon_name("edit-copy");
g_signal_connect_swapped(button_copy, "clicked", G_CALLBACK(copy_edit_field_prompt), window); g_signal_connect_swapped(button_copy, "clicked", G_CALLBACK(copy_edit_field_prompt), window);
gtk_widget_set_hexpand(button_copy, TRUE); gtk_widget_set_hexpand(button_copy, TRUE);
box_browse_controls = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0); box_browse_page = gtk_box_new(GTK_ORIENTATION_VERTICAL, 0);
gtk_widget_set_valign(box_browse_controls, GTK_ALIGN_START); label_selected = gtk_label_new("no entry selected");
gtk_widget_set_size_request(box_browse_controls, -1, 50); gtk_widget_set_hexpand(label_selected, TRUE);
gtk_widget_set_vexpand(box_browse_controls, TRUE); gtk_widget_set_halign(label_selected, GTK_ALIGN_CENTER);
gtk_box_append(GTK_BOX(box_browse_controls), button_shear); box_browse_controls = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
gtk_box_append(GTK_BOX(box_browse_controls), button_read); gtk_widget_set_valign(box_browse_controls, GTK_ALIGN_START);
gtk_box_append(GTK_BOX(box_browse_controls), button_edit); gtk_widget_set_size_request(box_browse_controls, -1, 50);
gtk_box_append(GTK_BOX(box_browse_controls), button_copy); 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 // info
box_home = gtk_box_new(GTK_ORIENTATION_VERTICAL, 10); box_home = gtk_box_new(GTK_ORIENTATION_VERTICAL, 10);
@@ -189,7 +239,7 @@ static void activate(GtkApplication* app)
stack_switcher = gtk_stack_switcher_new(); stack_switcher = gtk_stack_switcher_new();
page_info = gtk_stack_add_titled(GTK_STACK(stack), box_home, "info", "info"); 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_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_stack_switcher_set_stack(GTK_STACK_SWITCHER(stack_switcher), GTK_STACK(stack));
gtk_header_bar_pack_start(GTK_HEADER_BAR(header_bar), stack_switcher); gtk_header_bar_pack_start(GTK_HEADER_BAR(header_bar), stack_switcher);