/* * make the list widget */ static GtkWidget * balsa_information_list_new(void) { GtkTextView *view; view = GTK_TEXT_VIEW(gtk_text_view_new()); gtk_text_view_set_editable(view, FALSE); gtk_text_view_set_left_margin(view, 2); gtk_text_view_set_indent(view, -12); gtk_text_view_set_right_margin(view, 2); gtk_text_view_set_wrap_mode(view, GTK_WRAP_WORD_CHAR); return GTK_WIDGET(view); }
GtkWidget* jjy_create_text(int width, int height) { GtkWidget *scrolled_window; view = gtk_text_view_new (); text_buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view)); scrolled_window = gtk_scrolled_window_new (NULL, NULL); gtk_text_view_set_editable(GTK_TEXT_VIEW(view),FALSE); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(view),GTK_WRAP_CHAR); gtk_text_view_set_indent (GTK_TEXT_VIEW(view), 30); gtk_widget_set_size_request (GTK_WIDGET (scrolled_window), width, height); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add(GTK_CONTAINER(scrolled_window), view); gtk_widget_show_all (scrolled_window); return scrolled_window; }
/** * 创建更多信息对话框. */ GtkWidget *HelpDialog::CreateMoreDialog() { char *labels[] = {_("Help"), _("Contributers"), _("..."), NULL}; char *text[] = { _("Project Home: \nhttp://code.google.com/p/iptux/\n\n" "User and Developer Group: \nhttps://groups.google.com/group/iptux/\n\n" "Note that you can get help form the project wiki page.\n\n" "If you find no solutions in any of the existed documents, " "feel free to drop a email at [email protected], " "lots of users and developers would be glade to help about your problems."), _("It's an honor that iptux was contributed voluntarilly by many people. " "Without your help, iptux could never make it.\n\n" "Especially, Here's some we would like to thank much:\n\n" "ChenGang\n" "<*****@*****.**>\n" "<*****@*****.**>\n" "<*****@*****.**>\n" "<*****@*****.**>\n" "<*****@*****.**>\n" "..."), _("...") }; GtkWidget *dialog; GtkWidget *frame, *sw; GtkWidget *notebook, *label, *view; GtkTextBuffer *buffer; gint page; dialog = gtk_dialog_new_with_buttons(_("More About Iptux"), NULL, GTK_DIALOG_NO_SEPARATOR, GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE, NULL); gtk_window_set_resizable(GTK_WINDOW(dialog), FALSE); gtk_widget_set_size_request(dialog, 500, 350); frame = gtk_frame_new(NULL); gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN); gtk_box_pack_start(GTK_BOX(GTK_DIALOG(dialog)->vbox), frame, TRUE, TRUE, 0); gtk_container_set_border_width(GTK_CONTAINER(frame), 3); notebook = gtk_notebook_new(); gtk_container_add(GTK_CONTAINER(frame), notebook); page = 0; while (labels[page]) { sw = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_ETCHED_IN); label = gtk_label_new(labels[page]); gtk_notebook_append_page(GTK_NOTEBOOK(notebook), sw, label); view = gtk_text_view_new(); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(view), GTK_WRAP_WORD); gtk_container_add(GTK_CONTAINER(sw), view); gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(view), FALSE); gtk_text_view_set_indent(GTK_TEXT_VIEW(view), 20); gtk_text_view_set_pixels_inside_wrap(GTK_TEXT_VIEW(view), 5); gtk_text_view_set_editable (GTK_TEXT_VIEW(view), FALSE); buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view)); gtk_text_buffer_set_text(buffer, text[page], -1); page++; } return dialog; }
static void qq_chatwidget_init(QQChatWidget *widget) { QQChatWidgetPriv *priv = G_TYPE_INSTANCE_GET_PRIVATE(widget , qq_chatwidget_get_type() , QQChatWidgetPriv); GtkWidget *scrolled_win; gchar buf[100]; // message text view priv -> message_textview = qq_chat_textview_new(); scrolled_win= gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled_win), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled_win) , GTK_SHADOW_ETCHED_IN); gtk_container_add(GTK_CONTAINER(scrolled_win), priv -> message_textview); gtk_box_pack_start(GTK_BOX(widget), scrolled_win, TRUE, TRUE, 0); gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(priv -> message_textview) , FALSE); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(priv -> message_textview) , GTK_WRAP_CHAR); gtk_text_view_set_editable(GTK_TEXT_VIEW(priv -> message_textview) , FALSE); // font tools priv -> font_tool_box = gtk_hbox_new(FALSE, 5); g_object_ref(priv -> font_tool_box); priv -> font_cb = gtk_combo_box_text_new(); gint i; for(i = 0; font_names[i] != NULL; ++i){ gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(priv -> font_cb) , font_names[i]); } gtk_box_pack_start(GTK_BOX(priv -> font_tool_box), priv -> font_cb , FALSE, FALSE, 0); priv -> size_cb = gtk_combo_box_text_new(); for(i = 8; i < 23; ++i){ g_snprintf(buf, 10, "%d", i); gtk_combo_box_text_append_text(GTK_COMBO_BOX_TEXT(priv -> size_cb) , buf); } gtk_box_pack_start(GTK_BOX(priv -> font_tool_box), priv -> size_cb , FALSE, FALSE, 0); priv -> bold_btn = qq_toggle_button_new_with_stock(GTK_STOCK_BOLD); priv -> italic_btn = qq_toggle_button_new_with_stock(GTK_STOCK_ITALIC); priv -> underline_btn = qq_toggle_button_new_with_stock( GTK_STOCK_UNDERLINE); gtk_box_pack_start(GTK_BOX(priv -> font_tool_box), priv -> bold_btn , FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(priv -> font_tool_box), priv -> italic_btn , FALSE, FALSE, 0); gtk_box_pack_start(GTK_BOX(priv -> font_tool_box), priv -> underline_btn , FALSE, FALSE, 0); priv -> color_btn = gtk_color_button_new(); gtk_box_pack_start(GTK_BOX(priv -> font_tool_box), priv -> color_btn , FALSE, FALSE, 0); gtk_widget_show_all(priv -> font_tool_box); g_signal_connect(G_OBJECT(priv -> font_cb), "changed" , G_CALLBACK(qq_chat_widget_font_changed), widget); g_signal_connect(G_OBJECT(priv -> size_cb), "changed" , G_CALLBACK(qq_chat_widget_font_changed), widget); g_signal_connect(G_OBJECT(priv -> bold_btn), "toggled" , G_CALLBACK(qq_chat_widget_font_changed), widget); g_signal_connect(G_OBJECT(priv -> italic_btn), "toggled" , G_CALLBACK(qq_chat_widget_font_changed), widget); g_signal_connect(G_OBJECT(priv -> underline_btn), "toggled" , G_CALLBACK(qq_chat_widget_font_changed), widget); g_signal_connect(G_OBJECT(priv -> color_btn), "color-set" , G_CALLBACK(qq_chat_widget_font_changed), widget); // tool bar priv -> tool_bar = gtk_toolbar_new(); GtkWidget *img = NULL; img = gtk_image_new_from_file(IMGDIR"/selectfont.png"); priv -> font_item = gtk_toggle_tool_button_new(); g_signal_connect(G_OBJECT(priv -> font_item), "toggled" , G_CALLBACK(qq_chat_view_font_button_clicked) , widget); gtk_tool_button_set_icon_widget(GTK_TOOL_BUTTON(priv -> font_item), img); gtk_toolbar_insert(GTK_TOOLBAR(priv -> tool_bar), priv -> font_item, -1); img = gtk_image_new_from_file(IMGDIR"/selectface.png"); priv -> face_item = gtk_tool_button_new(img, NULL); gtk_toolbar_insert(GTK_TOOLBAR(priv -> tool_bar), priv -> face_item, -1); gtk_toolbar_insert(GTK_TOOLBAR(priv -> tool_bar) , gtk_separator_tool_item_new() , -1); g_signal_connect(G_OBJECT(priv -> face_item), "clicked", G_CALLBACK(face_tool_button_clicked), widget); img = gtk_image_new_from_file(IMGDIR"/sendfile.png"); priv -> sendfile_item = gtk_tool_button_new(img, NULL); gtk_toolbar_insert(GTK_TOOLBAR(priv -> tool_bar), priv -> sendfile_item, -1); img = gtk_image_new_from_file(IMGDIR"/sendpic.png"); priv -> sendpic_item = gtk_tool_button_new(img, NULL); gtk_toolbar_insert(GTK_TOOLBAR(priv -> tool_bar), priv -> sendpic_item, -1); gtk_toolbar_insert(GTK_TOOLBAR(priv -> tool_bar) , gtk_separator_tool_item_new() , -1); img = gtk_image_new_from_file(IMGDIR"/clearscreen.png"); priv -> clear_item = gtk_tool_button_new(img, NULL); gtk_toolbar_insert(GTK_TOOLBAR(priv -> tool_bar), priv -> clear_item, -1); gtk_toolbar_insert(GTK_TOOLBAR(priv -> tool_bar) , gtk_separator_tool_item_new() , -1); g_signal_connect(G_OBJECT(priv -> clear_item), "clicked", G_CALLBACK(clear_button_clicked), widget); img = gtk_image_new_from_file(IMGDIR"/showhistory.png"); priv -> history_item = gtk_tool_button_new(img, NULL); gtk_toolbar_insert(GTK_TOOLBAR(priv -> tool_bar), priv -> history_item, -1); gtk_box_pack_start(GTK_BOX(widget), priv -> tool_bar , FALSE, FALSE, 0); // input text view priv -> input_textview = qq_chat_textview_new(); gtk_text_view_set_indent(GTK_TEXT_VIEW(priv -> input_textview), 1); scrolled_win= gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW(scrolled_win), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(scrolled_win) , GTK_SHADOW_ETCHED_IN); gtk_container_add(GTK_CONTAINER(scrolled_win), priv -> input_textview); #ifndef USE_UNITY gtk_box_pack_start(GTK_BOX(widget), scrolled_win, FALSE, FALSE, 0); #else /* On ubuntu unity, there is a f**k bug if we pack the textview with the argument FALSE, FALSE, it cant be shown, how f**k it is. */ gtk_box_pack_start(GTK_BOX(widget), scrolled_win, TRUE, TRUE, 0); #endif /* USE_UNITY */ gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(priv -> input_textview) , GTK_WRAP_CHAR); gtk_combo_box_set_active(GTK_COMBO_BOX(priv -> font_cb), 1); gtk_combo_box_set_active(GTK_COMBO_BOX(priv -> size_cb), 3); gtk_widget_grab_focus(priv -> input_textview); priv -> facepopupwindow = qq_face_popup_window_new(); g_signal_connect(G_OBJECT(priv -> facepopupwindow), "face-clicked" , G_CALLBACK(qq_chatwidget_face_clicked) , priv); }