mirror of
https://github.com/ZoiteChat/zoitechat.git
synced 2026-03-27 15:50:19 +00:00
Compare commits
3 Commits
master
...
topic-spac
| Author | SHA1 | Date | |
|---|---|---|---|
| 23558f1963 | |||
| 40b99450ea | |||
| 6a7f44a1fb |
@@ -792,18 +792,21 @@ fe_set_topic (session *sess, char *topic, char *stripped_topic)
|
||||
{
|
||||
if (!sess->gui->is_tab || sess == current_tab)
|
||||
{
|
||||
GtkTextBuffer *topic_buffer;
|
||||
GtkTextIter start;
|
||||
GtkTextIter end;
|
||||
|
||||
topic_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (sess->gui->topic_entry));
|
||||
if (prefs.hex_text_stripcolor_topic)
|
||||
{
|
||||
gtk_text_buffer_set_text (
|
||||
gtk_text_view_get_buffer (GTK_TEXT_VIEW (sess->gui->topic_entry)),
|
||||
stripped_topic, -1);
|
||||
gtk_text_buffer_set_text (topic_buffer, stripped_topic, -1);
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_text_buffer_set_text (
|
||||
gtk_text_view_get_buffer (GTK_TEXT_VIEW (sess->gui->topic_entry)),
|
||||
topic, -1);
|
||||
gtk_text_buffer_set_text (topic_buffer, topic, -1);
|
||||
}
|
||||
gtk_text_buffer_get_bounds (topic_buffer, &start, &end);
|
||||
gtk_text_buffer_apply_tag_by_name (topic_buffer, "zoitechat-topic-left", &start, &end);
|
||||
mg_set_topic_tip (sess);
|
||||
}
|
||||
else
|
||||
|
||||
@@ -1410,16 +1410,26 @@ mg_populate (session *sess)
|
||||
{
|
||||
GtkTextBuffer *topic_buffer;
|
||||
|
||||
GtkTextIter start;
|
||||
GtkTextIter end;
|
||||
|
||||
topic_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (gui->topic_entry));
|
||||
gtk_text_buffer_set_text (topic_buffer, res->topic_text, -1);
|
||||
gtk_text_buffer_get_bounds (topic_buffer, &start, &end);
|
||||
gtk_text_buffer_apply_tag_by_name (topic_buffer, "zoitechat-topic-left", &start, &end);
|
||||
g_free (res->topic_text);
|
||||
res->topic_text = NULL;
|
||||
} else
|
||||
{
|
||||
GtkTextBuffer *topic_buffer;
|
||||
|
||||
GtkTextIter start;
|
||||
GtkTextIter end;
|
||||
|
||||
topic_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (gui->topic_entry));
|
||||
gtk_text_buffer_set_text (topic_buffer, "", -1);
|
||||
gtk_text_buffer_get_bounds (topic_buffer, &start, &end);
|
||||
gtk_text_buffer_apply_tag_by_name (topic_buffer, "zoitechat-topic-left", &start, &end);
|
||||
}
|
||||
mg_restore_speller (gui->input_box, &res->input_text);
|
||||
mg_restore_entry (gui->key_entry, &res->key_text);
|
||||
@@ -2988,10 +2998,13 @@ mg_create_topicbar (session *sess, GtkWidget *box)
|
||||
sess->res->tab = NULL;
|
||||
|
||||
gui->topic_entry = topic = gtk_text_view_new ();
|
||||
gtk_widget_set_name (topic, "zoitechat-inputbox");
|
||||
gtk_widget_set_name (topic, "zoitechat-topicbox");
|
||||
gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (topic), GTK_WRAP_WORD_CHAR);
|
||||
gtk_text_view_set_justification (GTK_TEXT_VIEW (topic), GTK_JUSTIFY_LEFT);
|
||||
gtk_text_view_set_left_margin (GTK_TEXT_VIEW (topic), 4);
|
||||
gtk_text_view_set_right_margin (GTK_TEXT_VIEW (topic), 4);
|
||||
gtk_text_buffer_create_tag (gtk_text_view_get_buffer (GTK_TEXT_VIEW (topic)), "zoitechat-topic-left",
|
||||
"justification", GTK_JUSTIFY_LEFT, NULL);
|
||||
gtk_box_pack_start (GTK_BOX (hbox), topic, TRUE, TRUE, 0);
|
||||
mg_apply_emoji_fallback_widget (topic);
|
||||
gtk_widget_add_events (topic, GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK |
|
||||
|
||||
@@ -88,14 +88,6 @@ typedef struct
|
||||
int extra;
|
||||
} setting;
|
||||
|
||||
typedef GtkWidget *(*setup_page_factory) (const setting *settings);
|
||||
|
||||
#define SETUP_MAX_PAGES 12
|
||||
static setup_page_factory setup_page_factories[SETUP_MAX_PAGES];
|
||||
static const setting *setup_page_settings[SETUP_MAX_PAGES];
|
||||
static GtkWidget *setup_page_containers[SETUP_MAX_PAGES];
|
||||
static int setup_page_count = 0;
|
||||
|
||||
#ifdef WIN32
|
||||
static const char *const langsmenu[] =
|
||||
{
|
||||
@@ -1781,26 +1773,6 @@ setup_create_sound_page (void)
|
||||
return vbox1;
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
setup_page_from_settings (const setting *settings)
|
||||
{
|
||||
return setup_create_page (settings);
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
setup_page_from_appearance (const setting *settings)
|
||||
{
|
||||
(void)settings;
|
||||
return setup_create_appearance_page ();
|
||||
}
|
||||
|
||||
static GtkWidget *
|
||||
setup_page_from_sound (const setting *settings)
|
||||
{
|
||||
(void)settings;
|
||||
return setup_create_sound_page ();
|
||||
}
|
||||
|
||||
static void
|
||||
setup_add_page (const char *title, GtkWidget *book, GtkWidget *tab)
|
||||
{
|
||||
@@ -1835,45 +1807,6 @@ setup_add_page (const char *title, GtkWidget *book, GtkWidget *tab)
|
||||
gtk_notebook_append_page (GTK_NOTEBOOK (book), GTK_WIDGET(sw), NULL);
|
||||
}
|
||||
|
||||
static void
|
||||
setup_register_page (const char *title, GtkWidget *book, setup_page_factory factory, const setting *settings)
|
||||
{
|
||||
GtkWidget *container;
|
||||
|
||||
if (setup_page_count >= SETUP_MAX_PAGES)
|
||||
return;
|
||||
|
||||
setup_page_factories[setup_page_count] = factory;
|
||||
setup_page_settings[setup_page_count] = settings;
|
||||
container = gtkutil_box_new (GTK_ORIENTATION_VERTICAL, FALSE, 0);
|
||||
setup_page_containers[setup_page_count] = container;
|
||||
setup_add_page (title, book, container);
|
||||
setup_page_count++;
|
||||
}
|
||||
|
||||
static void
|
||||
setup_ensure_page_created (int page)
|
||||
{
|
||||
GList *children;
|
||||
GtkWidget *page_widget;
|
||||
GtkWidget *container;
|
||||
|
||||
if (page < 0 || page >= setup_page_count)
|
||||
return;
|
||||
|
||||
container = setup_page_containers[page];
|
||||
children = gtk_container_get_children (GTK_CONTAINER (container));
|
||||
if (children != NULL)
|
||||
{
|
||||
g_list_free (children);
|
||||
return;
|
||||
}
|
||||
|
||||
page_widget = setup_page_factories[page] (setup_page_settings[page]);
|
||||
gtk_container_add (GTK_CONTAINER (container), page_widget);
|
||||
gtk_widget_show_all (container);
|
||||
}
|
||||
|
||||
static const char *const cata_interface[] =
|
||||
{
|
||||
N_("Appearance"),
|
||||
@@ -1910,42 +1843,37 @@ setup_create_pages (GtkWidget *box)
|
||||
(void)box;
|
||||
book = gtk_notebook_new ();
|
||||
|
||||
memset (setup_page_factories, 0, sizeof (setup_page_factories));
|
||||
memset (setup_page_settings, 0, sizeof (setup_page_settings));
|
||||
memset (setup_page_containers, 0, sizeof (setup_page_containers));
|
||||
setup_page_count = 0;
|
||||
setup_add_page (cata_interface[0], book, setup_create_appearance_page ());
|
||||
setup_add_page (cata_interface[1], book, setup_create_page (inputbox_settings));
|
||||
setup_add_page (cata_interface[2], book, setup_create_page (userlist_settings));
|
||||
setup_add_page (cata_interface[3], book, setup_create_page (tabs_settings));
|
||||
|
||||
setup_register_page (cata_interface[0], book, setup_page_from_appearance, NULL);
|
||||
setup_register_page (cata_interface[1], book, setup_page_from_settings, inputbox_settings);
|
||||
setup_register_page (cata_interface[2], book, setup_page_from_settings, userlist_settings);
|
||||
setup_register_page (cata_interface[3], book, setup_page_from_settings, tabs_settings);
|
||||
|
||||
setup_register_page (cata_chatting[0], book, setup_page_from_settings, general_settings);
|
||||
setup_add_page (cata_chatting[0], book, setup_create_page (general_settings));
|
||||
|
||||
if (!gtkutil_tray_icon_supported (win) && !notification_backend_supported ())
|
||||
{
|
||||
setup_register_page (cata_chatting[1], book, setup_page_from_settings, alert_settings_unityandnonotifications);
|
||||
setup_add_page (cata_chatting[1], book, setup_create_page (alert_settings_unityandnonotifications));
|
||||
}
|
||||
else if (!gtkutil_tray_icon_supported (win))
|
||||
{
|
||||
setup_register_page (cata_chatting[1], book, setup_page_from_settings, alert_settings_unity);
|
||||
setup_add_page (cata_chatting[1], book, setup_create_page (alert_settings_unity));
|
||||
}
|
||||
else if (!notification_backend_supported ())
|
||||
{
|
||||
setup_register_page (cata_chatting[1], book, setup_page_from_settings, alert_settings_nonotifications);
|
||||
setup_add_page (cata_chatting[1], book, setup_create_page (alert_settings_nonotifications));
|
||||
}
|
||||
else
|
||||
{
|
||||
setup_register_page (cata_chatting[1], book, setup_page_from_settings, alert_settings);
|
||||
setup_add_page (cata_chatting[1], book, setup_create_page (alert_settings));
|
||||
}
|
||||
|
||||
setup_register_page (cata_chatting[2], book, setup_page_from_sound, NULL);
|
||||
setup_register_page (cata_chatting[3], book, setup_page_from_settings, logging_settings);
|
||||
setup_register_page (cata_chatting[4], book, setup_page_from_settings, advanced_settings);
|
||||
setup_add_page (cata_chatting[2], book, setup_create_sound_page ());
|
||||
setup_add_page (cata_chatting[3], book, setup_create_page (logging_settings));
|
||||
setup_add_page (cata_chatting[4], book, setup_create_page (advanced_settings));
|
||||
|
||||
setup_register_page (cata_network[0], book, setup_page_from_settings, network_settings);
|
||||
setup_register_page (cata_network[1], book, setup_page_from_settings, filexfer_settings);
|
||||
setup_register_page (cata_network[2], book, setup_page_from_settings, identd_settings);
|
||||
setup_add_page (cata_network[0], book, setup_create_page (network_settings));
|
||||
setup_add_page (cata_network[1], book, setup_create_page (filexfer_settings));
|
||||
setup_add_page (cata_network[2], book, setup_create_page (identd_settings));
|
||||
|
||||
gtk_notebook_set_show_tabs (GTK_NOTEBOOK (book), FALSE);
|
||||
gtk_notebook_set_show_border (GTK_NOTEBOOK (book), FALSE);
|
||||
@@ -1967,7 +1895,6 @@ setup_tree_cb (GtkTreeView *treeview, GtkWidget *book)
|
||||
gtk_tree_model_get (model, &iter, 1, &page, -1);
|
||||
if (page != -1)
|
||||
{
|
||||
setup_ensure_page_created (page);
|
||||
gtk_notebook_set_current_page (GTK_NOTEBOOK (book), page);
|
||||
last_selected_page = page;
|
||||
}
|
||||
@@ -2057,7 +1984,6 @@ setup_create_tree (GtkWidget *box, GtkWidget *book)
|
||||
{
|
||||
gtk_tree_selection_select_iter (sel, sel_iter);
|
||||
gtk_tree_iter_free (sel_iter);
|
||||
setup_tree_cb (GTK_TREE_VIEW (tree), book);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -167,10 +167,14 @@ theme_css_build_input (const char *theme_name, guint16 fg_red, guint16 fg_green,
|
||||
"background-color: #%02x%02x%02x;"
|
||||
"color: #%02x%02x%02x;"
|
||||
"caret-color: #%02x%02x%02x;"
|
||||
"word-spacing: normal;"
|
||||
"letter-spacing: normal;"
|
||||
"}"
|
||||
"%s {"
|
||||
"color: #%02x%02x%02x;"
|
||||
"caret-color: #%02x%02x%02x;"
|
||||
"word-spacing: normal;"
|
||||
"letter-spacing: normal;"
|
||||
"}"
|
||||
"%s selection, %s text selection, %s:focus selection, %s:focus text selection, %s *:selected, %s *:selected:focus {"
|
||||
"background-color: #%02x%02x%02x;"
|
||||
|
||||
Reference in New Issue
Block a user