]> git.sur5r.net Git - openldap/commitdiff
Update contrib to latest -devel. OPENLDAP_REL_ENG_1_1_BETA
authorKurt Zeilenga <kurt@openldap.org>
Tue, 1 Dec 1998 08:22:56 +0000 (08:22 +0000)
committerKurt Zeilenga <kurt@openldap.org>
Tue, 1 Dec 1998 08:22:56 +0000 (08:22 +0000)
16 files changed:
contrib/gtk-tool/ChangeLog
contrib/gtk-tool/Gtk_LdapItem.cc [deleted file]
contrib/gtk-tool/Gtk_LdapItem.h
contrib/gtk-tool/Gtk_LdapServer.cc [new file with mode: 0644]
contrib/gtk-tool/Gtk_LdapServer.h [new file with mode: 0644]
contrib/gtk-tool/Gtk_LdapTreeItem.cc
contrib/gtk-tool/LdapEntry.cc [deleted file]
contrib/gtk-tool/LdapEntry.h [deleted file]
contrib/gtk-tool/Makefile
contrib/gtk-tool/My_Scroller.cc [deleted file]
contrib/gtk-tool/My_Scroller.h [deleted file]
contrib/gtk-tool/My_Window.cc
contrib/gtk-tool/My_Window.h
contrib/gtk-tool/db_node.xpm [deleted file]
contrib/gtk-tool/ldap_manager.cc [deleted file]
contrib/gtk-tool/main.cc

index dbd38b36de5fc1b5b98fe27155853bd724e64fd3..097ae5670750ee9ed6c33ae8301e9be4a4efe2f6 100644 (file)
@@ -1,5 +1,15 @@
 ChangeLog for gtk-tool
 
+29/11/1998 - Pele
+       * Added Gtk_LdapServer class
+       * Started using cn=config, ldap_get_option (not sure about get_option
+       though, cn=config looks much nicer for the future-proofing)
+       * Can traverse, display and serve two (or possibly/hopefully) more
+       databases on the local machine - remote machines also possible - 
+       need to use "-s hostname"
+       * The program needs the "-s" switch! Without it it won't run (temporary
+       "feature")
+
 28/11/1998 - Pele
        * Fixes, enhancements, started using ldap utility api
        * It now traverses the whole tree at startup, not sure if it's smart
diff --git a/contrib/gtk-tool/Gtk_LdapItem.cc b/contrib/gtk-tool/Gtk_LdapItem.cc
deleted file mode 100644 (file)
index 0801101..0000000
+++ /dev/null
@@ -1,38 +0,0 @@
-#include "Gtk_LdapItem.h"
-
-Gtk_LdapItem::Gtk_LdapItem() : Gtk_TreeItem() {
-       cout << "Gtk_LdapItem()" << endl;
-}
-
-Gtk_LdapItem::Gtk_LdapItem(char *c) : Gtk_TreeItem() {
-       cout << "Gtk_LdapItem(" << c << ")" << endl;
-       this->dn = c;
-}
-
-Gtk_LdapItem::Gtk_LdapItem(Gtk_TreeItem *item) : Gtk_TreeItem(*item) {
-       cout << "Gtk_LdapItem(*item)" << endl;  
-}
-
-Gtk_LdapItem::Gtk_LdapItem(Gtk_TreeItem &item) : Gtk_TreeItem(item) {
-       cout << "Gtk_LdapItem(&item)" << endl;  
-}
-
-void Gtk_LdapItem::expand_impl() {
-       cout << this->dn << " expanded" << endl;
-}
-
-void Gtk_LdapItem::collapse_impl() {
-       cout << this->dn << " collapsed" << endl;
-}
-
-void Gtk_LdapItem::select_impl() {
-       cout << this->dn << " selected" << endl;
-}
-
-void Gtk_LdapItem::deselect_impl() {
-       cout << this->dn << " deselected" << endl;
-}
-
-void Gtk_LdapItem::toggle_impl() {
-       cout << this->dn << " toggled" << endl;
-}
index 8d63a1498a1ede13e4fb187380ac327ad987f65d..73c1a7cd145337361d03a0f9d8fdf857311e2e84 100644 (file)
@@ -9,5 +9,9 @@ class Gtk_LdapItem {
 public:
        Gtk_Tree *tree;
        Gtk_LdapTreeItem *treeitem;
+       G_List<gchar> *value_list;
+       char *attribute_name;
+       G_List<Gtk_LdapItem> *attribute_list;
+       char *entry_name;
 };
 #endif
diff --git a/contrib/gtk-tool/Gtk_LdapServer.cc b/contrib/gtk-tool/Gtk_LdapServer.cc
new file mode 100644 (file)
index 0000000..a445981
--- /dev/null
@@ -0,0 +1,244 @@
+#include "Gtk_LdapServer.h"
+#include <gtk--/base.h>
+
+Gtk_LdapServer::Gtk_LdapServer() : Gtk_TreeItem() {
+       this->hostname = NULL;
+       this->par = NULL;
+       this->base_dn = NULL;
+       this->port = 0;
+}
+
+Gtk_LdapServer::Gtk_LdapServer(My_Window *w, char *h, int p) : Gtk_TreeItem() {
+       this->par = w;
+       this->hostname = h;
+       this->port = p;
+       cout << this->hostname << this->port << endl;
+       this->getConfig();
+}
+
+Gtk_LdapServer::Gtk_LdapServer(GtkTreeItem *t) : Gtk_TreeItem(t) {
+}
+
+Gtk_LdapServer::~Gtk_LdapServer() {
+       cout << "Bye" << endl;
+       delete this;
+}
+
+void Gtk_LdapServer::setType(int t) {
+       cout << "Gtk_LdapServer::setType(" << t << ")" << endl;
+       Gtk_Pixmap *xpm_icon;
+       Gtk_Label *label;
+       if (this->getchild() != NULL) {
+               xpm_label = new Gtk_HBox(GTK_HBOX(this->getchild()->gtkobj()));
+               xpm_label->remove_c(xpm_label->children()->nth_data(0));
+               xpm_label->remove_c(xpm_label->children()->nth_data(0));
+       }
+       else xpm_label = new Gtk_HBox();
+       cout << this->hostname << endl;
+       if (strcasecmp(this->hostname,"localhost") == 0)
+               xpm_icon=new Gtk_Pixmap(*xpm_label, local_server);
+       else xpm_icon=new Gtk_Pixmap(*xpm_label, remote_server);
+       label = new Gtk_Label(this->hostname);
+       xpm_label->pack_start(*xpm_icon, false, false, 1);
+       xpm_label->pack_start(*label, false, false, 1);
+       if (this->getchild() == NULL) this->add(xpm_label);
+       label->show();
+       xpm_label->show();
+       xpm_icon->show();
+}
+
+int Gtk_LdapServer::showDetails() {
+       cout << "Gtk_LdapServer::showDetails()" << endl;
+       this->getDetails();
+       /*
+       if (this->notebook != NULL) {
+               if (par->viewport->getchild() != NULL) {
+                       par->viewport->remove_c(par->viewport->getchild()->gtkobj());
+               }
+               par->viewport->add(this->notebook);
+               this->notebook->show();
+               par->viewport->show();
+               return 0;
+       }
+       else this->getDetails();
+       this->showDetails();
+       */
+       return 0;
+}
+
+int Gtk_LdapServer::getConfig() {
+       cout << "Gtk_LdapServer::getConfig()" << endl;
+       int error, entriesCount;
+       LDAPMessage *entry, *result_identifier;
+       BerElement *ber;
+       char *attribute, **t;
+
+       if ((this->ld = ldap_open(this->hostname, this->port)) == NULL) {
+               perror("connection");
+       }
+
+       error = ldap_search_s(this->ld, "cn=config", LDAP_SCOPE_BASE, "objectclass=*", NULL, 0, &result_identifier);    
+       entriesCount = ldap_count_entries(this->ld, result_identifier);
+       if (entriesCount == 0) {
+               return 0;
+       }
+
+       cout << entriesCount << " entry" << endl;
+       for (entry = ldap_first_entry(this->ld, result_identifier); entry != NULL; entry = ldap_next_entry(this->ld, result_identifier)) {
+               for (attribute = ldap_first_attribute(this->ld, entry, &ber); attribute != NULL; attribute = ldap_next_attribute(this->ld, entry, ber)) {
+                       cout << "Attrib: " << attribute << endl;
+                       if (strcasecmp(attribute, "database") == 0) {
+                               cout << "have database here" << endl;
+                               this->databases = new G_List<char>;
+                               t = ldap_get_values(this->ld, entry, attribute);
+                               for (int i=0; i<ldap_count_values(t); i++) {
+                                       this->databases->append(strdup(t[i]));
+                               }
+                               ldap_value_free(t);
+                               cout << "databases loaded" << endl;
+                               for (int i=0; i<this->databases->length(); i++) {
+                                       cout << "database(" << i << ") " << this->databases->nth_data(i) << endl;
+                               }       
+                       }
+               }
+               cout << "entry done" << endl;
+       }
+//     cout << "got " << entriesCount << " entries" << endl;
+       return entriesCount;
+}
+
+int Gtk_LdapServer::getDetails() {
+       cout << "Gtk_LdapServer::getDetails()" << endl;
+       Gtk_HBox *hbox;
+       Gtk_VBox *vbox;
+       Gtk_Label *label;       
+       Gtk_RadioButton *radio1, *radio2;
+       char *val;
+       int ival;
+
+       if (GTK_TREE_ITEM(this->gtkobj())->subtree == NULL) {
+               this->getSubtree();
+       }
+
+/*
+       cout << "getting ldap options";
+       vbox = new Gtk_VBox();
+       opt_util = new LdapOpts();
+
+       for (int i=0; i<sizeof(things); i++) {
+               cout << i << endl;
+               hbox = new Gtk_HBox();
+               label = new Gtk_Label(LdapOpts->getOption(things[i]);
+               hbox->pack_start(*label);
+               label->show();
+               int tipus = opt_util->getType(things[i]);
+               switch (tipus) {
+                       case 0:
+                               ldap_get_option(NULL, things[i], &val);
+                               label = new Gtk_Label(val);
+                               break;
+                       case 1:
+                               ldap_get_option(NULL, numerals[i], &ival);
+                               sprintf(val, "%i", ival);
+                               label = new Gtk_Label(val);
+                               break;
+                       case 2:
+                               ldap_get_option(NULL, booleans[i], &ival);
+                               sprintf(val, "%s", ival == (int) LDAP_OPT_ON ? "on" : "off");
+                               label = new Gtk_Label(val);
+                               break;
+                       default:
+                               break;
+               }
+
+               hbox->pack_start(*label);
+               label->show();
+               vbox->pack_start(*hbox);
+               hbox->show();
+               
+       }
+
+       vbox->border_width(2);
+       this->notebook = new Gtk_Viewport();
+       this->notebook->add(*vbox);
+       vbox->show();
+*/
+       this->setType(1);
+       return 0;
+}
+
+int Gtk_LdapServer::getSubtree() {
+       cout << "Gtk_LdapServer::getSubtree()" << endl;
+       Gtk_LdapItem *treeresult;
+       Gtk_Tree *tree, *subtree;
+       Gtk_LdapTreeItem *treeitem;
+       int entries;
+
+       cout << "this->hostname=" << this->hostname << endl;
+       cout << "this->port=" << this->port << endl;
+/*     if ((this->ld = ldap_open(this->hostname, this->port)) == NULL) {
+               perror("connection");
+       }
+*/
+
+       char *c;
+       char *tok;
+
+       int len = this->databases->length();
+       cout << "this->databases->length()=" << len << endl;
+
+       tree = new Gtk_Tree();
+       for (int i=0; i<len; i++) {
+               tok = strdup(this->databases->nth_data(i));
+               tok = strtok(tok, ":");
+               c = strtok(NULL, "\0");
+               cout << "database " << i << " " << c << endl;
+               treeresult = this->par->make_tree(this->par, this->ld, c);
+               treeitem = new Gtk_LdapTreeItem(*treeresult->treeitem);
+               tree->append(*treeitem);
+               if (treeresult->tree != NULL) {
+                       subtree = new Gtk_Tree(*treeresult->tree);
+                       treeitem->set_subtree(*subtree);
+               }
+               treeitem->show();
+       //      tree->show();
+       }
+       this->set_subtree(*tree);
+       cout << "getTree() done" << endl;
+       return 0;
+}
+
+void Gtk_LdapServer::select_impl() {
+       cout << this->hostname << " selected" << endl;
+//     gtk_item_select(GTK_ITEM(GTK_TREE_ITEM(this->gtkobj())));
+       Gtk_c_signals_Item *sig=(Gtk_c_signals_Item *)internal_getsignalbase();
+       if (!sig->select) return;
+       sig->select(GTK_ITEM(gtkobj()));
+       this->showDetails();
+}
+
+void Gtk_LdapServer::collapse_impl() {
+//     cout << this->dn << " collapsed" << endl;
+       Gtk_c_signals_TreeItem *sig=(Gtk_c_signals_TreeItem *)internal_getsignalbase();
+       if (!sig->collapse) return;
+       sig->collapse(GTK_TREE_ITEM(gtkobj()));
+//     gtk_widget_hide(GTK_WIDGET(GTK_TREE(GTK_TREE_ITEM (this->gtkobj())->subtree)));
+}
+
+void Gtk_LdapServer::expand_impl() {
+//     cout << this->dn << " expanded" << endl;
+       Gtk_c_signals_TreeItem *sig=(Gtk_c_signals_TreeItem *)internal_getsignalbase();
+       if (!sig->expand) return;
+       sig->expand(GTK_TREE_ITEM(gtkobj()));
+//     Gtk_Tree *t;
+//     t = new Gtk_Tree(GTK_TREE(GTK_TREE_ITEM(this->gtkobj())->subtree));
+//     bool vis = t->visible();
+//     if (vis == false) {
+//             gtk_widget_show(GTK_WIDGET(GTK_TREE(GTK_TREE_ITEM (this->gtkobj())->subtree)));
+//             cout << this->dn << " expanded" << endl;
+//     }
+//     else {
+//             gtk_widget_hide(GTK_WIDGET(GTK_TREE(GTK_TREE_ITEM (this->gtkobj())->subtree)));
+//             cout << this->dn << " collapsed" << endl;
+//     }
+}
diff --git a/contrib/gtk-tool/Gtk_LdapServer.h b/contrib/gtk-tool/Gtk_LdapServer.h
new file mode 100644 (file)
index 0000000..21c1a1e
--- /dev/null
@@ -0,0 +1,46 @@
+#ifndef GTK_LDAPSERVER_H
+#define GTK_LDAPSERVER_H
+#include "gtk.h"
+#include <My_Window.h>
+/*#include <LdapOpts.h>*/
+#include <Gtk_LdapItem.h>
+#include <Gtk_LdapTreeItem.h>
+#include <lber.h>
+#include <ldap.h>
+#include "icons/local_server.h"
+#include "icons/remote_server.h"
+
+#define LOCAL_SERVER 1
+#define REMOTE_SERVER 2
+
+class My_Window;
+
+class Gtk_LdapServer : public Gtk_TreeItem {
+public:
+       char *dn;
+       char *hostname;
+       LDAPMessage **thing;
+       LDAP *ld;
+       char *host;
+       char *base_dn;
+       int c, port;
+       My_Window *par;
+//     Gtk_Notebook *notebook;
+       Gtk_Viewport *notebook;
+       Gtk_HBox *xpm_label;
+//     Gtk_Tree *subtree;
+       G_List<char> *databases;
+       Gtk_LdapServer();
+       Gtk_LdapServer(My_Window *w, char *c, int p);
+       Gtk_LdapServer(GtkTreeItem *t);
+       ~Gtk_LdapServer();
+       void setType(int t);
+       int getConfig();
+       int getSubtree();
+       int getDetails();
+       int showDetails();
+       void select_impl();
+       void collapse_impl();
+       void expand_impl();
+};
+#endif
index 7efcb58d6c408ce2e0d57a14a828ac86950eb4b3..5a44bd3ef019570561a620a269113c2c7032eabf 100644 (file)
@@ -20,7 +20,7 @@ Gtk_LdapTreeItem::~Gtk_LdapTreeItem() {
 }
 
 void Gtk_LdapTreeItem::setType(int t) {
-       cout << "Gtk_LdapTreeItem::setType(" << t << ")" << endl;
+//     cout << "Gtk_LdapTreeItem::setType(" << t << ")" << endl;
        Gtk_Pixmap *xpm_icon;
        Gtk_Label *label;
        if (this->getchild() != NULL) {
@@ -46,7 +46,7 @@ void Gtk_LdapTreeItem::setType(int t) {
 }
 
 int Gtk_LdapTreeItem::showDetails() {
-       cout << "Gtk_LdapTreeItem::showDetails()" << endl;
+//     cout << "Gtk_LdapTreeItem::showDetails()" << endl;
        if (this->notebook != NULL) {
                if (par->viewport->getchild() != NULL) {
                        par->viewport->remove_c(par->viewport->getchild()->gtkobj());
@@ -58,10 +58,11 @@ int Gtk_LdapTreeItem::showDetails() {
        }
        else this->getDetails();
        this->showDetails();
+       return 0;
 }
 
 int Gtk_LdapTreeItem::getDetails() {
-       cout << "Gtk_LdapTreeItem::getDetails()" << endl;
+//     cout << "Gtk_LdapTreeItem::getDetails()" << endl;
        int error, entriesCount;
        BerElement *ber;
        LDAPMessage *entry;
@@ -99,7 +100,7 @@ int Gtk_LdapTreeItem::getDetails() {
                }
        }
        this->setType(1);
-       cout << ".";
+//     cout << ".";
        return 0;
 }
 void Gtk_LdapTreeItem::select_impl() {
diff --git a/contrib/gtk-tool/LdapEntry.cc b/contrib/gtk-tool/LdapEntry.cc
deleted file mode 100644 (file)
index 0bf6bc0..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-#include "LdapEntry.h"
-
-LdapEntry* LdapEntry::get_entries(LDAP *ld, char *base_dn, int level,char *filter) {
-       printf("get_entries(%s)\n", base_dn);
-       LDAPMessage **result, *entry;
-       Entry *thing;
-       char *pele;
-       int res;
-       res = ldap_search(ld, base_dn, level, filter, NULL, 0);
-       res = ldap_result(ld, res, 1, NULL, result);
-       printf("%s\n", ldap_err2string(ldap_result2error(ld, *result, 1)));
-       int num_entries = ldap_count_entries(ld, *result);
-       printf("%i results\n", num_entries);
-       int i=0;
-       entry = ldap_first_entry(ld, *result);
-       thing->dn = ldap_get_dn(ld, entry);
-       pele = ldap_get_dn(ld, entry);
-       printf("%s\n", thing->dn);
-       while (entry) {
-               printf("Child %i\n", i);
-               thing->child[i] = get_entries(ld, pele, LDAP_SCOPE_ONELEVEL, filter);
-               i++;
-               entry = ldap_next_entry(ld, entry);
-       }
-       return thing;
-}
-
-Gtk_Tree *LdapEntry::make_tree(Entry *thing) {
-       Gtk_Tree *tree, **subtree;
-       Gtk_TreeItem *treeitem;
-       gchar *c;
-       tree = new Gtk_Tree();
-       tree->set_selection_mode(GTK_SELECTION_BROWSE);
-       tree->set_view_mode(GTK_TREE_VIEW_ITEM);
-       tree->set_view_lines(false);
-       c = g_strdup_printf("%s", thing->dn);
-       printf("%s\n", c);
-       treeitem = new Gtk_TreeItem(c);
-       tree->append(treeitem);
-       treeitem->show();
-       int i=0;
-       while (thing->child[i]) {
-               subtree[i] = make_tree(thing->child[i]);
-               treeitem->set_subtree(subtree[i]);
-               i++;
-       }
-       tree->show();
-       return tree;
-}
diff --git a/contrib/gtk-tool/LdapEntry.h b/contrib/gtk-tool/LdapEntry.h
deleted file mode 100644 (file)
index 3ee2b97..0000000
+++ /dev/null
@@ -1,15 +0,0 @@
-#ifdef MY_LDAP_ENTRY_H
-#define MY_LDAP_ENTRY_H
-#include "common.h"
-#include "gtk.h"
-#include <lber.h>
-#include <ldap.h>
-
-class LdapEntry {
-public:
-       char *dn;
-       LdapEntry **children;
-       LdapEntry* get_entries(LDAP *ld, char *base_dn, int level, char *filter);
-       Gtk_Tree* make_tree(LdapEntry *thing);
-}
-#endif
index 65a52f157f2a35cc713f0a775d4f03a91f3234ed..9932f81945acd4adb7f4fb7f844165d232c7ee0a 100644 (file)
@@ -8,8 +8,8 @@ LIBS=-lXext -lgtkmm -lX11 -lXt -lXxf86dga
 
 .EXPORT_ALL_VARIABLES:
 
-SOURCES=       My_Window.cc Gtk_LdapTreeItem.cc main.cc
-OBJECTS=       My_Window.o Gtk_LdapTreeItem.o main.o
+SOURCES=       My_Window.cc Gtk_LdapTreeItem.cc Gtk_LdapServer.cc main.cc
+OBJECTS=       My_Window.o Gtk_LdapTreeItem.o Gtk_LdapServer.o main.o
 
 ################################################################################
 
diff --git a/contrib/gtk-tool/My_Scroller.cc b/contrib/gtk-tool/My_Scroller.cc
deleted file mode 100644 (file)
index 0f73c8a..0000000
+++ /dev/null
@@ -1,19 +0,0 @@
-#include "My_Scroller.h"
-
-#include <gtk--/container.h>
-
-void My_Scroller::remove_child(int i) {
-       cout << "Unparenting child[" << i << "]" << endl;
-       this->children[i]->unparent();
-       cout << "Deleting child[" << i << "] from children" << endl;
-//     this->remove(children()->first());
-       delete this->children[i];
-       cout << "done" << endl;
-}
-void My_Scroller::add_child(Gtk_Widget *w) {
-       cout << "My_Scroller::add_child()" << endl;
-//     w->reparent(this);
-       this->add(w);
-       cout << "done" << endl;
-       this->children[0] = w;
-}
diff --git a/contrib/gtk-tool/My_Scroller.h b/contrib/gtk-tool/My_Scroller.h
deleted file mode 100644 (file)
index 15ff26c..0000000
+++ /dev/null
@@ -1,12 +0,0 @@
-#ifndef MY_SCROLLER_H
-#define MY_SCROLLER_H
-#include <gtk--/container.h>
-#include "gtk.h"
-
-class My_Scroller : public Gtk_ScrolledWindow {
-public:
-       Gtk_Widget *children[2];
-       void add_child(Gtk_Widget *w);
-       void remove_child(int i);
-};
-#endif
index 6fbe8c45c954673a8e347555e1bcae5fe0fa6e64..cece9bdd8fcd90c0529ef25d329561907ad485df 100644 (file)
@@ -4,6 +4,8 @@ My_Window::My_Window(GtkWindowType t) : Gtk_Window(t) {
        cout << "My_Window(t)" << endl;
        Gtk_VBox *main_hbox;
        Gtk_HBox *top_hbox;
+       Gtk_Menu *menu;
+       Gtk_MenuItem *file_menu, *menuitem;
 
        pane = new Gtk_HPaned();
        this->scroller = new Gtk_ScrolledWindow();
@@ -21,6 +23,18 @@ My_Window::My_Window(GtkWindowType t) : Gtk_Window(t) {
        this->scroller2->show();
 
        top_hbox = new Gtk_HBox();
+       menu = new Gtk_Menu();
+       menuitem = new Gtk_MenuItem("Quit");
+       menu->append(*menuitem);
+       this->menubar = new Gtk_MenuBar();
+       file_menu = new Gtk_MenuItem("File");
+       file_menu->set_submenu(menu);
+       this->menubar->append(*file_menu);
+       menuitem->show();
+       menu->show();
+       file_menu->show();
+//     top_hbox->pack_start(*this->menubar, TRUE, TRUE, 1);
+       this->menubar->show();
        this->urlfield = new Gtk_Entry();
        top_hbox->pack_start(*this->urlfield, TRUE, TRUE, 1);
        this->urlfield->show();
@@ -30,6 +44,7 @@ My_Window::My_Window(GtkWindowType t) : Gtk_Window(t) {
        this->display_button->show();
 
        main_hbox = new Gtk_VBox();
+       main_hbox->pack_start(*this->menubar, FALSE, FALSE, 1);
        main_hbox->pack_start(*top_hbox, FALSE, TRUE, 1);
        main_hbox->pack_end(*pane, TRUE, TRUE, 1);
        top_hbox->show();
@@ -54,7 +69,7 @@ void My_Window::expand(Gtk_TreeItem *t) {
        g_print("%s selected\n", name);
 }
 
-gint My_Window::delete_event_impl(GdkEventAny *) {
+gint My_Window::delete_event_impl(GdkEventAny*) {
        Gtk_Main::instance()->quit();
        return 0;
 }
index f39091ef0aa6c1f8dccd86d539b963b664940ccb..93b86f8ec89864c258dbb1c96ecf80bb9e075ccc 100644 (file)
@@ -19,6 +19,7 @@ public:
        Gtk_Entry *urlfield;
        Gtk_Button *display_button;
        Gtk_Paned *pane;
+       Gtk_MenuBar *menubar;
        My_Window(GtkWindowType t);
        ~My_Window();
        void do_display();
diff --git a/contrib/gtk-tool/db_node.xpm b/contrib/gtk-tool/db_node.xpm
deleted file mode 100644 (file)
index 698b2e2..0000000
+++ /dev/null
@@ -1,364 +0,0 @@
-/* XPM */
-static char * db_node_xpm[] = {
-"100 100 261 2",
-"      c None",
-".     c #010101",
-"+     c #080808",
-"@     c #090909",
-"#     c #0A0909",
-"$     c #121111",
-"%     c #222121",
-"&     c #2A2929",
-"*     c #191919",
-"=     c #0E0E0E",
-"-     c #060606",
-";     c #000000",
-">     c #030303",
-",     c #1A1919",
-"'     c #1C1B1B",
-")     c #2F2E2E",
-"!     c #3D3C3C",
-"~     c #424141",
-"{     c #545252",
-"]     c #565454",
-"^     c #555353",
-"/     c #4F4D4D",
-"(     c #3E3D3D",
-"_     c #212121",
-":     c #080707",
-"<     c #101010",
-"[     c #2F2D2D",
-"}     c #383737",
-"|     c #504E4E",
-"1     c #514F4F",
-"2     c #4B4949",
-"3     c #302F2F",
-"4     c #252424",
-"5     c #0D0D0D",
-"6     c #020202",
-"7     c #212020",
-"8     c #4E4C4C",
-"9     c #464444",
-"0     c #323131",
-"a     c #151515",
-"b     c #525050",
-"c     c #474646",
-"d     c #141313",
-"e     c #4D4B4B",
-"f     c #424040",
-"g     c #201F1F",
-"h     c #1B1A1A",
-"i     c #454444",
-"j     c #676767",
-"k     c #242424",
-"l     c #3B3A3A",
-"m     c #535151",
-"n     c #4C4A4A",
-"o     c #1B1B1B",
-"p     c #AEAEAE",
-"q     c #DBDBDB",
-"r     c #D0D0D0",
-"s     c #777777",
-"t     c #1F1F1F",
-"u     c #464545",
-"v     c #3C3A3A",
-"w     c #3F3F3F",
-"x     c #8C8C8C",
-"y     c #EEEEEE",
-"z     c #FFFFFF",
-"A     c #E7E7E7",
-"B     c #AAAAAA",
-"C     c #575757",
-"D     c #403F3F",
-"E     c #393838",
-"F     c #2E2D2D",
-"G     c #171616",
-"H     c #272727",
-"I     c #949494",
-"J     c #BEBEBE",
-"K     c #F3F3F3",
-"L     c #C7C7C7",
-"M     c #8F8F8F",
-"N     c #606060",
-"O     c #2F2F2F",
-"P     c #222222",
-"Q     c #474545",
-"R     c #4A4848",
-"S     c #2B2A2A",
-"T     c #303030",
-"U     c #868686",
-"V     c #F7F7F7",
-"W     c #FEFEFE",
-"X     c #636363",
-"Y     c #4B4B4B",
-"Z     c #111111",
-"`     c #121212",
-" .    c #131313",
-"..    c #2C2A2A",
-"+.    c #343333",
-"@.    c #232222",
-"#.    c #171717",
-"$.    c #181818",
-"%.    c #646464",
-"&.    c #9E9E9E",
-"*.    c #D5D5D5",
-"=.    c #9B9B9B",
-"-.    c #D4D4D4",
-";.    c #F9F9F9",
-">.    c #F4F4F4",
-",.    c #C6C6C6",
-"'.    c #6D6D6D",
-").    c #CCCCCC",
-"!.    c #292929",
-"~.    c #9F9F9F",
-"{.    c #BCBCBC",
-"].    c #8B8B8B",
-"^.    c #999999",
-"/.    c #FAFAFA",
-"(.    c #DFDFDF",
-"_.    c #D9D9D9",
-":.    c #1A1A1A",
-"<.    c #EBEBEB",
-"[.    c #202020",
-"}.    c #C4C4C4",
-"|.    c #686868",
-"1.    c #727272",
-"2.    c #FCFCFC",
-"3.    c #BDBDBD",
-"4.    c #A6A6A6",
-"5.    c #9A9A9A",
-"6.    c #CACACA",
-"7.    c #D7D7D7",
-"8.    c #2E2E2E",
-"9.    c #A5A5A5",
-"0.    c #EAEAEA",
-"a.    c #B5B5B5",
-"b.    c #A8A8A8",
-"c.    c #B9B9B9",
-"d.    c #989898",
-"e.    c #D6D6D6",
-"f.    c #E9E9E9",
-"g.    c #B1B1B1",
-"h.    c #ABABAB",
-"i.    c #BABABA",
-"j.    c #969696",
-"k.    c #DCDCDC",
-"l.    c #B3B3B3",
-"m.    c #BBBBBB",
-"n.    c #909090",
-"o.    c #A1A1A1",
-"p.    c #B7B7B7",
-"q.    c #EDEDED",
-"r.    c #ECECEC",
-"s.    c #0C0C0C",
-"t.    c #8D8D8D",
-"u.    c #E1E1E1",
-"v.    c #232323",
-"w.    c #E2E2E2",
-"x.    c #DADADA",
-"y.    c #1E1E1E",
-"z.    c #E5E5E5",
-"A.    c #D3D3D3",
-"B.    c #2A2A2A",
-"C.    c #141414",
-"D.    c #AFAFAF",
-"E.    c #656565",
-"F.    c #717171",
-"G.    c #C1C1C1",
-"H.    c #313131",
-"I.    c #B0B0B0",
-"J.    c #4F4F4F",
-"K.    c #CECECE",
-"L.    c #343434",
-"M.    c #B8B8B8",
-"N.    c #363636",
-"O.    c #E0E0E0",
-"P.    c #050505",
-"Q.    c #C5C5C5",
-"R.    c #C8C8C8",
-"S.    c #262626",
-"T.    c #252525",
-"U.    c #CFCFCF",
-"V.    c #F8F8F8",
-"W.    c #0A0A0A",
-"X.    c #161616",
-"Y.    c #0B0B0B",
-"Z.    c #282828",
-"`.    c #595959",
-" +    c #505050",
-".+    c #494949",
-"++    c #D1D1D1",
-"@+    c #666666",
-"#+    c #6A6A6A",
-"$+    c #2C2C2C",
-"%+    c #ACACAC",
-"&+    c #EFEFEF",
-"*+    c #5C5C5C",
-"=+    c #797979",
-"-+    c #BFBFBF",
-";+    c #535353",
-">+    c #838383",
-",+    c #F2F2F2",
-"'+    c #828282",
-")+    c #404040",
-"!+    c #353535",
-"~+    c #3B3B3B",
-"{+    c #A9A9A9",
-"]+    c #FDFDFD",
-"^+    c #4C4C4C",
-"/+    c #FBFBFB",
-"(+    c #CDCDCD",
-"_+    c #2B2B2B",
-":+    c #F6F6F6",
-"<+    c #585858",
-"[+    c #C9C9C9",
-"}+    c #7E7E7E",
-"|+    c #E4E4E4",
-"1+    c #919191",
-"2+    c #393939",
-"3+    c #ADADAD",
-"4+    c #A3A3A3",
-"5+    c #B4B4B4",
-"6+    c #B2B2B2",
-"7+    c #E6E6E6",
-"8+    c #D2D2D2",
-"9+    c #A4A4A4",
-"0+    c #CBCBCB",
-"a+    c #F0F0F0",
-"b+    c #3A3A3A",
-"c+    c #E3E3E3",
-"d+    c #9D9D9D",
-"e+    c #767676",
-"f+    c #C3C3C3",
-"g+    c #5A5A5A",
-"h+    c #707070",
-"i+    c #747474",
-"j+    c #808080",
-"k+    c #C0C0C0",
-"l+    c #DDDDDD",
-"m+    c #3D3D3D",
-"n+    c #898989",
-"o+    c #959595",
-"p+    c #F5F5F5",
-"q+    c #848484",
-"r+    c #545454",
-"s+    c #888888",
-"t+    c #383838",
-"u+    c #7D7D7D",
-"v+    c #878787",
-"w+    c #626262",
-"x+    c #6E6E6E",
-"y+    c #4A4A4A",
-"z+    c #616161",
-"A+    c #858585",
-"B+    c #929292",
-"C+    c #F1F1F1",
-"D+    c #3C3C3C",
-"E+    c #757575",
-"F+    c #6B6B6B",
-"G+    c #C2C2C2",
-"H+    c #373737",
-"I+    c #E8E8E8",
-"J+    c #7C7C7C",
-"K+    c #565656",
-"L+    c #5F5F5F",
-"                                                                                                                                                                                                        ",
-"                                                                                                                                                                                                        ",
-"                                                                                                                                                                                                        ",
-"                                                                                                                                                                                                        ",
-"                                                                                                                                                                                                        ",
-"                                                                                                                                                                                                        ",
-"                                                                                                                                                                                                        ",
-"                                                                                                                                                                                                        ",
-"                                                                                                                                                                                                        ",
-"                                                                                                                                                                                                        ",
-"                                                                                                                                                                                                        ",
-"                                                                                                                                                                                                        ",
-"                                                                        . + @ @ # $ % & & & & & & & & & & & & & & * = @ @ @ - ;                                                                         ",
-"                                                        ; ; > , ' ) ! ! ~ { ] ] ] ] ] ] ] ] ] ] ] ] ^ ] ] ] ] ] ] ] ] ] ] ] / ( ! ! _ ' $ ; ;                                                           ",
-"                                                ; : < [ } | 1 ^ ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ^ ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] { | 2 3 4 5 6                                                   ",
-"                                            6 7 ! 8 ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ^ ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] 9 0 a ;                                             ",
-"                                        + 0 b ^ ] ^ ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ^ ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ^ c _ 6                                         ",
-"                                      d e ] ] ] ] ^ ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ^ ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ^ ! >                                       ",
-"                                    ; f ] ] ] ] ] ^ ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ^ ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] g                                       ",
-"                                      h b ] ] ] ] ^ ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ^ ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ^ i =                                       ",
-"                                      j k l m ] ] ^ ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ^ ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] n & o p                                       ",
-"                                      q r s t & u 1 ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ^ ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] e v t w x y q                                       ",
-"                                      q z z A B C 5 , } D ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ^ ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] ] 1 E F G H I J z z z q                                       ",
-"                                      q z z z z z K L M N O F P 4 } Q Q R ^ ] ] ] ] ] ] ] ] ] ] ] ] ^ ] ] ] ] ] ] ] ] ] ] ] 1 c Q Q S 4 k T O U M y V z z z z z q                                       ",
-"                                      q z z z z z W z z z z V L L s X X Y Z ` `  .h ..+.+.+.+.+.+.+.+.+.+.+.+.+.+.@.#.` ` ` $.%.X X &.L *.z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z p =.=.=.=.=.=.=.=.=.=.=.=.=.=.-.z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z ;.>.>.>.>.;.z z z z z z z z z z W W z z z z z z z ,.'.z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z ).!.~.L {.].^./.z z z z z z z z r (.z z z z z z z _.:.z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z <.[.}.z z ;.|.1.2.3.4.{.5.6.W 7.8.9.0.a.b.c.d.e.z _.:.f.L 9.B V ;.g.h.i.j.k.z 2.i.l.m.n.*.z 7.o.p.9.q.z z z z q                                       ",
-"                                      q z z z z z r._ }.z z z ,.s.r t.V z u.v.w.x.y.b.z.M 2.z A.B.f._.C.D.2.2.E.F.A 5.z z G.H.>.I.J.W z e.*.K.L.z.z M.N.r.z z z q                                       ",
-"                                      q z z z z z r._ }.z z z O.P.h./.(.Q.R.S.p z T.U.z V.q Q.U.W.R._.X.O.z z Q.Y.q.;.7.L {.$.r I Z.p.k.<.2.`. +{.{.m..+,.z z z q                                       ",
-"                                      q z z z z z r._ }.z z z ++- m.@+#+-.u.$+%+z T.U.&+*+=+e.<.Y.L _.:.z z z q ; -+;+>+x.*.:.U.,+'+)+!+t ].!+>+z z z z z z z z q                                       ",
-"                                      q z z z z z r._ }.z z z ].~+i.Z w.z K B.%+z T.U.{+ ./.z ;.Y.L _.$.q.z z M.< t.[.W z w.:.U.V.z ]+2.&.T.%.J.z z z <.3.z z z q                                       ",
-"                                      q z z z z z K.s.h.;.;.{.^+e.f.t {+/+++L.9.z S.D.A.t J /+R.v.-+(+_+o./.:+<+5.L * U./.}.t [+}+|+2./.n.1+k.2+Q./+:+3+&+z z z q                                       ",
-"                                      q z z z z z L 4+h.G.J 6.;.z z &+5+A.y [+3.z }.3+/+f.6+-.>.-+L L L q.6.p -.z z 7+5+*.>.c.(+8+9+J m.0+]+z >.3+i.Q./+z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z W A %+a.g.d.*.z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z a+b+A.z z U.1.z z W u.V z z z ]+2.V.:+z z z z z z z z z K |+z z z z /+z &+z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z i.y.c+z z z ,+z b.1.++d+e+,+f+2+3+2+-.g+2+/+z z #+d.K 1.~.K.h+I.]+i+1.j+`.z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z q s._+@+1+k+V _.[.l+z /.m+n+u.` j.7+/.e._ 7.z z o+p+q+r+z z U.$._.s+B.r f.z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z _.F.w _+Y.t+u+S.{.{.{.{.++u.X._.W z z v+w+]+_._.2.$+x+{.{.{.{.<.s+y+z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z V.z z z p+l. .z+_+V z z z O.u.X._.W z z q.!.,.[+]+2.B.A+z z z V.A s+y+z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z B+u.z z z w.T ).$.).z z C+{+u.X._.W z z z n.~+0.z W n+D+2.z z L A.s+y+z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z 5. +g.*.L E+Q.z 3.F+G+,.m.p+5+y.l.W z z z f.'+z z z p+x v+r m.r /.%.H+&+z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z f.z.A 2.z z z W I+>.z z z z z W z z z z /+z z z z z V A 2.z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                      q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z q                                       ",
-"                                    ; q z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z 4.                                      ",
-"                                    ; p.z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z z z ;+                                      ",
-"                                      Y.n+A z z z W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z z z z z 0+^+                                        ",
-"                                          :.J+U./+W z z z z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z z z z ]+/+b.K+-                                           ",
-"                                              ; ; L+].f+V z z z z z z z z z z z z z z z z z z z z z W z z z z z z z z z z z z z z z z z z z z O.f+%.b+;                                                 ",
-"                                                      ; P H *+].].x.&+&+K z z z z z z z z z z z z z W z z z z z z z z z z z ]+&+&+&+l.].].!+H  .;                                                       ",
-"                                                                  ; ; ; #.;+;+;+;+;+9+p.p.p.p.p.p.p.p.p.p.p.p.p.p.u+;+;+;+;+y+; ; ; ;                                                                   ",
-"                                                                                                                                                                                                        ",
-"                                                                                                                                                                                                        ",
-"                                                                                                                                                                                                        ",
-"                                                                                                                                                                                                        ",
-"                                                                                                                                                                                                        ",
-"                                                                                                                                                                                                        ",
-"                                                                                                                                                                                                        ",
-"                                                                                                                                                                                                        ",
-"                                                                                                                                                                                                        ",
-"                                                                                                                                                                                                        ",
-"                                                                                                                                                                                                        ",
-"                                                                                                                                                                                                        ",
-"                                                                                                                                                                                                        "};
diff --git a/contrib/gtk-tool/ldap_manager.cc b/contrib/gtk-tool/ldap_manager.cc
deleted file mode 100644 (file)
index 6ede1e9..0000000
+++ /dev/null
@@ -1,132 +0,0 @@
-#include "ldap_entry.h"
-
-class ldap_manager {
-       ldap_entry *entries;
-       int result_identifier;
-       char *search_filter, *base_dn;
-       char *ldap_action, *host;
-       int link_identifier;
-       int entriesCount;
-
-       int connect(char *host) {
-               this->link_identifier = ldap_connect(host);
-               if (this->link_identifier) return 1;
-               return 0;
-       }
-
-       void disconnect() {
-       //      ldap_close($this->link_identifier);
-       }
-
-       int ldapTakeAction(char *a) {
-               char *func_ptr = "ldap_".$a;
-               if (this->result_identifier = func_ptr(this->link_identifier, this->base_dn, this->search_filter)) {
-                       this->entriesCount = ldap_count_entries(this->link_identifier, this->result_identifier);
-                       return 1;
-               }
-               return 0;
-       }
-       
-       int getEntries() {
-               int i=0;
-               entry = new ldap_entry(this->link_identifier);
-               entry->r_e_i = ldap_first_entry(this->link_identifier, this->result_identifier);
-               while(entry->r_e_i) {
-                       entry->dn = ldap_get_dn(this->link_identifier, entry->r_e_i);
-                       entry->getAttributes();
-                       this->entries[i] = $entry;
-                       i++;
-                       r = entry->r_e_i;
-                       entry = new ldap_entry(this->link_identifier);
-                       entry->r_e_i = ldap_next_entry(this->link_identifier, r);
-               }
-//             ldap_free_result(this->result_identifier);
-       }
-
-       void displayEntries() {
-               printf(this->formatHTMLEntries());
-       }
-
-       void loadAttributeNames() {
-               global $attribute_names;
-               fp = fopen("at.conf2", "r");
-               int i = 0;
-               while (!feof(fp)) {
-                       string = "";
-                       foo = "";
-                       string = fgets(fp, 80);
-                       foo = strtok(string, " ");
-                       attribute_names[i][0] = foo;
-                       foo = strtok("\n");
-                       attribute_names[i][1] = foo;
-                       i++;
-               }
-               return $attribute_names;
-       }
-       char* formatHTMLBaseDN(char *dn) {
-               global $FILE, $host;
-               char *string = "";
-               attribs = ldap_explode_dn(dn, 0);
-               names = ldap_explode_dn(dn, 1);
-               for (int i=0; i<attribs["count"]; i++) {
-                       s = attribs[i];
-                       for (j=i+1; j<attribs["count"]; j++) {
-                               s = sprintf(",", attribs[j]);
-                       }
-                       if ((s[0] == "c") && (s[1] == "n")) {
-                               string = sprintf("<a href=".$FILE."?ldap_action=read&base_dn=".urlencode($s).">".$names[$i]."</a>, ";
-                       }
-                       else {
-                               $string .= "<a href=".$FILE."?ldap_action=list&base_dn=".urlencode($s).">".$names[$i]."</a>, ";
-                       }
-               }
-               return $string;
-       }
-
-       cfunction formatHTMLEntries() {
-               $string = "";
-               $string .= '<table width="100%" border=1 cellpadding=0 cellspacing=0>';
-               $string .= "\n";
-               for ($i=0; $i<count($this->entries); $i++) {
-                       $e = $this->entries[$i];
-                       $string .= $e->formatHTMLAttributes();
-               }       
-               $string .= "</table>\n";
-               return $string;
-       }
-
-       cfunction calculateTime($string, $s_t, $e_t) {
-               $tok1 = strtok($s_t, " ");
-               $msecs1 = $tok1;
-               $tok1 = strtok(" ");
-               $secs1 = $tok1;
-        
-               $tok2 = strtok($e_t, " ");
-               $msecs2 = $tok2;
-               $tok2 = strtok(" ");
-               $secs2 = $tok2;
-               $t_t = (float) ($secs2 + $msecs2) - (float) ($secs1 + $msecs1);
-               echo "execution time for <b>".$string."</b> : <b>".$t_t."</b> seconds<br>\n";
-       //      echo "start: ".$secs1."<br>\n";
-       //      echo "end: ".$secs2."<br>\n";
-               return (float) $t_t;
-       }
-       
-       cfunction stripString($string, $tokens) {
-               $s = $string;
-               for ($i=0; $i<count($tokens); $i++) {
-                       $result = "";
-                       $tok = strtok($s, $tokens[$i]);
-                       while($tok) {
-                               $result .= $tok;
-                       //      echo "result = ".$result."\n";
-                               $tok = strtok($tokens[$i]);
-                       }
-                       $s = $result;
-               //      echo "s = ".$s."\n";
-               }
-       //      echo "result = ".$result."\n";
-               return $result;
-       }
-}
-?>
index 44c8e41aa5e6307b393a927fefbadff2a5c4a9dd..d473ea01dfacc6afe2cb4a53027d2b76bdc628eb 100644 (file)
@@ -4,16 +4,15 @@
 #include <ldap.h>
 #include <My_Window.h>
 #include <Gtk_LdapItem.h>
-#include <Gtk_LdapTreeItem.h>
+#include <Gtk_LdapServer.h>
 
 int main(int argc, char **argv) {
        My_Window *window;
        Gtk_LdapItem *treeresult;
        Gtk_Tree *tree, *subtree;
-       Gtk_LdapTreeItem *treeitem;
+       Gtk_Tree *machine, *machinetree;
+       Gtk_LdapServer *treeitem;
        Gtk_Viewport *viewport;
-       LDAPMessage **thing;
-       LDAP *ld;
        char *host = NULL;
        char *base_dn = NULL;
        int c, port = 0;
@@ -33,30 +32,19 @@ int main(int argc, char **argv) {
                }
        }
 
-//     if (base_dn == NULL) base_dn = ldap_get_option(NULL, LDAP_OPT_BASE);
-       if (base_dn == NULL) base_dn = "o=University of Michigan, c=US";
+//     if (base_dn == NULL) base_dn = "o=University of Michigan, c=US";
        if (host == NULL) ldap_get_option(NULL, LDAP_OPT_HOST_NAME, host);
        //host = "localhost";
+       cout << host << endl;
        if (port == 0) port = LDAP_PORT;
 
        Gtk_Main m(&argc, &argv);
 
        window = new My_Window(GTK_WINDOW_TOPLEVEL);
 
-       if ((ld = ldap_open(host, port)) == NULL) {
-               perror("connection");
-       }
-
        tree = new Gtk_Tree();
-       treeresult = window->make_tree(window, ld, base_dn);
-       treeitem = new Gtk_LdapTreeItem(*treeresult->treeitem);
-//     treeresult->treeitem->setType(ROOT_NODE);
+       treeitem = new Gtk_LdapServer(window, host, port);
        tree->append(*treeitem);
-       if (treeresult->tree != NULL) {
-               subtree = new Gtk_Tree(*treeresult->tree);
-       //      cout << "Inserting " << base_dn << " into root" << endl;
-               treeitem->set_subtree(*subtree);
-       }
        treeitem->show();
        viewport = new Gtk_Viewport();
        viewport->add(tree);