mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-01-06 10:46:21 +08:00
a0277ef986
(but mainly commiting because of the gserver switch)
114 lines
3.0 KiB
C++
114 lines
3.0 KiB
C++
#include "cpluscommon.h"
|
|
#include "gtk.h"
|
|
#include <lber.h>
|
|
#include <ldap.h>
|
|
#include <My_Window.h>
|
|
#include <Gtk_LdapItem.h>
|
|
#include <Gtk_LdapServer.h>
|
|
|
|
int debug_level = 0;
|
|
|
|
target_drag_leave(GdkDragContext *context, guint time) {
|
|
}
|
|
|
|
int main(int argc, char **argv) {
|
|
My_Window *window;
|
|
Gtk_LdapItem *treeresult;
|
|
Gtk_Tree *tree = NULL, *subtree = NULL;
|
|
Gtk_Tree *machine, *machinetree;
|
|
Gtk_LdapServer *server;
|
|
Gtk_Viewport *viewport;
|
|
char *host = NULL, *prt = NULL;
|
|
char *base_dn = NULL;
|
|
int c, port = 0;
|
|
GList *hosts = NULL;
|
|
int host_count = 0;
|
|
char *pair[2];
|
|
|
|
//hosts = new G_List<char>();
|
|
while ((c = getopt(argc, argv, "d:s:p:h")) != -1) {
|
|
switch (c) {
|
|
case 'd':
|
|
debug_level = atoi(optarg);
|
|
break;
|
|
case 's':
|
|
debug("host\n");
|
|
hosts = g_list_append(hosts, (strdup(optarg)));
|
|
break;
|
|
case 'p':
|
|
port = atoi(optarg); break;
|
|
case 'h':
|
|
default:
|
|
fprintf(stderr, "Usage: %s [-d level] [-s server[:port]]*\n", argv[0]);
|
|
exit(-1);
|
|
}
|
|
fprintf(stderr,"b");
|
|
}
|
|
debug("%i hosts\n", g_list_length(hosts));
|
|
if (g_list_length(hosts) == 0) {
|
|
#ifndef LDAP_GET_OPT
|
|
ldap_get_option(NULL, LDAP_OPT_HOST_NAME, host);
|
|
#endif /* LDAP_GET_OPT */
|
|
if (host!=NULL) {
|
|
hosts = g_list_append(hosts, host);
|
|
debug("Default host: %s\n", host);
|
|
} else {
|
|
#ifndef LDAP_GET_OPT
|
|
fprintf(stderr,"Why isn't your LDAP_OPT_HOST_NAME defined?\n");
|
|
#endif
|
|
fprintf(stderr,"Supply me with a host please (hint: use -s)\n");
|
|
}
|
|
} else {
|
|
for (int f=0; f<g_list_length(hosts); f++) {
|
|
debug("%s\n", g_list_nth(hosts,f)->data);
|
|
}
|
|
}
|
|
if (port == 0) port = LDAP_PORT;
|
|
|
|
Gtk_Main m(&argc, &argv);
|
|
|
|
window = new My_Window(GTK_WINDOW_TOPLEVEL);
|
|
|
|
if (hosts!=NULL) {
|
|
tree = new Gtk_Tree();
|
|
window->viewport->add(*tree);
|
|
for (int f=0; f<g_list_length(hosts); f++) {
|
|
host = strtok((char*)g_list_nth(hosts, f)->data, ":");
|
|
prt = strtok(NULL, "\0");
|
|
if (prt != NULL) port = atoi(prt);
|
|
else port = LDAP_PORT;
|
|
server = new Gtk_LdapServer(window, host, port);
|
|
subtree = server->getSubtree();
|
|
tree->append(*server);
|
|
server->set_subtree(*subtree);
|
|
server->show();
|
|
}
|
|
//window->viewport->add(*tree);
|
|
// tree->show();
|
|
}
|
|
|
|
// window->viewport->show();
|
|
// window->scroller->show();
|
|
|
|
//Select first server
|
|
if (tree != NULL) {
|
|
Gtk_LdapTree::ItemList &items = tree->tree();
|
|
Gtk_LdapTree::ItemList::iterator i = items.begin();
|
|
server = (Gtk_LdapServer *)(* i);
|
|
// server->select_impl();
|
|
}
|
|
|
|
window->set_title("gtk-tool");
|
|
window->activate();
|
|
window->set_usize(600, 500);
|
|
|
|
window->set_events(window->get_events()|GDK_ALL_EVENTS_MASK);
|
|
window->drag_dest_set(GTK_DEST_DEFAULT_ALL, target_table, n_targets, static_cast <GdkDragAction> (GDK_ACTION_COPY|GDK_ACTION_MOVE));
|
|
window->drag_source_set(static_cast<GdkModifierType>(GDK_BUTTON1_MASK|GDK_BUTTON3_MASK), target_table, n_targets, static_cast<GdkDragAction>(GDK_ACTION_COPY|GDK_ACTION_MOVE));
|
|
window->drag_leave.connect(window->slot(window,target_drag_leave));
|
|
window->show_all();
|
|
|
|
m.run();
|
|
return 0;
|
|
}
|