2013-03-31 21:44:48 +02:00
|
|
|
/* X-Chat
|
|
|
|
|
* Copyright (C) 2005 Peter Zelezny.
|
|
|
|
|
*
|
|
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
|
|
|
* it under the terms of the GNU General Public License as published by
|
|
|
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
|
|
|
* (at your option) any later version.
|
|
|
|
|
*
|
|
|
|
|
* This program is distributed in the hope that it will be useful,
|
|
|
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
|
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
|
|
|
* GNU General Public License for more details.
|
|
|
|
|
*
|
|
|
|
|
* You should have received a copy of the GNU General Public License
|
|
|
|
|
* along with this program; if not, write to the Free Software
|
|
|
|
|
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA
|
|
|
|
|
*/
|
2011-02-24 04:14:30 +01:00
|
|
|
|
2013-03-31 21:44:48 +02:00
|
|
|
/* joind.c - The Join Dialog.
|
2011-02-24 04:14:30 +01:00
|
|
|
|
|
|
|
|
Popups up when you connect without any autojoin channels and helps you
|
|
|
|
|
to find or join a channel.
|
|
|
|
|
*/
|
|
|
|
|
|
|
|
|
|
#include <sys/types.h>
|
|
|
|
|
#include <sys/stat.h>
|
|
|
|
|
#include <string.h>
|
|
|
|
|
#include <stdio.h>
|
|
|
|
|
|
2011-12-11 17:34:02 +01:00
|
|
|
#ifndef WIN32
|
|
|
|
|
#include <unistd.h>
|
|
|
|
|
#endif
|
|
|
|
|
|
2026-01-05 23:12:38 -07:00
|
|
|
#include "../common/zoitechat.h"
|
|
|
|
|
#include "../common/zoitechatc.h"
|
2011-02-24 04:14:30 +01:00
|
|
|
#include "../common/server.h"
|
2013-07-27 00:22:57 -04:00
|
|
|
#include "../common/servlist.h"
|
2011-02-24 04:14:30 +01:00
|
|
|
#include "../common/fe.h"
|
|
|
|
|
#include "fe-gtk.h"
|
|
|
|
|
#include "chanlist.h"
|
2026-01-30 08:21:55 -07:00
|
|
|
#include "gtkutil.h"
|
2011-02-24 04:14:30 +01:00
|
|
|
|
Added per-file ICON_* macros with GTK3 icon-name mappings and GTK2 stock fallbacks across GTK UI modules like banlist, DCC, editlist, ignore, URL grabber, notify, text events, tray menu, chanview tabs, and join dialog UI.
Updated GTK helper usages to reference the new ICON_* (and label) macros so GTK3 builds no longer pass stock IDs to button/icon helpers or dialogs, including banlist buttons, DCC windows, rawlog actions, notify dialog/buttons, pevent dialog buttons, tray menu items, and join dialog image helper usage.
2026-01-30 09:23:52 -07:00
|
|
|
#if HAVE_GTK3
|
|
|
|
|
#define ICON_JOIND_NETWORK "network-workgroup"
|
|
|
|
|
#endif
|
|
|
|
|
#if !HAVE_GTK3
|
|
|
|
|
#define ICON_JOIND_NETWORK GTK_STOCK_NETWORK
|
|
|
|
|
#endif
|
|
|
|
|
|
2011-02-24 04:14:30 +01:00
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
joind_radio2_cb (GtkWidget *radio, server *serv)
|
|
|
|
|
{
|
2013-05-12 01:43:27 -04:00
|
|
|
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (radio)))
|
2011-02-24 04:14:30 +01:00
|
|
|
{
|
|
|
|
|
gtk_widget_grab_focus (serv->gui->joind_entry);
|
|
|
|
|
gtk_editable_set_position (GTK_EDITABLE (serv->gui->joind_entry), 999);
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
joind_entryenter_cb (GtkWidget *entry, GtkWidget *ok)
|
|
|
|
|
{
|
|
|
|
|
gtk_widget_grab_focus (ok);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
joind_entryfocus_cb (GtkWidget *entry, GdkEventFocus *event, server *serv)
|
|
|
|
|
{
|
|
|
|
|
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (serv->gui->joind_radio2), TRUE);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
joind_destroy_cb (GtkWidget *win, server *serv)
|
|
|
|
|
{
|
|
|
|
|
if (is_server (serv))
|
|
|
|
|
serv->gui->joind_win = NULL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
joind_ok_cb (GtkWidget *ok, server *serv)
|
|
|
|
|
{
|
|
|
|
|
if (!is_server (serv))
|
|
|
|
|
{
|
|
|
|
|
gtk_widget_destroy (gtk_widget_get_toplevel (ok));
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* do nothing */
|
2013-05-12 01:43:27 -04:00
|
|
|
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (serv->gui->joind_radio1)))
|
2011-02-24 04:14:30 +01:00
|
|
|
goto xit;
|
|
|
|
|
|
|
|
|
|
/* join specific channel */
|
2013-05-12 01:43:27 -04:00
|
|
|
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (serv->gui->joind_radio2)))
|
2011-02-24 04:14:30 +01:00
|
|
|
{
|
2013-05-12 01:43:27 -04:00
|
|
|
char *text = (char *)gtk_entry_get_text (GTK_ENTRY (serv->gui->joind_entry));
|
2013-09-29 17:36:15 +00:00
|
|
|
if (strlen (text) < 1)
|
2011-02-24 04:14:30 +01:00
|
|
|
{
|
|
|
|
|
fe_message (_("Channel name too short, try again."), FE_MSG_ERROR);
|
|
|
|
|
return;
|
|
|
|
|
}
|
|
|
|
|
serv->p_join (serv, text, "");
|
|
|
|
|
goto xit;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/* channel list */
|
|
|
|
|
chanlist_opengui (serv, TRUE);
|
|
|
|
|
|
|
|
|
|
xit:
|
2012-10-22 13:49:28 +02:00
|
|
|
prefs.hex_gui_join_dialog = 0;
|
2013-05-12 01:43:27 -04:00
|
|
|
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (serv->gui->joind_check)))
|
2012-10-22 13:49:28 +02:00
|
|
|
prefs.hex_gui_join_dialog = 1;
|
2011-02-24 04:14:30 +01:00
|
|
|
|
|
|
|
|
gtk_widget_destroy (serv->gui->joind_win);
|
|
|
|
|
serv->gui->joind_win = NULL;
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void
|
|
|
|
|
joind_show_dialog (server *serv)
|
|
|
|
|
{
|
|
|
|
|
GtkWidget *dialog1;
|
|
|
|
|
GtkWidget *dialog_vbox1;
|
|
|
|
|
GtkWidget *vbox1;
|
|
|
|
|
GtkWidget *hbox1;
|
|
|
|
|
GtkWidget *image1;
|
|
|
|
|
GtkWidget *vbox2;
|
|
|
|
|
GtkWidget *label;
|
|
|
|
|
GtkWidget *radiobutton1;
|
|
|
|
|
GtkWidget *radiobutton2;
|
|
|
|
|
GtkWidget *radiobutton3;
|
|
|
|
|
GSList *radiobutton1_group;
|
|
|
|
|
GtkWidget *hbox2;
|
|
|
|
|
GtkWidget *entry1;
|
|
|
|
|
GtkWidget *checkbutton1;
|
|
|
|
|
GtkWidget *okbutton1;
|
|
|
|
|
char buf[256];
|
|
|
|
|
char buf2[256];
|
|
|
|
|
|
|
|
|
|
serv->gui->joind_win = dialog1 = gtk_dialog_new ();
|
2017-09-15 17:36:02 -04:00
|
|
|
g_snprintf(buf, sizeof(buf), _("Connection Complete - %s"), _(DISPLAY_NAME));
|
|
|
|
|
gtk_window_set_title (GTK_WINDOW (dialog1), buf);
|
2011-02-24 04:14:30 +01:00
|
|
|
gtk_window_set_type_hint (GTK_WINDOW (dialog1), GDK_WINDOW_TYPE_HINT_DIALOG);
|
2013-09-25 02:02:26 -04:00
|
|
|
gtk_window_set_position (GTK_WINDOW (dialog1), GTK_WIN_POS_CENTER_ON_PARENT);
|
|
|
|
|
gtk_window_set_transient_for (GTK_WINDOW(dialog1), GTK_WINDOW(serv->front_session->gui->window));
|
|
|
|
|
gtk_window_set_modal (GTK_WINDOW (dialog1), TRUE);
|
|
|
|
|
gtk_window_set_resizable (GTK_WINDOW (dialog1), FALSE);
|
2011-02-24 04:14:30 +01:00
|
|
|
|
2013-05-12 01:43:27 -04:00
|
|
|
dialog_vbox1 = gtk_dialog_get_content_area (GTK_DIALOG (dialog1));
|
2011-02-24 04:14:30 +01:00
|
|
|
gtk_widget_show (dialog_vbox1);
|
|
|
|
|
|
2026-02-05 01:59:15 -07:00
|
|
|
vbox1 = gtkutil_box_new (GTK_ORIENTATION_VERTICAL, FALSE, 0);
|
2011-02-24 04:14:30 +01:00
|
|
|
gtk_widget_show (vbox1);
|
|
|
|
|
gtk_box_pack_start (GTK_BOX (dialog_vbox1), vbox1, TRUE, TRUE, 0);
|
|
|
|
|
|
2026-02-05 01:59:15 -07:00
|
|
|
hbox1 = gtkutil_box_new (GTK_ORIENTATION_HORIZONTAL, FALSE, 0);
|
2011-02-24 04:14:30 +01:00
|
|
|
gtk_widget_show (hbox1);
|
|
|
|
|
gtk_box_pack_start (GTK_BOX (vbox1), hbox1, TRUE, TRUE, 0);
|
|
|
|
|
|
Added per-file ICON_* macros with GTK3 icon-name mappings and GTK2 stock fallbacks across GTK UI modules like banlist, DCC, editlist, ignore, URL grabber, notify, text events, tray menu, chanview tabs, and join dialog UI.
Updated GTK helper usages to reference the new ICON_* (and label) macros so GTK3 builds no longer pass stock IDs to button/icon helpers or dialogs, including banlist buttons, DCC windows, rawlog actions, notify dialog/buttons, pevent dialog buttons, tray menu items, and join dialog image helper usage.
2026-01-30 09:23:52 -07:00
|
|
|
image1 = gtkutil_image_new_from_stock (ICON_JOIND_NETWORK, GTK_ICON_SIZE_LARGE_TOOLBAR);
|
2011-02-24 04:14:30 +01:00
|
|
|
gtk_widget_show (image1);
|
|
|
|
|
gtk_box_pack_start (GTK_BOX (hbox1), image1, FALSE, TRUE, 24);
|
2026-01-23 20:18:49 -07:00
|
|
|
#if HAVE_GTK3
|
|
|
|
|
gtk_widget_set_halign (image1, GTK_ALIGN_CENTER);
|
|
|
|
|
gtk_widget_set_valign (image1, GTK_ALIGN_START);
|
2026-01-23 21:16:43 -07:00
|
|
|
gtk_widget_set_margin_top (image1, 2);
|
2026-01-23 20:34:48 -07:00
|
|
|
#elif !HAVE_GTK3
|
2014-12-04 04:06:38 -08:00
|
|
|
gtk_misc_set_alignment (GTK_MISC (image1), 0.5f, 0.06f);
|
2026-01-23 20:18:49 -07:00
|
|
|
#endif
|
2011-02-24 04:14:30 +01:00
|
|
|
|
2026-02-05 01:59:15 -07:00
|
|
|
vbox2 = gtkutil_box_new (GTK_ORIENTATION_VERTICAL, FALSE, 10);
|
2011-02-24 04:14:30 +01:00
|
|
|
gtk_container_set_border_width (GTK_CONTAINER (vbox2), 6);
|
|
|
|
|
gtk_widget_show (vbox2);
|
|
|
|
|
gtk_box_pack_start (GTK_BOX (hbox1), vbox2, TRUE, TRUE, 0);
|
|
|
|
|
|
2014-12-17 18:49:59 -05:00
|
|
|
g_snprintf (buf2, sizeof (buf2), _("Connection to %s complete."),
|
2011-02-24 04:14:30 +01:00
|
|
|
server_get_network (serv, TRUE));
|
2014-12-17 18:49:59 -05:00
|
|
|
g_snprintf (buf, sizeof (buf), "\n<b>%s</b>", buf2);
|
2011-02-24 04:14:30 +01:00
|
|
|
label = gtk_label_new (buf);
|
|
|
|
|
gtk_widget_show (label);
|
|
|
|
|
gtk_box_pack_start (GTK_BOX (vbox2), label, FALSE, FALSE, 0);
|
|
|
|
|
gtk_label_set_use_markup (GTK_LABEL (label), TRUE);
|
2026-01-23 20:18:49 -07:00
|
|
|
#if HAVE_GTK3
|
|
|
|
|
gtk_widget_set_halign (label, GTK_ALIGN_START);
|
|
|
|
|
gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
|
2026-01-23 20:34:48 -07:00
|
|
|
#elif !HAVE_GTK3
|
2011-02-24 04:14:30 +01:00
|
|
|
gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
|
2026-01-23 20:18:49 -07:00
|
|
|
#endif
|
2011-02-24 04:14:30 +01:00
|
|
|
|
2017-08-19 20:48:50 +02:00
|
|
|
label = gtk_label_new (_("In the server list window, no channel (chat room) has been entered to be automatically joined for this network."));
|
2011-02-24 04:14:30 +01:00
|
|
|
gtk_widget_show (label);
|
|
|
|
|
gtk_box_pack_start (GTK_BOX (vbox2), label, FALSE, FALSE, 0);
|
2013-05-12 01:43:27 -04:00
|
|
|
gtk_label_set_line_wrap (GTK_LABEL (label), TRUE);
|
2026-01-23 20:18:49 -07:00
|
|
|
#if HAVE_GTK3
|
|
|
|
|
gtk_widget_set_halign (label, GTK_ALIGN_START);
|
|
|
|
|
gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
|
2026-01-23 20:34:48 -07:00
|
|
|
#elif !HAVE_GTK3
|
2011-02-24 04:14:30 +01:00
|
|
|
gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
|
2026-01-23 20:18:49 -07:00
|
|
|
#endif
|
2011-02-24 04:14:30 +01:00
|
|
|
|
|
|
|
|
label = gtk_label_new (_("What would you like to do next?"));
|
|
|
|
|
gtk_widget_show (label);
|
|
|
|
|
gtk_box_pack_start (GTK_BOX (vbox2), label, FALSE, FALSE, 0);
|
2026-01-23 20:18:49 -07:00
|
|
|
#if HAVE_GTK3
|
|
|
|
|
gtk_widget_set_halign (label, GTK_ALIGN_START);
|
|
|
|
|
gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
|
2026-01-23 20:34:48 -07:00
|
|
|
#elif !HAVE_GTK3
|
2011-02-24 04:14:30 +01:00
|
|
|
gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
|
2026-01-23 20:18:49 -07:00
|
|
|
#endif
|
2011-02-24 04:14:30 +01:00
|
|
|
|
|
|
|
|
serv->gui->joind_radio1 = radiobutton1 = gtk_radio_button_new_with_mnemonic (NULL, _("_Nothing, I'll join a channel later."));
|
|
|
|
|
gtk_widget_show (radiobutton1);
|
|
|
|
|
gtk_box_pack_start (GTK_BOX (vbox2), radiobutton1, FALSE, FALSE, 0);
|
|
|
|
|
radiobutton1_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton1));
|
|
|
|
|
|
2026-02-05 01:59:15 -07:00
|
|
|
hbox2 = gtkutil_box_new (GTK_ORIENTATION_HORIZONTAL, FALSE, 0);
|
2011-02-24 04:14:30 +01:00
|
|
|
gtk_widget_show (hbox2);
|
|
|
|
|
gtk_box_pack_start (GTK_BOX (vbox2), hbox2, FALSE, FALSE, 0);
|
|
|
|
|
|
|
|
|
|
serv->gui->joind_radio2 = radiobutton2 = gtk_radio_button_new_with_mnemonic (NULL, _("_Join this channel:"));
|
|
|
|
|
gtk_widget_show (radiobutton2);
|
|
|
|
|
gtk_box_pack_start (GTK_BOX (hbox2), radiobutton2, FALSE, FALSE, 0);
|
|
|
|
|
gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton2), radiobutton1_group);
|
|
|
|
|
radiobutton1_group = gtk_radio_button_get_group (GTK_RADIO_BUTTON (radiobutton2));
|
|
|
|
|
|
|
|
|
|
serv->gui->joind_entry = entry1 = gtk_entry_new ();
|
|
|
|
|
gtk_entry_set_text (GTK_ENTRY (entry1), "#");
|
|
|
|
|
gtk_widget_show (entry1);
|
|
|
|
|
gtk_box_pack_start (GTK_BOX (hbox2), entry1, TRUE, TRUE, 8);
|
|
|
|
|
|
2014-12-17 18:49:59 -05:00
|
|
|
g_snprintf (buf, sizeof (buf), "<small> %s</small>",
|
2011-02-24 04:14:30 +01:00
|
|
|
_("If you know the name of the channel you want to join, enter it here."));
|
|
|
|
|
label = gtk_label_new (buf);
|
|
|
|
|
gtk_widget_show (label);
|
|
|
|
|
gtk_box_pack_start (GTK_BOX (vbox2), label, FALSE, FALSE, 0);
|
|
|
|
|
gtk_label_set_use_markup (GTK_LABEL (label), TRUE);
|
2026-01-23 20:18:49 -07:00
|
|
|
#if HAVE_GTK3
|
|
|
|
|
gtk_widget_set_halign (label, GTK_ALIGN_START);
|
|
|
|
|
gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
|
2026-01-23 20:34:48 -07:00
|
|
|
#elif !HAVE_GTK3
|
2011-02-24 04:14:30 +01:00
|
|
|
gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
|
2026-01-23 20:18:49 -07:00
|
|
|
#endif
|
2011-02-24 04:14:30 +01:00
|
|
|
|
2017-08-19 20:48:50 +02:00
|
|
|
radiobutton3 = gtk_radio_button_new_with_mnemonic (NULL, _("O_pen the channel list."));
|
2011-02-24 04:14:30 +01:00
|
|
|
gtk_widget_show (radiobutton3);
|
|
|
|
|
gtk_box_pack_start (GTK_BOX (vbox2), radiobutton3, FALSE, FALSE, 0);
|
|
|
|
|
gtk_radio_button_set_group (GTK_RADIO_BUTTON (radiobutton3), radiobutton1_group);
|
|
|
|
|
|
2014-12-17 18:49:59 -05:00
|
|
|
g_snprintf (buf, sizeof (buf), "<small> %s</small>",
|
2017-08-19 20:48:50 +02:00
|
|
|
_("Retrieving the channel list may take a minute or two."));
|
2011-02-24 04:14:30 +01:00
|
|
|
label = gtk_label_new (buf);
|
|
|
|
|
gtk_widget_show (label);
|
|
|
|
|
gtk_box_pack_start (GTK_BOX (vbox2), label, FALSE, FALSE, 0);
|
|
|
|
|
gtk_label_set_use_markup (GTK_LABEL (label), TRUE);
|
2026-01-23 20:18:49 -07:00
|
|
|
#if HAVE_GTK3
|
|
|
|
|
gtk_widget_set_halign (label, GTK_ALIGN_START);
|
|
|
|
|
gtk_widget_set_valign (label, GTK_ALIGN_CENTER);
|
2026-01-23 20:34:48 -07:00
|
|
|
#elif !HAVE_GTK3
|
2011-02-24 04:14:30 +01:00
|
|
|
gtk_misc_set_alignment (GTK_MISC (label), 0, 0.5);
|
2026-01-23 20:18:49 -07:00
|
|
|
#endif
|
2011-02-24 04:14:30 +01:00
|
|
|
|
|
|
|
|
serv->gui->joind_check = checkbutton1 = gtk_check_button_new_with_mnemonic (_("_Always show this dialog after connecting."));
|
2012-10-22 13:49:28 +02:00
|
|
|
if (prefs.hex_gui_join_dialog)
|
2011-02-24 04:14:30 +01:00
|
|
|
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (checkbutton1), TRUE);
|
|
|
|
|
gtk_widget_show (checkbutton1);
|
|
|
|
|
gtk_box_pack_start (GTK_BOX (vbox1), checkbutton1, FALSE, FALSE, 0);
|
|
|
|
|
|
2026-01-30 08:21:55 -07:00
|
|
|
okbutton1 = gtkutil_button_new_from_stock ("gtk-ok", _("_OK"));
|
2011-02-24 04:14:30 +01:00
|
|
|
gtk_widget_show (okbutton1);
|
2026-02-05 00:04:07 -07:00
|
|
|
#if HAVE_GTK3
|
|
|
|
|
gtk_dialog_add_action_widget (GTK_DIALOG (dialog1), okbutton1, GTK_RESPONSE_OK);
|
|
|
|
|
#elif !HAVE_GTK3
|
|
|
|
|
{
|
|
|
|
|
GtkWidget *dialog_action_area1;
|
|
|
|
|
|
|
|
|
|
dialog_action_area1 = gtk_dialog_get_action_area (GTK_DIALOG (dialog1));
|
|
|
|
|
gtk_widget_show (dialog_action_area1);
|
|
|
|
|
gtk_button_box_set_layout (GTK_BUTTON_BOX (dialog_action_area1), GTK_BUTTONBOX_END);
|
|
|
|
|
gtk_box_pack_end (GTK_BOX (dialog_action_area1), okbutton1, FALSE, TRUE, 0);
|
|
|
|
|
}
|
|
|
|
|
#endif
|
2013-05-12 01:43:27 -04:00
|
|
|
gtk_widget_set_can_default (okbutton1, TRUE);
|
2011-02-24 04:14:30 +01:00
|
|
|
|
|
|
|
|
g_signal_connect (G_OBJECT (dialog1), "destroy",
|
|
|
|
|
G_CALLBACK (joind_destroy_cb), serv);
|
|
|
|
|
g_signal_connect (G_OBJECT (entry1), "focus_in_event",
|
|
|
|
|
G_CALLBACK (joind_entryfocus_cb), serv);
|
|
|
|
|
g_signal_connect (G_OBJECT (entry1), "activate",
|
|
|
|
|
G_CALLBACK (joind_entryenter_cb), okbutton1);
|
|
|
|
|
g_signal_connect (G_OBJECT (radiobutton2), "toggled",
|
|
|
|
|
G_CALLBACK (joind_radio2_cb), serv);
|
|
|
|
|
g_signal_connect (G_OBJECT (okbutton1), "clicked",
|
|
|
|
|
G_CALLBACK (joind_ok_cb), serv);
|
2013-07-27 00:22:57 -04:00
|
|
|
|
|
|
|
|
if (serv->network)
|
2021-05-23 21:15:43 -05:00
|
|
|
if (g_ascii_strcasecmp(((ircnet*)serv->network)->name, "Libera.Chat") == 0)
|
2013-07-27 00:22:57 -04:00
|
|
|
{
|
2026-01-05 23:12:38 -07:00
|
|
|
gtk_entry_set_text (GTK_ENTRY (entry1), "#zoitechat");
|
2013-07-27 00:22:57 -04:00
|
|
|
}
|
2011-02-24 04:14:30 +01:00
|
|
|
|
|
|
|
|
gtk_widget_grab_focus (okbutton1);
|
|
|
|
|
gtk_widget_show_all (dialog1);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
joind_open (server *serv)
|
|
|
|
|
{
|
2012-10-22 13:49:28 +02:00
|
|
|
if (prefs.hex_gui_join_dialog)
|
2011-02-24 04:14:30 +01:00
|
|
|
joind_show_dialog (serv);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
void
|
|
|
|
|
joind_close (server *serv)
|
|
|
|
|
{
|
|
|
|
|
if (serv->gui->joind_win)
|
|
|
|
|
{
|
|
|
|
|
gtk_widget_destroy (serv->gui->joind_win);
|
|
|
|
|
serv->gui->joind_win = NULL;
|
|
|
|
|
}
|
|
|
|
|
}
|