#include "Empower.h"
void display_window(int argc, char** argv)
{
if(!ewl_init(&argc, argv))
{
printf("Unable to init ewl\n");
return;
}
Ewl_Widget *entry = NULL;
Ewl_Widget *ok_button = NULL;
Ewl_Widget *cancel_button = NULL;
Ewl_Widget *progtext = NULL;
Ewl_Widget *vbox = NULL, *hbox = NULL;
Ewl_Widget *image = NULL;
uid_t user;
struct passwd *user_name;
char username[256];
user = getuid();
if ((user_name = getpwuid(user)) != NULL)
snprintf(username, 256, "%s's password", user_name->pw_name);
else
snprintf(username, 256, "Your Password");
win = ewl_dialog_new();
ewl_window_title_set(EWL_WINDOW(win), "Empower!");
ewl_window_name_set(EWL_WINDOW(win), "Empower!");
ewl_window_class_set(EWL_WINDOW(win), "Empower!");
ewl_window_dialog_set(EWL_WINDOW(win), 1);
ewl_window_keyboard_grab_set(EWL_WINDOW(win), 1);
ewl_callback_append(win, EWL_CALLBACK_DELETE_WINDOW, destroy_cb, NULL);
ewl_callback_prepend(win, EWL_CALLBACK_REVEAL, reveal_cb, NULL);
ewl_callback_append(win, EWL_CALLBACK_KEY_DOWN, key_down_cb, NULL);
ewl_widget_show(win);
ewl_dialog_active_area_set(EWL_DIALOG(win), EWL_POSITION_TOP);
hbox = ewl_hbox_new();
ewl_container_child_append(EWL_CONTAINER(win), hbox);
ewl_object_alignment_set(EWL_OBJECT(hbox), EWL_FLAG_ALIGN_CENTER);
ewl_object_padding_set(EWL_OBJECT(hbox), 15, 15, 15, 5);
ewl_widget_show(hbox);
image = ewl_image_new();
ewl_image_file_set(EWL_IMAGE(image),
ewl_icon_theme_icon_path_get(EWL_ICON_SYSTEM_LOCK_SCREEN, 46),
EWL_ICON_SYSTEM_LOCK_SCREEN);
ewl_container_child_append(EWL_CONTAINER(hbox), image);
ewl_object_padding_set(EWL_OBJECT(image), 5, 20, 0, 0);
ewl_widget_show(image);
vbox = ewl_vbox_new();
ewl_container_child_append(EWL_CONTAINER(hbox), vbox);
ewl_object_fill_policy_set(EWL_OBJECT(vbox), EWL_FLAG_FILL_HFILL);
ewl_widget_show(vbox);
progtext = ewl_text_new();
ewl_container_child_append(EWL_CONTAINER(vbox), progtext);
ewl_text_font_size_set(EWL_TEXT(progtext), 12);
ewl_object_alignment_set(EWL_OBJECT(progtext), EWL_FLAG_ALIGN_CENTER);
ewl_object_fill_policy_set(EWL_OBJECT(progtext), EWL_FLAG_FILL_NONE);
ewl_text_text_set(EWL_TEXT(progtext), username);
ewl_widget_show(progtext);
entry = ewl_password_new();
ewl_container_child_append(EWL_CONTAINER(vbox), entry);
ewl_callback_append(entry, EWL_CALLBACK_VALUE_CHANGED, pipe_to_sudo_cb,
entry);
ewl_widget_focus_send(entry);
ewl_widget_show(entry);
ewl_dialog_active_area_set(EWL_DIALOG(win), EWL_POSITION_BOTTOM);
ok_button = ewl_button_new();
ewl_stock_type_set(EWL_STOCK(ok_button), EWL_STOCK_OK);
ewl_object_fill_policy_set(EWL_OBJECT(ok_button), EWL_FLAG_FILL_NONE
| EWL_FLAG_FILL_HFILL);
ewl_container_child_append(EWL_CONTAINER(win), ok_button);
ewl_callback_append(ok_button, EWL_CALLBACK_CLICKED, pipe_to_sudo_cb,
entry);
ewl_widget_show(ok_button);
cancel_button = ewl_button_new();
ewl_stock_type_set(EWL_STOCK(cancel_button), EWL_STOCK_CANCEL);
ewl_object_fill_policy_set(EWL_OBJECT(cancel_button),
EWL_FLAG_FILL_NONE | EWL_FLAG_FILL_HFILL);
ewl_container_child_append(EWL_CONTAINER(win), cancel_button);
ewl_callback_append(cancel_button, EWL_CALLBACK_CLICKED, destroy_cb,
NULL);
ewl_widget_show(cancel_button);
ewl_main();
}
syntax highlighted by Code2HTML, v. 0.9.1