Topic bar improvements
- Don't show on server tab - Don't show unavailable modes - Remove less used modes and add more common ones - Use proper case for buttons
This commit is contained in:
parent
a831ecfd01
commit
7ba2f1f17f
|
@ -665,11 +665,11 @@ process_numeric (session * sess, int n,
|
||||||
else
|
else
|
||||||
EMIT_SIGNAL_TIMESTAMP (XP_TE_CHANMODES, sess, word[4], word_eol[5],
|
EMIT_SIGNAL_TIMESTAMP (XP_TE_CHANMODES, sess, word[4], word_eol[5],
|
||||||
NULL, NULL, 0, tags_data->timestamp);
|
NULL, NULL, 0, tags_data->timestamp);
|
||||||
|
fe_update_mode_buttons (sess, 'c', '-');
|
||||||
|
fe_update_mode_buttons (sess, 'r', '-');
|
||||||
fe_update_mode_buttons (sess, 't', '-');
|
fe_update_mode_buttons (sess, 't', '-');
|
||||||
fe_update_mode_buttons (sess, 'n', '-');
|
fe_update_mode_buttons (sess, 'n', '-');
|
||||||
fe_update_mode_buttons (sess, 's', '-');
|
|
||||||
fe_update_mode_buttons (sess, 'i', '-');
|
fe_update_mode_buttons (sess, 'i', '-');
|
||||||
fe_update_mode_buttons (sess, 'p', '-');
|
|
||||||
fe_update_mode_buttons (sess, 'm', '-');
|
fe_update_mode_buttons (sess, 'm', '-');
|
||||||
fe_update_mode_buttons (sess, 'l', '-');
|
fe_update_mode_buttons (sess, 'l', '-');
|
||||||
fe_update_mode_buttons (sess, 'k', '-');
|
fe_update_mode_buttons (sess, 'k', '-');
|
||||||
|
|
|
@ -54,11 +54,11 @@
|
||||||
#undef gtk_signal_connect
|
#undef gtk_signal_connect
|
||||||
#define gtk_signal_connect g_signal_connect
|
#define gtk_signal_connect g_signal_connect
|
||||||
|
|
||||||
#define flag_t flag_wid[0]
|
#define flag_c flag_wid[0]
|
||||||
#define flag_n flag_wid[1]
|
#define flag_n flag_wid[1]
|
||||||
#define flag_s flag_wid[2]
|
#define flag_r flag_wid[2]
|
||||||
#define flag_i flag_wid[3]
|
#define flag_t flag_wid[3]
|
||||||
#define flag_p flag_wid[4]
|
#define flag_i flag_wid[4]
|
||||||
#define flag_m flag_wid[5]
|
#define flag_m flag_wid[5]
|
||||||
#define flag_l flag_wid[6]
|
#define flag_l flag_wid[6]
|
||||||
#define flag_k flag_wid[7]
|
#define flag_k flag_wid[7]
|
||||||
|
|
|
@ -86,7 +86,7 @@ static void mg_link_irctab (session *sess, int focus);
|
||||||
static session_gui static_mg_gui;
|
static session_gui static_mg_gui;
|
||||||
static session_gui *mg_gui = NULL; /* the shared irc tab */
|
static session_gui *mg_gui = NULL; /* the shared irc tab */
|
||||||
static int ignore_chanmode = FALSE;
|
static int ignore_chanmode = FALSE;
|
||||||
static const char chan_flags[] = { 't', 'n', 's', 'i', 'p', 'm', 'l', 'k' };
|
static const char chan_flags[] = { 'c', 'n', 'r', 't', 'i', 'm', 'l', 'k' };
|
||||||
|
|
||||||
static chan *active_tab = NULL; /* active tab */
|
static chan *active_tab = NULL; /* active tab */
|
||||||
GtkWidget *parent_window = NULL; /* the master window */
|
GtkWidget *parent_window = NULL; /* the master window */
|
||||||
|
@ -898,6 +898,9 @@ mg_populate (session *sess)
|
||||||
mg_decide_userlist (sess, FALSE);
|
mg_decide_userlist (sess, FALSE);
|
||||||
/* shouldn't edit the topic */
|
/* shouldn't edit the topic */
|
||||||
gtk_editable_set_editable (GTK_EDITABLE (gui->topic_entry), FALSE);
|
gtk_editable_set_editable (GTK_EDITABLE (gui->topic_entry), FALSE);
|
||||||
|
/* might be hidden from server tab */
|
||||||
|
if (prefs.hex_gui_topicbar)
|
||||||
|
gtk_widget_show (gui->topic_bar);
|
||||||
break;
|
break;
|
||||||
case SESS_SERVER:
|
case SESS_SERVER:
|
||||||
if (prefs.hex_gui_mode_buttons)
|
if (prefs.hex_gui_mode_buttons)
|
||||||
|
@ -906,8 +909,8 @@ mg_populate (session *sess)
|
||||||
gtk_widget_hide (gui->dialogbutton_box);
|
gtk_widget_hide (gui->dialogbutton_box);
|
||||||
/* hide the userlist */
|
/* hide the userlist */
|
||||||
mg_decide_userlist (sess, FALSE);
|
mg_decide_userlist (sess, FALSE);
|
||||||
/* shouldn't edit the topic */
|
/* servers don't have topics */
|
||||||
gtk_editable_set_editable (GTK_EDITABLE (gui->topic_entry), FALSE);
|
gtk_widget_hide (gui->topic_bar);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
/* hide the dialog buttons */
|
/* hide the dialog buttons */
|
||||||
|
@ -918,6 +921,8 @@ mg_populate (session *sess)
|
||||||
mg_decide_userlist (sess, FALSE);
|
mg_decide_userlist (sess, FALSE);
|
||||||
/* let the topic be editted */
|
/* let the topic be editted */
|
||||||
gtk_editable_set_editable (GTK_EDITABLE (gui->topic_entry), TRUE);
|
gtk_editable_set_editable (GTK_EDITABLE (gui->topic_entry), TRUE);
|
||||||
|
if (prefs.hex_gui_topicbar)
|
||||||
|
gtk_widget_show (gui->topic_bar);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* move to THE irc tab */
|
/* move to THE irc tab */
|
||||||
|
@ -2091,15 +2096,15 @@ mg_apply_entry_style (GtkWidget *entry)
|
||||||
static void
|
static void
|
||||||
mg_create_chanmodebuttons (session_gui *gui, GtkWidget *box)
|
mg_create_chanmodebuttons (session_gui *gui, GtkWidget *box)
|
||||||
{
|
{
|
||||||
gui->flag_t = mg_create_flagbutton (_("Topic Protection"), box, "T");
|
gui->flag_c = mg_create_flagbutton (_("Filter Colors"), box, "c");
|
||||||
gui->flag_n = mg_create_flagbutton (_("No outside messages"), box, "N");
|
gui->flag_n = mg_create_flagbutton (_("No outside messages"), box, "n");
|
||||||
gui->flag_s = mg_create_flagbutton (_("Secret"), box, "S");
|
gui->flag_r = mg_create_flagbutton (_("Registered Only"), box, "r");
|
||||||
gui->flag_i = mg_create_flagbutton (_("Invite Only"), box, "I");
|
gui->flag_t = mg_create_flagbutton (_("Topic Protection"), box, "t");
|
||||||
gui->flag_p = mg_create_flagbutton (_("Private"), box, "P");
|
gui->flag_i = mg_create_flagbutton (_("Invite Only"), box, "i");
|
||||||
gui->flag_m = mg_create_flagbutton (_("Moderated"), box, "M");
|
gui->flag_m = mg_create_flagbutton (_("Moderated"), box, "m");
|
||||||
gui->flag_b = mg_create_flagbutton (_("Ban List"), box, "B");
|
gui->flag_b = mg_create_flagbutton (_("Ban List"), box, "b");
|
||||||
|
|
||||||
gui->flag_k = mg_create_flagbutton (_("Keyword"), box, "K");
|
gui->flag_k = mg_create_flagbutton (_("Keyword"), box, "k");
|
||||||
gui->key_entry = gtk_entry_new ();
|
gui->key_entry = gtk_entry_new ();
|
||||||
gtk_widget_set_name (gui->key_entry, "hexchat-inputbox");
|
gtk_widget_set_name (gui->key_entry, "hexchat-inputbox");
|
||||||
gtk_entry_set_max_length (GTK_ENTRY (gui->key_entry), 23);
|
gtk_entry_set_max_length (GTK_ENTRY (gui->key_entry), 23);
|
||||||
|
@ -2111,7 +2116,7 @@ mg_create_chanmodebuttons (session_gui *gui, GtkWidget *box)
|
||||||
if (prefs.hex_gui_input_style)
|
if (prefs.hex_gui_input_style)
|
||||||
mg_apply_entry_style (gui->key_entry);
|
mg_apply_entry_style (gui->key_entry);
|
||||||
|
|
||||||
gui->flag_l = mg_create_flagbutton (_("User Limit"), box, "L");
|
gui->flag_l = mg_create_flagbutton (_("User Limit"), box, "l");
|
||||||
gui->limit_entry = gtk_entry_new ();
|
gui->limit_entry = gtk_entry_new ();
|
||||||
gtk_widget_set_name (gui->limit_entry, "hexchat-inputbox");
|
gtk_widget_set_name (gui->limit_entry, "hexchat-inputbox");
|
||||||
gtk_entry_set_max_length (GTK_ENTRY (gui->limit_entry), 10);
|
gtk_entry_set_max_length (GTK_ENTRY (gui->limit_entry), 10);
|
||||||
|
@ -3223,7 +3228,7 @@ mg_create_topwindow (session *sess)
|
||||||
if (prefs.hex_gui_hide_menu)
|
if (prefs.hex_gui_hide_menu)
|
||||||
gtk_widget_hide (sess->gui->menu);
|
gtk_widget_hide (sess->gui->menu);
|
||||||
|
|
||||||
if (!prefs.hex_gui_topicbar)
|
/* Will be shown when needed */
|
||||||
gtk_widget_hide (sess->gui->topic_bar);
|
gtk_widget_hide (sess->gui->topic_bar);
|
||||||
|
|
||||||
if (!prefs.hex_gui_ulist_buttons)
|
if (!prefs.hex_gui_ulist_buttons)
|
||||||
|
@ -3328,7 +3333,7 @@ mg_create_tabwindow (session *sess)
|
||||||
|
|
||||||
mg_decide_userlist (sess, FALSE);
|
mg_decide_userlist (sess, FALSE);
|
||||||
|
|
||||||
if (!prefs.hex_gui_topicbar)
|
/* Will be shown when needed */
|
||||||
gtk_widget_hide (sess->gui->topic_bar);
|
gtk_widget_hide (sess->gui->topic_bar);
|
||||||
|
|
||||||
if (!prefs.hex_gui_mode_buttons)
|
if (!prefs.hex_gui_mode_buttons)
|
||||||
|
@ -3489,11 +3494,20 @@ fe_update_mode_buttons (session *sess, char mode, char sign)
|
||||||
{
|
{
|
||||||
if (!sess->gui->is_tab || sess == current_tab)
|
if (!sess->gui->is_tab || sess == current_tab)
|
||||||
{
|
{
|
||||||
|
/* Mode not supported */
|
||||||
|
if (sess->server && strchr (sess->server->chanmodes, mode) == NULL)
|
||||||
|
{
|
||||||
|
gtk_widget_hide (sess->gui->flag_wid[i]);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
gtk_widget_show (sess->gui->flag_wid[i]);
|
||||||
ignore_chanmode = TRUE;
|
ignore_chanmode = TRUE;
|
||||||
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (sess->gui->flag_wid[i])) != state)
|
if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (sess->gui->flag_wid[i])) != state)
|
||||||
gtk_toggle_button_set_active (
|
gtk_toggle_button_set_active (
|
||||||
GTK_TOGGLE_BUTTON (sess->gui->flag_wid[i]), state);
|
GTK_TOGGLE_BUTTON (sess->gui->flag_wid[i]), state);
|
||||||
ignore_chanmode = FALSE;
|
ignore_chanmode = FALSE;
|
||||||
|
}
|
||||||
} else
|
} else
|
||||||
{
|
{
|
||||||
sess->res->flag_wid_state[i] = state;
|
sess->res->flag_wid_state[i] = state;
|
||||||
|
|
Loading…
Reference in New Issue