diff --git a/password-pasture/build.sh b/password-pasture/build.sh index 11b2db4..a6edf40 100755 --- a/password-pasture/build.sh +++ b/password-pasture/build.sh @@ -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 diff --git a/password-pasture/main.c b/password-pasture/main.c index cea8514..1765f2c 100644 --- a/password-pasture/main.c +++ b/password-pasture/main.c @@ -1,5 +1,4 @@ #include -//#include 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_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); + 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_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);