mirror of
https://github.com/samba-team/samba.git
synced 2024-12-24 21:34:56 +03:00
r15408: Fix some small bugs in the GTK+ tools
Add utility function for connection to an interface
(This used to be commit 266f747220
)
This commit is contained in:
parent
37aa2c5e8f
commit
86a2f18b96
@ -26,6 +26,9 @@
|
||||
#include "librpc/rpc/dcerpc.h"
|
||||
#include "auth/credentials/credentials.h"
|
||||
|
||||
/**
|
||||
* Dialog error showing a WERROR
|
||||
*/
|
||||
void gtk_show_werror(GtkWidget *win, const char *message, WERROR err)
|
||||
{
|
||||
GtkWidget *dialog = gtk_message_dialog_new( GTK_WINDOW(win),
|
||||
@ -38,6 +41,9 @@ void gtk_show_werror(GtkWidget *win, const char *message, WERROR err)
|
||||
gtk_widget_destroy (dialog);
|
||||
}
|
||||
|
||||
/**
|
||||
* GTK+ dialog showing a NTSTATUS error
|
||||
*/
|
||||
void gtk_show_ntstatus(GtkWidget *win, const char *message, NTSTATUS status)
|
||||
{
|
||||
GtkWidget *dialog = gtk_message_dialog_new( GTK_WINDOW(win),
|
||||
@ -50,7 +56,7 @@ void gtk_show_ntstatus(GtkWidget *win, const char *message, NTSTATUS status)
|
||||
gtk_widget_destroy (dialog);
|
||||
}
|
||||
|
||||
static void on_browse_activate (GtkButton *button, gpointer user_data)
|
||||
static void on_browse_activate (GtkButton *button, gpointer user_data)
|
||||
{
|
||||
GtkRpcBindingDialog *rbd = user_data;
|
||||
GtkWidget *shd = gtk_select_host_dialog_new(rbd->sam_pipe);
|
||||
@ -117,8 +123,6 @@ static void gtk_rpc_binding_dialog_init (GtkRpcBindingDialog *gtk_rpc_binding_di
|
||||
gtk_radio_button_set_group (GTK_RADIO_BUTTON (gtk_rpc_binding_dialog->transport_tcp_ip), transport_smb_group);
|
||||
transport_smb_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (gtk_rpc_binding_dialog->transport_tcp_ip));
|
||||
|
||||
|
||||
|
||||
label1 = gtk_label_new ("Transport");
|
||||
gtk_frame_set_label_widget (GTK_FRAME (frame_transport), label1);
|
||||
|
||||
@ -213,6 +217,12 @@ GType gtk_rpc_binding_dialog_get_type (void)
|
||||
return mytype;
|
||||
}
|
||||
|
||||
/**
|
||||
* Create a new GTK+ dialog asking for binding information for
|
||||
* DCE/RPC
|
||||
*
|
||||
* Optionally gets a sam pipe that will be used to look up users
|
||||
*/
|
||||
GtkWidget *gtk_rpc_binding_dialog_new (struct dcerpc_pipe *sam_pipe)
|
||||
{
|
||||
GtkRpcBindingDialog *d = GTK_RPC_BINDING_DIALOG ( g_object_new (gtk_rpc_binding_dialog_get_type (), NULL));
|
||||
@ -291,7 +301,7 @@ GtkWidget *create_gtk_samba_about_dialog (const char *appname)
|
||||
label3 = gtk_label_new_with_mnemonic ("Part of Samba <http://www.samba.org/>");
|
||||
gtk_box_pack_start (GTK_BOX (dialog_vbox1), label3, FALSE, FALSE, 0);
|
||||
|
||||
label4 = gtk_label_new ("\302\251 1992-2005 The Samba Team");
|
||||
label4 = gtk_label_new ("\302\251 1992-2006 The Samba Team");
|
||||
gtk_box_pack_start (GTK_BOX (dialog_vbox1), label4, FALSE, FALSE, 0);
|
||||
|
||||
dialog_action_area1 = GTK_DIALOG (samba_about_dialog)->action_area;
|
||||
|
@ -22,7 +22,6 @@
|
||||
#ifndef __GTK_SMB_H__
|
||||
#define __GTK_SMB_H__
|
||||
|
||||
|
||||
#define GTK_DISABLE_DEPRECATED
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
|
@ -23,6 +23,7 @@
|
||||
#include "librpc/gen_ndr/ndr_samr_c.h"
|
||||
#include "gtk/common/select.h"
|
||||
#include "gtk/common/gtk-smb.h"
|
||||
#include "auth/credentials/credentials.h"
|
||||
|
||||
/* GtkSelectDomainDialog */
|
||||
|
||||
@ -260,3 +261,43 @@ GtkWidget *gtk_select_host_dialog_new (struct dcerpc_pipe *sam_pipe)
|
||||
{
|
||||
return GTK_WIDGET ( g_object_new (gtk_select_host_dialog_get_type (), NULL ));
|
||||
}
|
||||
|
||||
/**
|
||||
* Connect to a specific interface, but ask the user
|
||||
* for information not specified
|
||||
*/
|
||||
struct dcerpc_pipe *gtk_connect_rpc_interface(TALLOC_CTX *mem_ctx, const struct dcerpc_interface_table *table)
|
||||
{
|
||||
GtkRpcBindingDialog *d;
|
||||
NTSTATUS status;
|
||||
struct dcerpc_pipe *pipe;
|
||||
struct cli_credentials *cred;
|
||||
gint result;
|
||||
|
||||
d = GTK_RPC_BINDING_DIALOG(gtk_rpc_binding_dialog_new(NULL));
|
||||
result = gtk_dialog_run(GTK_DIALOG(d));
|
||||
|
||||
if (result != GTK_RESPONSE_ACCEPT) {
|
||||
gtk_widget_destroy(GTK_WIDGET(d));
|
||||
return NULL;
|
||||
}
|
||||
|
||||
cred = cli_credentials_init(mem_ctx);
|
||||
cli_credentials_guess(cred);
|
||||
cli_credentials_set_gtk_callbacks(cred);
|
||||
|
||||
status = dcerpc_pipe_connect_b(mem_ctx, &pipe,
|
||||
gtk_rpc_binding_dialog_get_binding(d, mem_ctx),
|
||||
table, cred, NULL);
|
||||
|
||||
if(!NT_STATUS_IS_OK(status)) {
|
||||
gtk_show_ntstatus(NULL, "While connecting to interface", status);
|
||||
gtk_widget_destroy(GTK_WIDGET(d));
|
||||
talloc_free(mem_ctx);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
gtk_widget_destroy(GTK_WIDGET(d));
|
||||
|
||||
return pipe;
|
||||
}
|
||||
|
@ -22,8 +22,6 @@
|
||||
#ifndef __GTK_SELECT_H__
|
||||
#define __GTK_SELECT_H__
|
||||
|
||||
#ifdef HAVE_GTK
|
||||
|
||||
#define GTK_DISABLE_DEPRECATED
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
@ -80,7 +78,7 @@ GtkWidget *gtk_select_host_dialog_new (struct dcerpc_pipe *sam_pipe);
|
||||
const char *gtk_select_host_dialog_get_host (GtkSelectHostDialog *d);
|
||||
GType gtk_select_host_dialog_get_type (void);
|
||||
|
||||
|
||||
#endif
|
||||
struct dcerpc_interface_table;
|
||||
struct dcerpc_pipe *gtk_connect_rpc_interface(TALLOC_CTX *mem_ctx, const struct dcerpc_interface_table *table);
|
||||
|
||||
#endif
|
||||
|
@ -23,6 +23,7 @@
|
||||
#include "librpc/gen_ndr/ndr_epmapper_c.h"
|
||||
#include "librpc/gen_ndr/ndr_mgmt_c.h"
|
||||
#include "gtk/common/gtk-smb.h"
|
||||
#include "gtk/common/select.h"
|
||||
#include "auth/gensec/gensec.h"
|
||||
|
||||
/*
|
||||
@ -166,40 +167,14 @@ static void on_refresh_clicked (GtkButton *btn, gpointer user_data)
|
||||
refresh_eps();
|
||||
}
|
||||
|
||||
static void on_connect_clicked(GtkButton *btn, gpointer user_data)
|
||||
static void on_connect_clicked(GtkButton *btn, gpointer user_data)
|
||||
{
|
||||
GtkRpcBindingDialog *d;
|
||||
const char *bs;
|
||||
TALLOC_CTX *mem_ctx;
|
||||
NTSTATUS status;
|
||||
gint result;
|
||||
struct cli_credentials *credentials;
|
||||
TALLOC_CTX *mem_ctx = talloc_init("connect");
|
||||
|
||||
d = GTK_RPC_BINDING_DIALOG(gtk_rpc_binding_dialog_new(NULL));
|
||||
result = gtk_dialog_run(GTK_DIALOG(d));
|
||||
switch(result) {
|
||||
case GTK_RESPONSE_ACCEPT:
|
||||
break;
|
||||
default:
|
||||
gtk_widget_destroy(GTK_WIDGET(d));
|
||||
epmapper_pipe = gtk_connect_rpc_interface(mem_ctx, &dcerpc_table_epmapper);
|
||||
if (epmapper_pipe == NULL)
|
||||
return;
|
||||
}
|
||||
|
||||
mem_ctx = talloc_init("connect");
|
||||
bs = gtk_rpc_binding_dialog_get_binding_string (d, mem_ctx);
|
||||
|
||||
credentials = cli_credentials_init(mem_ctx);
|
||||
cli_credentials_guess(credentials);
|
||||
cli_credentials_set_gtk_callbacks(credentials);
|
||||
|
||||
status = dcerpc_pipe_connect(talloc_autofree_context(), &epmapper_pipe, bs,
|
||||
&dcerpc_table_epmapper,
|
||||
credentials, NULL);
|
||||
|
||||
if (NT_STATUS_IS_ERR(status)) {
|
||||
gtk_show_ntstatus(mainwin, "Error connecting to endpoint mapper", status);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
gtk_widget_set_sensitive( mnu_refresh, True );
|
||||
|
||||
@ -210,11 +185,7 @@ static void on_connect_clicked(GtkButton *btn, gpointer user_data)
|
||||
if (NT_STATUS_IS_ERR(status)) {
|
||||
mgmt_pipe = NULL;
|
||||
gtk_show_ntstatus(NULL, "Error connecting to mgmt interface over secondary connection", status);
|
||||
goto fail;
|
||||
}
|
||||
|
||||
fail:
|
||||
gtk_widget_destroy(GTK_WIDGET(d));
|
||||
}
|
||||
|
||||
static gboolean on_eps_select(GtkTreeSelection *selection,
|
||||
|
@ -22,12 +22,14 @@
|
||||
#include "includes.h"
|
||||
#include "librpc/gen_ndr/ndr_atsvc_c.h"
|
||||
#include "gtk/common/gtk-smb.h"
|
||||
#include "gtk/common/select.h"
|
||||
#include "auth/credentials/credentials.h"
|
||||
|
||||
static struct dcerpc_pipe *at_pipe = NULL;
|
||||
static GtkWidget *mainwin;
|
||||
static GtkListStore *store_jobs;
|
||||
static GtkWidget *tasks;
|
||||
static GtkWidget *new_task;
|
||||
static GtkWidget *entry_cmd;
|
||||
static GtkWidget *entry_repeat_weekly;
|
||||
static GtkWidget *entry_repeat_monthly;
|
||||
@ -70,7 +72,6 @@ static void update_joblist(void)
|
||||
|
||||
}
|
||||
talloc_free(mem_ctx);
|
||||
gtk_widget_set_sensitive(tasks, TRUE);
|
||||
}
|
||||
|
||||
static void on_job_select(GtkTreeSelection *sel, gpointer data)
|
||||
@ -81,45 +82,12 @@ static void on_job_select(GtkTreeSelection *sel, gpointer data)
|
||||
|
||||
static void on_connect_activate(GtkMenuItem *menuitem, gpointer user_data)
|
||||
{
|
||||
GtkRpcBindingDialog *d;
|
||||
NTSTATUS status;
|
||||
struct cli_credentials *credentials;
|
||||
gint result;
|
||||
TALLOC_CTX *mem_ctx;
|
||||
at_pipe = gtk_connect_rpc_interface(talloc_autofree_context(), &dcerpc_table_atsvc);
|
||||
|
||||
d = GTK_RPC_BINDING_DIALOG(gtk_rpc_binding_dialog_new(NULL));
|
||||
result = gtk_dialog_run(GTK_DIALOG(d));
|
||||
switch(result) {
|
||||
case GTK_RESPONSE_ACCEPT:
|
||||
break;
|
||||
default:
|
||||
gtk_widget_destroy(GTK_WIDGET(d));
|
||||
if (!at_pipe)
|
||||
return;
|
||||
}
|
||||
|
||||
mem_ctx = talloc_init("gwcrontab_connect");
|
||||
/* If connected, get list of jobs */
|
||||
|
||||
credentials = cli_credentials_init(mem_ctx);
|
||||
cli_credentials_guess(credentials);
|
||||
cli_credentials_set_gtk_callbacks(credentials);
|
||||
|
||||
status = dcerpc_pipe_connect_b(mem_ctx, &at_pipe,
|
||||
gtk_rpc_binding_dialog_get_binding(d, mem_ctx),
|
||||
&dcerpc_table_atsvc,
|
||||
credentials, NULL);
|
||||
|
||||
if(!NT_STATUS_IS_OK(status)) {
|
||||
gtk_show_ntstatus(mainwin, "Error while connecting to at service", status);
|
||||
at_pipe = NULL;
|
||||
gtk_widget_destroy(GTK_WIDGET(d));
|
||||
talloc_free(mem_ctx);
|
||||
return;
|
||||
}
|
||||
gtk_widget_destroy(GTK_WIDGET(d));
|
||||
|
||||
at_pipe = talloc_reference(talloc_autofree_context(), at_pipe);
|
||||
talloc_free(mem_ctx);
|
||||
gtk_widget_set_sensitive (new_task, TRUE);
|
||||
update_joblist();
|
||||
}
|
||||
|
||||
@ -129,12 +97,9 @@ static void on_quit_activate(GtkMenuItem *menuitem, gpointer user_data)
|
||||
gtk_main_quit();
|
||||
}
|
||||
|
||||
|
||||
static GtkWidget* create_new_job_dialog (void);
|
||||
|
||||
void
|
||||
on_new_activate (GtkMenuItem *menuitem,
|
||||
gpointer user_data)
|
||||
void on_new_activate (GtkMenuItem *menuitem, gpointer user_data)
|
||||
{
|
||||
GtkWidget *d = create_new_job_dialog();
|
||||
gint result = gtk_dialog_run(GTK_DIALOG(d));
|
||||
@ -176,9 +141,7 @@ on_new_activate (GtkMenuItem *menuitem,
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
on_delete_activate (GtkMenuItem *menuitem,
|
||||
gpointer user_data)
|
||||
void on_delete_activate(GtkMenuItem *menuitem, gpointer user_data)
|
||||
{
|
||||
GtkTreeSelection *sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(tasks));
|
||||
GtkTreeModel *model = GTK_TREE_MODEL(store_jobs);
|
||||
@ -227,7 +190,6 @@ static GtkWidget* create_mainwindow (void)
|
||||
GtkWidget *quit;
|
||||
GtkWidget *task;
|
||||
GtkWidget *task_menu;
|
||||
GtkWidget *new;
|
||||
GtkCellRenderer *renderer;
|
||||
GtkTreeViewColumn *curcol;
|
||||
GtkWidget *menuitem7;
|
||||
@ -273,8 +235,9 @@ static GtkWidget* create_mainwindow (void)
|
||||
task_menu = gtk_menu_new ();
|
||||
gtk_menu_item_set_submenu (GTK_MENU_ITEM (task), task_menu);
|
||||
|
||||
new = gtk_menu_item_new_with_mnemonic ("_New");
|
||||
gtk_container_add (GTK_CONTAINER (task_menu), new);
|
||||
new_task = gtk_menu_item_new_with_mnemonic ("_New");
|
||||
gtk_container_add (GTK_CONTAINER (task_menu), new_task);
|
||||
gtk_widget_set_sensitive (new_task, FALSE);
|
||||
|
||||
delete = gtk_menu_item_new_with_mnemonic ("_Delete");
|
||||
gtk_widget_set_sensitive(delete, FALSE);
|
||||
@ -343,7 +306,7 @@ static GtkWidget* create_mainwindow (void)
|
||||
|
||||
g_signal_connect ((gpointer) quit, "activate",
|
||||
G_CALLBACK (on_quit_activate), NULL);
|
||||
g_signal_connect ((gpointer) new, "activate",
|
||||
g_signal_connect ((gpointer) new_task, "activate",
|
||||
G_CALLBACK (on_new_activate), NULL);
|
||||
g_signal_connect ((gpointer) delete, "activate",
|
||||
G_CALLBACK (on_delete_activate), NULL);
|
||||
@ -351,28 +314,23 @@ static GtkWidget* create_mainwindow (void)
|
||||
G_CALLBACK (on_about_activate), NULL);
|
||||
|
||||
gtk_window_add_accel_group (GTK_WINDOW (mainwindow), accel_group);
|
||||
gtk_widget_set_sensitive(tasks, FALSE);
|
||||
|
||||
return mainwindow;
|
||||
}
|
||||
|
||||
void
|
||||
on_chk_weekly_toggled (GtkToggleButton *togglebutton,
|
||||
gpointer user_data)
|
||||
void on_chk_weekly_toggled(GtkToggleButton *togglebutton, gpointer user_data)
|
||||
{
|
||||
gtk_widget_set_sensitive(entry_repeat_weekly, gtk_toggle_button_get_active(togglebutton));
|
||||
}
|
||||
|
||||
|
||||
void
|
||||
on_chk_monthly_toggled (GtkToggleButton *togglebutton,
|
||||
gpointer user_data)
|
||||
void on_chk_monthly_toggled(GtkToggleButton *togglebutton, gpointer user_data)
|
||||
{
|
||||
gtk_widget_set_sensitive(entry_repeat_monthly, gtk_toggle_button_get_active(togglebutton));
|
||||
}
|
||||
|
||||
|
||||
static GtkWidget*create_new_job_dialog (void)
|
||||
static GtkWidget *create_new_job_dialog (void)
|
||||
{
|
||||
GtkWidget *new_job_dialog;
|
||||
GtkWidget *dialog_vbox1;
|
||||
|
@ -30,6 +30,8 @@ struct dcerpc_pipe *sam_pipe = NULL;
|
||||
static struct policy_handle domain_handle;
|
||||
GtkWidget *mainwin;
|
||||
GtkWidget *seldomain;
|
||||
GtkListStore *store_users;
|
||||
GtkListStore *store_groups;
|
||||
static GtkWidget *mnu_disconnect;
|
||||
|
||||
static void update_grouplist(void)
|
||||
@ -48,11 +50,13 @@ static void update_userlist(void)
|
||||
|
||||
if(!sam_pipe) return;
|
||||
|
||||
gtk_list_store_clear(store_users);
|
||||
|
||||
mem_ctx = talloc_init("update_userlist");
|
||||
r.in.domain_handle = &domain_handle;
|
||||
r.in.resume_handle = &resume_handle;
|
||||
r.in.acct_flags = 0;
|
||||
r.in.max_size = (uint32_t)-1;
|
||||
r.in.max_size = (uint32_t)100;
|
||||
r.out.resume_handle = &resume_handle;
|
||||
|
||||
status = dcerpc_samr_EnumDomainUsers(sam_pipe, mem_ctx, &r);
|
||||
@ -68,7 +72,13 @@ static void update_userlist(void)
|
||||
}
|
||||
|
||||
for (i=0;i<r.out.sam->count;i++) {
|
||||
printf("Found: %s\n", r.out.sam->entries[i].name.string);
|
||||
GtkTreeIter iter;
|
||||
gtk_list_store_append(store_users, &iter);
|
||||
gtk_list_store_set (store_users, &iter,
|
||||
0, r.out.sam->entries[i].name.string,
|
||||
1, r.out.sam->entries[i].name.string,
|
||||
2, 0, -1);
|
||||
|
||||
/* FIXME: Query user info */
|
||||
|
||||
// if (!test_OpenUser(sam_pipe, mem_ctx, &sam_handle, r.out.sam->entries[i].idx)) {
|
||||
@ -80,7 +90,7 @@ static void update_userlist(void)
|
||||
|
||||
static void on_new1_activate(GtkMenuItem *menuitem, gpointer user_data)
|
||||
{
|
||||
|
||||
/* FIXME */
|
||||
}
|
||||
|
||||
static void on_select_domain_activate(GtkMenuItem *menuitem, gpointer user_data)
|
||||
@ -106,40 +116,16 @@ static void on_select_domain_activate(GtkMenuItem *menuitem, gpointer user_data)
|
||||
|
||||
static void connect_sam(void)
|
||||
{
|
||||
GtkRpcBindingDialog *d;
|
||||
NTSTATUS status;
|
||||
struct samr_Connect r;
|
||||
struct cli_credentials *cred;
|
||||
TALLOC_CTX *mem_ctx;
|
||||
gint result;
|
||||
|
||||
d = GTK_RPC_BINDING_DIALOG(gtk_rpc_binding_dialog_new(NULL));
|
||||
result = gtk_dialog_run(GTK_DIALOG(d));
|
||||
switch(result) {
|
||||
case GTK_RESPONSE_ACCEPT:
|
||||
break;
|
||||
default:
|
||||
gtk_widget_destroy(GTK_WIDGET(d));
|
||||
return;
|
||||
}
|
||||
NTSTATUS status;
|
||||
|
||||
mem_ctx = talloc_init("gwsam_connect");
|
||||
cred = cli_credentials_init(mem_ctx);
|
||||
cli_credentials_guess(cred);
|
||||
cli_credentials_set_gtk_callbacks(cred);
|
||||
|
||||
/* If connected, get list of jobs */
|
||||
status = dcerpc_pipe_connect_b(mem_ctx, &sam_pipe,
|
||||
gtk_rpc_binding_dialog_get_binding(d, mem_ctx),
|
||||
&dcerpc_table_samr, cred, NULL);
|
||||
sam_pipe = gtk_connect_rpc_interface(talloc_autofree_context(), &dcerpc_table_samr);
|
||||
|
||||
if(!NT_STATUS_IS_OK(status)) {
|
||||
gtk_show_ntstatus(mainwin, "While connecting to SAMR interface", status);
|
||||
sam_pipe = NULL;
|
||||
gtk_widget_destroy(GTK_WIDGET(d));
|
||||
talloc_free(mem_ctx);
|
||||
if (!sam_pipe)
|
||||
return;
|
||||
}
|
||||
|
||||
r.in.system_name = 0;
|
||||
r.in.access_mask = SEC_FLAG_MAXIMUM_ALLOWED;
|
||||
@ -149,30 +135,26 @@ static void connect_sam(void)
|
||||
if (!NT_STATUS_IS_OK(status)) {
|
||||
gtk_show_ntstatus(mainwin, "While running connect on SAMR", status);
|
||||
sam_pipe = NULL;
|
||||
gtk_widget_destroy(GTK_WIDGET(d));
|
||||
talloc_free(mem_ctx);
|
||||
return;
|
||||
}
|
||||
|
||||
gtk_widget_set_sensitive (seldomain, TRUE);
|
||||
gtk_widget_set_sensitive (mnu_disconnect, TRUE);
|
||||
gtk_window_set_title (GTK_WINDOW (mainwin), talloc_asprintf(mem_ctx, "User Manager - Connected to %s", gtk_rpc_binding_dialog_get_host(d)));
|
||||
gtk_widget_destroy(GTK_WIDGET(d));
|
||||
|
||||
sam_pipe = talloc_reference(talloc_autofree_context(), sam_pipe);
|
||||
talloc_free(mem_ctx);
|
||||
|
||||
}
|
||||
|
||||
static void on_connect_activate (GtkMenuItem *menuitem, gpointer user_data)
|
||||
{
|
||||
connect_sam();
|
||||
/* FIXME: Connect to default domain */
|
||||
}
|
||||
|
||||
static void on_disconnect_activate (GtkMenuItem *menuitem, gpointer user_data)
|
||||
{
|
||||
gtk_widget_set_sensitive (mnu_disconnect, FALSE);
|
||||
gtk_window_set_title (GTK_WINDOW (mainwin), "User Manager");
|
||||
}
|
||||
|
||||
static void on_quit_activate (GtkMenuItem *menuitem, gpointer user_data)
|
||||
@ -230,6 +212,8 @@ static GtkWidget* create_mainwindow (void)
|
||||
GtkWidget *new1;
|
||||
GtkWidget *separatormenuitem1;
|
||||
GtkWidget *quit;
|
||||
GtkCellRenderer *renderer;
|
||||
GtkTreeViewColumn *curcol;
|
||||
GtkWidget *policies;
|
||||
GtkWidget *policies_menu;
|
||||
GtkWidget *account;
|
||||
@ -297,8 +281,6 @@ static GtkWidget* create_mainwindow (void)
|
||||
new1 = gtk_image_menu_item_new_from_stock ("gtk-new", accel_group);
|
||||
gtk_container_add (GTK_CONTAINER (menuitem1_menu), new1);
|
||||
|
||||
|
||||
|
||||
policies = gtk_menu_item_new_with_mnemonic ("_Policies");
|
||||
gtk_container_add (GTK_CONTAINER (menubar), policies);
|
||||
gtk_widget_set_sensitive (policies, FALSE);
|
||||
@ -350,12 +332,60 @@ static GtkWidget* create_mainwindow (void)
|
||||
user_list = gtk_tree_view_new ();
|
||||
gtk_container_add (GTK_CONTAINER (scrolledwindow1), user_list);
|
||||
|
||||
curcol = gtk_tree_view_column_new();
|
||||
gtk_tree_view_column_set_title(curcol, "Name");
|
||||
renderer = gtk_cell_renderer_text_new();
|
||||
gtk_tree_view_column_pack_start(curcol, renderer, True);
|
||||
gtk_tree_view_append_column(GTK_TREE_VIEW(user_list), curcol);
|
||||
gtk_tree_view_column_add_attribute(curcol, renderer, "text", 0);
|
||||
|
||||
curcol = gtk_tree_view_column_new();
|
||||
gtk_tree_view_column_set_title(curcol, "Description");
|
||||
renderer = gtk_cell_renderer_text_new();
|
||||
gtk_tree_view_column_pack_start(curcol, renderer, True);
|
||||
gtk_tree_view_append_column(GTK_TREE_VIEW(user_list), curcol);
|
||||
gtk_tree_view_column_add_attribute(curcol, renderer, "text", 1);
|
||||
|
||||
curcol = gtk_tree_view_column_new();
|
||||
gtk_tree_view_column_set_title(curcol, "RID");
|
||||
renderer = gtk_cell_renderer_text_new();
|
||||
gtk_tree_view_column_pack_start(curcol, renderer, True);
|
||||
gtk_tree_view_append_column(GTK_TREE_VIEW(user_list), curcol);
|
||||
gtk_tree_view_column_add_attribute(curcol, renderer, "text", 1);
|
||||
|
||||
store_users = gtk_list_store_new(3, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT);
|
||||
gtk_tree_view_set_model(GTK_TREE_VIEW(user_list), GTK_TREE_MODEL(store_users));
|
||||
|
||||
scrolledwindow2 = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_paned_pack2 (GTK_PANED (vpaned), scrolledwindow2, TRUE, TRUE);
|
||||
|
||||
group_list = gtk_tree_view_new ();
|
||||
gtk_container_add (GTK_CONTAINER (scrolledwindow2), group_list);
|
||||
|
||||
curcol = gtk_tree_view_column_new();
|
||||
gtk_tree_view_column_set_title(curcol, "Name");
|
||||
renderer = gtk_cell_renderer_text_new();
|
||||
gtk_tree_view_column_pack_start(curcol, renderer, True);
|
||||
gtk_tree_view_append_column(GTK_TREE_VIEW(group_list), curcol);
|
||||
gtk_tree_view_column_add_attribute(curcol, renderer, "text", 0);
|
||||
|
||||
curcol = gtk_tree_view_column_new();
|
||||
gtk_tree_view_column_set_title(curcol, "Description");
|
||||
renderer = gtk_cell_renderer_text_new();
|
||||
gtk_tree_view_column_pack_start(curcol, renderer, True);
|
||||
gtk_tree_view_append_column(GTK_TREE_VIEW(group_list), curcol);
|
||||
gtk_tree_view_column_add_attribute(curcol, renderer, "text", 1);
|
||||
|
||||
curcol = gtk_tree_view_column_new();
|
||||
gtk_tree_view_column_set_title(curcol, "RID");
|
||||
renderer = gtk_cell_renderer_text_new();
|
||||
gtk_tree_view_column_pack_start(curcol, renderer, True);
|
||||
gtk_tree_view_append_column(GTK_TREE_VIEW(group_list), curcol);
|
||||
gtk_tree_view_column_add_attribute(curcol, renderer, "text", 1);
|
||||
|
||||
store_groups = gtk_list_store_new(3, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_INT);
|
||||
gtk_tree_view_set_model(GTK_TREE_VIEW(group_list), GTK_TREE_MODEL(store_groups));
|
||||
|
||||
statusbar = gtk_statusbar_new ();
|
||||
gtk_box_pack_start (GTK_BOX (vbox1), statusbar, FALSE, FALSE, 0);
|
||||
|
||||
|
@ -22,9 +22,7 @@
|
||||
#include "includes.h"
|
||||
#include "gtk/common/gtk-smb.h"
|
||||
|
||||
|
||||
GtkWidget*
|
||||
create_user_edit_dialog (void)
|
||||
GtkWidget* create_user_edit_dialog (void)
|
||||
{
|
||||
GtkWidget *user_edit_dialog;
|
||||
GtkWidget *dialog_vbox1;
|
||||
|
Loading…
Reference in New Issue
Block a user