mirror of
https://git.openldap.org/openldap/openldap.git
synced 2026-02-09 22:04:12 -05:00
gtk-tool updates, multiple server support, smarter traversal, ldap_get_option enhancements, code cleanups
This commit is contained in:
parent
a531a55f08
commit
ff80013124
13 changed files with 785 additions and 827 deletions
|
|
@ -1,5 +1,18 @@
|
|||
ChangeLog for gtk-tool
|
||||
|
||||
03/12/1998 - Pele
|
||||
* Added support for multiple servers (via multiple -s options)
|
||||
* More testing
|
||||
* Started experimenting with status bar for display of various info
|
||||
* Got rid of many warning and error messages generate by gtk
|
||||
* Added a new icon for objectclass=alias;
|
||||
* Display of some ldap options aquired with ldap_get_option when
|
||||
server selected.
|
||||
* Traversing set to only 1 subtree (then 1 by 1);
|
||||
* Started experimenting with a progress bar for traversal
|
||||
(so users don't get bored while waiting for subtrees to be aquired and
|
||||
constructed)
|
||||
|
||||
02/12/1998 - Pele
|
||||
* Added Gtk_LdapTree class
|
||||
* Added utils (with debug only)
|
||||
|
|
|
|||
|
|
@ -9,10 +9,13 @@ Gtk_LdapServer::Gtk_LdapServer() : Gtk_TreeItem() {
|
|||
}
|
||||
|
||||
Gtk_LdapServer::Gtk_LdapServer(My_Window *w, char *h, int p) : Gtk_TreeItem() {
|
||||
char *s, *s2;
|
||||
this->par = w;
|
||||
this->hostname = h;
|
||||
this->port = p;
|
||||
this->notebook = NULL;
|
||||
debug("%s %i\n", this->hostname, this->port);
|
||||
this->setType(1);
|
||||
this->getConfig();
|
||||
}
|
||||
|
||||
|
|
@ -28,6 +31,7 @@ void Gtk_LdapServer::setType(int t) {
|
|||
debug("Gtk_LdapServer::setType(%i)\n", t);
|
||||
Gtk_Pixmap *xpm_icon;
|
||||
Gtk_Label *label;
|
||||
char *c = NULL;
|
||||
if (this->getchild() != NULL) {
|
||||
xpm_label = new Gtk_HBox(GTK_HBOX(this->getchild()->gtkobj()));
|
||||
xpm_label->remove_c(xpm_label->children()->nth_data(0));
|
||||
|
|
@ -38,6 +42,8 @@ void Gtk_LdapServer::setType(int t) {
|
|||
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);
|
||||
// sprintf(c, "%s:%i", this->hostname, this->port);
|
||||
// printf("%s\n", c);
|
||||
label = new Gtk_Label(this->hostname);
|
||||
xpm_label->pack_start(*xpm_icon, false, false, 1);
|
||||
xpm_label->pack_start(*label, false, false, 1);
|
||||
|
|
@ -49,20 +55,22 @@ void Gtk_LdapServer::setType(int t) {
|
|||
|
||||
int Gtk_LdapServer::showDetails() {
|
||||
debug("Gtk_LdapServer::showDetails()\n");
|
||||
this->getDetails();
|
||||
/*
|
||||
if (this->notebook != NULL) {
|
||||
// debug("Have notebook here");
|
||||
if (par->viewport->getchild() != NULL) {
|
||||
// debug(" and viewport has children");
|
||||
par->viewport->remove_c(par->viewport->getchild()->gtkobj());
|
||||
// debug(" which have been removed");
|
||||
}
|
||||
// else debug(" and viewport without children");
|
||||
par->viewport->add(this->notebook);
|
||||
this->notebook->show();
|
||||
par->viewport->show();
|
||||
return 0;
|
||||
}
|
||||
else this->getDetails();
|
||||
if (this->getOptions() != 0) return 1;
|
||||
this->showDetails();
|
||||
*/
|
||||
// debug("done\n");
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
|
@ -107,79 +115,168 @@ int Gtk_LdapServer::getConfig() {
|
|||
return entriesCount;
|
||||
}
|
||||
|
||||
int Gtk_LdapServer::getDetails() {
|
||||
debug("Gtk_LdapServer::getDetails()\n");
|
||||
Gtk_HBox *hbox;
|
||||
Gtk_VBox *vbox;
|
||||
char* Gtk_LdapServer::getOptDescription(int option) {
|
||||
debug("Gtk_LdapServer::getOptDescription(%i) ", option);
|
||||
char *c;
|
||||
switch (option) {
|
||||
case LDAP_OPT_API_INFO: c = "API info"; break;
|
||||
case LDAP_OPT_CLIENT_CONTROLS: c = "Client controls"; break;
|
||||
case LDAP_OPT_DEREF: c = "Dereference"; break;
|
||||
case LDAP_OPT_DESC: c = "Description"; break;
|
||||
case LDAP_OPT_DNS: c = "DNS Lookup"; break;
|
||||
case LDAP_OPT_ERROR_NUMBER: c = "Error number"; break;
|
||||
case LDAP_OPT_ERROR_STRING: c = "Error string"; break;
|
||||
case LDAP_OPT_SIZELIMIT: c = "Size limit"; break;
|
||||
case LDAP_OPT_TIMELIMIT: c = "Time limit"; break;
|
||||
case LDAP_OPT_REFERRALS: c = "Referrals"; break;
|
||||
case LDAP_OPT_RESTART: c = "Started"; break;
|
||||
case LDAP_OPT_PROTOCOL_VERSION: c = "Protocol version"; break;
|
||||
case LDAP_OPT_HOST_NAME: c = "Host name"; break;
|
||||
case LDAP_OPT_SERVER_CONTROLS: c = "Server controls"; break;
|
||||
default: c = "No description"; break;
|
||||
}
|
||||
debug("%s\n", c);
|
||||
return c;
|
||||
}
|
||||
|
||||
int Gtk_LdapServer::getOptType(int option) {
|
||||
debug("Gtk_LdapServer::getOptType(%i) ", option);
|
||||
int type; /* 0 = int, 1 = string, 2 = boolean */
|
||||
switch(option) {
|
||||
/* ints */
|
||||
case LDAP_OPT_DEREF:
|
||||
case LDAP_OPT_DESC:
|
||||
case LDAP_OPT_SIZELIMIT:
|
||||
case LDAP_OPT_TIMELIMIT:
|
||||
case LDAP_OPT_ERROR_NUMBER:
|
||||
case LDAP_OPT_PROTOCOL_VERSION: type = 0; break;
|
||||
/* strings */
|
||||
case LDAP_OPT_ERROR_STRING:
|
||||
case LDAP_OPT_HOST_NAME: type = 1; break;
|
||||
/* bools */
|
||||
case LDAP_OPT_REFERRALS:
|
||||
case LDAP_OPT_DNS:
|
||||
case LDAP_OPT_RESTART: type = 2; break;
|
||||
case LDAP_OPT_SERVER_CONTROLS:
|
||||
case LDAP_OPT_CLIENT_CONTROLS:
|
||||
case LDAP_OPT_API_INFO:
|
||||
default: type = 0; break;
|
||||
}
|
||||
debug("%i\n", type);
|
||||
return type;
|
||||
}
|
||||
|
||||
int Gtk_LdapServer::getOptions() {
|
||||
debug("Gtk_LdapServer::getOptions()\n");
|
||||
if (this->notebook != NULL) return 0;
|
||||
Gtk_HBox *hbox, *mini_hbox;
|
||||
Gtk_VBox *vbox, *mini_vbox;
|
||||
Gtk_Table *table;
|
||||
Gtk_Label *label;
|
||||
Gtk_RadioButton *radio1, *radio2;
|
||||
char *val;
|
||||
int ival;
|
||||
char *s_value;
|
||||
int i_value;
|
||||
char *thing;
|
||||
int things[9] = {
|
||||
LDAP_OPT_API_INFO,
|
||||
// LDAP_OPT_CLIENT_CONTROLS,
|
||||
// LDAP_OPT_DESC,
|
||||
LDAP_OPT_DEREF,
|
||||
LDAP_OPT_DNS,
|
||||
// LDAP_OPT_ERROR_NUMBER,
|
||||
// LDAP_OPT_ERROR_STRING,
|
||||
LDAP_OPT_HOST_NAME,
|
||||
LDAP_OPT_PROTOCOL_VERSION,
|
||||
LDAP_OPT_REFERRALS,
|
||||
LDAP_OPT_RESTART,
|
||||
// LDAP_OPT_SERVER_CONTROLS,
|
||||
LDAP_OPT_SIZELIMIT,
|
||||
LDAP_OPT_TIMELIMIT
|
||||
};
|
||||
|
||||
if (GTK_TREE_ITEM(this->gtkobj())->subtree == NULL) {
|
||||
/* if (GTK_TREE_ITEM(this->gtkobj())->subtree == NULL) {
|
||||
this->getSubtree();
|
||||
}
|
||||
} */
|
||||
|
||||
/*
|
||||
cout << "getting ldap options";
|
||||
vbox = new Gtk_VBox();
|
||||
opt_util = new LdapOpts();
|
||||
// debug("getting ldap options");
|
||||
// vbox = new Gtk_VBox();
|
||||
table = new Gtk_Table(11, 2, TRUE);
|
||||
|
||||
for (int i=0; i<sizeof(things); i++) {
|
||||
cout << i << endl;
|
||||
hbox = new Gtk_HBox();
|
||||
label = new Gtk_Label(LdapOpts->getOption(things[i]);
|
||||
for (int i=0; i<9; i++) {
|
||||
// debug("%i\n", i);
|
||||
hbox = new Gtk_HBox(TRUE, 2);
|
||||
hbox->border_width(2);
|
||||
thing = this->getOptDescription(things[i]);
|
||||
label = new Gtk_Label(thing);
|
||||
label->set_justify(GTK_JUSTIFY_LEFT);
|
||||
label->set_alignment(0, 0);
|
||||
hbox->pack_start(*label);
|
||||
label->show();
|
||||
int tipus = opt_util->getType(things[i]);
|
||||
int tipus = this->getOptType(things[i]);
|
||||
switch (tipus) {
|
||||
case 0:
|
||||
ldap_get_option(NULL, things[i], &val);
|
||||
label = new Gtk_Label(val);
|
||||
ldap_get_option(NULL, things[i], &i_value);
|
||||
debug("%s value %d\n", thing, i_value);
|
||||
sprintf(s_value, "%d", i_value);
|
||||
label = new Gtk_Label(s_value);
|
||||
label->set_justify(GTK_JUSTIFY_LEFT);
|
||||
label->set_alignment(0, 0);
|
||||
hbox->pack_end(*label);
|
||||
label->show();
|
||||
break;
|
||||
case 1:
|
||||
ldap_get_option(NULL, numerals[i], &ival);
|
||||
sprintf(val, "%i", ival);
|
||||
label = new Gtk_Label(val);
|
||||
ldap_get_option(this->ld, things[i], &s_value);
|
||||
label = new Gtk_Label(s_value);
|
||||
label->set_justify(GTK_JUSTIFY_LEFT);
|
||||
label->set_alignment(0, 0);
|
||||
hbox->pack_end(*label);
|
||||
label->show();
|
||||
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);
|
||||
ldap_get_option(this->ld, things[i], &i_value);
|
||||
// sprintf(s_value, "%s", i_value == (int) LDAP_OPT_ON ? "on" : "off");
|
||||
// label = new Gtk_Label(s_value);
|
||||
radio1 = new Gtk_RadioButton(static_cast<GSList*>(0), "Enabled");
|
||||
radio2 = new Gtk_RadioButton(*radio1, "Disabled");
|
||||
if (i_value == 1) radio1->set_state(true);
|
||||
else radio2->set_state(true);
|
||||
mini_hbox = new Gtk_HBox(FALSE, 2);
|
||||
mini_hbox->border_width(2);
|
||||
mini_hbox->pack_start(*radio1);
|
||||
radio1->show();
|
||||
mini_hbox->pack_end(*radio2);
|
||||
radio2->show();
|
||||
hbox->pack_end(*mini_hbox);
|
||||
mini_hbox->show();
|
||||
break;
|
||||
default:
|
||||
label = new Gtk_Label("Nothing");
|
||||
label->set_justify(GTK_JUSTIFY_LEFT);
|
||||
label->set_alignment(0, 0);
|
||||
hbox->pack_end(*label);
|
||||
label->show();
|
||||
break;
|
||||
}
|
||||
|
||||
hbox->pack_start(*label);
|
||||
label->show();
|
||||
vbox->pack_start(*hbox);
|
||||
// hbox->pack_end(*label);
|
||||
// label->show();
|
||||
table->attach_defaults(*hbox, 0, 2, i, i+1);
|
||||
hbox->show();
|
||||
|
||||
}
|
||||
|
||||
vbox->border_width(2);
|
||||
this->notebook = new Gtk_Viewport();
|
||||
this->notebook->add(*vbox);
|
||||
vbox->show();
|
||||
*/
|
||||
this->setType(1);
|
||||
table->border_width(2);
|
||||
this->notebook = new Gtk_Frame("LDAP Options");
|
||||
this->notebook->add(*table);
|
||||
table->show();
|
||||
return 0;
|
||||
}
|
||||
|
||||
Gtk_Tree* Gtk_LdapServer::getSubtree() {
|
||||
debug("Gtk_LdapServer::getSubtree()\n");
|
||||
Gtk_LdapItem *treeresult;
|
||||
Gtk_LdapTree *tree, *subtree;
|
||||
Gtk_LdapTreeItem *treeitem;
|
||||
int entries;
|
||||
|
||||
debug("this->hostname=%s\n", this->hostname);
|
||||
debug("this->port=%i", this->port);
|
||||
/* if ((this->ld = ldap_open(this->hostname, this->port)) == NULL) {
|
||||
perror("connection");
|
||||
}
|
||||
*/
|
||||
|
||||
char *c;
|
||||
char *tok;
|
||||
|
|
@ -207,13 +304,18 @@ Gtk_Tree* Gtk_LdapServer::getSubtree() {
|
|||
return tree;
|
||||
}
|
||||
|
||||
void Gtk_LdapServer::show_impl() {
|
||||
debug("%s showed\n", this->hostname);
|
||||
Gtk_c_signals_Item *sig=(Gtk_c_signals_Item *)internal_getsignalbase();
|
||||
sig->show(GTK_WIDGET(gtkobj()));
|
||||
}
|
||||
|
||||
void Gtk_LdapServer::select_impl() {
|
||||
debug("%s selected\n", this->hostname);
|
||||
// gtk_item_select(GTK_ITEM(GTK_TREE_ITEM(this->gtkobj())));
|
||||
Gtk_c_signals_Item *sig=(Gtk_c_signals_Item *)internal_getsignalbase();
|
||||
if (this->showDetails() == 0) debug("%s select_impl done\n", this->hostname);
|
||||
if (!sig->select) return;
|
||||
sig->select(GTK_ITEM(gtkobj()));
|
||||
this->showDetails();
|
||||
}
|
||||
|
||||
void Gtk_LdapServer::collapse_impl() {
|
||||
|
|
|
|||
|
|
@ -26,9 +26,10 @@ public:
|
|||
int c, port;
|
||||
My_Window *par;
|
||||
// Gtk_Notebook *notebook;
|
||||
Gtk_Viewport *notebook;
|
||||
Gtk_Frame *notebook;
|
||||
Gtk_HBox *xpm_label;
|
||||
// Gtk_Tree *subtree;
|
||||
Gtk_Menu *popup;
|
||||
G_List<char> *databases;
|
||||
Gtk_LdapServer();
|
||||
Gtk_LdapServer(My_Window *w, char *c, int p);
|
||||
|
|
@ -37,8 +38,11 @@ public:
|
|||
void setType(int t);
|
||||
int getConfig();
|
||||
Gtk_Tree* getSubtree();
|
||||
int getDetails();
|
||||
char* getOptDescription(int option);
|
||||
int getOptType(int option);
|
||||
int getOptions();
|
||||
int showDetails();
|
||||
void show_impl();
|
||||
void select_impl();
|
||||
void collapse_impl();
|
||||
void expand_impl();
|
||||
|
|
|
|||
|
|
@ -1,16 +1,18 @@
|
|||
#include <Gtk_LdapTree.h>
|
||||
|
||||
void Gtk_LdapTree::show_impl() {
|
||||
cout << "tree show" << endl;
|
||||
Gtk_LdapTree *tree;
|
||||
Gtk_LdapTreeItem *item;
|
||||
Gtk_LdapTree::selectioniterator i;
|
||||
debug("tree show\n");
|
||||
Gtk_LdapTree *tree = NULL;
|
||||
Gtk_LdapTreeItem *item = NULL;
|
||||
Gtk_LdapTree::iterator i;
|
||||
debug("iterator\n");
|
||||
for (i=this->begin(); i!=this->end();i++) {
|
||||
item = (Gtk_LdapTreeItem *)GTK_TREE_ITEM((*i));
|
||||
debug("#%s#\n", item->dn);
|
||||
tree = item->getSubtree(item->ld, 1);
|
||||
if (tree != NULL) item->set_subtree(*tree);
|
||||
if (item->gtkobj()->subtree == NULL) {
|
||||
tree = item->getSubtree(item->ld, 1);
|
||||
if (tree != NULL) item->set_subtree(*tree);
|
||||
}
|
||||
}
|
||||
debug("done\n");
|
||||
Gtk_c_signals_Tree *sig=(Gtk_c_signals_Tree *)internal_getsignalbase();
|
||||
|
|
|
|||
|
|
@ -50,6 +50,11 @@ Gtk_LdapTree* Gtk_LdapTreeItem::getSubtree(LDAP *ld, int counter) {
|
|||
tree->set_view_mode(GTK_TREE_VIEW_ITEM);
|
||||
tree->set_view_lines(false);
|
||||
entry = ldap_first_entry(this->ld, r_i);
|
||||
// float i = 1;
|
||||
// float percent = 100/entriesCount;
|
||||
// cout << "percent is " << percent << endl;
|
||||
// this->par->progress.update(0);
|
||||
// this->par->progress.show();
|
||||
while (entry != NULL) {
|
||||
subtreeitem = new Gtk_LdapTreeItem(ldap_get_dn(this->ld, entry), this->par, this->ld);
|
||||
subtree = subtreeitem->getSubtree(this->ld, counter);
|
||||
|
|
@ -59,8 +64,15 @@ Gtk_LdapTree* Gtk_LdapTreeItem::getSubtree(LDAP *ld, int counter) {
|
|||
if (subtree != NULL) subtreeitem->set_subtree(*subtree);
|
||||
debug("done\n");
|
||||
entry = ldap_next_entry(this->ld, entry);
|
||||
// gfloat pvalue = (i*percent)/100;
|
||||
// cout << pvalue << " %" << endl;
|
||||
// this->par->progress.update(pvalue);
|
||||
// this->par->progress.show();
|
||||
// i++;
|
||||
}
|
||||
// this->set_subtree(*tree);
|
||||
// this->par->progress.update(0);
|
||||
// this->par->progress->show();
|
||||
}
|
||||
// this->getDetails();
|
||||
debug("done\n");
|
||||
|
|
@ -83,6 +95,8 @@ void Gtk_LdapTreeItem::setType(int t) {
|
|||
xpm_icon=new Gtk_Pixmap(*xpm_label, branch_node);
|
||||
else if (strcasecmp(this->objectClass,"person") == 0)
|
||||
xpm_icon=new Gtk_Pixmap(*xpm_label, leaf_node);
|
||||
else if (strcasecmp(this->objectClass,"alias") == 0)
|
||||
xpm_icon=new Gtk_Pixmap(*xpm_label, alias_node);
|
||||
else xpm_icon=new Gtk_Pixmap(*xpm_label, general_node);
|
||||
label = new Gtk_Label(this->rdn);
|
||||
xpm_label->pack_start(*xpm_icon, false, false, 1);
|
||||
|
|
@ -142,6 +156,8 @@ int Gtk_LdapTreeItem::getDetails() {
|
|||
}
|
||||
ldap_value_free(values);
|
||||
label = new Gtk_Label(attribute);
|
||||
label->set_alignment(0, 0);
|
||||
label->set_justify(GTK_JUSTIFY_LEFT);
|
||||
notebook->append_page(*table, *label);
|
||||
table->show();
|
||||
label->show();
|
||||
|
|
|
|||
|
|
@ -9,6 +9,7 @@
|
|||
#include "icons/root_node.h"
|
||||
#include "icons/branch_node.h"
|
||||
#include "icons/leaf_node.h"
|
||||
#include "icons/alias_node.h"
|
||||
#include "icons/general_node.h"
|
||||
|
||||
#define ROOT_NODE 1
|
||||
|
|
|
|||
|
|
@ -1,7 +1,7 @@
|
|||
HOME_LOCATION=$(shell pwd)
|
||||
CC= gcc
|
||||
CPLUS= g++
|
||||
OPTS=-g
|
||||
OPTS=-g #-DDEBUG
|
||||
INCLUDES=`gtkmm-config --cflags` -I.
|
||||
LDFLAGS=`gtkmm-config --libs` -L/usr/lib -L/usr/X11/lib -L/usr/local/gnome/lib -L/usr/local/ldap/lib -lldap -llber -L/usr/local/kerberos/lib -lkrb5 -lkrb4
|
||||
LIBS=-lXext -lgtkmm -lX11 -lXt -lXxf86dga
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ My_Window::My_Window(GtkWindowType t) : Gtk_Window(t) {
|
|||
cout << "My_Window(t)" << endl;
|
||||
Gtk_VBox *main_hbox;
|
||||
Gtk_HBox *top_hbox;
|
||||
Gtk_VBox *bottom_hbox;
|
||||
Gtk_Menu *menu;
|
||||
Gtk_MenuItem *file_menu, *menuitem;
|
||||
|
||||
|
|
@ -43,12 +44,20 @@ My_Window::My_Window(GtkWindowType t) : Gtk_Window(t) {
|
|||
top_hbox->pack_end(*this->display_button, FALSE, FALSE, 1);
|
||||
this->display_button->show();
|
||||
|
||||
this->status = new Gtk_Statusbar();
|
||||
|
||||
bottom_hbox = new Gtk_VBox();
|
||||
bottom_hbox->pack_start(*pane, TRUE, TRUE, 1);
|
||||
bottom_hbox->pack_end(*status, FALSE, TRUE, 1);
|
||||
pane->show();
|
||||
status->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);
|
||||
main_hbox->pack_end(*bottom_hbox, TRUE, TRUE, 1);
|
||||
top_hbox->show();
|
||||
pane->show();
|
||||
bottom_hbox->show();
|
||||
this->add(main_hbox);
|
||||
main_hbox->show();
|
||||
}
|
||||
|
|
@ -58,75 +67,31 @@ My_Window::~My_Window() {
|
|||
delete this;
|
||||
}
|
||||
|
||||
int My_Window::debug(const char *format,...) {
|
||||
#ifdef DEBUG
|
||||
va_list args;
|
||||
int ret;
|
||||
char *c;
|
||||
char buff[50];
|
||||
unsigned int m_context_id;
|
||||
va_start(args, format);
|
||||
ret = vprintf(format, args);
|
||||
/* if (this->status != NULL) {
|
||||
m_context_id = this->status->get_context_id("gtk-tool");
|
||||
ret = vsprintf(c, format, args);
|
||||
g_snprintf(buff, 50, "Action: %s", c);
|
||||
this->status->push(m_context_id, buff);
|
||||
}
|
||||
*/ va_end(args);
|
||||
return ret;
|
||||
#endif
|
||||
}
|
||||
|
||||
void My_Window::do_display() {
|
||||
cout << this->urlfield->get_text() << endl;
|
||||
}
|
||||
void My_Window::expand(Gtk_TreeItem *t) {
|
||||
gchar *name;
|
||||
GtkLabel *label;
|
||||
label = GTK_LABEL (GTK_BIN (t->gtkobj())->child);
|
||||
gtk_label_get (label, &name);
|
||||
g_print("%s selected\n", name);
|
||||
}
|
||||
|
||||
gint My_Window::delete_event_impl(GdkEventAny*) {
|
||||
Gtk_Main::instance()->quit();
|
||||
return 0;
|
||||
}
|
||||
|
||||
Gtk_LdapItem* My_Window::make_tree(My_Window *p, LDAP* l_i, char* b_d) {
|
||||
// printf("make_tree(%s)\n", b_d);
|
||||
Gtk_LdapItem *treeresult, *subtreeresult;
|
||||
Gtk_Tree *tree, *subtree, *subsubtree;
|
||||
Gtk_LdapTreeItem *treeitem, *subtreeitem;
|
||||
LDAPMessage *r_i, *entry;
|
||||
gchar *c;
|
||||
char **s;
|
||||
char *c_num;
|
||||
int entriesCount = 0;
|
||||
int error;
|
||||
int r_e_i;
|
||||
|
||||
error = ldap_search_s(l_i, b_d, LDAP_SCOPE_ONELEVEL, "objectclass=*", NULL, 0, &r_i);
|
||||
// printf("%s\n", ldap_err2string(error));
|
||||
entriesCount = ldap_count_entries(l_i, r_i);
|
||||
// printf("%i results\n", entriesCount);
|
||||
s = ldap_explode_dn(b_d, 1);
|
||||
c = g_strdup_printf("%s", s[0]);
|
||||
treeitem = new Gtk_LdapTreeItem(c, p, l_i);
|
||||
treeitem->dn = b_d; treeitem->ld = l_i;
|
||||
treeresult = new Gtk_LdapItem();
|
||||
treeitem->getDetails();
|
||||
if (entriesCount == 0) {
|
||||
// treeitem->setType(LEAF_NODE);
|
||||
treeresult->treeitem = new Gtk_LdapTreeItem(*treeitem);
|
||||
treeresult->tree = NULL;
|
||||
return treeresult;
|
||||
}
|
||||
subtree = new Gtk_Tree();
|
||||
subtree->set_selection_mode(GTK_SELECTION_BROWSE);
|
||||
subtree->set_view_mode(GTK_TREE_VIEW_ITEM);
|
||||
subtree->set_view_lines(false);
|
||||
entry = ldap_first_entry(l_i, r_i);
|
||||
while (entry != NULL) {
|
||||
s = ldap_explode_dn(ldap_get_dn(l_i, entry), 1);
|
||||
subtreeresult = make_tree(p, l_i, ldap_get_dn(l_i, entry));
|
||||
subtreeitem = new Gtk_LdapTreeItem(*subtreeresult->treeitem);
|
||||
// printf("inserting %s into %s", s[0], c);
|
||||
subtree->append(*subtreeitem);
|
||||
if (subtreeresult->tree != NULL) {
|
||||
// printf(".");
|
||||
subsubtree = new Gtk_Tree(*subtreeresult->tree);
|
||||
// printf(".");
|
||||
subtreeitem->set_subtree(*subsubtree);
|
||||
// printf(".");
|
||||
}
|
||||
subtreeitem->show();
|
||||
// printf("\n");
|
||||
entry = ldap_next_entry(l_i, entry);
|
||||
}
|
||||
// treeitem->setType(BRANCH_NODE);
|
||||
treeresult->treeitem = new Gtk_LdapTreeItem(*treeitem);
|
||||
treeresult->tree = new Gtk_Tree(*subtree);
|
||||
return treeresult;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,14 +2,6 @@
|
|||
#define MY_WINDOW_H
|
||||
#include "cpluscommon.h"
|
||||
#include "gtk.h"
|
||||
#include <lber.h>
|
||||
#include <ldap.h>
|
||||
/*#include "My_Scroller.h"*/
|
||||
#include "Gtk_LdapItem.h"
|
||||
#include "Gtk_LdapTreeItem.h"
|
||||
class Gtk_LdapTreeItem;
|
||||
class Gtk_LdapItem;
|
||||
class My_Scroller;
|
||||
|
||||
class My_Window : public Gtk_Window {
|
||||
public:
|
||||
|
|
@ -20,11 +12,12 @@ public:
|
|||
Gtk_Button *display_button;
|
||||
Gtk_Paned *pane;
|
||||
Gtk_MenuBar *menubar;
|
||||
// Gtk_ProgressBar progress;
|
||||
Gtk_Statusbar *status;
|
||||
My_Window(GtkWindowType t);
|
||||
~My_Window();
|
||||
int debug(const char *c,...);
|
||||
void do_display();
|
||||
void expand(Gtk_TreeItem *t);
|
||||
gint delete_event_impl(GdkEventAny *);
|
||||
Gtk_LdapItem* make_tree(My_Window *p, LDAP* l_i, char* b_d);
|
||||
};
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -18,6 +18,11 @@ not running slapd on your local machine, then supply it with a "-s hostname"
|
|||
i.e.:
|
||||
./main -s server02.nowhere.net
|
||||
|
||||
or if you feel like having an adventure try multiple servers
|
||||
i.e.:
|
||||
./main -s server02.nowhere.net -s server03.nowhere.com:322
|
||||
|
||||
etc...
|
||||
It does not accept -b switch as it no longer needs it to aquire databases.
|
||||
But please feel free to add whatever else you consider neccessary to
|
||||
understanding how this thing works. Enjoy, and I hope this can be useful to
|
||||
|
|
|
|||
|
|
@ -1,343 +1,266 @@
|
|||
/* XPM */
|
||||
static char *local_server[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"19 20 317 2",
|
||||
"19 20 240 2",
|
||||
" c Gray0",
|
||||
". c #006301880000",
|
||||
"X c #010401400000",
|
||||
"o c #02c102600000",
|
||||
"O c #038e038e0000",
|
||||
"+ c #00000513029f",
|
||||
"@ c #04b804e70000",
|
||||
"# c #04f305220000",
|
||||
"$ c #057105930000",
|
||||
"% c #0a480a9802be",
|
||||
"& c #0b430d040000",
|
||||
"* c #00330b711620",
|
||||
"= c #026109171623",
|
||||
"- c #03080b971bb6",
|
||||
"; c #04cf0e3b1b1f",
|
||||
": c #06820e0c1f92",
|
||||
"> c #05f211601517",
|
||||
", c #0d1c14761171",
|
||||
"< c #103c10c20561",
|
||||
"1 c #10b8111b05da",
|
||||
"2 c #10eb11600624",
|
||||
"3 c #113b11ce0683",
|
||||
"4 c #11b61255071b",
|
||||
"5 c #1cbc1dcf05fe",
|
||||
"6 c #183419e80d82",
|
||||
"7 c #0bc61653218e",
|
||||
"8 c #0d95142d22f4",
|
||||
"9 c #0d4b16ff205b",
|
||||
"0 c #0ac114eb2eb2",
|
||||
"q c #0f4c1909310f",
|
||||
"w c #13ea1c602934",
|
||||
"e c #168f1d8e2dc3",
|
||||
"r c #11011aa43294",
|
||||
"t c #135a1ce3349b",
|
||||
"y c #12331ce037d0",
|
||||
"u c #158d1eed368a",
|
||||
"i c #173b20ea296e",
|
||||
"p c #180c202a2fdd",
|
||||
"a c #1be821642dd5",
|
||||
"s c #1cf825312e1a",
|
||||
"d c #17a520e637c6",
|
||||
"f c #1691208039a1",
|
||||
"g c #187e208b309c",
|
||||
"h c #19fb20683177",
|
||||
"j c #1c9a23ff3169",
|
||||
"k c #1e75259e3112",
|
||||
"l c #1e0e255034df",
|
||||
"z c #1f9627cc36a0",
|
||||
"x c #180b21d33add",
|
||||
"c c #19c7236d3c4a",
|
||||
"v c #1b7524fe3da3",
|
||||
"b c #1fd328903c87",
|
||||
"n c #236423c405a4",
|
||||
"m c #258f25bd1420",
|
||||
"M c #207d21b21817",
|
||||
"N c #2b272c0b143d",
|
||||
"B c #2ec52ee910e0",
|
||||
"V c #22ab27f13368",
|
||||
"C c #224327bc3709",
|
||||
"Z c #23dd2b2f3641",
|
||||
"A c #25e52af6367c",
|
||||
"S c #21ac29c038db",
|
||||
"D c #23262b4c3aa4",
|
||||
"F c #2d0331e538f1",
|
||||
"G c #2c9533173bd8",
|
||||
"H c #2eb0335c3dd0",
|
||||
"J c #38613a462b08",
|
||||
"K c #39a53b832cfc",
|
||||
"L c #3de83e452c21",
|
||||
"P c #3c073e012ee8",
|
||||
"I c #3a193d073d97",
|
||||
"U c #1f9129164137",
|
||||
"Y c #23a72d3b4658",
|
||||
"T c #26792f0e43d2",
|
||||
"R c #27d92fb742a5",
|
||||
"E c #24ef2ebc47f4",
|
||||
"W c #26602f7446ad",
|
||||
"Q c #26f62ffd4716",
|
||||
"! c #24e02e7b4826",
|
||||
"~ c #26f630054723",
|
||||
"^ c #2735303b4747",
|
||||
"/ c #279230bb484d",
|
||||
"( c #2866317d4879",
|
||||
") c #28743191492e",
|
||||
"_ c #298e32944970",
|
||||
"` c #29b032b04a02",
|
||||
"' c #2af433c64a91",
|
||||
"] c #2ca6355d4bec",
|
||||
"[ c #2ccd35c74c46",
|
||||
"{ c #2d8a36fd4f6e",
|
||||
"} c #2efe37d84db6",
|
||||
"| c #2f6938114e35",
|
||||
" . c #31cb37c3410c",
|
||||
".. c #300738ca4ee0",
|
||||
"X. c #310a39a94f2b",
|
||||
"o. c #382d3c6a45a1",
|
||||
"O. c #307139a5514a",
|
||||
"+. c #32063abd503a",
|
||||
"@. c #32df3b845116",
|
||||
"#. c #33853bb6517b",
|
||||
"$. c #35053d7852a2",
|
||||
"%. c #37783f9054a1",
|
||||
"&. c #3e69404831f4",
|
||||
"*. c #3b3441654977",
|
||||
"=. c #3cc942ce4b1d",
|
||||
"-. c #38c040c155d1",
|
||||
";. c #38af40d25609",
|
||||
":. c #394841a55893",
|
||||
">. c #3b8e4386584f",
|
||||
",. c #3e44465a5a6f",
|
||||
"<. c #3f7f46cb5a18",
|
||||
"1. c #3cd944da5c5b",
|
||||
"2. c #3f3948575dc4",
|
||||
"3. c #418e43953549",
|
||||
"4. c #44e746ff384b",
|
||||
"5. c #444a482e3b3b",
|
||||
"6. c #47ff4a023b15",
|
||||
"7. c #489f4cee3a3f",
|
||||
"8. c #4b614d013e70",
|
||||
"9. c #419845584d4f",
|
||||
"0. c #4d634e2d4a8b",
|
||||
"q. c #4e674ea14b28",
|
||||
"w. c #4e734f844b8c",
|
||||
"e. c #44254aa35364",
|
||||
"r. c #414649565f39",
|
||||
"t. c #439a4ad95e55",
|
||||
"y. c #48c34eb7556c",
|
||||
"u. c #4a444d635487",
|
||||
"i. c #4fea50db4160",
|
||||
"p. c #4f73514041fa",
|
||||
"a. c #5168526142f2",
|
||||
"s. c #505850834b2d",
|
||||
"d. c #540f52e24eb8",
|
||||
"f. c #569657f74c68",
|
||||
"g. c #5358543c5864",
|
||||
"h. c #52e6551e5b74",
|
||||
"j. c #544956435d37",
|
||||
"k. c #57695c235475",
|
||||
"l. c #54a95a425f8b",
|
||||
"z. c #566c5b4d5cf4",
|
||||
"x. c #56e35ee55bb7",
|
||||
"c. c #458a4d8a6069",
|
||||
"v. c #499450c8635b",
|
||||
"b. c #4b9b53576549",
|
||||
"n. c #4bba5481622b",
|
||||
"m. c #4adf549f64e3",
|
||||
"M. c #4ced535064d4",
|
||||
"N. c #4dc0565762ae",
|
||||
"B. c #57a15cd961d8",
|
||||
"V. c #54c25c97683c",
|
||||
"C. c #5fd163d75f3d",
|
||||
"Z. c #5c2563546eb5",
|
||||
"A. c #640967b35e37",
|
||||
"S. c #67906b695fd7",
|
||||
"D. c #63dd688360b0",
|
||||
"F. c #6437689a6c5f",
|
||||
"G. c #685c6878686f",
|
||||
"H. c #688a6c556ba2",
|
||||
"J. c #6f876f8c6f85",
|
||||
"K. c #631069c67489",
|
||||
"L. c #6a0170827ae5",
|
||||
"P. c #717d74ec7736",
|
||||
"I. c #75d671ee71ae",
|
||||
"U. c #77bb77bb77bb",
|
||||
"Y. c #7b347df07b19",
|
||||
"T. c #7f2648ea8c0e",
|
||||
"R. c #7c43605280d0",
|
||||
"E. c #72d5791483e2",
|
||||
"W. c #7cf57fbe80b1",
|
||||
"Q. c #7e7980f98299",
|
||||
"!. c #7e91816e839c",
|
||||
"~. c #7ed384e490ee",
|
||||
"^. c #8022480a8cca",
|
||||
"/. c #8d2d43d496c7",
|
||||
"(. c #8b934b72959f",
|
||||
"). c #8cd54cf296d9",
|
||||
"_. c #8f2e4f3b98ff",
|
||||
"`. c #9289528b9b4d",
|
||||
"'. c #8a2c67b98f02",
|
||||
"]. c #8d2360e19956",
|
||||
"[. c #8f7c69599410",
|
||||
"{. c #808780878087",
|
||||
"}. c #872189db835c",
|
||||
"|. c #85758bb285b4",
|
||||
" X c #88ec88ec88ec",
|
||||
".X c #8a418d6488df",
|
||||
"XX c #8cf08fa88cea",
|
||||
"oX c #8f8f934f8ed7",
|
||||
"OX c #8bd591c29248",
|
||||
"+X c #8bec903c972c",
|
||||
"@X c #8e0b91789285",
|
||||
"#X c Gray57",
|
||||
"$X c #91f691e192da",
|
||||
"%X c #93d593db93a6",
|
||||
"&X c #96aa98eb9f9a",
|
||||
"*X c Gray60",
|
||||
"=X c #9a8e9a7d9a57",
|
||||
"-X c #9b679e4c9b80",
|
||||
";X c #9c149bd29e1a",
|
||||
":X c #9cbc9ebd9c6a",
|
||||
">X c #9320985aa0de",
|
||||
",X c #96949ceeabca",
|
||||
"<X c #9fc7a2c4a67d",
|
||||
"1X c #9ae2a0a6adff",
|
||||
"2X c #acf6927bb1f3",
|
||||
"3X c #b74791f0bec9",
|
||||
"4X c Gray63",
|
||||
"5X c #a2b6a2b3a2a7",
|
||||
"6X c Gray65",
|
||||
"7X c #a68fa7fca846",
|
||||
"8X c #a755a709a85c",
|
||||
"9X c #a712a8a9aa50",
|
||||
"0X c #abf9ae59a790",
|
||||
"qX c Gray66",
|
||||
"wX c #a8c4aa49abeb",
|
||||
"eX c #ab00aaffaafd",
|
||||
"rX c #aa97ac1fad93",
|
||||
"tX c #ac92adf5af5a",
|
||||
"yX c #ae38ae38ae39",
|
||||
"uX c #afb0afaaafa7",
|
||||
"iX c #a2fba7a7b199",
|
||||
"pX c #a499a91eb1bf",
|
||||
"aX c #ae83af57b14b",
|
||||
"sX c #af08b159b32b",
|
||||
"dX c #bfb0bfefa8a2",
|
||||
"fX c #b1bcb172b2ac",
|
||||
"gX c Gray70",
|
||||
"hX c #b3a9b464b476",
|
||||
"jX c #b671b672b672",
|
||||
"kX c #b731b76ab7c5",
|
||||
"lX c #b0b4b457baa1",
|
||||
"zX c #b15cb55ebc6c",
|
||||
"xX c #b8d8badab521",
|
||||
"cX c #ba59bba3b445",
|
||||
"vX c #bb17bc5eb4ea",
|
||||
"bX c #bb79bcb0b5ab",
|
||||
"nX c #bce9bdd2b6be",
|
||||
"mX c #bd9dbe56b777",
|
||||
"MX c #b914b909b8e6",
|
||||
"NX c #b9aeb9aeb9a3",
|
||||
"BX c #bb9abbf8bbc4",
|
||||
"VX c #bbacbbd4bc60",
|
||||
"CX c #bce5bc82bccb",
|
||||
"ZX c Gray74",
|
||||
"AX c #bbd094eac032",
|
||||
"SX c #bb73be6bc410",
|
||||
"DX c #bf00c03db997",
|
||||
"FX c #bf47c1fdc67c",
|
||||
"GX c #c13eb95bc055",
|
||||
"HX c #c36fc384c3cd",
|
||||
"JX c #c3b5c549c6db",
|
||||
"KX c #c664c65fc653",
|
||||
"LX c #c785c6f0c674",
|
||||
"PX c #c29ac4e3c845",
|
||||
"IX c #c51cc629c9e5",
|
||||
"UX c #c407c6e0cb09",
|
||||
"YX c #c5c9c83dcb25",
|
||||
"TX c #c9c5cc24cec4",
|
||||
"RX c #ce66cdd7cd54",
|
||||
"EX c #cea7ce97ce6c",
|
||||
"WX c #cf20cf2ecee0",
|
||||
"QX c #c1b4c732d376",
|
||||
"!X c #cc74cebed12f",
|
||||
"~X c #cc45cea2d21f",
|
||||
"^X c #ccf7cf1cd287",
|
||||
"/X c #ce8ad0f9d350",
|
||||
"(X c #d20cd21dcad3",
|
||||
")X c #d0afd0e4d189",
|
||||
"_X c #d2e7d26cd1e8",
|
||||
"`X c #d095d2f8d57a",
|
||||
"'X c #d2bdd524d78d",
|
||||
"]X c #d5a2d55cd5e6",
|
||||
"[X c #d464d662d941",
|
||||
"{X c #d515d75ed96c",
|
||||
"}X c #d7bed8b1d727",
|
||||
"|X c #d71dd95bdb92",
|
||||
" o c #db61db30d537",
|
||||
".o c #da8cda80da4d",
|
||||
"Xo c #d947dbb0dd8f",
|
||||
"oo c #dae3dc71de87",
|
||||
"Oo c #dbc4ddcadf9e",
|
||||
"+o c #dae1de96e582",
|
||||
"@o c #dcd0de66e021",
|
||||
"#o c #de07dfdde1f9",
|
||||
"$o c #dbc8e12ddbe5",
|
||||
"%o c #e0bbe0e6d9f8",
|
||||
"&o c #e16de13ee29a",
|
||||
"*o c #e28ae27ce25e",
|
||||
"=o c #e015e1fee41d",
|
||||
"-o c #e28be623e1c6",
|
||||
";o c #e25be434e628",
|
||||
":o c #e75be78ae2a3",
|
||||
">o c #e530e657e743",
|
||||
",o c #e6d6e519e56f",
|
||||
"<o c #e58ee7b3e90d",
|
||||
"1o c #e6b5e6a4e83a",
|
||||
"2o c #e982ea7beaa5",
|
||||
"3o c #eac8e9f3e9ac",
|
||||
"4o c Gray92",
|
||||
"5o c #ec6bec6cedd8",
|
||||
"6o c #ed58edd5ee00",
|
||||
"7o c #f120eeefeebe",
|
||||
"8o c #f226f01cefca",
|
||||
"9o c #f2c3f197f0c4",
|
||||
"0o c #f226f20cf487",
|
||||
"qo c #f25ff439f1d3",
|
||||
"wo c #f5fff735f350",
|
||||
"eo c #f5ebf5caf4e1",
|
||||
"ro c #f7b5f7c2f6f5",
|
||||
"to c #f655f90df2a7",
|
||||
"yo c #f8c1f651f6be",
|
||||
"uo c #f810f7faf70f",
|
||||
"io c #fdedfdebffaf",
|
||||
"po c #fe2ffd81fc36",
|
||||
"ao c #fe92fe4dfced",
|
||||
"so c Gray100",
|
||||
"do c None",
|
||||
". c #023e04130000",
|
||||
"X c #073b07af0360",
|
||||
"o c #000000000a4b",
|
||||
"O c #000000000f11",
|
||||
"+ c #0f580fce0000",
|
||||
"@ c #0000000010d0",
|
||||
"# c #07ab0eb01e98",
|
||||
"$ c #14b41637012b",
|
||||
"% c #168917a80ab2",
|
||||
"& c #175c18520a5a",
|
||||
"* c #1a0b1b520eb5",
|
||||
"= c #1e231e6d0bf9",
|
||||
"- c #17091db31bda",
|
||||
"; c #1aaf1bb4122d",
|
||||
": c #19741af214be",
|
||||
"> c #1c8d1df31118",
|
||||
", c #1ec01fc915d0",
|
||||
"< c #1ef51ff71651",
|
||||
"1 c #0000079e232a",
|
||||
"2 c #03a20f492c9f",
|
||||
"3 c #05590f692831",
|
||||
"4 c #072b113229fd",
|
||||
"5 c #0de317392448",
|
||||
"6 c #0e48163327ef",
|
||||
"7 c #09e713c52c71",
|
||||
"8 c #0ebe1619282b",
|
||||
"9 c #0e6d17482956",
|
||||
"0 c #0f4817eb299f",
|
||||
"q c #0c56160c2dcf",
|
||||
"w c #0f201a2425db",
|
||||
"e c #0be6165230b9",
|
||||
"r c #0d6917bd324a",
|
||||
"t c #0ff51a183470",
|
||||
"y c #10431cfd2b8f",
|
||||
"u c #15631d8a32e0",
|
||||
"i c #16811da73182",
|
||||
"p c #1f2f209a1346",
|
||||
"a c #1d4020891a22",
|
||||
"s c #171221aa2fcd",
|
||||
"d c #160d20113996",
|
||||
"f c #18d621893596",
|
||||
"g c #1d8e235a30e7",
|
||||
"h c #1e4226db3a44",
|
||||
"j c #1f4027663b36",
|
||||
"k c #1ebd282c3af4",
|
||||
"l c #21c022e615d4",
|
||||
"z c #224e22ab1570",
|
||||
"x c #24e325221696",
|
||||
"c c #2172227b18dd",
|
||||
"v c #2374248b1abd",
|
||||
"b c #25ae26bd18f5",
|
||||
"n c #257726891c6a",
|
||||
"m c #275c28461e3d",
|
||||
"M c #2ce52d5d1e67",
|
||||
"N c #2e0d317f1d9b",
|
||||
"B c #298b2a6f2027",
|
||||
"V c #2a5b2ae92075",
|
||||
"C c #2b1d2bb82201",
|
||||
"Z c #2b922c3522c4",
|
||||
"A c #2b8b2dfb26cc",
|
||||
"S c #224929923335",
|
||||
"D c #23892b663903",
|
||||
"F c #217c2aa73e75",
|
||||
"G c #280f2f9e3ac1",
|
||||
"H c #2f6231172843",
|
||||
"J c #28e4318f3d9b",
|
||||
"K c #2de4327f3c5e",
|
||||
"L c #385c392a2eb5",
|
||||
"P c #370e3bbe368b",
|
||||
"I c #3d973fff3561",
|
||||
"U c #200d2964419b",
|
||||
"Y c #21382a9542af",
|
||||
"T c #21372b164533",
|
||||
"R c #22882c8447b1",
|
||||
"E c #267e2f8a46a5",
|
||||
"W c #23f82e1d485b",
|
||||
"Q c #27c430b34778",
|
||||
"! c #277f30be48e2",
|
||||
"~ c #280330ee4794",
|
||||
"^ c #28c331ed4959",
|
||||
"/ c #28f9321f48f3",
|
||||
"( c #295232764a58",
|
||||
") c #2aab33ad4a5d",
|
||||
"_ c #2b9734644ad0",
|
||||
"` c #2b4234414b9a",
|
||||
"' c #2cdd35a14c17",
|
||||
"] c #2d9c3759502c",
|
||||
"[ c #35c73a1843c3",
|
||||
"{ c #348e39fb453b",
|
||||
"} c #36d33e394a1a",
|
||||
"| c #34a13d075244",
|
||||
" . c #34f73d7b5328",
|
||||
".. c #35983dbd5362",
|
||||
"X. c #36cc3f2f53d4",
|
||||
"o. c #37713fd854df",
|
||||
"O. c #3c1b41ef4a48",
|
||||
"+. c #382941505988",
|
||||
"@. c #3cb244ae5933",
|
||||
"#. c #413545b24744",
|
||||
"$. c #44c1455c418f",
|
||||
"%. c #428c464e4eb2",
|
||||
"&. c #49e74b17480e",
|
||||
"*. c #4b7a4b984919",
|
||||
"=. c #4b424c124924",
|
||||
"-. c #4e2b4ce1494c",
|
||||
";. c #4b5450bb574f",
|
||||
":. c #545f56ee543c",
|
||||
">. c #520055075b58",
|
||||
",. c #45ca4deb63f7",
|
||||
"<. c #47c54ea9618f",
|
||||
"1. c #477d4f716673",
|
||||
"2. c #48314fb16218",
|
||||
"3. c #4cd2542760ea",
|
||||
"4. c #4b93542768dd",
|
||||
"5. c #528858de6a23",
|
||||
"6. c #5d7f62a36740",
|
||||
"7. c #606162956770",
|
||||
"8. c #639c687068a6",
|
||||
"9. c #692e6b18620d",
|
||||
"0. c #6c456e4766cc",
|
||||
"q. c #6bc06e9068a9",
|
||||
"w. c #64656af87761",
|
||||
"e. c #6c7f6da9716d",
|
||||
"r. c #6e426e0971fc",
|
||||
"t. c #6eae6f6f73f0",
|
||||
"y. c #6f79716769b5",
|
||||
"u. c #75af75d26eec",
|
||||
"i. c #71a275b87813",
|
||||
"p. c #7dc582a986da",
|
||||
"a. c #862d47a59174",
|
||||
"s. c #885b47d79329",
|
||||
"d. c #8fac5b4596fb",
|
||||
"f. c #898d7a518c04",
|
||||
"g. c #8a1b7bb78c25",
|
||||
"h. c #9ff76cefabfe",
|
||||
"j. c #a01373e4a9c2",
|
||||
"k. c #a9327743af85",
|
||||
"l. c #813c82307990",
|
||||
"z. c #81e482da7a7f",
|
||||
"x. c #82a183727b14",
|
||||
"c. c #833e83de7b92",
|
||||
"v. c #83248602867e",
|
||||
"b. c #8b538c308b37",
|
||||
"n. c #8f4d99148ef8",
|
||||
"m. c #8ddd9240969e",
|
||||
"M. c #9b689b8586d9",
|
||||
"N. c #953097a99355",
|
||||
"B. c Gray58",
|
||||
"V. c #96d09842970f",
|
||||
"C. c #979799719910",
|
||||
"Z. c #9b579caa9ae3",
|
||||
"A. c #9ba99d2a9c8f",
|
||||
"S. c Gray62",
|
||||
"D. c #99659de1a359",
|
||||
"F. c #ac17ab8b9ea2",
|
||||
"G. c Gray64",
|
||||
"H. c #a007a1f1a793",
|
||||
"J. c #a2a1a27ea639",
|
||||
"K. c #a1c7a6b9ac80",
|
||||
"L. c Gray66",
|
||||
"P. c #aa08ab5ba86e",
|
||||
"I. c #aaa1aa8daa8b",
|
||||
"U. c #adedaf8bae65",
|
||||
"Y. c #a8ffaf75b90b",
|
||||
"T. c #ad0bb5d3aca9",
|
||||
"R. c #afcab577bbfb",
|
||||
"E. c #b3cab37fae09",
|
||||
"W. c #b065b1f7b0b8",
|
||||
"Q. c #b1f1b1efb1e7",
|
||||
"!. c #b0b0b090b228",
|
||||
"~. c #b27fb26eb259",
|
||||
"^. c #b34ab4cdb34c",
|
||||
"/. c #b6f9b7c3b6c1",
|
||||
"(. c #b2d3b572b8bd",
|
||||
"). c #b679bc3fbfdf",
|
||||
"_. c #b94dba06b74f",
|
||||
"`. c #bb54bb51bb4c",
|
||||
"'. c #bf9eb931bc1d",
|
||||
"]. c Gray74",
|
||||
"[. c #bd72bdc7bee1",
|
||||
"{. c #bebbbe54bf75",
|
||||
"}. c #c12dc14abd26",
|
||||
"|. c #c23ec236c1f7",
|
||||
" X c Gray76",
|
||||
".X c #c3e8c682c6e7",
|
||||
"XX c #c6c6c7c3c0d5",
|
||||
"oX c #c1a0c68acf26",
|
||||
"OX c #c506c896cf5d",
|
||||
"+X c #c991ca28ccd9",
|
||||
"@X c Gray80",
|
||||
"#X c #cdcccceccccd",
|
||||
"$X c #cf73c67ed0d0",
|
||||
"%X c #c95fcc81d1c3",
|
||||
"&X c #ca18cce0d140",
|
||||
"*X c #ce76d0ddd44f",
|
||||
"=X c #cfc6d296d6cb",
|
||||
"-X c #d1e9d451d713",
|
||||
";X c #d559d665d6c9",
|
||||
":X c #d501d68ed787",
|
||||
">X c Gray84",
|
||||
",X c #d543d771d9f9",
|
||||
"<X c #d4b6d7e8dea1",
|
||||
"1X c #d827d709d5f4",
|
||||
"2X c #da4fd4fadc81",
|
||||
"3X c #d8d6dac9dcbd",
|
||||
"4X c #dd07dc27db7b",
|
||||
"5X c #dd63de3ddd35",
|
||||
"6X c #dc48de00dfa1",
|
||||
"7X c #dbe2de33e22f",
|
||||
"8X c #dd72dfafe2a2",
|
||||
"9X c #dfd1df87e12e",
|
||||
"0X c #dfcee12ae24a",
|
||||
"qX c #e039e165e29f",
|
||||
"wX c #e3b6e4b4e55c",
|
||||
"eX c #e360e516e7b7",
|
||||
"rX c #e623e518e29f",
|
||||
"tX c #e674e93eeb1a",
|
||||
"yX c #e722e8f8eacf",
|
||||
"uX c #eb0aec94ee5b",
|
||||
"iX c #ebb6ed47ee96",
|
||||
"pX c #ef4af08af194",
|
||||
"aX c #f120f318ef4d",
|
||||
"sX c #f197f142f2ce",
|
||||
"dX c #f1a3f2def53d",
|
||||
"fX c #f330f431f4ea",
|
||||
"gX c #f3fbf485f52c",
|
||||
"hX c Gray97",
|
||||
"jX c #f6b4f7b7f8d7",
|
||||
"kX c #f632f8aaf7ce",
|
||||
"lX c #f5ebf828fd61",
|
||||
"zX c #fc48fffff501",
|
||||
"xX c #f9a9f9affb15",
|
||||
"cX c #fafafbe4fa37",
|
||||
"vX c #f83df975fc09",
|
||||
"bX c Gray99",
|
||||
"nX c #fcdbfd0ffc96",
|
||||
"mX c #ffffffd4feaf",
|
||||
"MX c Gray100",
|
||||
"NX c None",
|
||||
/* pixels */
|
||||
"$ f.<o;o=o#oOoXo|X{X'X`X/X!XTXYXPX.X4 ",
|
||||
"$ i.+opXzXSXUX~X[X@o>o6oeopoaouoio0X3 ",
|
||||
"$ a.>Xk ; w Z .*.y.B.F.P.Q.!.W.soDX2 ",
|
||||
"$ p.hXs.j _ T R b d u t r q 0 - 3omX2 ",
|
||||
"$ 8.aX0.D 1.t.M.<.' / ) ) ) ! g 9omX1 ",
|
||||
"$ 6.tX0.z 2.b.v.-.( W Q ^ ^ Y p 9onX< ",
|
||||
"$ 4.rXw.S r.c.#.] } _ Q ^ ^ Y p 9obX< ",
|
||||
"# 3.wXq.l :.,.+.X.%.[ ~ ~ ^ Y e 8ovX< ",
|
||||
"# &.9Xq.h { ;.>.$...` / ( ( E e 7ovX< ",
|
||||
"@ K 7Xd.C O.@.| W U v c x f y : ,obX1 ",
|
||||
"@ J +XF = 8 a V A H o.9.u.h.j.g.yocX1 ",
|
||||
"@ P QX,X1XiXlXFX^Xoo2orosososososoxX< ",
|
||||
"O 6 D.A.S.OX~.E.L.K.Z.V.N.n.m.x.k.5.% ",
|
||||
" dodododoM I l.=.G s 9 * > + . dodo ",
|
||||
"dododoX dodoO 5 C.e.i 7 , & dododododo",
|
||||
"L N B dX:o%o o(X}XJXsX<X@XY.H.z.7.n m ",
|
||||
"GXwoto5o0o5o1o&o]X_XRXLXCXfX8X;X$X}.I.",
|
||||
"].3X$o-XWXIXHXkX&XVXMXuXqX4X=X%XXX|.'.",
|
||||
"^./.AX-oqo4o*o.o)XEXKXZXjXyX6X:XoX[.`.",
|
||||
"T.(.`.2XBXNXgXeX5X*X#X X{.U.J.G.R._.)."
|
||||
"Z L .X%X&X*X-X,X3X6X0XwXwXqX:X0.NXNXNX",
|
||||
"C z tX<X7XeXyXuXpXfXhXbXnXgXdXy.NXNXNX",
|
||||
"V x K.D 5 G O.;.6.i.v.V.A.C.MXz.NXNXNX",
|
||||
"B b _.$.9 U j f q 7 4 3 1 O MXc.NXNXNX",
|
||||
"m l /.=.F 1.5.<.` ! ( ( R 0 MXx.NXNXNX",
|
||||
"n p ^.&.k 4.2.../ E E ~ T 0 MXz.NXNXNX",
|
||||
"v > W.=.h ,.X._ | ) E Q T 6 MXl.NXNXNX",
|
||||
"c * U.*.u +.@.o. .` ^ ) W 8 MXl.NXNXNX",
|
||||
"< % P.-.i ] ' Y d t r e 2 @ mXl.NXNXNX",
|
||||
", & D.{ # g K [ %.>.7.e.t.r.MXx.NXNXNX",
|
||||
"; & ).Y.R.oXOX=X8XiXjXvXlXkXaX9.NXNXNX",
|
||||
"X A H I 8.w.3.} J s y w - a : NXNXNX",
|
||||
" NXNX NX . P S o NX NXNXNX",
|
||||
"M $ + M.}.E.F.XX(.m.p.q.:.#.N = NXNXNX",
|
||||
"'.rXzXcXMXxXsX9X4X1X#X{.!.J.N.u.NXNXNX",
|
||||
"j.h.2XT.;X+X|.H.[.].~.I.G.Z.n.f.NXNXNX",
|
||||
"a.s.k.$X5X>X@X X`.Q.L.S.B.b.g.d.NXNXNX",
|
||||
"NXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNX",
|
||||
"NXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNX",
|
||||
"NXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNX"
|
||||
};
|
||||
|
|
|
|||
|
|
@ -1,343 +1,266 @@
|
|||
/* XPM */
|
||||
static char *remote_server[] = {
|
||||
/* columns rows colors chars-per-pixel */
|
||||
"19 20 317 2",
|
||||
"19 20 240 2",
|
||||
" c Gray0",
|
||||
". c #006301880000",
|
||||
"X c #010401400000",
|
||||
"o c #02c102600000",
|
||||
"O c #038e038e0000",
|
||||
"+ c #00000513029f",
|
||||
"@ c #04b804e70000",
|
||||
"# c #04f305220000",
|
||||
"$ c #057105930000",
|
||||
"% c #0a480a9802be",
|
||||
"& c #0b430d040000",
|
||||
"* c #00330b711620",
|
||||
"= c #026109171623",
|
||||
"- c #03080b971bb6",
|
||||
"; c #04cf0e3b1b1f",
|
||||
": c #06820e0c1f92",
|
||||
"> c #05f211601517",
|
||||
", c #0d1c14761171",
|
||||
"< c #103c10c20561",
|
||||
"1 c #10b8111b05da",
|
||||
"2 c #10eb11600624",
|
||||
"3 c #113b11ce0683",
|
||||
"4 c #11b61255071b",
|
||||
"5 c #1cbc1dcf05fe",
|
||||
"6 c #183419e80d82",
|
||||
"7 c #0bc61653218e",
|
||||
"8 c #0d95142d22f4",
|
||||
"9 c #0d4b16ff205b",
|
||||
"0 c #0ac114eb2eb2",
|
||||
"q c #0f4c1909310f",
|
||||
"w c #13ea1c602934",
|
||||
"e c #168f1d8e2dc3",
|
||||
"r c #11011aa43294",
|
||||
"t c #135a1ce3349b",
|
||||
"y c #12331ce037d0",
|
||||
"u c #158d1eed368a",
|
||||
"i c #173b20ea296e",
|
||||
"p c #180c202a2fdd",
|
||||
"a c #1be821642dd5",
|
||||
"s c #1cf825312e1a",
|
||||
"d c #17a520e637c6",
|
||||
"f c #1691208039a1",
|
||||
"g c #187e208b309c",
|
||||
"h c #19fb20683177",
|
||||
"j c #1c9a23ff3169",
|
||||
"k c #1e75259e3112",
|
||||
"l c #1e0e255034df",
|
||||
"z c #1f9627cc36a0",
|
||||
"x c #180b21d33add",
|
||||
"c c #19c7236d3c4a",
|
||||
"v c #1b7524fe3da3",
|
||||
"b c #1fd328903c87",
|
||||
"n c #236423c405a4",
|
||||
"m c #258f25bd1420",
|
||||
"M c #207d21b21817",
|
||||
"N c #2b272c0b143d",
|
||||
"B c #2ec52ee910e0",
|
||||
"V c #22ab27f13368",
|
||||
"C c #224327bc3709",
|
||||
"Z c #23dd2b2f3641",
|
||||
"A c #25e52af6367c",
|
||||
"S c #21ac29c038db",
|
||||
"D c #23262b4c3aa4",
|
||||
"F c #2d0331e538f1",
|
||||
"G c #2c9533173bd8",
|
||||
"H c #2eb0335c3dd0",
|
||||
"J c #38613a462b08",
|
||||
"K c #39a53b832cfc",
|
||||
"L c #3de83e452c21",
|
||||
"P c #3c073e012ee8",
|
||||
"I c #3a193d073d97",
|
||||
"U c #1f9129164137",
|
||||
"Y c #23a72d3b4658",
|
||||
"T c #26792f0e43d2",
|
||||
"R c #27d92fb742a5",
|
||||
"E c #24ef2ebc47f4",
|
||||
"W c #26602f7446ad",
|
||||
"Q c #26f62ffd4716",
|
||||
"! c #24e02e7b4826",
|
||||
"~ c #26f630054723",
|
||||
"^ c #2735303b4747",
|
||||
"/ c #279230bb484d",
|
||||
"( c #2866317d4879",
|
||||
") c #28743191492e",
|
||||
"_ c #298e32944970",
|
||||
"` c #29b032b04a02",
|
||||
"' c #2af433c64a91",
|
||||
"] c #2ca6355d4bec",
|
||||
"[ c #2ccd35c74c46",
|
||||
"{ c #2d8a36fd4f6e",
|
||||
"} c #2efe37d84db6",
|
||||
"| c #2f6938114e35",
|
||||
" . c #31cb37c3410c",
|
||||
".. c #300738ca4ee0",
|
||||
"X. c #310a39a94f2b",
|
||||
"o. c #382d3c6a45a1",
|
||||
"O. c #307139a5514a",
|
||||
"+. c #32063abd503a",
|
||||
"@. c #32df3b845116",
|
||||
"#. c #33853bb6517b",
|
||||
"$. c #35053d7852a2",
|
||||
"%. c #37783f9054a1",
|
||||
"&. c #3e69404831f4",
|
||||
"*. c #3b3441654977",
|
||||
"=. c #3cc942ce4b1d",
|
||||
"-. c #38c040c155d1",
|
||||
";. c #38af40d25609",
|
||||
":. c #394841a55893",
|
||||
">. c #3b8e4386584f",
|
||||
",. c #3e44465a5a6f",
|
||||
"<. c #3f7f46cb5a18",
|
||||
"1. c #3cd944da5c5b",
|
||||
"2. c #3f3948575dc4",
|
||||
"3. c #418e43953549",
|
||||
"4. c #44e746ff384b",
|
||||
"5. c #444a482e3b3b",
|
||||
"6. c #47ff4a023b15",
|
||||
"7. c #489f4cee3a3f",
|
||||
"8. c #4b614d013e70",
|
||||
"9. c #419845584d4f",
|
||||
"0. c #4d634e2d4a8b",
|
||||
"q. c #4e674ea14b28",
|
||||
"w. c #4e734f844b8c",
|
||||
"e. c #44254aa35364",
|
||||
"r. c #414649565f39",
|
||||
"t. c #439a4ad95e55",
|
||||
"y. c #48c34eb7556c",
|
||||
"u. c #4a444d635487",
|
||||
"i. c #4fea50db4160",
|
||||
"p. c #4f73514041fa",
|
||||
"a. c #5168526142f2",
|
||||
"s. c #505850834b2d",
|
||||
"d. c #540f52e24eb8",
|
||||
"f. c #569657f74c68",
|
||||
"g. c #5358543c5864",
|
||||
"h. c #52e6551e5b74",
|
||||
"j. c #544956435d37",
|
||||
"k. c #57695c235475",
|
||||
"l. c #54a95a425f8b",
|
||||
"z. c #566c5b4d5cf4",
|
||||
"x. c #56e35ee55bb7",
|
||||
"c. c #458a4d8a6069",
|
||||
"v. c #499450c8635b",
|
||||
"b. c #4b9b53576549",
|
||||
"n. c #4bba5481622b",
|
||||
"m. c #4adf549f64e3",
|
||||
"M. c #4ced535064d4",
|
||||
"N. c #4dc0565762ae",
|
||||
"B. c #57a15cd961d8",
|
||||
"V. c #54c25c97683c",
|
||||
"C. c #5fd163d75f3d",
|
||||
"Z. c #5c2563546eb5",
|
||||
"A. c #640967b35e37",
|
||||
"S. c #67906b695fd7",
|
||||
"D. c #63dd688360b0",
|
||||
"F. c #6437689a6c5f",
|
||||
"G. c #685c6878686f",
|
||||
"H. c #688a6c556ba2",
|
||||
"J. c #6f876f8c6f85",
|
||||
"K. c #631069c67489",
|
||||
"L. c #6a0170827ae5",
|
||||
"P. c #717d74ec7736",
|
||||
"I. c #75d671ee71ae",
|
||||
"U. c #77bb77bb77bb",
|
||||
"Y. c #7b347df07b19",
|
||||
"T. c #7f2648ea8c0e",
|
||||
"R. c #7c43605280d0",
|
||||
"E. c #72d5791483e2",
|
||||
"W. c #7cf57fbe80b1",
|
||||
"Q. c #7e7980f98299",
|
||||
"!. c #7e91816e839c",
|
||||
"~. c #7ed384e490ee",
|
||||
"^. c #8022480a8cca",
|
||||
"/. c #8d2d43d496c7",
|
||||
"(. c #8b934b72959f",
|
||||
"). c #8cd54cf296d9",
|
||||
"_. c #8f2e4f3b98ff",
|
||||
"`. c #9289528b9b4d",
|
||||
"'. c #8a2c67b98f02",
|
||||
"]. c #8d2360e19956",
|
||||
"[. c #8f7c69599410",
|
||||
"{. c #808780878087",
|
||||
"}. c #872189db835c",
|
||||
"|. c #85758bb285b4",
|
||||
" X c #88ec88ec88ec",
|
||||
".X c #8a418d6488df",
|
||||
"XX c #8cf08fa88cea",
|
||||
"oX c #8f8f934f8ed7",
|
||||
"OX c #8bd591c29248",
|
||||
"+X c #8bec903c972c",
|
||||
"@X c #8e0b91789285",
|
||||
"#X c Gray57",
|
||||
"$X c #91f691e192da",
|
||||
"%X c #93d593db93a6",
|
||||
"&X c #96aa98eb9f9a",
|
||||
"*X c Gray60",
|
||||
"=X c #9a8e9a7d9a57",
|
||||
"-X c #9b679e4c9b80",
|
||||
";X c #9c149bd29e1a",
|
||||
":X c #9cbc9ebd9c6a",
|
||||
">X c #9320985aa0de",
|
||||
",X c #96949ceeabca",
|
||||
"<X c #9fc7a2c4a67d",
|
||||
"1X c #9ae2a0a6adff",
|
||||
"2X c #acf6927bb1f3",
|
||||
"3X c #b74791f0bec9",
|
||||
"4X c Gray63",
|
||||
"5X c #a2b6a2b3a2a7",
|
||||
"6X c Gray65",
|
||||
"7X c #a68fa7fca846",
|
||||
"8X c #a755a709a85c",
|
||||
"9X c #a712a8a9aa50",
|
||||
"0X c #abf9ae59a790",
|
||||
"qX c Gray66",
|
||||
"wX c #a8c4aa49abeb",
|
||||
"eX c #ab00aaffaafd",
|
||||
"rX c #aa97ac1fad93",
|
||||
"tX c #ac92adf5af5a",
|
||||
"yX c #ae38ae38ae39",
|
||||
"uX c #afb0afaaafa7",
|
||||
"iX c #a2fba7a7b199",
|
||||
"pX c #a499a91eb1bf",
|
||||
"aX c #ae83af57b14b",
|
||||
"sX c #af08b159b32b",
|
||||
"dX c #bfb0bfefa8a2",
|
||||
"fX c #b1bcb172b2ac",
|
||||
"gX c Gray70",
|
||||
"hX c #b3a9b464b476",
|
||||
"jX c #b671b672b672",
|
||||
"kX c #b731b76ab7c5",
|
||||
"lX c #b0b4b457baa1",
|
||||
"zX c #b15cb55ebc6c",
|
||||
"xX c #b8d8badab521",
|
||||
"cX c #ba59bba3b445",
|
||||
"vX c #bb17bc5eb4ea",
|
||||
"bX c #bb79bcb0b5ab",
|
||||
"nX c #bce9bdd2b6be",
|
||||
"mX c #bd9dbe56b777",
|
||||
"MX c #b914b909b8e6",
|
||||
"NX c #b9aeb9aeb9a3",
|
||||
"BX c #bb9abbf8bbc4",
|
||||
"VX c #bbacbbd4bc60",
|
||||
"CX c #bce5bc82bccb",
|
||||
"ZX c Gray74",
|
||||
"AX c #bbd094eac032",
|
||||
"SX c #bb73be6bc410",
|
||||
"DX c #bf00c03db997",
|
||||
"FX c #bf47c1fdc67c",
|
||||
"GX c #c13eb95bc055",
|
||||
"HX c #c36fc384c3cd",
|
||||
"JX c #c3b5c549c6db",
|
||||
"KX c #c664c65fc653",
|
||||
"LX c #c785c6f0c674",
|
||||
"PX c #c29ac4e3c845",
|
||||
"IX c #c51cc629c9e5",
|
||||
"UX c #c407c6e0cb09",
|
||||
"YX c #c5c9c83dcb25",
|
||||
"TX c #c9c5cc24cec4",
|
||||
"RX c #ce66cdd7cd54",
|
||||
"EX c #cea7ce97ce6c",
|
||||
"WX c #cf20cf2ecee0",
|
||||
"QX c #c1b4c732d376",
|
||||
"!X c #cc74cebed12f",
|
||||
"~X c #cc45cea2d21f",
|
||||
"^X c #ccf7cf1cd287",
|
||||
"/X c #ce8ad0f9d350",
|
||||
"(X c #d20cd21dcad3",
|
||||
")X c #d0afd0e4d189",
|
||||
"_X c #d2e7d26cd1e8",
|
||||
"`X c #d095d2f8d57a",
|
||||
"'X c #d2bdd524d78d",
|
||||
"]X c #d5a2d55cd5e6",
|
||||
"[X c #d464d662d941",
|
||||
"{X c #d515d75ed96c",
|
||||
"}X c #d7bed8b1d727",
|
||||
"|X c #d71dd95bdb92",
|
||||
" o c #db61db30d537",
|
||||
".o c #da8cda80da4d",
|
||||
"Xo c #d947dbb0dd8f",
|
||||
"oo c #dae3dc71de87",
|
||||
"Oo c #dbc4ddcadf9e",
|
||||
"+o c #dae1de96e582",
|
||||
"@o c #dcd0de66e021",
|
||||
"#o c #de07dfdde1f9",
|
||||
"$o c #dbc8e12ddbe5",
|
||||
"%o c #e0bbe0e6d9f8",
|
||||
"&o c #e16de13ee29a",
|
||||
"*o c #e28ae27ce25e",
|
||||
"=o c #e015e1fee41d",
|
||||
"-o c #e28be623e1c6",
|
||||
";o c #e25be434e628",
|
||||
":o c #e75be78ae2a3",
|
||||
">o c #e530e657e743",
|
||||
",o c #e6d6e519e56f",
|
||||
"<o c #e58ee7b3e90d",
|
||||
"1o c #e6b5e6a4e83a",
|
||||
"2o c #e982ea7beaa5",
|
||||
"3o c #eac8e9f3e9ac",
|
||||
"4o c Gray92",
|
||||
"5o c #ec6bec6cedd8",
|
||||
"6o c #ed58edd5ee00",
|
||||
"7o c #f120eeefeebe",
|
||||
"8o c #f226f01cefca",
|
||||
"9o c #f2c3f197f0c4",
|
||||
"0o c #f226f20cf487",
|
||||
"qo c #f25ff439f1d3",
|
||||
"wo c #f5fff735f350",
|
||||
"eo c #f5ebf5caf4e1",
|
||||
"ro c #f7b5f7c2f6f5",
|
||||
"to c #f655f90df2a7",
|
||||
"yo c #f8c1f651f6be",
|
||||
"uo c #f810f7faf70f",
|
||||
"io c #fdedfdebffaf",
|
||||
"po c #fe2ffd81fc36",
|
||||
"ao c #fe92fe4dfced",
|
||||
"so c Gray100",
|
||||
"do c None",
|
||||
". c #023e04130000",
|
||||
"X c #073b07af0360",
|
||||
"o c #000000000a4b",
|
||||
"O c #000000000f11",
|
||||
"+ c #0f580fce0000",
|
||||
"@ c #0000000010d0",
|
||||
"# c #07ab0eb01e98",
|
||||
"$ c #14b41637012b",
|
||||
"% c #168917a80ab2",
|
||||
"& c #175c18520a5a",
|
||||
"* c #1a0b1b520eb5",
|
||||
"= c #1e231e6d0bf9",
|
||||
"- c #17091db31bda",
|
||||
"; c #1aaf1bb4122d",
|
||||
": c #19741af214be",
|
||||
"> c #1c8d1df31118",
|
||||
", c #1ec01fc915d0",
|
||||
"< c #1ef51ff71651",
|
||||
"1 c #0000079e232a",
|
||||
"2 c #03a20f492c9f",
|
||||
"3 c #05590f692831",
|
||||
"4 c #072b113229fd",
|
||||
"5 c #0de317392448",
|
||||
"6 c #0e48163327ef",
|
||||
"7 c #09e713c52c71",
|
||||
"8 c #0ebe1619282b",
|
||||
"9 c #0e6d17482956",
|
||||
"0 c #0f4817eb299f",
|
||||
"q c #0c56160c2dcf",
|
||||
"w c #0f201a2425db",
|
||||
"e c #0be6165230b9",
|
||||
"r c #0d6917bd324a",
|
||||
"t c #0ff51a183470",
|
||||
"y c #10431cfd2b8f",
|
||||
"u c #15631d8a32e0",
|
||||
"i c #16811da73182",
|
||||
"p c #1f2f209a1346",
|
||||
"a c #1d4020891a22",
|
||||
"s c #171221aa2fcd",
|
||||
"d c #160d20113996",
|
||||
"f c #18d621893596",
|
||||
"g c #1d8e235a30e7",
|
||||
"h c #1e4226db3a44",
|
||||
"j c #1f4027663b36",
|
||||
"k c #1ebd282c3af4",
|
||||
"l c #21c022e615d4",
|
||||
"z c #224e22ab1570",
|
||||
"x c #24e325221696",
|
||||
"c c #2172227b18dd",
|
||||
"v c #2374248b1abd",
|
||||
"b c #25ae26bd18f5",
|
||||
"n c #257726891c6a",
|
||||
"m c #275c28461e3d",
|
||||
"M c #2ce52d5d1e67",
|
||||
"N c #2e0d317f1d9b",
|
||||
"B c #298b2a6f2027",
|
||||
"V c #2a5b2ae92075",
|
||||
"C c #2b1d2bb82201",
|
||||
"Z c #2b922c3522c4",
|
||||
"A c #2b8b2dfb26cc",
|
||||
"S c #224929923335",
|
||||
"D c #23892b663903",
|
||||
"F c #217c2aa73e75",
|
||||
"G c #280f2f9e3ac1",
|
||||
"H c #2f6231172843",
|
||||
"J c #28e4318f3d9b",
|
||||
"K c #2de4327f3c5e",
|
||||
"L c #385c392a2eb5",
|
||||
"P c #370e3bbe368b",
|
||||
"I c #3d973fff3561",
|
||||
"U c #200d2964419b",
|
||||
"Y c #21382a9542af",
|
||||
"T c #21372b164533",
|
||||
"R c #22882c8447b1",
|
||||
"E c #267e2f8a46a5",
|
||||
"W c #23f82e1d485b",
|
||||
"Q c #27c430b34778",
|
||||
"! c #277f30be48e2",
|
||||
"~ c #280330ee4794",
|
||||
"^ c #28c331ed4959",
|
||||
"/ c #28f9321f48f3",
|
||||
"( c #295232764a58",
|
||||
") c #2aab33ad4a5d",
|
||||
"_ c #2b9734644ad0",
|
||||
"` c #2b4234414b9a",
|
||||
"' c #2cdd35a14c17",
|
||||
"] c #2d9c3759502c",
|
||||
"[ c #35c73a1843c3",
|
||||
"{ c #348e39fb453b",
|
||||
"} c #36d33e394a1a",
|
||||
"| c #34a13d075244",
|
||||
" . c #34f73d7b5328",
|
||||
".. c #35983dbd5362",
|
||||
"X. c #36cc3f2f53d4",
|
||||
"o. c #37713fd854df",
|
||||
"O. c #3c1b41ef4a48",
|
||||
"+. c #382941505988",
|
||||
"@. c #3cb244ae5933",
|
||||
"#. c #413545b24744",
|
||||
"$. c #44c1455c418f",
|
||||
"%. c #428c464e4eb2",
|
||||
"&. c #49e74b17480e",
|
||||
"*. c #4b7a4b984919",
|
||||
"=. c #4b424c124924",
|
||||
"-. c #4e2b4ce1494c",
|
||||
";. c #4b5450bb574f",
|
||||
":. c #545f56ee543c",
|
||||
">. c #520055075b58",
|
||||
",. c #45ca4deb63f7",
|
||||
"<. c #47c54ea9618f",
|
||||
"1. c #477d4f716673",
|
||||
"2. c #48314fb16218",
|
||||
"3. c #4cd2542760ea",
|
||||
"4. c #4b93542768dd",
|
||||
"5. c #528858de6a23",
|
||||
"6. c #5d7f62a36740",
|
||||
"7. c #606162956770",
|
||||
"8. c #639c687068a6",
|
||||
"9. c #692e6b18620d",
|
||||
"0. c #6c456e4766cc",
|
||||
"q. c #6bc06e9068a9",
|
||||
"w. c #64656af87761",
|
||||
"e. c #6c7f6da9716d",
|
||||
"r. c #6e426e0971fc",
|
||||
"t. c #6eae6f6f73f0",
|
||||
"y. c #6f79716769b5",
|
||||
"u. c #75af75d26eec",
|
||||
"i. c #71a275b87813",
|
||||
"p. c #7dc582a986da",
|
||||
"a. c #862d47a59174",
|
||||
"s. c #885b47d79329",
|
||||
"d. c #8fac5b4596fb",
|
||||
"f. c #898d7a518c04",
|
||||
"g. c #8a1b7bb78c25",
|
||||
"h. c #9ff76cefabfe",
|
||||
"j. c #a01373e4a9c2",
|
||||
"k. c #a9327743af85",
|
||||
"l. c #813c82307990",
|
||||
"z. c #81e482da7a7f",
|
||||
"x. c #82a183727b14",
|
||||
"c. c #833e83de7b92",
|
||||
"v. c #83248602867e",
|
||||
"b. c #8b538c308b37",
|
||||
"n. c #8f4d99148ef8",
|
||||
"m. c #8ddd9240969e",
|
||||
"M. c #9b689b8586d9",
|
||||
"N. c #953097a99355",
|
||||
"B. c Gray58",
|
||||
"V. c #96d09842970f",
|
||||
"C. c #979799719910",
|
||||
"Z. c #9b579caa9ae3",
|
||||
"A. c #9ba99d2a9c8f",
|
||||
"S. c Gray62",
|
||||
"D. c #99659de1a359",
|
||||
"F. c #ac17ab8b9ea2",
|
||||
"G. c Gray64",
|
||||
"H. c #a007a1f1a793",
|
||||
"J. c #a2a1a27ea639",
|
||||
"K. c #a1c7a6b9ac80",
|
||||
"L. c Gray66",
|
||||
"P. c #aa08ab5ba86e",
|
||||
"I. c #aaa1aa8daa8b",
|
||||
"U. c #adedaf8bae65",
|
||||
"Y. c #a8ffaf75b90b",
|
||||
"T. c #ad0bb5d3aca9",
|
||||
"R. c #afcab577bbfb",
|
||||
"E. c #b3cab37fae09",
|
||||
"W. c #b065b1f7b0b8",
|
||||
"Q. c #b1f1b1efb1e7",
|
||||
"!. c #b0b0b090b228",
|
||||
"~. c #b27fb26eb259",
|
||||
"^. c #b34ab4cdb34c",
|
||||
"/. c #b6f9b7c3b6c1",
|
||||
"(. c #b2d3b572b8bd",
|
||||
"). c #b679bc3fbfdf",
|
||||
"_. c #b94dba06b74f",
|
||||
"`. c #bb54bb51bb4c",
|
||||
"'. c #bf9eb931bc1d",
|
||||
"]. c Gray74",
|
||||
"[. c #bd72bdc7bee1",
|
||||
"{. c #bebbbe54bf75",
|
||||
"}. c #c12dc14abd26",
|
||||
"|. c #c23ec236c1f7",
|
||||
" X c Gray76",
|
||||
".X c #c3e8c682c6e7",
|
||||
"XX c #c6c6c7c3c0d5",
|
||||
"oX c #c1a0c68acf26",
|
||||
"OX c #c506c896cf5d",
|
||||
"+X c #c991ca28ccd9",
|
||||
"@X c Gray80",
|
||||
"#X c #cdcccceccccd",
|
||||
"$X c #cf73c67ed0d0",
|
||||
"%X c #c95fcc81d1c3",
|
||||
"&X c #ca18cce0d140",
|
||||
"*X c #ce76d0ddd44f",
|
||||
"=X c #cfc6d296d6cb",
|
||||
"-X c #d1e9d451d713",
|
||||
";X c #d559d665d6c9",
|
||||
":X c #d501d68ed787",
|
||||
">X c Gray84",
|
||||
",X c #d543d771d9f9",
|
||||
"<X c #d4b6d7e8dea1",
|
||||
"1X c #d827d709d5f4",
|
||||
"2X c #da4fd4fadc81",
|
||||
"3X c #d8d6dac9dcbd",
|
||||
"4X c #dd07dc27db7b",
|
||||
"5X c #dd63de3ddd35",
|
||||
"6X c #dc48de00dfa1",
|
||||
"7X c #dbe2de33e22f",
|
||||
"8X c #dd72dfafe2a2",
|
||||
"9X c #dfd1df87e12e",
|
||||
"0X c #dfcee12ae24a",
|
||||
"qX c #e039e165e29f",
|
||||
"wX c #e3b6e4b4e55c",
|
||||
"eX c #e360e516e7b7",
|
||||
"rX c #e623e518e29f",
|
||||
"tX c #e674e93eeb1a",
|
||||
"yX c #e722e8f8eacf",
|
||||
"uX c #eb0aec94ee5b",
|
||||
"iX c #ebb6ed47ee96",
|
||||
"pX c #ef4af08af194",
|
||||
"aX c #f120f318ef4d",
|
||||
"sX c #f197f142f2ce",
|
||||
"dX c #f1a3f2def53d",
|
||||
"fX c #f330f431f4ea",
|
||||
"gX c #f3fbf485f52c",
|
||||
"hX c Gray97",
|
||||
"jX c #f6b4f7b7f8d7",
|
||||
"kX c #f632f8aaf7ce",
|
||||
"lX c #f5ebf828fd61",
|
||||
"zX c #fc48fffff501",
|
||||
"xX c #f9a9f9affb15",
|
||||
"cX c #fafafbe4fa37",
|
||||
"vX c #f83df975fc09",
|
||||
"bX c Gray99",
|
||||
"nX c #fcdbfd0ffc96",
|
||||
"mX c #ffffffd4feaf",
|
||||
"MX c Gray100",
|
||||
"NX c None",
|
||||
/* pixels */
|
||||
"$ f.<o;o=o#oOoXo|X{X'X`X/X!XTXYXPX.X4 ",
|
||||
"$ i.+opXzXSXUX~X[X@o>o6oeopoaouoio0X3 ",
|
||||
"$ a.>Xk ; w Z .*.y.B.F.P.Q.!.W.soDX2 ",
|
||||
"$ p.hXs.j _ T R b d u t r q 0 - 3omX2 ",
|
||||
"$ 8.aX0.D 1.t.M.<.' / ) ) ) ! g 9omX1 ",
|
||||
"$ 6.tX0.z 2.b.v.-.( W Q ^ ^ Y p 9onX< ",
|
||||
"$ 4.rXw.S r.c.#.] } _ Q ^ ^ Y p 9obX< ",
|
||||
"# 3.wXq.l :.,.+.X.%.[ ~ ~ ^ Y e 8ovX< ",
|
||||
"# &.9Xq.h { ;.>.$...` / ( ( E e 7ovX< ",
|
||||
"@ K 7Xd.C O.@.| W U v c x f y : ,obX1 ",
|
||||
"@ J +XF = 8 a V A H o.9.u.h.j.g.yocX1 ",
|
||||
"@ P QX,X1XiXlXFX^Xoo2orosososososoxX< ",
|
||||
"O 6 D.A.S.OX~.E.L.K.Z.V.N.n.m.x.k.5.% ",
|
||||
" dodododoM I l.=.G s 9 * > + . dodo ",
|
||||
"dododoX dodoO 5 C.e.i 7 , & dododododo",
|
||||
"L N B dX:o%o o(X}XJXsX<X@XY.H.z.7.n m ",
|
||||
"GXwoto5o0o5o1o&o]X_XRXLXCXfX8X;X$X}.I.",
|
||||
"].3X$o-XWXIXHXkX&XVXMXuXqX4X=X%XXX|.'.",
|
||||
"^./.AX-oqo4o*o.o)XEXKXZXjXyX6X:XoX[.`.",
|
||||
"T.(.`.2XBXNXgXeX5X*X#X X{.U.J.G.R._.)."
|
||||
"Z L .X%X&X*X-X,X3X6X0XwXwXqX:X0.NXNXNX",
|
||||
"C z tX<X7XeXyXuXpXfXhXbXnXgXdXy.NXNXNX",
|
||||
"V x K.D 5 G O.;.6.i.v.V.A.C.MXz.NXNXNX",
|
||||
"B b _.$.9 U j f q 7 4 3 1 O MXc.NXNXNX",
|
||||
"m l /.=.F 1.5.<.` ! ( ( R 0 MXx.NXNXNX",
|
||||
"n p ^.&.k 4.2.../ E E ~ T 0 MXz.NXNXNX",
|
||||
"v > W.=.h ,.X._ | ) E Q T 6 MXl.NXNXNX",
|
||||
"c * U.*.u +.@.o. .` ^ ) W 8 MXl.NXNXNX",
|
||||
"< % P.-.i ] ' Y d t r e 2 @ mXl.NXNXNX",
|
||||
", & D.{ # g K [ %.>.7.e.t.r.MXx.NXNXNX",
|
||||
"; & ).Y.R.oXOX=X8XiXjXvXlXkXaX9.NXNXNX",
|
||||
"X A H I 8.w.3.} J s y w - a : NXNXNX",
|
||||
" NXNX NX . P S o NX NXNXNX",
|
||||
"M $ + M.}.E.F.XX(.m.p.q.:.#.N = NXNXNX",
|
||||
"'.rXzXcXMXxXsX9X4X1X#X{.!.J.N.u.NXNXNX",
|
||||
"j.h.2XT.;X+X|.H.[.].~.I.G.Z.n.f.NXNXNX",
|
||||
"a.s.k.$X5X>X@X X`.Q.L.S.B.b.g.d.NXNXNX",
|
||||
"NXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNX",
|
||||
"NXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNX",
|
||||
"NXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNXNX"
|
||||
};
|
||||
|
|
|
|||
|
|
@ -13,29 +13,36 @@ int main(int argc, char **argv) {
|
|||
Gtk_Tree *machine, *machinetree;
|
||||
Gtk_LdapServer *treeitem;
|
||||
Gtk_Viewport *viewport;
|
||||
char *host = NULL;
|
||||
char *host = NULL, *prt = NULL;
|
||||
char *base_dn = NULL;
|
||||
int c, port = 0;
|
||||
G_List<char> *hosts;
|
||||
int host_count = 0;
|
||||
char *pair[2];
|
||||
|
||||
while ((c = getopt(argc, argv, "b:s:p:h")) != -1) {
|
||||
hosts = new G_List<char>();
|
||||
while ((c = getopt(argc, argv, "s:p:h")) != -1) {
|
||||
switch (c) {
|
||||
case 'b':
|
||||
base_dn = optarg; break;
|
||||
case 's':
|
||||
host = strdup(optarg); break;
|
||||
cout << "host" << endl;
|
||||
hosts = hosts->append(strdup(optarg));
|
||||
break;
|
||||
case 'p':
|
||||
port = atoi(optarg); break;
|
||||
case 'h':
|
||||
default:
|
||||
fprintf(stderr, "Usage: %s [-s server] [-p port] [-b base_dn]\n", argv[0]);
|
||||
fprintf(stderr, "Usage: %s ([-s server[:port]])*\n", argv[0]);
|
||||
exit(-1);
|
||||
}
|
||||
}
|
||||
|
||||
// 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;
|
||||
cout << hosts->length() << "hosts" << endl;
|
||||
for (int f=0; f<hosts->length(); f++) {
|
||||
debug("%s\n", hosts->nth_data(f));
|
||||
}
|
||||
if (hosts->length() == 0) {
|
||||
ldap_get_option(NULL, LDAP_OPT_HOST_NAME, host);
|
||||
hosts = hosts->append(host);
|
||||
}
|
||||
if (port == 0) port = LDAP_PORT;
|
||||
|
||||
Gtk_Main m(&argc, &argv);
|
||||
|
|
@ -43,24 +50,28 @@ int main(int argc, char **argv) {
|
|||
window = new My_Window(GTK_WINDOW_TOPLEVEL);
|
||||
|
||||
tree = new Gtk_Tree();
|
||||
treeitem = new Gtk_LdapServer(window, host, port);
|
||||
subtree = treeitem->getSubtree();
|
||||
tree->append(*treeitem);
|
||||
treeitem->set_subtree(*subtree);
|
||||
treeitem->show();
|
||||
for (int f=0; f<hosts->length(); f++) {
|
||||
host = strtok(hosts->nth_data(f), ":");
|
||||
prt = strtok(NULL, "\0");
|
||||
if (prt != NULL) port = atoi(prt);
|
||||
else port = LDAP_PORT;
|
||||
treeitem = new Gtk_LdapServer(window, host, port);
|
||||
subtree = treeitem->getSubtree();
|
||||
tree->append(*treeitem);
|
||||
treeitem->set_subtree(*subtree);
|
||||
treeitem->show();
|
||||
}
|
||||
viewport = new Gtk_Viewport();
|
||||
viewport->add(tree);
|
||||
window->scroller->add(viewport);
|
||||
tree->show();
|
||||
viewport->show();
|
||||
window->scroller->show();
|
||||
treeitem->showDetails();
|
||||
// treeitem->showDetails();
|
||||
// treeitem->select();
|
||||
window->set_title("Hello");
|
||||
window->set_title("gtk-tool");
|
||||
window->activate();
|
||||
|
||||
window->set_usize(600, 500);
|
||||
|
||||
window->show();
|
||||
|
||||
m.run();
|
||||
|
|
|
|||
Loading…
Reference in a new issue