From 85b1c49f319475d24329deaeaa7f0953d83bb589 Mon Sep 17 00:00:00 2001 From: simon Date: Sat, 6 Jan 2007 18:27:00 +0000 Subject: [PATCH] No, I tell a lie: GTK 1 _does_ support icons, at least partially. Ooh. git-svn-id: svn://svn.tartarus.org/sgt/putty@7064 cda61777-01e9-0310-a592-d414129be87e --- unix/gtkdlg.c | 10 ++++ unix/gtkwin.c | 35 +++++++++++++ unix/xpmptcfg.c | 150 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ unix/xpmpterm.c | 143 +++++++++++++++++++++++++++++++++++++++++++++++++++++ unix/xpmpucfg.c | 150 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++ unix/xpmputty.c | 147 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 6 files changed, 635 insertions(+) create mode 100644 unix/xpmptcfg.c create mode 100644 unix/xpmpterm.c create mode 100644 unix/xpmpucfg.c create mode 100644 unix/xpmputty.c diff --git a/unix/gtkdlg.c b/unix/gtkdlg.c index ba24e9cf..875512aa 100644 --- a/unix/gtkdlg.c +++ b/unix/gtkdlg.c @@ -2216,6 +2216,16 @@ int do_config_box(const char *title, Config *cfg, int midsession, dp.retval = 0; dp.window = window; + { + /* in gtkwin.c */ + extern void set_window_icon(GtkWidget *window, + const char *const *const *icon, + int n_icon); + extern const char *const *const cfg_icon[]; + extern const int n_cfg_icon; + set_window_icon(window, cfg_icon, n_cfg_icon); + } + gtk_window_set_position(GTK_WINDOW(window), GTK_WIN_POS_CENTER); gtk_widget_show(window); diff --git a/unix/gtkwin.c b/unix/gtkwin.c index c4c255aa..11c9c21d 100644 --- a/unix/gtkwin.c +++ b/unix/gtkwin.c @@ -3301,6 +3301,35 @@ static void update_savedsess_menu(GtkMenuItem *menuitem, gpointer data) get_sesslist(&sesslist, FALSE); /* free up */ } +void set_window_icon(GtkWidget *window, const char *const *const *icon, + int n_icon) +{ + GdkPixmap *iconpm; +#if GTK_CHECK_VERSION(2,0,0) + GList *iconlist; + int n; +#endif + + if (!n_icon) + return; + + gtk_widget_realize(window); + iconpm = gdk_pixmap_create_from_xpm_d(window->window, NULL, + NULL, (gchar **)icon[0]); + gdk_window_set_icon(window->window, NULL, iconpm, NULL); + +#if GTK_CHECK_VERSION(2,0,0) + iconlist = NULL; + for (n = 0; n < n_icon; n++) { + iconlist = + g_list_append(iconlist, + gdk_pixbuf_new_from_xpm_data((const gchar **) + icon[n])); + } + gdk_window_set_icon_list(window->window, iconlist); +#endif +} + void update_specials_menu(void *frontend) { struct gui_data *inst = (struct gui_data *)frontend; @@ -3552,6 +3581,12 @@ int pt_main(int argc, char **argv) GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK | GDK_POINTER_MOTION_MASK | GDK_BUTTON_MOTION_MASK); + { + extern const char *const *const main_icon[]; + extern const int n_main_icon; + set_window_icon(inst->window, main_icon, n_main_icon); + } + gtk_widget_show(inst->window); set_window_background(inst); diff --git a/unix/xpmptcfg.c b/unix/xpmptcfg.c new file mode 100644 index 00000000..e020a499 --- /dev/null +++ b/unix/xpmptcfg.c @@ -0,0 +1,150 @@ +/* XPM */ +static const char *const cfg_icon_0[] = { +/* columns rows colors chars-per-pixel */ +"16 16 9 1", +" c black", +". c navy", +"X c blue", +"o c #808000", +"O c yellow", +"+ c #808080", +"@ c #C0C0C0", +"# c gray100", +"$ c None", +/* pixels */ +"$$$ $$$$$$$$$$$", +"$$ OO $$$$$$$$$$", +"$ $ oO $$$$", +" o #+oO+##@+ $$$", +" oO+.OO.XX@+ $$$", +"$ oOOOO.XX@+ $$$", +"$$ oooOO.X@+ $$$", +"$$ +..oOO.@+ $$$", +"$$ #XX.oOO++ $$$", +"$$ @@@@+oOO $$", +"$ ++++++ oOO++ $", +" ########+oOO $", +" #@@@@@+++ oOO $", +"$ oOO ", +"$$$$$$$$$$$$ oO ", +"$$$$$$$$$$$$$ $" +}; + +/* XPM */ +static const char *const cfg_icon_1[] = { +/* columns rows colors chars-per-pixel */ +"32 32 9 1", +" c black", +". c navy", +"X c blue", +"o c #808000", +"O c yellow", +"+ c #808080", +"@ c #C0C0C0", +"# c gray100", +"$ c None", +/* pixels */ +"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$", +"$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$", +"$$$$$ OO $$$$$$$$$$$$$$$$$$$$$$", +"$$$$$ ooOO $$$$$$$$$$$$$$$$$$$$$", +"$$$$$$ ooOO $$$$$$$$", +"$$ $$$ oOO @@@@@@@@@@@+ $$$$$$$", +"$ oO $ oOOO @@@@@@@@@++ $$$$$$$", +"$ oOO oOOOO #######@+++ $$$$$$$", +"$$ oOOOOOOO ........@+++ $$$$$$$", +"$$ ooOOOOOOO XXXXXXX@+++ $$$$$$$", +"$$$ ooooooOOO XXXXXX@+++ $$$$$$$", +"$$$$ oo ooOOO XXXXX@+++ $$$$$$$", +"$$$$$ X ooOOO XXXX@+++ $$$$$$$", +"$$$$$ #.XX ooOOO XXX@+++ $$$$$$$", +"$$$$$ #.XXX ooOOO XX@+++ $$$$$$$", +"$$$$$ #.XXXX ooOOO X@+++ $$$$$$$", +"$$$$$ #.XXXXX ooOOO @+++ $$$$$$$", +"$$$$$ ######## ooOOO +++ $$$$$$$", +"$$$$$ #@@@@@@@@ ooOOO + $$$", +"$$$$ @+++++++++ ooOOO @@@@#+ $$", +"$$$ @ ooOOO @@#++ $$", +"$$ @@@@@@@@@@@@@@@ ooOOO #+++ $$", +"$ ################# ooOOO +++ $$", +"$ #@@@@@@@@@@@@@@@@@ ooOOO ++ $$", +"$ #@@@@@@@@@@@@+ ooOOO $$$", +"$ @+++++++++++++++++++ ooOOO $$$", +"$$ ooOOO $$", +"$$$$$$$$$$$$$$$$$$$$$$$$ ooO $$$", +"$$$$$$$$$$$$$$$$$$$$$$$$$ o $$$$", +"$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$", +"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$", +"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" +}; + +/* XPM */ +static const char *const cfg_icon_2[] = { +/* columns rows colors chars-per-pixel */ +"48 48 9 1", +" c black", +". c navy", +"X c blue", +"o c #808000", +"O c yellow", +"+ c #808080", +"@ c #C0C0C0", +"# c gray100", +"$ c None", +/* pixels */ +"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$", +"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$", +"$$$$$$$$$ $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$", +"$$$$$$$$ OO $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$", +"$$$$$$$$ oOOOO $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$", +"$$$$$$$$$ ooOOO $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$", +"$$$$$$$$$$ ooOOO $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$", +"$$$$$$$$$$$ oOOO $$$$$$$$$$$", +"$$$ $$$$$$ oOOO @@@@@@@@@@@@@@@@@@@+ $$$$$$$$$$", +"$$ oO $$$$$ oOOOO @@@@@@@@@@@@@@@@@++ $$$$$$$$$$", +"$$ ooO $$$ oOOOO @@@@@@@@@@@@@@@@+++ $$$$$$$$$$", +"$$$ oOO OOOOO ###############@++++ $$$$$$$$$$", +"$$$ ooOOOOOOOOOOO +++++++++++++@+++++ $$$$$$$$$$", +"$$$ ooOOOOOOOOOOOO ............#+++++ $$$$$$$$$$", +"$$$$ oooOOOOoOOOOOO XXXXXXXXXXX#+++++ $$$$$$$$$$", +"$$$$$ oooooooOOOOOOO XXXXXXXXXX#+++++ $$$$$$$$$$", +"$$$$$$ oo ooOOOOOOO XXXXXXXXX#+++++ $$$$$$$$$$", +"$$$$$$$$$ + ooOOOOOOO XXXXXXXX#+++++ $$$$$$$$$$", +"$$$$$$$$$ #+. ooOOOOOOO XXXXXXX#+++++ $$$$$$$$$$", +"$$$$$$$$$ #+.X ooOOOOOOO XXXXXX#+++++ $$$$$$$$$$", +"$$$$$$$$$ #+.XX ooOOOOOOO XXXXX#+++++ $$$$$$$$$$", +"$$$$$$$$$ #+.XXX ooOOOOOOO XXXX#+++++ $$$$$$$$$$", +"$$$$$$$$$ #+.XXXX ooOOOOOOO XXX#+++++ $$$$$$$$$$", +"$$$$$$$$$ #+.XXXXX ooOOOOOOO XX#+++++ $$$$$$$$$$", +"$$$$$$$$$ #+.XXXXXX ooOOOOOOO X#+++++ $$$$$$$$$$", +"$$$$$$$$$ #+.XXXXXXX ooOOOOOOO #+++++ $$$$$$$$$$", +"$$$$$$$$$ #+.XXXXXXXX ooOOOOOOO +++++ $$$$$$$$$$", +"$$$$$$$$$ #@########## ooOOOOOOO ++++ $$$$$$$$$$", +"$$$$$$$$ #@@@@@@@@@@@@ ooOOOOOOO ++ $$$$", +"$$$$$$$ @ #@@@@@@@@@@@@@ ooOOOOOOO @@@@@##+ $$$", +"$$$$$$ @@ @++++++++++++++ ooOOOOOOO @@@@##++ $$$", +"$$$$$ @@@ ooOOOOOOO @@##+++ $$$", +"$$$$ @@@@@@@@@@@@@@@@@@@@@@ ooOOOOOOO ##++++ $$$", +"$$$ ######################## ooOOOOOOO @++++ $$$", +"$$$ ######################### ooOOOOOOO ++++ $$$", +"$$$ ##@@@@@@@@@@@@@@@@@@@@@@@@ ooOOOOOOO +++ $$$", +"$$$ ##@@@@@@@@@@@@@@@@@@@@@@@@@ ooOOOOOOO + $$$$", +"$$$ ##@@@@@@@@@@@@@@@@@@ ooOOOOOOO $$$$$", +"$$$ @@+++++++++++++++++++++++++++ ooOOOOOOO $$$$", +"$$$$ ooOOOOOOO $$$", +"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ooOOOOO $$$$", +"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ooOOO $$$$$", +"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ ooO $$$$$$", +"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ o $$$$$$$", +"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$$$", +"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$", +"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$", +"$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$" +}; + +const char *const *const cfg_icon[] = { + cfg_icon_0, + cfg_icon_1, + cfg_icon_2, +}; +const int n_cfg_icon = 3; diff --git a/unix/xpmpterm.c b/unix/xpmpterm.c new file mode 100644 index 00000000..677aaf67 --- /dev/null +++ b/unix/xpmpterm.c @@ -0,0 +1,143 @@ +/* XPM */ +static const char *const main_icon_0[] = { +/* columns rows colors chars-per-pixel */ +"16 16 6 1", +" c black", +". c blue", +"X c #808080", +"o c #C0C0C0", +"O c gray100", +"+ c None", +/* pixels */ +"++++++++++++++++", +"++++++++++++++++", +"+++ ++++", +"++ OOOOOOOoX +++", +"++ O......oX +++", +"++ O......oX +++", +"++ O......oX +++", +"++ O......oX +++", +"++ O......oX +++", +"++ ooooooooX ++", +"+ XXXXXXXXXXOX +", +" OOOOOOOOOOOoX +", +" OoooooXXXXoXX +", +"+ ++", +"++++++++++++++++", +"++++++++++++++++" +}; + +/* XPM */ +static const char *const main_icon_1[] = { +/* columns rows colors chars-per-pixel */ +"32 32 7 1", +" c black", +". c navy", +"X c blue", +"o c #808080", +"O c #C0C0C0", +"+ c gray100", +"@ c None", +/* pixels */ +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@ @@@@@@@@", +"@@@@@@@ OOOOOOOOOOOOOOOo @@@@@@@", +"@@@@@@ OOOOOOOOOOOOOOOoo @@@@@@@", +"@@@@@ ++++++++++++++Oooo @@@@@@@", +"@@@@@ +.............Oooo @@@@@@@", +"@@@@@ +.XXXXXXXXXXXXOooo @@@@@@@", +"@@@@@ +.XXXXXXXXXXXXOooo @@@@@@@", +"@@@@@ +.XXXXXXXXXXXXOooo @@@@@@@", +"@@@@@ +.XXXXXXXXXXXXOooo @@@@@@@", +"@@@@@ +.XXXXXXXXXXXXOooo @@@@@@@", +"@@@@@ +.XXXXXXXXXXXXOooo @@@@@@@", +"@@@@@ +.XXXXXXXXXXXXOooo @@@@@@@", +"@@@@@ +.XXXXXXXXXXXXOooo @@@@@@@", +"@@@@@ ++++++++++++++Oooo @@@@@@@", +"@@@@@ +OOOOOOOOOOOOOooo @@@", +"@@@@ Oooooooooooooooo OOOO+o @@", +"@@@ O OOOO+oo @@", +"@@ OOOOOOOOOOOOOOOOOOOOOO+ooo @@", +"@ +++++++++++++++++++++++Oooo @@", +"@ +OOOOOOOOOOOOOOOOOOOOOOoooo @@", +"@ +OOOOOOOOOOOOo oOOooo @@@", +"@ Ooooooooooooooooooooooooo @@@@", +"@@ @@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" +}; + +/* XPM */ +static const char *const main_icon_2[] = { +/* columns rows colors chars-per-pixel */ +"48 48 7 1", +" c black", +". c navy", +"X c blue", +"o c #808080", +"O c #C0C0C0", +"+ c gray100", +"@ c None", +/* pixels */ +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@ @@@@@@@@@@@", +"@@@@@@@@@@@@ OOOOOOOOOOOOOOOOOOOOOOOo @@@@@@@@@@", +"@@@@@@@@@@@ OOOOOOOOOOOOOOOOOOOOOOOoo @@@@@@@@@@", +"@@@@@@@@@@ OOOOOOOOOOOOOOOOOOOOOOOooo @@@@@@@@@@", +"@@@@@@@@@ ++++++++++++++++++++++Ooooo @@@@@@@@@@", +"@@@@@@@@@ +ooooooooooooooooooooOooooo @@@@@@@@@@", +"@@@@@@@@@ +o...................+ooooo @@@@@@@@@@", +"@@@@@@@@@ +o.XXXXXXXXXXXXXXXXXX+ooooo @@@@@@@@@@", +"@@@@@@@@@ +o.XXXXXXXXXXXXXXXXXX+ooooo @@@@@@@@@@", +"@@@@@@@@@ +o.XXXXXXXXXXXXXXXXXX+ooooo @@@@@@@@@@", +"@@@@@@@@@ +o.XXXXXXXXXXXXXXXXXX+ooooo @@@@@@@@@@", +"@@@@@@@@@ +o.XXXXXXXXXXXXXXXXXX+ooooo @@@@@@@@@@", +"@@@@@@@@@ +o.XXXXXXXXXXXXXXXXXX+ooooo @@@@@@@@@@", +"@@@@@@@@@ +o.XXXXXXXXXXXXXXXXXX+ooooo @@@@@@@@@@", +"@@@@@@@@@ +o.XXXXXXXXXXXXXXXXXX+ooooo @@@@@@@@@@", +"@@@@@@@@@ +o.XXXXXXXXXXXXXXXXXX+ooooo @@@@@@@@@@", +"@@@@@@@@@ +o.XXXXXXXXXXXXXXXXXX+ooooo @@@@@@@@@@", +"@@@@@@@@@ +o.XXXXXXXXXXXXXXXXXX+ooooo @@@@@@@@@@", +"@@@@@@@@@ +o.XXXXXXXXXXXXXXXXXX+ooooo @@@@@@@@@@", +"@@@@@@@@@ +o.XXXXXXXXXXXXXXXXXX+ooooo @@@@@@@@@@", +"@@@@@@@@@ +O++++++++++++++++++++ooooo @@@@@@@@@@", +"@@@@@@@@ +OOOOOOOOOOOOOOOOOOOOOoooo @@@@", +"@@@@@@@ O +OOOOOOOOOOOOOOOOOOOOOooo OOOOO++o @@@", +"@@@@@@ OO Oooooooooooooooooooooooo OOOOO++oo @@@", +"@@@@@ OOO OOOOO++ooo @@@", +"@@@@ OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOO++oooo @@@", +"@@@ +++++++++++++++++++++++++++++++++++Ooooo @@@", +"@@@ ++++++++++++++++++++++++++++++++++Oooooo @@@", +"@@@ ++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOoooooo @@@", +"@@@ ++OOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOOooooo @@@@", +"@@@ ++OOOOOOOOOOOOOOOOOO oOOOoooo @@@@@", +"@@@ OOooooooooooooooooooooooooooooooooooo @@@@@@", +"@@@@ @@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@", +"@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@" +}; + +const char *const *const main_icon[] = { + main_icon_0, + main_icon_1, + main_icon_2, +}; +const int n_main_icon = 3; diff --git a/unix/xpmpucfg.c b/unix/xpmpucfg.c new file mode 100644 index 00000000..c3f2ace0 --- /dev/null +++ b/unix/xpmpucfg.c @@ -0,0 +1,150 @@ +/* XPM */ +static const char *const cfg_icon_0[] = { +/* columns rows colors chars-per-pixel */ +"16 16 9 1", +" c black", +". c navy", +"X c blue", +"o c #808000", +"O c yellow", +"+ c #808080", +"@ c #C0C0C0", +"# c gray100", +"$ c None", +/* pixels */ +"$$$ $ $$$", +"$$ OO #####@+ $$", +"$ $ oO+XXX.++ $$", +" o $ oO.X.O++ $$", +" oO OO .O.@+ $", +"$ oOOOOoO+@@+++ ", +"$$ oooOOoO ++@+ ", +"$$ oooOO +++++ ", +"$ ##+OooOO $", +"$ #.O..+oOO $$$$", +"$ +O.XX@ oOO $$$", +"$ +.XXX@+ oOO $$", +"$ @@@@@@++ oOO $", +" ++++++++@+ oOO ", +" #@@@@+++++ oO ", +"$ $$ $" +}; + +/* XPM */ +static const char *const cfg_icon_1[] = { +/* columns rows colors chars-per-pixel */ +"32 32 9 1", +" c black", +". c navy", +"X c blue", +"o c #808000", +"O c yellow", +"+ c #808080", +"@ c #C0C0C0", +"# c gray100", +"$ c None", +/* pixels */ +"$$$$$$$$$$$$$$$$ $$$$", +"$$$$$$ $$$$$$$ @@@@@@@@@@@+ $$$", +"$$$$$ OO $$$$ ##########@++ $$$", +"$$$$$ ooOO $$$ #.........@++ $$$", +"$$$$$$ ooOO $$ #.XXXXXXXX@++ $$$", +"$$ $$$ oOO $$ #.XXXX XX@++ $$$", +"$ oO $$ oOOO $ #.XXX O XX@++ $$$", +"$ oOO oOOOO $ #.X O XXX@++ $$$", +"$$ oOOOOOOO $$ #. OO XXXX@++ $$$", +"$$ ooOOOOOOO $ # OO XXXXX@++ $$$", +"$$$ ooooooOOO OO ######@++ $", +"$$$$ oo ooOOO OO +++++++++ @#+ ", +"$$$$$$ $ ooOOO @#++ ", +"$$$$$$$$$$ ooOOO OOO #######@++ ", +"$$$$$$$$$ O ooOOO @@@@@@@@+++ ", +"$$$$$ ooOOO @@+ +@++ $", +"$$$$ @@@@@@@ ooOOO $$", +"$$$ ####### OO ooOOO $$$$$$$$$$$", +"$$$ #..... OO @ ooOOO $$$$$$$$$$", +"$$$ #.XXX OO X@+ ooOOO $$$$$$$$$", +"$$$ #.XX O XX@++ ooOOO $$$$$$$$", +"$$$ #.X O XXXX@++ ooOOO $$$$$$$", +"$$$ #.X XXXXX@++ $ ooOOO $$$$$$", +"$$$ #.XXXXXXXX@++ $$ ooOOO $$$$$", +"$$$ #.XXXXXXXX@++ $$$ ooOOO $$$$", +"$$$ ##########@++ $$ ooOOO $$$", +"$$ @+++++++++++ @#+ $$ ooOOO $$", +"$ @ @#++ $$$ ooO $$$", +" ################@++ $$$$ o $$$$", +" #@@@@@@@@@@@@@@@+++ $$$$$ $$$$$", +" #@@@@@@@@+ +@++ $$$$$$$$$$$$", +"$ $$$$$$$$$$$$$" +}; + +/* XPM */ +static const char *const cfg_icon_2[] = { +/* columns rows colors chars-per-pixel */ +"48 48 9 1", +" c black", +". c navy", +"X c blue", +"o c #808000", +"O c yellow", +"+ c #808080", +"@ c #C0C0C0", +"# c gray100", +"$ c None", +/* pixels */ +"$$$$$$$$$$$$$$$$$$$$$$$$ $$$$$$", +"$$$$$$$$$$$$$$$$$$$$$$$ @@@@@@@@@@@@@@@@@+ $$$$$", +"$$$$$$$$$ $$$$$$$$$$$ @@@@@@@@@@@@@@@@@++ $$$$$", +"$$$$$$$$ OO $$$$$$$ ################@+++ $$$$$", +"$$$$$$$$ oOOOO $$$$$$ #++++++++++++++@++++ $$$$$", +"$$$$$$$$$ ooOOO $$$$$ #+.............#++++ $$$$$", +"$$$$$$$$$$ ooOOO $$$$ #+.XXXXXXXXXXXX#++++ $$$$$", +"$$$$$$$$$$$ oOOO $$$$ #+.XXXXXXXXXXXX#++++ $$$$$", +"$$$ $$$$$$ oOOO $$$$ #+.XXXXXXX XXX#++++ $$$$$", +"$$ oO $$$$$ oOOOO $$$ #+.XXXXXX O XXX#++++ $$$$$", +"$$ ooO $$$$ oOOOO $$$ #+.XXXXX O XXXX#++++ $$$$$", +"$$$ oOO OOOOO $$$$ #+.XXX O XXXXX#++++ $$$$$", +"$$$ ooOOOOOOOOOOO $$$ #+.XX OO XXXXXX#++++ $$$$$", +"$$$ ooOOOOOOOOOOOO $$ #+.X OO XXXXXXX#++++ $$$$$", +"$$$$ oooOOOOoOOOOOO $ #@ OO #########++++ $", +"$$$$$ oooooooOOOOOOO # OOO @@@@@@@@@@+++ @@##+ ", +"$$$$$$ oo ooOOOOOOO OO +++++++++++++ @@##++ ", +"$$$$$$$$$ $ ooOOOOOOO O @@##+++ ", +"$$$$$$$$$$$$$ ooOOOOOOO ##############@+++ ", +"$$$$$$$$$$$$$$ ooOOOOOOO OOOO ############@++++ ", +"$$$$$$$$$$$$$$$ ooOOOOOOO O @@@@@@@@@@@@@+++++ ", +"$$$$$$$$$$$$$$$ ooOOOOOOO @@@@@+ @@++++ $", +"$$$$$$$$$$$$$$ OO ooOOOOOOO +++++++++++++++++ $$", +"$$$$$$$$$$$$$$$ ooOOOOOOO $$$", +"$$$$$$$ ooOOOOOOO $$$$$$$$$$$$$$$$$$", +"$$$$$$ @@@@@@@@@@ O ooOOOOOOO $$$$$$$$$$$$$$$$$", +"$$$$$ @@@@@@@@@@ OOO ooOOOOOOO $$$$$$$$$$$$$$$$", +"$$$$ ########## OO #@ ooOOOOOOO $$$$$$$$$$$$$$$", +"$$$$ #++++++++ OO ++@++ ooOOOOOOO $$$$$$$$$$$$$$", +"$$$$ #+...... OO ...#+++ ooOOOOOOO $$$$$$$$$$$$$", +"$$$$ #+.XXXX O XXXX#++++ ooOOOOOOO $$$$$$$$$$$$", +"$$$$ #+.XXX O XXXXXX#++++ ooOOOOOOO $$$$$$$$$$$", +"$$$$ #+.XX O XXXXXXX#++++ $ ooOOOOOOO $$$$$$$$$$", +"$$$$ #+.XX XXXXXXXX#++++ $$ ooOOOOOOO $$$$$$$$$", +"$$$$ #+.XXXXXXXXXXXX#++++ $$$ ooOOOOOOO $$$$$$$$", +"$$$$ #+.XXXXXXXXXXXX#++++ $$$$ ooOOOOOOO $$$$$$$", +"$$$$ #+.XXXXXXXXXXXX#++++ $$$$$ ooOOOOOOO $$$$$$", +"$$$$ #+.XXXXXXXXXXXX#++++ $$$$$$ ooOOOOOOO $$$$$", +"$$$$ #@##############++++ $$$ ooOOOOOOO $$$$", +"$$$ #@@@@@@@@@@@@@@@+++ @@##+ $$$ ooOOOOOOO $$$", +"$$ @ @+++++++++++++++++ @@##++ $$$$ ooOOOOO $$$$", +"$ @@ @@##+++ $$$$$ ooOOO $$$$$", +" #########################@+++ $$$$$$ ooO $$$$$$", +" ########################@++++ $$$$$$$ o $$$$$$$", +" ##@@@@@@@@@@@@@@@@@@@@@@+++++ $$$$$$$$ $$$$$$$$", +" ##@@@@@@@@@@@@+ @@++++ $$$$$$$$$$$$$$$$$$", +" @@+++++++++++++++++++++++++ $$$$$$$$$$$$$$$$$$$", +"$ $$$$$$$$$$$$$$$$$$$$" +}; + +const char *const *const cfg_icon[] = { + cfg_icon_0, + cfg_icon_1, + cfg_icon_2, +}; +const int n_cfg_icon = 3; diff --git a/unix/xpmputty.c b/unix/xpmputty.c new file mode 100644 index 00000000..3809b35f --- /dev/null +++ b/unix/xpmputty.c @@ -0,0 +1,147 @@ +/* XPM */ +static const char *const main_icon_0[] = { +/* columns rows colors chars-per-pixel */ +"16 16 8 1", +" c black", +". c navy", +"X c blue", +"o c yellow", +"O c #808080", +"+ c #C0C0C0", +"@ c gray100", +"# c None", +/* pixels */ +"###### ###", +"##### @@@@@+O ##", +"##### @XXX.OO ##", +"##### @XX.oOO ##", +"##### @..o.+O #", +"##### OooO++OOO ", +"#### oooo OO+O ", +"## oooo OOOOOO ", +"# @@OooOO #", +"# @.o..+O ######", +"# Oo.XX+O ######", +"# O.XXX+O #####", +"# ++++++OOO ####", +" OOOOOOOO+O ####", +" @++++OOOOO ####", +"# #####" +}; + +/* XPM */ +static const char *const main_icon_1[] = { +/* columns rows colors chars-per-pixel */ +"32 32 8 1", +" c black", +". c navy", +"X c blue", +"o c yellow", +"O c #808080", +"+ c #C0C0C0", +"@ c gray100", +"# c None", +/* pixels */ +"################ ####", +"############### +++++++++++O ###", +"############## @@@@@@@@@@+OO ###", +"############## @.........+OO ###", +"############## @.XXXXXXXX+OO ###", +"############## @.XXXX XX+OO ###", +"############## @.XXX o XX+OO ###", +"############## @.X o XXX+OO ###", +"############## @. oo XXXX+OO ###", +"############## @ oo XXXXX+OO ###", +"############## oo @@@@@@+OO #", +"############# ooo OOOOOOOOO +@O ", +"############ ooo +@OO ", +"########## oooooooo @@@@@@@+OO ", +"######### oooooooo ++++++++OOO ", +"##### ooo +++O O+OO #", +"#### +++++++ ooo ##", +"### @@@@@@@ oo O ##############", +"### @..... oo +OO ##############", +"### @.XXX oo X+OO ##############", +"### @.XX o XX+OO ##############", +"### @.X o XXXX+OO ##############", +"### @.X XXXXX+OO ##############", +"### @.XXXXXXXX+OO ##############", +"### @.XXXXXXXX+OO ##############", +"### @@@@@@@@@@+OO ############", +"## +OOOOOOOOOOO +@O ###########", +"# + +@OO ###########", +" @@@@@@@@@@@@@@@@+OO ###########", +" @+++++++++++++++OOO ###########", +" @++++++++O O+OO ############", +"# #############" +}; + +/* XPM */ +static const char *const main_icon_2[] = { +/* columns rows colors chars-per-pixel */ +"48 48 8 1", +" c black", +". c navy", +"X c blue", +"o c yellow", +"O c #808080", +"+ c #C0C0C0", +"@ c gray100", +"# c None", +/* pixels */ +"######################## ######", +"####################### +++++++++++++++++O #####", +"###################### +++++++++++++++++OO #####", +"##################### @@@@@@@@@@@@@@@@+OOO #####", +"##################### @OOOOOOOOOOOOOO+OOOO #####", +"##################### @O.............@OOOO #####", +"##################### @O.XXXXXXXXXXXX@OOOO #####", +"##################### @O.XXXXXXXXXXXX@OOOO #####", +"##################### @O.XXXXXXX XXX@OOOO #####", +"##################### @O.XXXXXX o XXX@OOOO #####", +"##################### @O.XXXXX o XXXX@OOOO #####", +"##################### @O.XXX o XXXXX@OOOO #####", +"##################### @O.XX oo XXXXXX@OOOO #####", +"##################### @O.X oo XXXXXXX@OOOO #####", +"##################### @+ oo @@@@@@@@@OOOO #", +"#################### @ ooo ++++++++++OOO ++@@O ", +"################### + oo OOOOOOOOOOOOO ++@@OO ", +"################## + oo ++@@OOO ", +"################# @ ooo @@@@@@@@@@@@@@+OOO ", +"################# oooooooooo @@@@@@@@@@@@+OOOO ", +"################# ooooooooo +++++++++++++OOOOO ", +"############### ooooooooo +++++O ++OOOO #", +"############## oooooooooo OOOOOOOOOOOOOOOOOOO ##", +"############### ooo ###", +"####### oo #######################", +"###### ++++++++++ oo ++O ######################", +"##### ++++++++++ ooo ++OO ######################", +"#### @@@@@@@@@@ oo @+OOO ######################", +"#### @OOOOOOOO oo OO+OOOO ######################", +"#### @O...... oo ...@OOOO ######################", +"#### @O.XXXX o XXXX@OOOO ######################", +"#### @O.XXX o XXXXXX@OOOO ######################", +"#### @O.XX o XXXXXXX@OOOO ######################", +"#### @O.XX XXXXXXXX@OOOO ######################", +"#### @O.XXXXXXXXXXXX@OOOO ######################", +"#### @O.XXXXXXXXXXXX@OOOO ######################", +"#### @O.XXXXXXXXXXXX@OOOO ######################", +"#### @O.XXXXXXXXXXXX@OOOO ######################", +"#### @+@@@@@@@@@@@@@@OOOO ##################", +"### @+++++++++++++++OOO ++@@O #################", +"## + +OOOOOOOOOOOOOOOOO ++@@OO #################", +"# ++ ++@@OOO #################", +" @@@@@@@@@@@@@@@@@@@@@@@@@+OOO #################", +" @@@@@@@@@@@@@@@@@@@@@@@@+OOOO #################", +" @@++++++++++++++++++++++OOOOO #################", +" @@++++++++++++O ++OOOO ##################", +" ++OOOOOOOOOOOOOOOOOOOOOOOOO ###################", +"# ####################" +}; + +const char *const *const main_icon[] = { + main_icon_0, + main_icon_1, + main_icon_2, +}; +const int n_main_icon = 3; -- 2.11.0