add 12 new toolbar/menu icons

add two toolbar toggle buttons
add icons to various menu items

create new Statistics telephony group and put telephony and alike protocols in it

svn path=/trunk/; revision=14098
This commit is contained in:
Ulf Lamping 2005-04-16 10:53:09 +00:00
parent af3435f669
commit e571cbfa9d
36 changed files with 1990 additions and 58 deletions

View File

@ -512,13 +512,20 @@ EXTRA_DIST = \
image/stock_dialog_info_48.xpm \
image/tethereal.rc.in \
image/text2pcap.rc.in \
image/toolbar/autoscroll_24.xpm \
image/toolbar/capture_filter_24.xpm \
image/toolbar/capture_interfaces_24.xpm \
image/toolbar/capture_options_24.xpm \
image/toolbar/capture_restart_24.xpm \
image/toolbar/capture_start_24.xpm \
image/toolbar/capture_stop_24.xpm \
image/toolbar/colorize_24.xpm \
image/toolbar/conversations_16.xpm \
image/toolbar/display_filter_24.xpm \
image/toolbar/endpoints_16.xpm \
image/toolbar/graphs_16.xpm \
image/toolbar/internet_24.xpm \
image/toolbar/resize_columns_24.xpm \
image/toolbar/stock_add_24.xpm \
image/toolbar/stock_bottom_24.xpm \
image/toolbar/stock_clear_24.xpm \
@ -542,6 +549,10 @@ EXTRA_DIST = \
image/toolbar/stock_zoom_1_24.xpm \
image/toolbar/stock_zoom_in_24.xpm \
image/toolbar/stock_zoom_out_24.xpm \
image/toolbar/telephony_16.xpm \
image/toolbar/time_24.xpm \
image/toolbar/web_support_24.xpm \
image/toolbar/wiki_24.xpm \
image/up_arrow.xpm \
image/icon_layout_1.xpm \
image/icon_layout_2.xpm \

View File

@ -478,8 +478,8 @@ register_tap_listener_gtkansi_a_stat(void)
exit(1);
}
register_tap_menu_item("ANSI/A-Interface BSMAP", REGISTER_TAP_GROUP_NONE,
register_tap_menu_item("ANSI/A-Interface BSMAP", REGISTER_TAP_GROUP_TELEPHONY,
ansi_a_stat_gtk_bsmap_cb, NULL, NULL ,NULL);
register_tap_menu_item("ANSI/A-Interface DTAP", REGISTER_TAP_GROUP_NONE,
register_tap_menu_item("ANSI/A-Interface DTAP", REGISTER_TAP_GROUP_TELEPHONY,
ansi_a_stat_gtk_dtap_cb, NULL, NULL ,NULL);
}

View File

@ -442,6 +442,6 @@ register_tap_listener_gtkansi_map_stat(void)
exit(1);
}
register_tap_menu_item("ANSI/MAP Operation", REGISTER_TAP_GROUP_NONE,
register_tap_menu_item("ANSI/MAP Operation", REGISTER_TAP_GROUP_TELEPHONY,
ansi_map_stat_gtk_cb, NULL, NULL, NULL);
}

View File

@ -204,6 +204,18 @@ gtk_signal_emit_stop_by_name(GTK_OBJECT(widget), name)
#define ETHEREAL_STOCK_EDIT "Edit..."
#define ETHEREAL_STOCK_ADD_EXPRESSION "Add Expression..."
#define ETHEREAL_STOCK_DONT_SAVE "Continue without Saving"
#define ETHEREAL_STOCK_ABOUT "About"
#define ETHEREAL_STOCK_COLORIZE "Colorize"
#define ETHEREAL_STOCK_AUTOSCROLL "Auto Scroll in Live Capture"
#define ETHEREAL_STOCK_RESIZE_COLUMNS "Resize Columns"
#define ETHEREAL_STOCK_TIME "Time"
#define ETHEREAL_STOCK_INTERNET "Internet"
#define ETHEREAL_STOCK_WEB_SUPPORT "Web Support"
#define ETHEREAL_STOCK_WIKI "Wiki"
#define ETHEREAL_STOCK_CONVERSATIONS "Conversations"
#define ETHEREAL_STOCK_ENDPOINTS "Endpoints"
#define ETHEREAL_STOCK_GRAPHS "Graphs"
#define ETHEREAL_STOCK_TELEPHONY "Telephony"
/** Create a stock button. Will create a "normal" button for GTK1.
*
@ -308,6 +320,18 @@ g_signal_stop_emission_by_name(G_OBJECT(widget), name)
#define ETHEREAL_STOCK_LABEL_EDIT "_Edit..."
#define ETHEREAL_STOCK_LABEL_ADD_EXPRESSION "_Expression..." /* plus sign coming from icon */
#define ETHEREAL_STOCK_LABEL_DONT_SAVE "Continue _without Saving"
#define ETHEREAL_STOCK_LABEL_ABOUT "_About"
#define ETHEREAL_STOCK_LABEL_COLORIZE "_Colorize"
#define ETHEREAL_STOCK_LABEL_AUTOSCROLL "_Auto Scroll in Live Capture"
#define ETHEREAL_STOCK_LABEL_RESIZE_COLUMNS "Resize Columns"
#define ETHEREAL_STOCK_LABEL_TIME "Time"
#define ETHEREAL_STOCK_LABEL_INTERNET "Internet"
#define ETHEREAL_STOCK_LABEL_WEB_SUPPORT "Web Support"
#define ETHEREAL_STOCK_LABEL_WIKI "Wiki"
#define ETHEREAL_STOCK_LABEL_CONVERSATIONS "Conversations"
#define ETHEREAL_STOCK_LABEL_ENDPOINTS "Endpoints"
#define ETHEREAL_STOCK_LABEL_GRAPHS "Graphs"
#define ETHEREAL_STOCK_LABEL_TELEPHONY "Telephony"
#ifdef HAVE_LIBPCAP
#define ETHEREAL_STOCK_CAPTURE_INTERFACES "Ethereal_Stock_CaptureInterfaces"
@ -328,6 +352,18 @@ g_signal_stop_emission_by_name(G_OBJECT(widget), name)
#define ETHEREAL_STOCK_EDIT "Ethereal_Stock_Edit"
#define ETHEREAL_STOCK_ADD_EXPRESSION "Ethereal_Stock_Edit_Add_Expression"
#define ETHEREAL_STOCK_DONT_SAVE "Ethereal_Stock_Continue_without_Saving"
#define ETHEREAL_STOCK_ABOUT "Ethereal_Stock_About"
#define ETHEREAL_STOCK_COLORIZE "Ethereal_Stock_Colorize"
#define ETHEREAL_STOCK_AUTOSCROLL "Ethereal_Stock_Autoscroll"
#define ETHEREAL_STOCK_RESIZE_COLUMNS "Ethereal_Stock_Resize_Columns"
#define ETHEREAL_STOCK_TIME "Ethereal_Stock_Time"
#define ETHEREAL_STOCK_INTERNET "Ethereal_Stock_Internet"
#define ETHEREAL_STOCK_WEB_SUPPORT "Ethereal_Stock_Web_Support"
#define ETHEREAL_STOCK_WIKI "Ethereal_Stock_Wiki"
#define ETHEREAL_STOCK_CONVERSATIONS "Ethereal_Stock_Conversations"
#define ETHEREAL_STOCK_ENDPOINTS "Ethereal_Stock_Endpoints"
#define ETHEREAL_STOCK_GRAPHS "Ethereal_Stock_Graphs"
#define ETHEREAL_STOCK_TELEPHONY "Ethereal_Stock_Telephony"
#define BUTTON_NEW_FROM_STOCK(stock_id) \
gtk_button_new_from_stock(stock_id);

View File

@ -638,27 +638,27 @@ register_tap_listener_gtkgsm_a_stat(void)
exit(1);
}
register_tap_menu_item("GSM/A-Interface BSSMAP", REGISTER_TAP_GROUP_NONE,
register_tap_menu_item("GSM/A-Interface BSSMAP", REGISTER_TAP_GROUP_TELEPHONY,
gsm_a_stat_gtk_bssmap_cb, NULL, NULL, NULL);
register_tap_menu_item("GSM/A-Interface DTAP/Mobility Management", REGISTER_TAP_GROUP_NONE,
register_tap_menu_item("GSM/A-Interface DTAP/Mobility Management", REGISTER_TAP_GROUP_TELEPHONY,
gsm_a_stat_gtk_dtap_mm_cb, NULL, NULL, NULL);
register_tap_menu_item("GSM/A-Interface DTAP/Radio Resource Management", REGISTER_TAP_GROUP_NONE,
register_tap_menu_item("GSM/A-Interface DTAP/Radio Resource Management", REGISTER_TAP_GROUP_TELEPHONY,
gsm_a_stat_gtk_dtap_rr_cb, NULL, NULL, NULL);
register_tap_menu_item("GSM/A-Interface DTAP/Call Control", REGISTER_TAP_GROUP_NONE,
register_tap_menu_item("GSM/A-Interface DTAP/Call Control", REGISTER_TAP_GROUP_TELEPHONY,
gsm_a_stat_gtk_dtap_cc_cb, NULL, NULL, NULL);
register_tap_menu_item("GSM/A-Interface DTAP/GPRS Mobility Management", REGISTER_TAP_GROUP_NONE,
register_tap_menu_item("GSM/A-Interface DTAP/GPRS Mobility Management", REGISTER_TAP_GROUP_TELEPHONY,
gsm_a_stat_gtk_dtap_gmm_cb, NULL, NULL, NULL);
register_tap_menu_item("GSM/A-Interface DTAP/Short Message Service", REGISTER_TAP_GROUP_NONE,
register_tap_menu_item("GSM/A-Interface DTAP/Short Message Service", REGISTER_TAP_GROUP_TELEPHONY,
gsm_a_stat_gtk_dtap_sms_cb, NULL, NULL, NULL);
register_tap_menu_item("GSM/A-Interface DTAP/GPRS Session Management", REGISTER_TAP_GROUP_NONE,
register_tap_menu_item("GSM/A-Interface DTAP/GPRS Session Management", REGISTER_TAP_GROUP_TELEPHONY,
gsm_a_stat_gtk_dtap_sm_cb, NULL, NULL, NULL);
register_tap_menu_item("GSM/A-Interface DTAP/Supplementary Services", REGISTER_TAP_GROUP_NONE,
register_tap_menu_item("GSM/A-Interface DTAP/Supplementary Services", REGISTER_TAP_GROUP_TELEPHONY,
gsm_a_stat_gtk_dtap_ss_cb, NULL, NULL, NULL);
}

View File

@ -476,6 +476,6 @@ register_tap_listener_gtkgsm_map_stat(void)
exit(1);
}
register_tap_menu_item("GSM/MAP Operation", REGISTER_TAP_GROUP_NONE,
register_tap_menu_item("GSM/MAP Operation", REGISTER_TAP_GROUP_TELEPHONY,
gsm_map_stat_gtk_cb, NULL, NULL, NULL);
}

View File

@ -290,6 +290,6 @@ gsm_map_stat_gtk_sum_cb(GtkWidget *w _U_, gpointer d _U_)
void
register_tap_listener_gtkgsm_map_summary(void)
{
register_tap_menu_item("GSM/MAP Summary", REGISTER_TAP_GROUP_NONE,
register_tap_menu_item("GSM/MAP Summary", REGISTER_TAP_GROUP_TELEPHONY,
gsm_map_stat_gtk_sum_cb, NULL, NULL, NULL);
}

View File

@ -564,6 +564,6 @@ register_tap_listener_gtk_h225counter(void)
{
register_tap_listener_cmd_arg("h225,counter", gtk_h225counter_init);
register_tap_menu_item("H.225...", REGISTER_TAP_GROUP_NONE,
register_tap_menu_item("H.225...", REGISTER_TAP_GROUP_TELEPHONY,
gtk_tap_dfilter_dlg_cb, NULL, NULL, &(h225_counter_dlg));
}

View File

@ -416,6 +416,6 @@ register_tap_listener_gtkisup_stat(void)
exit(1);
}
register_tap_menu_item("ISUP Message Types", REGISTER_TAP_GROUP_NONE,
register_tap_menu_item("ISUP Message Types", REGISTER_TAP_GROUP_TELEPHONY,
isup_stat_gtk_cb, NULL, NULL, NULL);
}

View File

@ -217,7 +217,8 @@ static GtkItemFactoryEntry menu_items[] =
ITEM_FACTORY_ENTRY("/Edit/Find Pre_vious", "<control>B", find_previous_cb, 0, NULL, NULL),
ITEM_FACTORY_ENTRY("/Edit/<separator>", NULL, NULL, 0, "<Separator>", NULL),
ITEM_FACTORY_ENTRY("/Edit/_Time Reference", NULL, NULL, 0, "<Branch>", NULL),
ITEM_FACTORY_ENTRY("/Edit/Time Reference/Set Time Reference (toggle)", "<control>T", reftime_frame_cb, REFTIME_TOGGLE, NULL, NULL),
ITEM_FACTORY_STOCK_ENTRY("/Edit/Time Reference/Set Time Reference (toggle)", "<control>T", reftime_frame_cb,
REFTIME_TOGGLE, ETHEREAL_STOCK_TIME),
ITEM_FACTORY_ENTRY("/Edit/Time Reference/Find Next", NULL, reftime_frame_cb, REFTIME_FIND_NEXT, NULL, NULL),
ITEM_FACTORY_ENTRY("/Edit/Time Reference/Find Previous", NULL, reftime_frame_cb, REFTIME_FIND_PREV, NULL, NULL),
ITEM_FACTORY_ENTRY("/Edit/_Mark Packet (toggle)", "<control>M", mark_frame_cb,
@ -237,7 +238,6 @@ static GtkItemFactoryEntry menu_items[] =
ITEM_FACTORY_ENTRY("/View/Packet _List", NULL, packet_list_show_cb, 0, "<CheckItem>", NULL),
ITEM_FACTORY_ENTRY("/View/Packet _Details", NULL, tree_view_show_cb, 0, "<CheckItem>", NULL),
ITEM_FACTORY_ENTRY("/View/Packet _Bytes", NULL, byte_view_show_cb, 0, "<CheckItem>", NULL),
ITEM_FACTORY_ENTRY("/View/Colorize Packet List", NULL, colorize_cb, 0, "<CheckItem>", NULL),
ITEM_FACTORY_ENTRY("/View/<separator>", NULL, NULL, 0, "<Separator>", NULL),
ITEM_FACTORY_ENTRY("/View/_Time Display Format", NULL, NULL, 0, "<Branch>", NULL),
ITEM_FACTORY_ENTRY("/View/Time Display Format/Time of Day", NULL, timestamp_absolute_cb,
@ -254,6 +254,7 @@ static GtkItemFactoryEntry menu_items[] =
ITEM_FACTORY_ENTRY("/View/Name Resolution/Enable for _MAC Layer", NULL, name_resolution_mac_cb, 0, "<CheckItem>", NULL),
ITEM_FACTORY_ENTRY("/View/Name Resolution/Enable for _Network Layer", NULL, name_resolution_network_cb, 0, "<CheckItem>", NULL),
ITEM_FACTORY_ENTRY("/View/Name Resolution/Enable for _Transport Layer", NULL, name_resolution_transport_cb, 0, "<CheckItem>", NULL),
ITEM_FACTORY_ENTRY("/View/Colorize Packet List", NULL, colorize_cb, 0, "<CheckItem>", NULL),
#ifdef HAVE_LIBPCAP
ITEM_FACTORY_ENTRY("/View/Auto Scroll in Li_ve Capture", NULL, auto_scroll_live_cb, 0, "<CheckItem>", NULL),
#endif
@ -264,9 +265,9 @@ static GtkItemFactoryEntry menu_items[] =
0, GTK_STOCK_ZOOM_OUT),
ITEM_FACTORY_STOCK_ENTRY("/View/_Normal Size", "<control>equal", view_zoom_100_cb,
0, GTK_STOCK_ZOOM_100),
ITEM_FACTORY_STOCK_ENTRY("/View/Resize All Columns", NULL, packet_list_resize_columns_cb,
0, ETHEREAL_STOCK_RESIZE_COLUMNS),
ITEM_FACTORY_ENTRY("/View/<separator>", NULL, NULL, 0, "<Separator>", NULL),
ITEM_FACTORY_ENTRY("/View/Resize Columns", NULL, packet_list_resize_columns_cb,
0, NULL, NULL),
ITEM_FACTORY_ENTRY("/View/Collapse _All", NULL, collapse_all_cb,
0, NULL, NULL),
ITEM_FACTORY_ENTRY("/View/_Expand All", NULL, expand_all_cb,
@ -348,13 +349,13 @@ static GtkItemFactoryEntry menu_items[] =
ITEM_FACTORY_ENTRY("/Analyze/_Follow TCP Stream", NULL,
follow_stream_cb, 0, NULL, NULL),
ITEM_FACTORY_ENTRY("/_Statistics", NULL, NULL, 0, "<Branch>", NULL),
ITEM_FACTORY_ENTRY("/Statistics/_Summary", NULL, summary_open_cb, 0, NULL, NULL),
ITEM_FACTORY_STOCK_ENTRY("/Statistics/_Summary", NULL, summary_open_cb, 0, GTK_STOCK_PROPERTIES),
ITEM_FACTORY_ENTRY("/Statistics/_Protocol Hierarchy", NULL,
proto_hier_stats_cb, 0, NULL, NULL),
ITEM_FACTORY_ENTRY("/Statistics/Conversations", NULL,
init_conversation_notebook_cb, 0, NULL, NULL),
ITEM_FACTORY_ENTRY("/Statistics/Endpoints", NULL,
init_hostlist_notebook_cb, 0, NULL, NULL),
ITEM_FACTORY_STOCK_ENTRY("/Statistics/Conversations", NULL,
init_conversation_notebook_cb, 0, ETHEREAL_STOCK_CONVERSATIONS),
ITEM_FACTORY_STOCK_ENTRY("/Statistics/Endpoints", NULL,
init_hostlist_notebook_cb, 0, ETHEREAL_STOCK_ENDPOINTS),
ITEM_FACTORY_ENTRY("/_Help", NULL, NULL, 0, "<Branch>", NULL),
ITEM_FACTORY_STOCK_ENTRY("/Help/_Contents", "F1", topic_menu_cb, HELP_CONTENT, GTK_STOCK_HELP),
ITEM_FACTORY_ENTRY("/Help/_Supported Protocols", NULL, supported_cb, 0, NULL, NULL),
@ -372,15 +373,15 @@ static GtkItemFactoryEntry menu_items[] =
ITEM_FACTORY_ENTRY("/Help/Manual Pages/Text2pcap", NULL, topic_menu_cb, LOCALPAGE_MAN_TEXT2PCAP, NULL, NULL),
ITEM_FACTORY_ENTRY("/Help/Ethereal Online", NULL, NULL, 0, "<Branch>", NULL),
ITEM_FACTORY_STOCK_ENTRY("/Help/Ethereal Online/Home Page", NULL, topic_menu_cb, ONLINEPAGE_HOME, GTK_STOCK_HOME),
ITEM_FACTORY_ENTRY("/Help/Ethereal Online/Wiki", NULL, topic_menu_cb, ONLINEPAGE_WIKI, NULL, NULL),
ITEM_FACTORY_ENTRY("/Help/Ethereal Online/User's Guide", NULL, topic_menu_cb, ONLINEPAGE_USERGUIDE, NULL, NULL),
ITEM_FACTORY_STOCK_ENTRY("/Help/Ethereal Online/Wiki", NULL, topic_menu_cb, ONLINEPAGE_WIKI, ETHEREAL_STOCK_WIKI),
ITEM_FACTORY_STOCK_ENTRY("/Help/Ethereal Online/User's Guide", NULL, topic_menu_cb, ONLINEPAGE_USERGUIDE, ETHEREAL_STOCK_WEB_SUPPORT),
ITEM_FACTORY_ENTRY("/Help/Ethereal Online/FAQ's", NULL, topic_menu_cb, ONLINEPAGE_FAQ, NULL, NULL),
ITEM_FACTORY_ENTRY("/Help/Ethereal Online/Downloads", NULL, topic_menu_cb, ONLINEPAGE_DOWNLOAD, NULL, NULL),
ITEM_FACTORY_ENTRY("/Help/Ethereal Online/Example Files", NULL, topic_menu_cb, ONLINEPAGE_SAMPLE_FILES, NULL, NULL),
#endif
ITEM_FACTORY_ENTRY("/Help/<separator>", NULL, NULL, 0, "<Separator>", NULL),
ITEM_FACTORY_ENTRY("/Help/_About Ethereal", NULL, about_ethereal_cb,
0, NULL, NULL)
ITEM_FACTORY_STOCK_ENTRY("/Help/_About Ethereal", NULL, about_ethereal_cb,
0, ETHEREAL_STOCK_ABOUT)
};
@ -392,7 +393,7 @@ static GtkItemFactoryEntry packet_list_menu_items[] =
{
ITEM_FACTORY_ENTRY("/Mark Packet (toggle)", NULL, mark_frame_cb, 0, NULL, NULL),
ITEM_FACTORY_ENTRY("/Time Reference", NULL, NULL, 0, "<Branch>", NULL),
ITEM_FACTORY_ENTRY("/Time Reference/Set Time Reference (toggle)", NULL, reftime_frame_cb, REFTIME_TOGGLE, NULL, NULL),
ITEM_FACTORY_STOCK_ENTRY("/Time Reference/Set Time Reference (toggle)", NULL, reftime_frame_cb, REFTIME_TOGGLE, ETHEREAL_STOCK_TIME),
ITEM_FACTORY_ENTRY("/Time Reference/Find Next", NULL, reftime_frame_cb, REFTIME_FIND_NEXT, NULL, NULL),
ITEM_FACTORY_ENTRY("/Time Reference/Find Previous", NULL, reftime_frame_cb, REFTIME_FIND_PREV, NULL, NULL),
@ -479,9 +480,9 @@ static GtkItemFactoryEntry tree_view_menu_items[] =
ITEM_FACTORY_ENTRY("/<separator>", NULL, NULL, 0, "<Separator>", NULL),
ITEM_FACTORY_STOCK_ENTRY("/Wiki Protocol Page", NULL, selected_ptree_info_cb,
0, GTK_STOCK_HOME),
0, ETHEREAL_STOCK_WIKI),
ITEM_FACTORY_STOCK_ENTRY("/Filter Field Reference", NULL, selected_ptree_ref_cb,
0, GTK_STOCK_HOME),
0, ETHEREAL_STOCK_INTERNET),
ITEM_FACTORY_ENTRY("/Protocol Preferences...", NULL, properties_cb,
0, NULL, NULL),
ITEM_FACTORY_ENTRY("/<separator>", NULL, NULL, 0, "<Separator>", NULL),
@ -668,6 +669,7 @@ register_tap_menu_item(
case(REGISTER_TAP_GROUP_CONVERSATION_LIST): toolspath = "/Statistics/_Conversation List/"; break;
case(REGISTER_TAP_GROUP_ENDPOINT_LIST): toolspath = "/Statistics/_Endpoint List/"; break;
case(REGISTER_TAP_GROUP_RESPONSE_TIME): toolspath = "/Statistics/Service _Response Time/"; break;
case(REGISTER_TAP_GROUP_TELEPHONY): toolspath = "/Statistics/"; break;
case(REGISTER_TAP_GROUP_NONE): toolspath = "/Statistics/"; break;
default:
g_assert(0);
@ -770,6 +772,32 @@ guint merge_tap_menus_layered(GList *node, gint group) {
entry = g_malloc0(sizeof (GtkItemFactoryEntry));
entry->path = node_data->name;
entry->callback = node_data->callback;
#if GTK_MAJOR_VERSION >= 2
switch(group) {
case(REGISTER_TAP_GROUP_NONE):
break;
case(REGISTER_TAP_GROUP_GENERIC):
break;
case(REGISTER_TAP_GROUP_CONVERSATION_LIST):
entry->item_type = "<StockItem>";
entry->extra_data = ETHEREAL_STOCK_CONVERSATIONS;
break;
case(REGISTER_TAP_GROUP_ENDPOINT_LIST):
entry->item_type = "<StockItem>";
entry->extra_data = ETHEREAL_STOCK_ENDPOINTS;
break;
case(REGISTER_TAP_GROUP_RESPONSE_TIME):
entry->item_type = "<StockItem>";
entry->extra_data = ETHEREAL_STOCK_TIME;
break;
case(REGISTER_TAP_GROUP_TELEPHONY):
entry->item_type = "<StockItem>";
entry->extra_data = ETHEREAL_STOCK_TELEPHONY;
break;
default:
g_assert_not_reached();
}
#endif
gtk_item_factory_create_item(main_menu_factory, entry, node_data->callback_data, 2);
set_menu_sensitivity(main_menu_factory, node_data->name, FALSE); /* no capture file yet */
added++;
@ -828,6 +856,9 @@ void merge_all_tap_menus(GList *node) {
if (merge_tap_menus_layered(node, REGISTER_TAP_GROUP_RESPONSE_TIME)) {
gtk_item_factory_create_item(main_menu_factory, entry, NULL, 2);
}
if (merge_tap_menus_layered(node, REGISTER_TAP_GROUP_TELEPHONY)) {
gtk_item_factory_create_item(main_menu_factory, entry, NULL, 2);
}
if (merge_tap_menus_layered(node, REGISTER_TAP_GROUP_NONE)) {
/*gtk_item_factory_create_item(main_menu_factory, entry, NULL, 2);*/
}
@ -1337,21 +1368,63 @@ name_resolution_transport_cb(GtkWidget *w _U_, gpointer d _U_)
}
#ifdef HAVE_LIBPCAP
void
menu_auto_scroll_live_changed(gboolean auto_scroll_live_in) {
GtkWidget *menu;
/* tell menu about it */
menu = gtk_item_factory_get_widget(main_menu_factory, "/View/Auto Scroll in Live Capture");
if( ((gboolean) GTK_CHECK_MENU_ITEM(menu)->active) != auto_scroll_live_in) {
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu), auto_scroll_live_in);
}
/* tell toolbar about it */
toolbar_auto_scroll_live_changed(auto_scroll_live_in);
/* change auto scroll */
if(auto_scroll_live_in != auto_scroll_live) {
auto_scroll_live = auto_scroll_live_in;
}
}
static void
auto_scroll_live_cb(GtkWidget *w _U_, gpointer d _U_)
{
auto_scroll_live = GTK_CHECK_MENU_ITEM(w)->active;
menu_auto_scroll_live_changed(GTK_CHECK_MENU_ITEM(w)->active);
}
#endif
static void
colorize_cb(GtkWidget *w _U_, gpointer d _U_)
{
recent.packet_list_colorize = GTK_CHECK_MENU_ITEM(w)->active;
color_filters_enable(recent.packet_list_colorize);
cf_colorize_packets(&cfile);
void
menu_colorize_changed(gboolean packet_list_colorize) {
GtkWidget *menu;
/* tell menu about it */
menu = gtk_item_factory_get_widget(main_menu_factory, "/View/Colorize Packet List");
if( ((gboolean) GTK_CHECK_MENU_ITEM(menu)->active) != packet_list_colorize) {
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(menu), packet_list_colorize);
}
/* tell toolbar about it */
toolbar_colorize_changed(packet_list_colorize);
/* change colorization */
if(packet_list_colorize != recent.packet_list_colorize) {
recent.packet_list_colorize = packet_list_colorize;
color_filters_enable(packet_list_colorize);
cf_colorize_packets(&cfile);
}
}
static void
colorize_cb(GtkWidget *w, gpointer d _U_)
{
menu_colorize_changed(GTK_CHECK_MENU_ITEM(w)->active);
}
/* the recent file read has finished, update the menu corresponding */
void
menu_recent_read_finished(void) {
@ -1422,6 +1495,8 @@ menu_recent_read_finished(void) {
default:
g_assert_not_reached();
}
menu_colorize_changed(recent.packet_list_colorize);
}
@ -1734,7 +1809,7 @@ set_menus_for_selected_packet(capture_file *cf)
cf->current_frame != NULL);
set_menu_sensitivity(main_menu_factory, "/Edit/Unmark All Packets",
cf->current_frame != NULL);
set_menu_sensitivity(main_menu_factory, "/View/Resize Columns",
set_menu_sensitivity(main_menu_factory, "/View/Resize All Columns",
cf->current_frame != NULL);
set_menu_sensitivity(main_menu_factory, "/View/Collapse All",
cf->current_frame != NULL);

View File

@ -51,6 +51,14 @@ extern void menu_recent_read_finished(void);
/** One of the name resolution menu items changed. */
extern void menu_name_resolution_changed(void);
/** The "Colorize Packet List" option changed. */
extern void menu_colorize_changed(gboolean packet_list_colorize);
#ifdef HAVE_LIBPCAP
/** The "Auto Scroll Packet List in Live Capture" option changed. */
extern void menu_auto_scroll_live_changed(gboolean auto_scroll_in);
#endif
/** Create a new menu.
*
* @param accel the created accelerator group

View File

@ -465,6 +465,6 @@ register_tap_listener_gtkmtp3_stat(void)
exit(1);
}
register_tap_menu_item("MTP3/MSUs", REGISTER_TAP_GROUP_NONE,
register_tap_menu_item("MTP3/MSUs", REGISTER_TAP_GROUP_TELEPHONY,
mtp3_stat_gtk_cb, NULL, NULL, NULL);
}

View File

@ -435,6 +435,6 @@ mtp3_sum_gtk_sum_cb(GtkWidget *w _U_, gpointer d _U_)
void
register_tap_listener_gtkmtp3_summary(void)
{
register_tap_menu_item("MTP3/MSU Summary", REGISTER_TAP_GROUP_NONE,
register_tap_menu_item("MTP3/MSU Summary", REGISTER_TAP_GROUP_TELEPHONY,
mtp3_sum_gtk_sum_cb, NULL, NULL, NULL);
}

View File

@ -3651,6 +3651,6 @@ register_tap_listener_rtp_analysis(void)
{
register_tap_listener_cmd_arg("rtp", rtp_analysis_init);
register_tap_menu_item("RTP/Stream Analysis...", REGISTER_TAP_GROUP_NONE,
register_tap_menu_item("RTP/Stream Analysis...", REGISTER_TAP_GROUP_TELEPHONY,
rtp_analysis_cb, NULL, NULL, NULL);
}

View File

@ -884,6 +884,6 @@ void rtpstream_launch(GtkWidget *w _U_, gpointer data _U_)
void
register_tap_listener_rtp_stream_dlg(void)
{
register_tap_menu_item("RTP/Show All Streams...", REGISTER_TAP_GROUP_NONE,
register_tap_menu_item("RTP/Show All Streams...", REGISTER_TAP_GROUP_TELEPHONY,
rtpstream_launch, NULL, NULL, NULL);
}

View File

@ -877,6 +877,6 @@ void sctp_analyse_start(GtkWidget *w _U_, gpointer data _U_)
void
register_tap_listener_sctp_analyse(void)
{
register_tap_menu_item("SCTP/Analyse Association", REGISTER_TAP_GROUP_NONE,
register_tap_menu_item("SCTP/Analyse Association", REGISTER_TAP_GROUP_TELEPHONY,
sctp_analyse_start, NULL, NULL, NULL);
}

View File

@ -346,6 +346,6 @@ register_tap_listener_sctpstat(void)
{
register_tap_listener_cmd_arg("sctp,stat", sctpstat_init);
register_tap_menu_item("SCTP/Chunk Counter", REGISTER_TAP_GROUP_NONE,
register_tap_menu_item("SCTP/Chunk Counter", REGISTER_TAP_GROUP_TELEPHONY,
gtk_tap_dfilter_dlg_cb, NULL, NULL, &(sctp_stat_dlg));
}

View File

@ -294,6 +294,6 @@ void sctp_error_dlg_show(sctp_assoc_info_t* assoc)
/*void
register_tap_listener_sctp_error_dlg(void)
{
register_tap_menu_item("SCTP/Show All Malformed Packets...", REGISTER_TAP_GROUP_NONE,
register_tap_menu_item("SCTP/Show All Malformed Packets...", REGISTER_TAP_GROUP_TELEPHONY,
sctp_error_start, NULL, NULL, NULL);
}*/

View File

@ -607,7 +607,7 @@ void sctp_stat_start(GtkWidget *w _U_, gpointer data _U_)
void
register_tap_listener_sctp_stat_dlg(void)
{
register_tap_menu_item("SCTP/Show All Associations...", REGISTER_TAP_GROUP_NONE,
register_tap_menu_item("SCTP/Show All Associations...", REGISTER_TAP_GROUP_TELEPHONY,
sctp_stat_start, NULL, NULL, NULL);
}

View File

@ -664,6 +664,6 @@ register_tap_listener_gtksipstat(void)
{
register_tap_listener_cmd_arg("sip,stat", gtk_sipstat_init);
register_tap_menu_item("SIP", REGISTER_TAP_GROUP_NONE,
register_tap_menu_item("SIP", REGISTER_TAP_GROUP_TELEPHONY,
gtk_tap_dfilter_dlg_cb, NULL, NULL, &(sip_stat_dlg));
}

View File

@ -39,7 +39,9 @@ typedef enum {
REGISTER_TAP_GROUP_GENERIC,
REGISTER_TAP_GROUP_CONVERSATION_LIST,
REGISTER_TAP_GROUP_ENDPOINT_LIST,
REGISTER_TAP_GROUP_RESPONSE_TIME
REGISTER_TAP_GROUP_RESPONSE_TIME,
REGISTER_TAP_GROUP_TELEPHONY
/* XXX - split into telephony and VoIP? */
} REGISTER_TAP_GROUP_E;
/**

View File

@ -62,6 +62,9 @@
#include "compat_macros.h"
#include "recent.h"
#include "packet_history.h"
#include "packet_list.h"
#include "color_filters.h"
#include "menu.h"
/* Most of the icons used here are coming (or are derived) from GTK2 stock icons.
* They were converted using "The Gimp" with standard conversion from png to xpm.
@ -69,8 +72,9 @@
* "ftp://ftp.gtk.org/pub/gtk/v2.0/gtk+-2.0.6.tar.bz2"
* in the directory "gtk+-2.0.6\gtk\stock-icons" */
/* The base for the new capture icons was GNOME's Connection-Ethernet.png and it's
* 16x16 counterpart, which are released under the GPL (or LGPL?). These icons were
/* The base for the new capture icons were GNOME system tools: Connection-Ethernet.png
* see http://cvs.gnome.org/viewcvs/gnome-system-tools/pixmaps/ and it's 16x16 counterpart,
* which are released under the GPL (or LGPL?). These icons were
* merged together with some icons of the tremendous ximian icon collection (>1200!)
* for OpenOffice? (LGPL'ed), which can be found at:
* http://www.novell.com/coolsolutions/feature/1637.html
@ -117,6 +121,18 @@
#if GTK_MAJOR_VERSION >= 2
#include "../image/toolbar/stock_properties_24.xpm"
#endif
#include "../image/eicon3d16.xpm"
#include "../image/toolbar/colorize_24.xpm"
#include "../image/toolbar/autoscroll_24.xpm"
#include "../image/toolbar/resize_columns_24.xpm"
#include "../image/toolbar/time_24.xpm"
#include "../image/toolbar/internet_24.xpm"
#include "../image/toolbar/web_support_24.xpm"
#include "../image/toolbar/wiki_24.xpm"
#include "../image/toolbar/conversations_16.xpm"
#include "../image/toolbar/endpoints_16.xpm"
#include "../image/toolbar/graphs_16.xpm"
#include "../image/toolbar/telephony_16.xpm"
/* XXX: add this key to some .h file, as it adds a key to the top level Widget? */
@ -133,7 +149,7 @@ static GtkWidget *open_button, *save_button, *save_as_button, *close_button, *re
static GtkWidget *print_button, *find_button, *history_forward_button, *history_back_button;
static GtkWidget *go_to_button, *go_to_top_button, *go_to_bottom_button;
static GtkWidget *display_filter_button;
static GtkWidget *zoom_in_button, *zoom_out_button, *zoom_100_button;
static GtkWidget *zoom_in_button, *zoom_out_button, *zoom_100_button, *colorize_button, *autoscroll_button, *resize_columns_button;
static GtkWidget *color_display_button, *prefs_button, *help_button;
#if GTK_MAJOR_VERSION >= 2
@ -168,7 +184,19 @@ static void ethereal_stock_icons(void) {
{ ETHEREAL_STOCK_IMPORT, ETHEREAL_STOCK_LABEL_IMPORT, 0, 0, NULL },
{ ETHEREAL_STOCK_EDIT, ETHEREAL_STOCK_LABEL_EDIT, 0, 0, NULL },
{ ETHEREAL_STOCK_ADD_EXPRESSION, ETHEREAL_STOCK_LABEL_ADD_EXPRESSION, 0, 0, NULL },
{ ETHEREAL_STOCK_DONT_SAVE, ETHEREAL_STOCK_LABEL_DONT_SAVE, 0, 0, NULL }
{ ETHEREAL_STOCK_DONT_SAVE, ETHEREAL_STOCK_LABEL_DONT_SAVE, 0, 0, NULL },
{ ETHEREAL_STOCK_ABOUT, ETHEREAL_STOCK_LABEL_ABOUT, 0, 0, NULL },
{ ETHEREAL_STOCK_COLORIZE, ETHEREAL_STOCK_LABEL_COLORIZE, 0, 0, NULL },
{ ETHEREAL_STOCK_AUTOSCROLL, ETHEREAL_STOCK_LABEL_AUTOSCROLL, 0, 0, NULL },
{ ETHEREAL_STOCK_RESIZE_COLUMNS, ETHEREAL_STOCK_LABEL_RESIZE_COLUMNS, 0, 0, NULL },
{ ETHEREAL_STOCK_TIME, ETHEREAL_STOCK_LABEL_TIME, 0, 0, NULL },
{ ETHEREAL_STOCK_INTERNET, ETHEREAL_STOCK_LABEL_INTERNET, 0, 0, NULL },
{ ETHEREAL_STOCK_WEB_SUPPORT, ETHEREAL_STOCK_LABEL_WEB_SUPPORT, 0, 0, NULL },
{ ETHEREAL_STOCK_WIKI, ETHEREAL_STOCK_LABEL_WIKI, 0, 0, NULL },
{ ETHEREAL_STOCK_CONVERSATIONS, ETHEREAL_STOCK_LABEL_CONVERSATIONS, 0, 0, NULL },
{ ETHEREAL_STOCK_ENDPOINTS, ETHEREAL_STOCK_LABEL_ENDPOINTS, 0, 0, NULL },
{ ETHEREAL_STOCK_GRAPHS, ETHEREAL_STOCK_LABEL_GRAPHS, 0, 0, NULL },
{ ETHEREAL_STOCK_TELEPHONY, ETHEREAL_STOCK_LABEL_TELEPHONY, 0, 0, NULL }
};
static const stock_pixmap_t pixmaps[] = {
@ -190,6 +218,18 @@ static void ethereal_stock_icons(void) {
{ ETHEREAL_STOCK_IMPORT, stock_save_24_xpm }, /* XXX: needs a better icon */
{ ETHEREAL_STOCK_EDIT, stock_properties_24_xpm },
{ ETHEREAL_STOCK_ADD_EXPRESSION, stock_add_24_xpm },
{ ETHEREAL_STOCK_ABOUT, eicon3d16_xpm },
{ ETHEREAL_STOCK_COLORIZE, colorize_24_xpm },
{ ETHEREAL_STOCK_AUTOSCROLL, autoscroll_24_xpm },
{ ETHEREAL_STOCK_RESIZE_COLUMNS, resize_columns_24_xpm},
{ ETHEREAL_STOCK_TIME, time_24_xpm},
{ ETHEREAL_STOCK_INTERNET, internet_24_xpm},
{ ETHEREAL_STOCK_WEB_SUPPORT, web_support_24_xpm},
{ ETHEREAL_STOCK_WIKI, wiki_24_xpm},
{ ETHEREAL_STOCK_CONVERSATIONS, conversations_16_xpm},
{ ETHEREAL_STOCK_ENDPOINTS, endpoints_16_xpm},
{ ETHEREAL_STOCK_GRAPHS, graphs_16_xpm},
{ ETHEREAL_STOCK_TELEPHONY, telephony_16_xpm},
{ NULL, NULL }
};
@ -365,6 +405,48 @@ static void toolbar_append_separator(GtkWidget *toolbar) {
#endif /* GTK_MAJOR_VERSION */
#define toolbar_icon(new_icon, window, xpm) { \
icon = gdk_pixmap_create_from_xpm_d(window->window, &mask, &window->style->white, xpm); \
new_icon = gtk_pixmap_new(icon, mask); \
}
#define toolbar_toggle_button(new_item, window, toolbar, stock, tooltip, xpm, callback, user_data) {\
toolbar_icon(iconw, window, xpm); \
new_item = gtk_toolbar_append_element(GTK_TOOLBAR(toolbar), \
GTK_TOOLBAR_CHILD_TOGGLEBUTTON, NULL, \
stock, tooltip, "Private", iconw, GTK_SIGNAL_FUNC(callback), user_data);\
}
static void
colorize_toggle_cb(GtkWidget *toggle_button, gpointer user_data _U_) {
menu_colorize_changed(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(toggle_button)));
}
void
toolbar_colorize_changed(gboolean packet_list_colorize) {
if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(colorize_button)) != packet_list_colorize) {
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(colorize_button), packet_list_colorize);
}
}
#ifdef HAVE_LIBPCAP
static void
auto_scroll_live_toggle_cb(GtkWidget *autoscroll_button, gpointer user_data _U_) {
menu_auto_scroll_live_changed(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(autoscroll_button)));
}
void
toolbar_auto_scroll_live_changed(gboolean auto_scroll_live) {
if(gtk_toggle_button_get_active(GTK_TOGGLE_BUTTON(autoscroll_button)) != auto_scroll_live) {
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(autoscroll_button), auto_scroll_live);
}
}
#endif
/*
* Create all toolbars (currently only the main toolbar)
*/
@ -374,10 +456,10 @@ toolbar_new(void)
GtkWidget *main_tb;
GtkWidget *window = top_level;
#if GTK_MAJOR_VERSION < 2
GdkPixmap *icon;
GtkWidget *iconw;
GdkBitmap * mask;
#endif /* GTK_MAJOR_VERSION */
GdkPixmap *icon;
GdkBitmap * mask;
GtkWidget *iconw;
#if GTK_MAJOR_VERSION >= 2
@ -452,12 +534,22 @@ toolbar_new(void)
GTK_STOCK_GOTO_BOTTOM, "Go to the last packet", stock_bottom_24_xpm, goto_bottom_frame_cb, NULL);
toolbar_append_separator(main_tb);
toolbar_toggle_button(colorize_button, window, main_tb,
ETHEREAL_STOCK_CAPTURE_INTERFACES, "Colorize Packet List", colorize_24_xpm, colorize_toggle_cb, NULL);
#ifdef HAVE_LIBPCAP
toolbar_toggle_button(autoscroll_button, window, main_tb,
ETHEREAL_STOCK_AUTOSCROLL, "Auto Scroll Packet List in Live Capture", autoscroll_24_xpm, auto_scroll_live_toggle_cb, NULL);
#endif
toolbar_append_separator(main_tb);
toolbar_item(zoom_in_button, window, main_tb,
GTK_STOCK_ZOOM_IN, "Zoom in", stock_zoom_in_24_xpm, view_zoom_in_cb, NULL);
toolbar_item(zoom_out_button, window, main_tb,
GTK_STOCK_ZOOM_OUT, "Zoom out", stock_zoom_out_24_xpm, view_zoom_out_cb, NULL);
toolbar_item(zoom_100_button, window, main_tb,
GTK_STOCK_ZOOM_100, "Zoom 100%", stock_zoom_1_24_xpm, view_zoom_100_cb, NULL);
toolbar_item(resize_columns_button, window, main_tb,
ETHEREAL_STOCK_RESIZE_COLUMNS, "Resize All Columns", resize_columns_24_xpm, packet_list_resize_columns_cb, NULL);
toolbar_append_separator(main_tb);
#ifdef HAVE_LIBPCAP

View File

@ -39,6 +39,16 @@ GtkWidget *toolbar_new(void);
/** Redraw the main toolbar. Used, when user changes preferences. */
void toolbar_redraw_all(void);
/** The "Colorize Packet List" option has changed.
*/
void toolbar_colorize_changed(gboolean packet_list_colorize);
#ifdef HAVE_LIBPCAP
/** The "Auto Scroll in Live Capture" option has changed.
*/
void toolbar_auto_scroll_live_changed(gboolean auto_scroll_live);
#endif
/** We have (or don't have) a capture file now.
*
* @param have_capture_file TRUE, if we have a capture file

View File

@ -767,7 +767,7 @@ void
register_tap_listener_voip_calls_dlg(void)
{
register_tap_listener_cmd_arg("voip,calls",voip_calls_init_tap);
register_tap_menu_item("VoIP Calls...", REGISTER_TAP_GROUP_NONE,
register_tap_menu_item("VoIP Calls...", REGISTER_TAP_GROUP_TELEPHONY,
voip_calls_launch, NULL, NULL, NULL);
}

View File

@ -427,6 +427,6 @@ register_tap_listener_gtkwspstat(void)
{
register_tap_listener_cmd_arg("wsp,stat", gtk_wspstat_init);
register_tap_menu_item("WAP-WSP...", REGISTER_TAP_GROUP_NONE,
register_tap_menu_item("WAP-WSP...", REGISTER_TAP_GROUP_TELEPHONY,
gtk_tap_dfilter_dlg_cb, NULL, NULL, &(wsp_stat_dlg));
}

View File

@ -0,0 +1,98 @@
/* XPM */
static char * autoscroll_24_xpm[] = {
"24 24 71 1",
" c None",
". c #000000",
"+ c #E2E2E2",
"@ c #F2F2F2",
"# c #F3F3F3",
"$ c #F4F4F4",
"% c #F5F5F5",
"& c #F6F6F6",
"* c #F7F7F7",
"= c #DBDBDB",
"- c #F0F0F0",
"; c #E0E0E0",
"> c #E1E1E1",
", c #E3E3E3",
"' c #E4E4E4",
") c #E5E5E5",
"! c #E6E6E6",
"~ c #E7E7E7",
"{ c #E8E8E8",
"] c #E9E9E9",
"^ c #EAEAEA",
"/ c #EBEBEB",
"( c #ECECEC",
"_ c #EDEDED",
": c #EEEEEE",
"< c #EFEFEF",
"[ c #868686",
"} c #878787",
"| c #888888",
"1 c #898989",
"2 c #8A8A8A",
"3 c #8B8B8B",
"4 c #8C8C8C",
"5 c #8D8D8D",
"6 c #8E8E8E",
"7 c #F1F1F1",
"8 c #8F8F8F",
"9 c #909090",
"0 c #A4A4A4",
"a c #676767",
"b c #5E5E5E",
"c c #565656",
"d c #D0D0D0",
"e c #C2C2C2",
"f c #D1D1D1",
"g c #919191",
"h c #858585",
"i c #737373",
"j c #CFCFCF",
"k c #D2D2D2",
"l c #929292",
"m c #F8F8F8",
"n c #B2B2B2",
"o c #616161",
"p c #4E4E4E",
"q c #484848",
"r c #D6D6D6",
"s c #939393",
"t c #949494",
"u c #292929",
"v c #C6C6C6",
"w c #F9F9F9",
"x c #FAFAFA",
"y c #FBFBFB",
"z c #C5C5C5",
"A c #D3D3D3",
"B c #C9C9C9",
"C c #FCFCFC",
"D c #FDFDFD",
"E c #D9D9D9",
"F c #B7B7B7",
" .................... ",
".+@@@@###$$$%%%&&**$=. ",
".-;;>+,')!~{{]^/(_:<_. ",
".@>[[}}|11223344556-7. ",
".@+,,')!~{]^/((_:<-7@. ",
".#,}||1122344555688@#. ",
".#')!~~{]^/(_:<<-7@#$. ",
".#)1122234455688899$%. ",
".$!~{]^^/(_:<-7@##$%&. ",
".$~2234445568666899$%. ",
".%{]^/(_::<--......... ",
".%]34455688882.0abc.d. ",
".%^/(_:<-7@@@<>.}..ef. ",
".&/45568899ggg5h..ij). ",
".*__:<-7@#$%%%$<>fk'#. ",
".*:668899glll......... ",
".m-7@@#$%&*mm7.nopq.r. ",
".m799ggllssttl2.4u.vr. ",
".@@#$%&&*mwxyy&~..zAr. ",
".B_m%&*mmwxyCDDm]EEEF. ",
" .................... ",
" ",
" ",
" "};

View File

@ -0,0 +1,84 @@
/* XPM */
static char * colorize_24_xpm[] = {
"24 24 57 1",
" c None",
". c #000000",
"+ c #E2E2E2",
"@ c #F2F2F2",
"# c #F3F3F3",
"$ c #F4F4F4",
"% c #F5F5F5",
"& c #F6F6F6",
"* c #F7F7F7",
"= c #DBDBDB",
"- c #F0F0F0",
"; c #E0E0E0",
"> c #E1E1E1",
", c #E3E3E3",
"' c #E4E4E4",
") c #E5E5E5",
"! c #E6E6E6",
"~ c #E7E7E7",
"{ c #E8E8E8",
"] c #E9E9E9",
"^ c #EAEAEA",
"/ c #EBEBEB",
"( c #ECECEC",
"_ c #EDEDED",
": c #EEEEEE",
"< c #EFEFEF",
"[ c #801D1D",
"} c #F1F1F1",
"| c #F3F161",
"1 c #61F395",
"2 c #6861F3",
"3 c #EE61F3",
"4 c #F8F8F8",
"5 c #8B8B8B",
"6 c #8C8C8C",
"7 c #8D8D8D",
"8 c #8E8E8E",
"9 c #8F8F8F",
"0 c #909090",
"a c #919191",
"b c #929292",
"c c #939393",
"d c #F9F9F9",
"e c #FAFAFA",
"f c #FBFBFB",
"g c #FCFCFC",
"h c #FDFDFD",
"i c #FEFEFE",
"j c #61DDF3",
"k c #FFFFFF",
"l c #949494",
"m c #959595",
"n c #969696",
"o c #979797",
"p c #989898",
"q c #C9C9C9",
"r c #BDBDBD",
" .................... ",
".+@@@@###$$$%%%&&**$=. ",
".-;;>+,')!~{{]^/(_:<_. ",
".@>[[[[[[[[[[[[[[[[-}. ",
".@+,,')!~{]^/((_:<-}@. ",
".#,||||||||||||||||@#. ",
".#'1111111111111111#$. ",
".#)2222222222222222$%. ",
".$!~{]^^/(_:<-}@##$%&. ",
".$~1111111111111111&*. ",
".%{3333333333333333*4. ",
".%]56677899900abbcc4d. ",
".%^/(_:<-}@@#$%&*4dee. ",
".&/3333333333333333fg. ",
".*__:<-}@#$%%&*4defgh. ",
".*:[[[[[[[[[[[[[[[[hi. ",
".4-jjjjjjjjjjjjjjjjkk. ",
".4}00aabbcclmmnnnopkk. ",
".@@#$%&&*4defghikkkk(. ",
".q_4%&*44defghikkkk:r. ",
" .................... ",
" ",
" ",
" "};

View File

@ -0,0 +1,70 @@
/* XPM */
static char * conversations_16_xpm[] = {
"16 16 51 1",
" c None",
". c #191918",
"+ c #808080",
"@ c #EDEDED",
"# c #6B6B6A",
"$ c #D8D8D8",
"% c #484848",
"& c #A4A4A4",
"* c #E6E6E6",
"= c #F3F3F3",
"- c #F5F5F6",
"; c #AEAEB3",
"> c #79797C",
", c #F0F0F0",
"' c #B7B4C3",
") c #B7B5C4",
"! c #6B6B6B",
"~ c #EEEEEE",
"{ c #A19EB2",
"] c #A19DB2",
"^ c #C0C0C5",
"/ c #F3F3F4",
"( c #D3D3D3",
"_ c #F5F5F5",
": c #0A0A0A",
"< c #8B8B8B",
"[ c #EAEAEB",
"} c #2A2A29",
"| c #70706F",
"1 c #898988",
"2 c #A8A8A8",
"3 c #0F0F0E",
"4 c #D1D1D1",
"5 c #EBEBEB",
"6 c #C0C0C0",
"7 c #D9D9D9",
"8 c #C1C1C1",
"9 c #B7B7B7",
"0 c #BCBCBC",
"a c #393939",
"b c #949494",
"c c #151514",
"d c #141413",
"e c #5D5D5C",
"f c #282827",
"g c #C8C8C8",
"h c #C5C5C5",
"i c #E8E8E8",
"j c #B6B6B6",
"k c #D5D5D5",
"l c #C4C4C4",
" ........ ",
".+@@@@@@@#. ",
".@$%%%%%&*. ",
".=%--;>........ ",
".,%')!+@@@@@@@#.",
".~%{{.@$%%%%%&*.",
".@%]].=%--^^/%,.",
".=(%%.,%')-_]%,.",
":<@@@.~%{{[[]%~.",
" }|12.@%]]]]]%@.",
"3=,45.=(%%%%%6@.",
"37890a<@@@@@@@b.",
"c....d}|1221|e.f",
" 3=,455ghhi.",
" 378900j4kl.",
" c......... "};

View File

@ -0,0 +1,68 @@
/* XPM */
static char * endpoints_16_xpm[] = {
"16 16 49 1",
" c None",
". c #79797C",
"+ c #191918",
"@ c #6B6B6B",
"# c #808080",
"$ c #EDEDED",
"% c #6B6B6A",
"& c #D8D8D8",
"* c #484848",
"= c #A4A4A4",
"- c #E6E6E6",
"; c #F3F3F3",
"> c #F5F5F6",
", c #C0C0C5",
"' c #F3F3F4",
") c #F0F0F0",
"! c #B7B4C3",
"~ c #B7B5C4",
"{ c #F5F5F5",
"] c #A19DB2",
"^ c #EEEEEE",
"/ c #A19EB2",
"( c #EAEAEB",
"_ c #D3D3D3",
": c #C0C0C0",
"< c #393939",
"[ c #8B8B8B",
"} c #949494",
"| c #141413",
"1 c #2A2A29",
"2 c #70706F",
"3 c #898988",
"4 c #A8A8A8",
"5 c #5D5D5C",
"6 c #282827",
"7 c #0F0F0E",
"8 c #D1D1D1",
"9 c #EBEBEB",
"0 c #C8C8C8",
"a c #C5C5C5",
"b c #E8E8E8",
"c c #D9D9D9",
"d c #C1C1C1",
"e c #B7B7B7",
"f c #BCBCBC",
"g c #B6B6B6",
"h c #D5D5D5",
"i c #C4C4C4",
"j c #151514",
" ",
" ",
" .++++++++ ",
" @#$$$$$$$%+ ",
" +$&*****=-+ ",
" +;*>>,,'*)+ ",
" +)*!~>{]*)+ ",
" +^*//((]*^+ ",
" +$*]]]]]*$+ ",
" +;_*****:$+ ",
" <[$$$$$$$}+ ",
" |12344325+6 ",
" 7;)8990aab+ ",
" 7cdeffg8hi+ ",
" j+++++++++ ",
" "};

View File

@ -0,0 +1,23 @@
/* XPM */
static char * graphs_16_xpm[] = {
"16 16 4 1",
" c None",
". c #000000",
"+ c #801D1D",
"@ c #101010",
" . ",
" . ",
".. ",
" . ",
" . ",
".. ",
" . ",
" . ",
".. + ",
" . +++ ",
" . +++ ++++ ",
".. +++++++++++ ",
" .++++++++++++ ",
" @++++++++++++ ",
"................",
" . . . . . "};

View File

@ -0,0 +1,337 @@
/* XPM */
static char * internet_24_xpm[] = {
"24 24 310 2",
" c None",
". c #2D373E",
"+ c #374148",
"@ c #343A3E",
"# c #2E3337",
"$ c #32383C",
"% c #303B44",
"& c #1D2933",
"* c #313D47",
"= c #6F7980",
"- c #BCC5CB",
"; c #D2D8DC",
"> c #DFE6EB",
", c #E8EFF4",
"' c #CCD7DE",
") c #BDCBD5",
"! c #A3B1BC",
"~ c #505F6C",
"{ c #222F3A",
"] c #33383C",
"^ c #B8BEC2",
"/ c #DFE8EF",
"( c #DAE5ED",
"_ c #DCE7EE",
": c #E4EDF3",
"< c #D9E4EC",
"[ c #CCDBE5",
"} c #C2D3E0",
"| c #C4D3DF",
"1 c #D8E3EA",
"2 c #A5B1BC",
"3 c #272F36",
"4 c #41494F",
"5 c #B8C3CA",
"6 c #CFDBE5",
"7 c #C5D6E3",
"8 c #D3E2EC",
"9 c #C7D9E5",
"0 c #C5D8E5",
"a c #C2D4E1",
"b c #C4D6E2",
"c c #D4E1EA",
"d c #CDDAE4",
"e c #D4E1E9",
"f c #A9B6BF",
"g c #313C44",
"h c #282F33",
"i c #BDC8CE",
"j c #DAE6ED",
"k c #DDE8EF",
"l c #E1ECF3",
"m c #D1E1EB",
"n c #C4DAE8",
"o c #C1D7E6",
"p c #BDD3E2",
"q c #D9E5ED",
"r c #D5E2EA",
"s c #D0DEE7",
"t c #CBD9E4",
"u c #98ACB9",
"v c #21292F",
"w c #1F2830",
"x c #97A7B1",
"y c #D6E2EB",
"z c #DBE8EF",
"A c #C6D7E3",
"B c #C3D7E4",
"C c #C0D9E8",
"D c #C2DBEA",
"E c #BCD5E5",
"F c #B7D0E0",
"G c #C7D8E3",
"H c #D3E1EA",
"I c #D0DFE9",
"J c #CBDAE5",
"K c #C6D6E1",
"L c #B6CAD8",
"M c #7B8F9F",
"N c #161E25",
"O c #60727F",
"P c #C5D5E1",
"Q c #D1DFE8",
"R c #D4E2EB",
"S c #ACC2D3",
"T c #AAC5D7",
"U c #B4CEE0",
"V c #B9D4E5",
"W c #BAD5E6",
"X c #B5D0E2",
"Y c #B6CFDF",
"Z c #D0E0EA",
"` c #A2BACC",
" . c #B8CBD9",
".. c #BBCDDB",
"+. c #C0D2DE",
"@. c #B4C8D6",
"#. c #9AB3C6",
"$. c #556A7A",
"%. c #8498A7",
"&. c #A2B8C9",
"*. c #9EBACE",
"=. c #A5C1D5",
"-. c #A9C6DA",
";. c #ACCADD",
">. c #A8C6DB",
",. c #ADC8DA",
"'. c #CBDCE7",
"). c #B4C9D8",
"!. c #A3BACB",
"~. c #A3B9C9",
"{. c #ABC1D1",
"]. c #99B3C6",
"^. c #728A9A",
"/. c #070D13",
"(. c #181E23",
"_. c #899FAE",
":. c #7E98AD",
"<. c #96AEC1",
"[. c #87A5BB",
"}. c #93B1C7",
"|. c #97B6CD",
"1. c #9BBBD1",
"2. c #9DBDD4",
"3. c #9DBDD3",
"4. c #C9DCE8",
"5. c #C9DBE6",
"6. c #C4D6E3",
"7. c #BED2DF",
"8. c #B8CDDA",
"9. c #AAC0D0",
"0. c #9FB8CB",
"a. c #90AABE",
"b. c #7990A1",
"c. c #070D14",
"d. c #141A20",
"e. c #98B0C3",
"f. c #86A2B8",
"g. c #7292AB",
"h. c #7E9EB7",
"i. c #83A4BD",
"j. c #88A9C2",
"k. c #8BADC6",
"l. c #8CAFC8",
"m. c #9CBACF",
"n. c #C4D8E5",
"o. c #C1D4E2",
"p. c #BCD0DE",
"q. c #B6CBDA",
"r. c #AFC5D5",
"s. c #A4BDCE",
"t. c #94AEC1",
"u. c #95AFC2",
"v. c #4E6A83",
"w. c #070E14",
"x. c #0A1117",
"y. c #51718D",
"z. c #87A2B7",
"A. c #85A3B9",
"B. c #95B0C5",
"C. c #89A8BF",
"D. c #7A9EB8",
"E. c #799DB9",
"F. c #7A9FBA",
"G. c #799EBA",
"H. c #8AAAC2",
"I. c #BBD0DE",
"J. c #B7CDDC",
"K. c #B2C9D8",
"L. c #ACC4D4",
"M. c #A5BDCF",
"N. c #9FB8CA",
"O. c #91ABBF",
"P. c #7691A8",
"Q. c #284969",
"R. c #060C11",
"S. c #080E14",
"T. c #395C7B",
"U. c #416686",
"V. c #7895AD",
"W. c #A8C0D1",
"X. c #ADC5D5",
"Y. c #98B3C8",
"Z. c #6990AD",
"`. c #668DAC",
" + c #6289A8",
".+ c #8CA9BF",
"++ c #A6BECF",
"@+ c #A0B9CC",
"#+ c #9BB4C7",
"$+ c #94AFC2",
"%+ c #66839B",
"&+ c #264665",
"*+ c #050B10",
"=+ c #060A0E",
"-+ c #2D4C67",
";+ c #3D6282",
">+ c #708FA8",
",+ c #A2BBCD",
"'+ c #A6BED0",
")+ c #A9C2D2",
"!+ c #96B2C6",
"~+ c #6F92AD",
"{+ c #5A81A0",
"]+ c #59809F",
"^+ c #537998",
"/+ c #4A7090",
"(+ c #587B98",
"_+ c #A0B9CB",
":+ c #96B0C3",
"<+ c #88A3B8",
"[+ c #2A4967",
"}+ c #1D3955",
"|+ c #020609",
"1+ c #25415A",
"2+ c #365A7A",
"3+ c #7492A9",
"4+ c #9CB5C8",
"5+ c #A3BBCD",
"6+ c #4A708F",
"7+ c #4F7595",
"8+ c #4C7292",
"9+ c #496E8F",
"0+ c #436888",
"a+ c #95AFC3",
"b+ c #8FABBF",
"c+ c #708DA4",
"d+ c #254666",
"e+ c #17314B",
"f+ c #000000",
"g+ c #142534",
"h+ c #2E5172",
"i+ c #3D5F7D",
"j+ c #8FA9BD",
"k+ c #99B2C6",
"l+ c #9DB7C9",
"m+ c #748FA7",
"n+ c #426787",
"o+ c #446A8A",
"p+ c #426788",
"q+ c #3F6485",
"r+ c #3B6080",
"s+ c #809CB2",
"t+ c #8EAABE",
"u+ c #89A5BA",
"v+ c #6A879F",
"w+ c #1F3F5F",
"x+ c #0B1824",
"y+ c #010305",
"z+ c #1F3A53",
"A+ c #2C4F6F",
"B+ c #4A6A86",
"C+ c #91ACC0",
"D+ c #94AEC2",
"E+ c #617E96",
"F+ c #3B5F7F",
"G+ c #395D7D",
"H+ c #325676",
"I+ c #7F9BB1",
"J+ c #87A3B8",
"K+ c #819FB5",
"L+ c #25425E",
"M+ c #102438",
"N+ c #000103",
"O+ c #020407",
"P+ c #1F3C58",
"Q+ c #335473",
"R+ c #8CA7BC",
"S+ c #728DA4",
"T+ c #2B4C6B",
"U+ c #315575",
"V+ c #315474",
"W+ c #2F5273",
"X+ c #2D5070",
"Y+ c #2A4C6C",
"Z+ c #587790",
"`+ c #7E9DB3",
" @ c #5F7E95",
".@ c #132D47",
"+@ c #04080D",
"@@ c #25405B",
"#@ c #7F9EB4",
"$@ c #7B98AE",
"%@ c #3D5A74",
"&@ c #284A6A",
"*@ c #264868",
"=@ c #244565",
"-@ c #214262",
";@ c #33526E",
">@ c #48657C",
",@ c #192F46",
"'@ c #03070C",
")@ c #2D4050",
"!@ c #3F5B75",
"~@ c #1D3C5C",
"{@ c #1F405F",
"]@ c #1E3E5D",
"^@ c #1C3B5B",
"/@ c #1A3958",
"(@ c #163554",
"_@ c #0A1B2B",
":@ c #010204",
"<@ c #060C15",
"[@ c #0D2032",
"}@ c #112941",
"|@ c #163351",
"1@ c #173554",
"2@ c #15314F",
"3@ c #102A44",
"4@ c #0A1C2E",
"5@ c #030A10",
" ",
" . + @ # $ % & ",
" * = - ; > , ' ) ! ~ { ",
" ] ^ / ( _ : < [ } | 1 2 3 ",
" 4 5 6 _ 7 8 9 0 a b c d e f g ",
" h i j k l m n n o p q r c s t u v ",
" w x y q z A B C D E F G H I J K L M N ",
" O P Q R S T U V W X Y Z ` ...+.@.#.$. ",
" %.+.J &.*.=.-.;.;.>.,.Z '.).!.~.{.].^./. ",
" (._.:.<.[.}.|.1.2.2.3.4.5.6.7.8.9.0.a.b.c. ",
" d.e.f.g.h.i.j.k.l.l.m.n.o.p.q.r.s.t.u.v.w. ",
" x.y.z.A.B.C.D.E.F.G.H.I.J.K.L.M.N.O.P.Q.R. ",
" S.T.U.V.W.X.Y.Z.`.`. +.+N.t.++@+#+$+%+&+*+ ",
" =+-+;+>+,+'+)+!+~+{+]+^+/+(+_+#+:+<+[+}+|+ ",
" 1+2+3+4+_+5+M.++6+7+8+9+0+t.a+b+c+d+e+f+ ",
" g+h+i+j+k+4+l+m+n+o+p+q+r+s+t+u+v+w+x+f+ ",
" y+z+A+B+C+D+:+E+r+F+G+2+H+I+J+K+L+M+N+ ",
" O+P+Q+u+R+S+T+U+V+W+X+Y+Z+`+ @.@y+f+ ",
" +@@@#@$@%@&@&@&@*@=@-@;@>@,@'@f+ ",
" y+)@!@~@w+{@w+]@^@/@(@_@:@f+ ",
" f+<@[@}@|@1@2@3@4@5@f+f+ ",
" f+f+f+f+f+f+f+f+ ",
" ",
" "};

View File

@ -0,0 +1,51 @@
/* XPM */
static char * resize_columns_24_xpm[] = {
"24 24 24 1",
" c None",
". c #000000",
"+ c #C5C5C5",
"@ c #D3D3D3",
"# c #ABABAB",
"$ c #ACACAC",
"% c #C7C7C7",
"& c #A2A2A2",
"* c #C8C8C8",
"= c #ADADAD",
"- c #AAAAAA",
"; c #8C8C8C",
"> c #A1A1A1",
", c #D1D1D1",
"' c #F1F1F1",
") c #4B6983",
"! c #F2F2F2",
"~ c #DBDBDB",
"{ c #CCCCCC",
"] c #D2D2D2",
"^ c #CECECE",
"/ c #B4B4B4",
"( c #C9C9C9",
"_ c #A6A6A6",
" ",
" ..................... ",
" .+@@@#@@@@#@@@@#@@@@. ",
" .$%%%&****&****&***@. ",
" .=%%%&****&****&***@. ",
" .-%%%&****&****&***@. ",
" .;>>>&&&&&&&&&&&&&&#. ",
" .,')!!~~~~!!)!!!!!!!. ",
" .,'))!~~~~!))!!!!!!!. ",
" .)))))~~~~)))))!!!!!. ",
" .,'))!~~~~!))!!!!!!!. ",
" .,')!!~~~~!!)!!!!!!!. ",
" .{'!!!~~~~!!!!!!!!!!. ",
" .,'!!!~~~~!!!!!!!!!!. ",
" .]'!!!~~~~!!!!!!!!!!. ",
" .^'!!!~~~~!!!!!!!!!!. ",
" .]'!!!~~~~!!!!!!!!!!. ",
" .{'''!~~~~!!!!!!!!!!. ",
" .{'''!~~~~!!!!!!!!!!. ",
" .{'''!~~~~!!!!!!!!!!. ",
" ./(%%(~~~~(((((((((_. ",
" ..................... ",
" ",
" "};

View File

@ -0,0 +1,106 @@
/* XPM */
static char * telephony_16_xpm[] = {
"16 16 87 1",
" c None",
". c #000000",
"+ c #FC6666",
"@ c #FB4646",
"# c #F95F5F",
"$ c #F35353",
"% c #EC4141",
"& c #FB1515",
"* c #FE9898",
"= c #F31D1D",
"- c #F63F3F",
"; c #FA3535",
"> c #F23737",
", c #E82F2F",
"' c #FE8686",
") c #FEE0E0",
"! c #FCC1C1",
"~ c #F5B8B8",
"{ c #FB7373",
"] c #F41010",
"^ c #FC7373",
"/ c #E72B2B",
"( c #9F908F",
"_ c #FFFCFC",
": c #969494",
"< c #C9C7C7",
"[ c #FED4D4",
"} c #EC0909",
"| c #F83737",
"1 c #FD9E9E",
"2 c #FB5353",
"3 c #7B0202",
"4 c #FEF5F4",
"5 c #9E9D9D",
"6 c #FEFEFE",
"7 c #959393",
"8 c #FEDBDB",
"9 c #DF0303",
"0 c #FDBABA",
"a c #FC4646",
"b c #C30404",
"c c #AB8787",
"d c #C9C1C1",
"e c #FEFAF9",
"f c #B5A7A6",
"g c #B2B2B2",
"h c #FD9B98",
"i c #C50000",
"j c #FB9B9B",
"k c #FB7070",
"l c #F71818",
"m c #CB1111",
"n c #FDADAD",
"o c #FED4D3",
"p c #BDB7B7",
"q c #C55151",
"r c #F93737",
"s c #A40000",
"t c #B80000",
"u c #C70303",
"v c #A10101",
"w c #EBEAEA",
"x c #D16060",
"y c #FB8A8A",
"z c #FDAAAA",
"A c #E74646",
"B c #BA9191",
"C c #EE0B0B",
"D c #A70000",
"E c #7B0000",
"F c #530000",
"G c #460000",
"H c #F6F6F6",
"I c #B14742",
"J c #F97373",
"K c #F76C6C",
"L c #FDA4A4",
"M c #D30303",
"N c #590000",
"O c #7F0404",
"P c #F8F8F8",
"Q c #F96966",
"R c #AD0202",
"S c #EFEFEF",
"T c #D4D4D4",
"U c #E0E0E0",
"V c #ECECEC",
" ",
" ",
" ..... ",
" .+@#$%.. ",
" .&*=-;>,. ",
" .')!~{]^/. ",
" .(_:<[}|123. ",
" .45678980ab. ",
" .cdefghijklm. ",
" .nopqerstuv.w. ",
" .xyzABCDEFG..H.",
" .IJKLMNGO. .P.",
" ..QJRG..S.. .",
" .... .TUV.",
" ... ",
" "};

119
image/toolbar/time_24.xpm Normal file
View File

@ -0,0 +1,119 @@
/* XPM */
static char * time_24_xpm[] = {
"24 24 92 2",
" c None",
". c #000000",
"+ c #878787",
"@ c #C0C0C0",
"# c #D3D3D3",
"$ c #D6D6D6",
"% c #D5D5D5",
"& c #D2D2D2",
"* c #BDBDBD",
"= c #848484",
"- c #939393",
"; c #D4D4D4",
"> c #E2E2E2",
", c #F5F5F5",
"' c #FCFCFC",
") c #FBFBFB",
"! c #F3F3F3",
"~ c #ECECEC",
"{ c #E1E1E1",
"] c #909090",
"^ c #BFBFBF",
"/ c #DEDEDE",
"( c #F0F0F0",
"_ c #FDFDFD",
": c #CECECE",
"< c #C8C8C8",
"[ c #F7F7F7",
"} c #E8E8E8",
"| c #BABABA",
"1 c #B7B7B7",
"2 c #B8B8B8",
"3 c #FAFAFA",
"4 c #F9F9F9",
"5 c #F8F8F8",
"6 c #C1C1C1",
"7 c #B0B0B0",
"8 c #A9A9A9",
"9 c #F6F6F6",
"0 c #E5E5E5",
"a c #8F8F8F",
"b c #A1A1A1",
"c c #999999",
"d c #FEFEFE",
"e c #919191",
"f c #8A8A8A",
"g c #EDEDED",
"h c #8E8E8E",
"i c #F4F4F4",
"j c #FFFFFF",
"k c #818181",
"l c #7A7A7A",
"m c #F2F2F2",
"n c #EFEFEF",
"o c #727272",
"p c #6B6B6B",
"q c #EEEEEE",
"r c #F1F1F1",
"s c #DFDFDF",
"t c #636363",
"u c #5B5B5B",
"v c #CBCBCB",
"w c #BBBBBB",
"x c #DADADA",
"y c #4C4C4C",
"z c #454545",
"A c #626262",
"B c #DDDDDD",
"C c #B5B5B5",
"D c #EAEAEA",
"E c #BEBEBE",
"F c #646464",
"G c #2E2E2E",
"H c #272727",
"I c #494949",
"J c #575757",
"K c #787878",
"L c #7F7F7F",
"M c #8C8C8C",
"N c #D0D0D0",
"O c #EBEBEB",
"P c #898989",
"Q c #989898",
"R c #ABABAB",
"S c #C4C4C4",
"T c #E4E4E4",
"U c #AEAEAE",
"V c #ADADAD",
"W c #C2C2C2",
"X c #828282",
"Y c #CDCDCD",
"Z c #D9D9D9",
"` c #888888",
" . . . . . . ",
" . . + @ # $ % & * = . . ",
" . - ; > , ' ' ' ) ! ~ { ] . ",
" . ^ / ( _ _ _ : < ' ) ) [ } | . ",
" . 1 > ) _ _ _ _ ^ 2 ) ) 3 4 5 } 6 . ",
" . + / ) _ _ _ _ _ 7 8 ) ) 4 4 [ 9 0 a . ",
" . ; [ _ _ _ _ _ _ b c ) 3 4 5 [ , ! } . ",
" + > ' _ _ _ _ d _ e f ) 3 4 5 9 , ! g h . ",
" . @ i ' ' _ _ d j d k l ) 4 5 [ , i m n # . ",
" . # 3 ) ' ' _ _ d _ o p q 4 5 9 i ! r n [ . ",
" . } 3 s ) ' ' ' ' ' t u v 0 [ , i m w q 5 . ",
" . / 4 x 3 ) ) ) ) ) e y z A @ B m r C g 5 . ",
" . x 5 4 4 4 4 3 3 3 D E F G H I r n g 4 [ . ",
" . * , [ 5 5 5 5 5 5 [ 9 B E J K n q ~ 4 # . ",
" L { 9 9 9 9 [ 9 9 , i i m r n q g i 5 M . ",
" . N O i i , i i i ! m r ( n q g ~ 5 r . ",
" . P ; m m m m m r r ( ( n q g ~ 4 5 Q . ",
" . R # ( ( ( ( ( n n q q g ~ 4 5 S . ",
" . R & T q q q U V g ~ O 5 5 W . ",
" . X Y Z ~ ~ ~ ~ O i 5 [ M . ",
" . . ` < B 5 5 [ r @ . . ",
" . . . . . . . . ",
" ",
" "};

View File

@ -0,0 +1,410 @@
/* XPM */
static char * web_support_24_xpm[] = {
"24 24 383 2",
" c None",
". c #010101",
"+ c #000000",
"@ c #4F4F4C",
"# c #595855",
"$ c #454544",
"% c #3C3B3A",
"& c #504F4F",
"* c #3E3D40",
"= c #0D0C17",
"- c #3A3744",
"; c #19181F",
"> c #0A0B0A",
", c #2E3041",
"' c #15191A",
") c #4B4E4E",
"! c #949290",
"~ c #E8E6E2",
"{ c #FFFFFD",
"] c #FEFEFA",
"^ c #F5F3EF",
"/ c #AEACA8",
"( c #6A6C6B",
"_ c #1F2A32",
": c #363946",
"< c #504F6A",
"[ c #080810",
"} c #1E1E32",
"| c #262847",
"1 c #5A4540",
"2 c #953F2A",
"3 c #E3C8BF",
"4 c #FFFFFF",
"5 c #ECEAE6",
"6 c #E7E5E3",
"7 c #E9E6E3",
"8 c #F9FBFA",
"9 c #FCE6DE",
"0 c #932004",
"a c #492622",
"b c #8284AF",
"c c #3C3A55",
"d c #2D2C50",
"e c #3A386D",
"f c #2E2F5C",
"g c #150B08",
"h c #924735",
"i c #FFCDBC",
"j c #ED8A6C",
"k c #D5AFA3",
"l c #E3E7E6",
"m c #DCD9D5",
"n c #EBE9E4",
"o c #F8F6F3",
"p c #EAF0F0",
"q c #E06945",
"r c #F23703",
"s c #AA2203",
"t c #21141B",
"u c #2C3140",
"v c #514E7F",
"w c #8280CB",
"x c #5C5988",
"y c #1C1A39",
"z c #49271E",
"A c #E9C9BD",
"B c #F3A088",
"C c #D5471F",
"D c #B94A2F",
"E c #585755",
"F c #3C3B39",
"G c #44403C",
"H c #788180",
"I c #DB9581",
"J c #EC552A",
"K c #E04517",
"L c #ED3C0B",
"M c #610A00",
"N c #151728",
"O c #8583BA",
"P c #8584AC",
"Q c #5E5AA5",
"R c #353269",
"S c #1C1C35",
"T c #5F5B59",
"U c #9FA19D",
"V c #FFC2AC",
"W c #D5471E",
"X c #B72E0B",
"Y c #2A0100",
"Z c #0F1315",
"` c #7D7C7F",
" . c #8E8C8F",
".. c #575F61",
"+. c #340000",
"@. c #D45336",
"#. c #F28867",
"$. c #E63A09",
"%. c #C8674C",
"&. c #14161C",
"*. c #82819E",
"=. c #706DA1",
"-. c #625E9E",
";. c #59569F",
">. c #2A2851",
",. c #646260",
"'. c #FCFEFE",
"). c #DFD8D3",
"!. c #CD6041",
"~. c #521000",
"{. c #0C1D20",
"]. c #ACABB4",
"^. c #BEBFD2",
"/. c #D5D5E5",
"(. c #ECEAF4",
"_. c #747E82",
":. c #6A1A07",
"<. c #F6967C",
"[. c #F0C9BC",
"}. c #D9DDDA",
"|. c #262522",
"1. c #676674",
"2. c #A5A2C6",
"3. c #8F8ABE",
"4. c #6460A5",
"5. c #373567",
"6. c #1B1A2E",
"7. c #454443",
"8. c #FFFFFC",
"9. c #D7DAD8",
"0. c #C7C4C2",
"a. c #3C2D28",
"b. c #6E707A",
"c. c #D3D3DD",
"d. c #D1D2E0",
"e. c #E0E1EC",
"f. c #E8E7F0",
"g. c #E6E9F7",
"h. c #4D3C3A",
"i. c #E2CFC8",
"j. c #F4FAFB",
"k. c #DDDBD8",
"l. c #44433D",
"m. c #444254",
"n. c #8683AB",
"o. c #6A678F",
"p. c #7471A3",
"q. c #504E7C",
"r. c #1E1D34",
"s. c #FFFFFB",
"t. c #D9D7D5",
"u. c #D0CDC9",
"v. c #454641",
"w. c #615F73",
"x. c #C7C8DA",
"y. c #C9CADF",
"z. c #C0C2DC",
"A. c #C5C6DC",
"B. c #D4D4EC",
"C. c #3D4248",
"D. c #E4E4E1",
"E. c #EDEAE7",
"F. c #CCCBC8",
"G. c #2E2F27",
"H. c #2C293F",
"I. c #615C8C",
"J. c #535070",
"K. c #777590",
"L. c #4E4C74",
"M. c #2F2E4D",
"N. c #4C4C4A",
"O. c #F6F4F0",
"P. c #DFDCD9",
"Q. c #DCDCDA",
"R. c #6D6E6B",
"S. c #44464F",
"T. c #B9B8CF",
"U. c #B6B5CE",
"V. c #AFB0C9",
"W. c #E8E6F3",
"X. c #CED3D8",
"Y. c #797070",
"Z. c #F5F5F2",
"`. c #E4E1DE",
" + c #BAB8B6",
".+ c #353345",
"++ c #797593",
"@+ c #727089",
"#+ c #7C7A90",
"$+ c #504F72",
"%+ c #302E4C",
"&+ c #09080F",
"*+ c #484745",
"=+ c #AEABA8",
"-+ c #F8FDFC",
";+ c #E3E1DE",
">+ c #D6846D",
",+ c #380802",
"'+ c #4F5967",
")+ c #BEBDD4",
"!+ c #BEBCD5",
"~+ c #B6BBD1",
"{+ c #584946",
"]+ c #C98E7E",
"^+ c #FBE3DA",
"/+ c #D9E1E0",
"(+ c #A2A19D",
"_+ c #060507",
":+ c #575469",
"<+ c #908CA3",
"[+ c #8D89A2",
"}+ c #706D86",
"|+ c #3C3A5F",
"1+ c #2E2C4A",
"2+ c #08070D",
"3+ c #636766",
"4+ c #FBD3C6",
"5+ c #E47453",
"6+ c #F17C5A",
"7+ c #DA755A",
"8+ c #6D2312",
"9+ c #463B3D",
"0+ c #3C3D43",
"a+ c #7D5C59",
"b+ c #D4A395",
"c+ c #FFBDAA",
"d+ c #D9542E",
"e+ c #CE7C64",
"f+ c #373531",
"g+ c #070611",
"h+ c #6B668A",
"i+ c #87839C",
"j+ c #736E8D",
"k+ c #3E3C5C",
"l+ c #302E54",
"m+ c #353354",
"n+ c #0A0911",
"o+ c #0E1719",
"p+ c #9A2203",
"q+ c #F23F0D",
"r+ c #E35E37",
"s+ c #F49579",
"t+ c #F8BBAA",
"u+ c #E2DFDB",
"v+ c #E7E6E2",
"w+ c #F8ECE7",
"x+ c #F8A890",
"y+ c #E05025",
"z+ c #DE3405",
"A+ c #671300",
"B+ c #151220",
"C+ c #4A4371",
"D+ c #463F6C",
"E+ c #38325C",
"F+ c #29274D",
"G+ c #4E4C72",
"H+ c #333147",
"I+ c #111011",
"J+ c #3A130C",
"K+ c #AE2705",
"L+ c #EB3604",
"M+ c #E54314",
"N+ c #EED9D1",
"O+ c #F2F4F2",
"P+ c #F0ECE9",
"Q+ c #EAEEEE",
"R+ c #D97D61",
"S+ c #CF2800",
"T+ c #6B1C08",
"U+ c #070000",
"V+ c #262630",
"W+ c #121019",
"X+ c #4D476E",
"Y+ c #514B74",
"Z+ c #3E3A59",
"`+ c #525070",
" @ c #464565",
".@ c #1A1928",
"+@ c #0F0D0E",
"@@ c #1C1A21",
"#@ c #190E10",
"$@ c #650D00",
"%@ c #C37A65",
"&@ c #D1D7D6",
"*@ c #D3D0CD",
"=@ c #C2C0BD",
"-@ c #B5BAB8",
";@ c #94837B",
">@ c #2F0E05",
",@ c #1F1F32",
"'@ c #3F3B55",
")@ c #1C1B23",
"!@ c #6C6593",
"~@ c #534F73",
"{@ c #4C4963",
"]@ c #666387",
"^@ c #3C395B",
"/@ c #0E0D17",
"(@ c #040203",
"_@ c #141722",
":@ c #1E2029",
"<@ c #0A0C0E",
"[@ c #232220",
"}@ c #2E2E29",
"|@ c #040609",
"1@ c #070D17",
"2@ c #0D0B15",
"3@ c #2F2A4A",
"4@ c #110F1C",
"5@ c #3C395A",
"6@ c #8A86B9",
"7@ c #64608D",
"8@ c #5B568E",
"9@ c #514E7E",
"0@ c #22203B",
"a@ c #07070A",
"b@ c #0D0B12",
"c@ c #3C3A4E",
"d@ c #48465E",
"e@ c #302F3E",
"f@ c #201F2A",
"g@ c #1C1C27",
"h@ c #2F2E39",
"i@ c #38364B",
"j@ c #383356",
"k@ c #161328",
"l@ c #0F0F17",
"m@ c #201E31",
"n@ c #383461",
"o@ c #423F66",
"p@ c #57547E",
"q@ c #484670",
"r@ c #201E3B",
"s@ c #0E0D14",
"t@ c #0C0B14",
"u@ c #413E59",
"v@ c #5B5974",
"w@ c #54526A",
"x@ c #514F6A",
"y@ c #74719B",
"z@ c #7471A6",
"A@ c #4D4A6C",
"B@ c #4C4A6C",
"C@ c #454267",
"D@ c #3E3B59",
"E@ c #23213D",
"F@ c #2A2749",
"G@ c #292847",
"H@ c #211F37",
"I@ c #0C0C15",
"J@ c #090810",
"K@ c #323046",
"L@ c #55527B",
"M@ c #6B67A3",
"N@ c #7D79B5",
"O@ c #7975B2",
"P@ c #53517A",
"Q@ c #4A4960",
"R@ c #3C3A58",
"S@ c #353450",
"T@ c #262442",
"U@ c #22203F",
"V@ c #1C1B34",
"W@ c #0B0B14",
"X@ c #05050B",
"Y@ c #212035",
"Z@ c #393658",
"`@ c #3E3C5B",
" # c #34324F",
".# c #292748",
"+# c #272544",
"@# c #222039",
"## c #141425",
"$# c #0B0A11",
"%# c #050408",
"&# c #0D0D16",
"*# c #131220",
"=# c #121123",
"-# c #131123",
";# c #161425",
"># c #0F0E1B",
",# c #060508",
"'# c #010100",
" . + @ # $ % & * = - ; > , ",
". + ' ) ! ~ { ] ^ / ( _ : < [ } | ",
"+ 1 2 3 4 5 6 6 7 8 9 0 a b c d e f ",
" g h i j k l m n o p q r s t u v w x y ",
" z A B C D E F G H I J K L M N O P Q R S ",
"T U V W X Y Z ` ...+.@.#.$.%.&.*.=.-.;.>. ",
",.'.).!.~.{.].^./.(._.:.<.[.}.|.1.2.3.4.5.6. ",
"7.8.9.0.a.b.c.d.e.f.g.h.i.j.k.l.m.n.o.p.q.r. ",
"% s.t.u.v.w.x.y.z.A.B.C.D.E.F.G.H.I.J.K.L.M. ",
"N.O.P.Q.R.S.T.U.V.W.X.Y.Z.`. ++ .+++@+#+$+%+&+ ",
"*+=+-+;+>+,+'+)+!+~+{+]+^+/+(+_+:+<+[+}+|+1+2+ ",
" 3+4+5+6+7+8+9+0+a+b+c+d+e+f+g+h+i+j+k+l+m+n+ ",
" o+p+q+r+s+t+u+v+w+x+y+z+A++ B+C+D+E+F+G+H+ ",
" I+J+K+L+M+N+O+P+Q+R+S+T+U+V+W+X+Y+Z+`+ @.@ ",
" +@@@#@$@%@&@*@=@-@;@>@+ ,@'@)@!@~@{@]@^@/@ ",
" (@_@:@<@[@l.}@+ |@1@2@3@4@5@6@7@8@9@0@a@ ",
" b@c@d@e@f@g@h@i@j@k@l@m@n@o@p@q@r@s@ ",
" t@u@v@w@x@y@z@A@B@C@D@E@F@G@H@I@ ",
" + J@K@L@M@N@O@P@Q@R@S@T@U@V@W@. ",
" + X@Y@Z@o@q@`@ #.#+#@###$#. + ",
" + + %#&#*#=#-#;#>#,#'#+ + ",
" + + + + + + + + ",
" ",
" "};

332
image/toolbar/wiki_24.xpm Normal file
View File

@ -0,0 +1,332 @@
/* XPM */
static char * wiki_24_xpm[] = {
"24 24 305 2",
" c None",
". c #2D373E",
"+ c #374148",
"@ c #343A3E",
"# c #2E3337",
"$ c #32383C",
"% c #303B44",
"& c #1D2933",
"* c #313D47",
"= c #6F7980",
"- c #BCC5CB",
"; c #D2D8DC",
"> c #DFE6EB",
", c #E8EFF4",
"' c #CCD7DE",
") c #BDCBD5",
"! c #A3B1BC",
"~ c #505F6C",
"{ c #222F3A",
"] c #33383C",
"^ c #B8BEC2",
"/ c #DFE8EF",
"( c #DAE5ED",
"_ c #DCE7EE",
": c #E4EDF3",
"< c #D9E4EC",
"[ c #CCDBE5",
"} c #C2D3E0",
"| c #C4D3DF",
"1 c #D8E3EA",
"2 c #A5B1BC",
"3 c #272F36",
"4 c #000000",
"5 c #41494F",
"6 c #B8C3CA",
"7 c #CFDBE5",
"8 c #C5D6E3",
"9 c #D3E2EC",
"0 c #C7D9E5",
"a c #C5D8E5",
"b c #C2D4E1",
"c c #C4D6E2",
"d c #D4E1EA",
"e c #CDDAE4",
"f c #D4E1E9",
"g c #A9B6BE",
"h c #404950",
"i c #FBE73B",
"j c #F2B64D",
"k c #282F33",
"l c #BDC8CE",
"m c #DAE6ED",
"n c #DDE8EF",
"o c #E1ECF3",
"p c #D1E1EB",
"q c #C4DAE8",
"r c #C1D7E6",
"s c #BDD3E2",
"t c #D9E5ED",
"u c #D5E2EA",
"v c #D0DDE6",
"w c #CBD8E3",
"x c #FCEB3D",
"y c #F7B544",
"z c #5D502C",
"A c #1F2830",
"B c #97A7B1",
"C c #D6E2EB",
"D c #DBE8EF",
"E c #C6D7E3",
"F c #C3D7E4",
"G c #C0D9E8",
"H c #C2DBEA",
"I c #BCD5E5",
"J c #B7D0E0",
"K c #C7D8E3",
"L c #D3E0E9",
"M c #D0DFE8",
"N c #CBDAE5",
"O c #FCE93B",
"P c #F7B545",
"Q c #6C5F34",
"R c #60727F",
"S c #C5D5E1",
"T c #D1DFE8",
"U c #D4E2EB",
"V c #ACC2D3",
"W c #AAC5D7",
"X c #B4CEE0",
"Y c #B9D4E5",
"Z c #BAD5E6",
"` c #B5D0E2",
" . c #B6CFDF",
".. c #D0E0EA",
"+. c #A3BACC",
"@. c #BACCD9",
"#. c #FAE43A",
"$. c #F4B244",
"%. c #605737",
"&. c #8498A7",
"*. c #C0D2DE",
"=. c #A2B8C9",
"-. c #9EBACE",
";. c #A5C1D5",
">. c #A9C6DA",
",. c #ACCADD",
"'. c #A8C6DB",
"). c #ADC8DA",
"!. c #CFDFE9",
"~. c #CBDCE6",
"{. c #F9DF39",
"]. c #F3AF42",
"^. c #625637",
"/. c #708592",
"(. c #060C12",
"_. c #181E23",
":. c #899FAE",
"<. c #7E98AD",
"[. c #96AEC1",
"}. c #87A5BB",
"|. c #93B1C7",
"1. c #97B6CD",
"2. c #9BBBD1",
"3. c #9DBDD4",
"4. c #9DBDD3",
"5. c #C9DBE7",
"6. c #CADBE5",
"7. c #F9DC38",
"8. c #EFB44D",
"9. c #665A32",
"0. c #91A7B8",
"a. c #798FA0",
"b. c #060C13",
"c. c #141A20",
"d. c #98B0C3",
"e. c #86A2B8",
"f. c #7292AB",
"g. c #7E9EB7",
"h. c #83A4BD",
"i. c #88A9C2",
"j. c #8BADC6",
"k. c #8CAFC8",
"l. c #9CBACF",
"m. c #C6D8E4",
"n. c #F8D837",
"o. c #F0A93F",
"p. c #655930",
"q. c #94ACBD",
"r. c #95AEC1",
"s. c #4E6A83",
"t. c #070E14",
"u. c #0A1117",
"v. c #51718D",
"w. c #87A2B7",
"x. c #85A3B9",
"y. c #95B0C5",
"z. c #89A8BF",
"A. c #7A9EB8",
"B. c #799DB9",
"C. c #7A9FBA",
"D. c #799EBA",
"E. c #8BABC2",
"F. c #F6D236",
"G. c #EDA43E",
"H. c #5C5130",
"I. c #9EB4C3",
"J. c #91AABE",
"K. c #7691A8",
"L. c #284969",
"M. c #060C11",
"N. c #080E14",
"O. c #395C7B",
"P. c #416686",
"Q. c #7895AD",
"R. c #A8C0D1",
"S. c #ADC5D5",
"T. c #98B3C8",
"U. c #6990AD",
"V. c #668DAC",
"W. c #678EAC",
"X. c #678CAA",
"Y. c #D7AE74",
"Z. c #61562F",
"`. c #9FB7C8",
" + c #9BB3C5",
".+ c #94AFC2",
"++ c #66839B",
"@+ c #264665",
"#+ c #050B10",
"$+ c #060A0E",
"%+ c #2D4C67",
"&+ c #3D6282",
"*+ c #708FA8",
"=+ c #A2BBCD",
"-+ c #A6BED0",
";+ c #A9C2D2",
">+ c #96B2C6",
",+ c #6F92AD",
"'+ c #5B81A0",
")+ c #4F4115",
"!+ c #9FB6C6",
"~+ c #9BB3C6",
"{+ c #96B0C3",
"]+ c #88A3B8",
"^+ c #2A4967",
"/+ c #1D3955",
"(+ c #020609",
"_+ c #25415A",
":+ c #365A7A",
"<+ c #7492A9",
"[+ c #9CB5C8",
"}+ c #A0B9CB",
"|+ c #A3BBCD",
"1+ c #A5BDCF",
"2+ c #A6BECF",
"3+ c #4A708F",
"4+ c #4C6F8F",
"5+ c #446888",
"6+ c #94AEC1",
"7+ c #95AFC3",
"8+ c #8FABBF",
"9+ c #708DA4",
"0+ c #254666",
"a+ c #17314B",
"b+ c #142534",
"c+ c #2E5172",
"d+ c #3D5F7D",
"e+ c #8FA9BD",
"f+ c #99B2C6",
"g+ c #9DB7C9",
"h+ c #748FA7",
"i+ c #426787",
"j+ c #446A8A",
"k+ c #426788",
"l+ c #3F6485",
"m+ c #3B6080",
"n+ c #809CB2",
"o+ c #8EAABE",
"p+ c #89A5BA",
"q+ c #6A879F",
"r+ c #1F3F5F",
"s+ c #0B1824",
"t+ c #010305",
"u+ c #1F3A53",
"v+ c #2C4F6F",
"w+ c #4A6A86",
"x+ c #91ACC0",
"y+ c #94AEC2",
"z+ c #617E96",
"A+ c #3B5F7F",
"B+ c #395D7D",
"C+ c #325676",
"D+ c #7F9BB1",
"E+ c #87A3B8",
"F+ c #819FB5",
"G+ c #25425E",
"H+ c #102438",
"I+ c #000103",
"J+ c #020407",
"K+ c #1F3C58",
"L+ c #335473",
"M+ c #8CA7BC",
"N+ c #728DA4",
"O+ c #2B4C6B",
"P+ c #315575",
"Q+ c #315474",
"R+ c #2F5273",
"S+ c #2D5070",
"T+ c #2A4C6C",
"U+ c #587790",
"V+ c #7E9DB3",
"W+ c #5F7E95",
"X+ c #132D47",
"Y+ c #04080D",
"Z+ c #25405B",
"`+ c #7F9EB4",
" @ c #7B98AE",
".@ c #3D5A74",
"+@ c #284A6A",
"@@ c #264868",
"#@ c #244565",
"$@ c #214262",
"%@ c #33526E",
"&@ c #48657C",
"*@ c #192F46",
"=@ c #03070C",
"-@ c #2D4050",
";@ c #3F5B75",
">@ c #1D3C5C",
",@ c #1F405F",
"'@ c #1E3E5D",
")@ c #1C3B5B",
"!@ c #1A3958",
"~@ c #163554",
"{@ c #0A1B2B",
"]@ c #010204",
"^@ c #060C15",
"/@ c #0D2032",
"(@ c #112941",
"_@ c #163351",
":@ c #173554",
"<@ c #15314F",
"[@ c #102A44",
"}@ c #0A1C2E",
"|@ c #030A10",
" ",
" . + @ # $ % & ",
" * = - ; > , ' ) ! ~ { ",
" ] ^ / ( _ : < [ } | 1 2 3 4 4 ",
" 5 6 7 _ 8 9 0 a b c d e f g h 4 i j 4 ",
" k l m n o p q q r s t u d v w 4 x y z 4 ",
" A B C t D E F G H I J K L M N 4 O P Q 4 ",
" R S T U V W X Y Z ` ...+.@.4 #.$.%.4 ",
" &.*.N =.-.;.>.,.,.'.).!.~.4 {.].^.4 /.(. ",
" _.:.<.[.}.|.1.2.3.3.4.5.6.4 7.8.9.4 0.a.b. ",
" c.d.e.f.g.h.i.j.k.k.l.m.4 n.o.p.4 q.r.s.t. ",
" u.v.w.x.y.z.A.B.C.D.E.4 F.G.H.4 I.J.K.L.M. ",
" N.O.P.Q.R.S.T.U.V.W.X.4 Y.Z.4 `. +.+++@+#+ ",
" $+%+&+*+=+-+;+>+,+'+4 )+4 4 !+~+{+]+^+/+(+ ",
" _+:+<+[+}+|+1+2+3+4 4 4+5+6+7+8+9+0+a+4 ",
" b+c+d+e+f+[+g+h+i+j+k+l+m+n+o+p+q+r+s+4 ",
" t+u+v+w+x+y+{+z+m+A+B+:+C+D+E+F+G+H+I+ ",
" J+K+L+p+M+N+O+P+Q+R+S+T+U+V+W+X+t+4 ",
" Y+Z+`+ @.@+@+@+@@@#@$@%@&@*@=@4 ",
" t+-@;@>@r+,@r+'@)@!@~@{@]@4 ",
" 4 ^@/@(@_@:@<@[@}@|@4 4 ",
" 4 4 4 4 4 4 4 4 ",
" ",
" "};