mirror of
https://github.com/rwinkhart/sshyp-labs.git
synced 2026-08-27 20:36:31 -04:00
password-pasture - Initial demo of entry selector
This commit is contained in:
@@ -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
@@ -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);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user