/////********************************************************************** ///// 函数名称 : GtkWidget *build_scrolled_win() ///// ///// 函数功能 : 创 建 scrolled滚动窗口及文本框 ///// ///// 返 回 值 : Send_scrolled_win /////********************************************************************** GtkWidget *build_scrolled_win() { //GtkWidget *text; GtkWidget *scrolled; Send_scrolled_win = gtk_scrolled_window_new(NULL,NULL); Send_textview = gtk_text_view_new(); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(Send_textview),GTK_WRAP_WORD); gtk_text_view_set_justification(GTK_TEXT_VIEW(Send_textview),GTK_JUSTIFY_LEFT); gtk_text_view_set_editable(GTK_TEXT_VIEW(Send_textview),TRUE); gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(Send_textview),TRUE); gtk_text_view_set_pixels_above_lines(GTK_TEXT_VIEW(Send_textview),5); gtk_text_view_set_pixels_below_lines(GTK_TEXT_VIEW(Send_textview),5); gtk_text_view_set_pixels_inside_wrap(GTK_TEXT_VIEW(Send_textview),5); gtk_text_view_set_left_margin(GTK_TEXT_VIEW(Send_textview),10); gtk_text_view_set_right_margin(GTK_TEXT_VIEW(Send_textview),10); Send_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(Send_textview)); //////////**********************************************************************************************字体、颜色 的消息循环 g_signal_connect(G_OBJECT(font), "clicked", G_CALLBACK(select_font),(gpointer)Send_textview); g_signal_connect(G_OBJECT(font_color), "clicked", G_CALLBACK(select_color),(gpointer)Send_textview);//将color对象与clicked相关联,回调函数为select_font gtk_container_add(GTK_CONTAINER(Send_scrolled_win),Send_textview); return Send_scrolled_win; }
void expand_lines() { LOG(LOG_DEBUG, "IN : expand_lines()"); line_space ++; gtk_text_view_set_pixels_above_lines(GTK_TEXT_VIEW(main_view), line_space); gtk_text_view_set_pixels_inside_wrap(GTK_TEXT_VIEW(main_view), line_space); if(current_result != NULL){ show_result(current_result, FALSE, TRUE); } save_preference(); LOG(LOG_DEBUG, "OUT : expand_lines()"); }
/** * 创建更多信息对话框. */ 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; }
gint chat(void) { GtkWidget *window_chat; GtkWidget *vpaned; GtkWidget *Send_scrolled_win, *Rcv_scrolled_win; GtkWidget *sendbutton, *closebutton, *recordsbutton, *docbutton; GtkWidget *table_chat; //Send=(struct chat *)malloc(sizeof (struct chat)); //Recv=(struct chat *)malloc(sizeof (struct chat)); Send->choose = 'e'; Recv->choose = 'e'; records->choose = 'i'; //gaibian //char* ip ="10.3.2.133"; //strcpy(Send->ip, ip); Send->send_id = myid; //Send->target_id = 5; strcpy(Send->nickname, mynickname); printf("%s\n",Send->nickname); //printf("%s\n",Send->ip); window_chat = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_window_set_title (GTK_WINDOW (window_chat), "Paned Windows"); g_signal_connect (G_OBJECT (window_chat), "destroy", G_CALLBACK (close_current_window), window_chat); gtk_container_set_border_width (GTK_CONTAINER (window_chat), 5); gtk_widget_set_size_request (GTK_WIDGET (window_chat), 550, 450); gtk_window_set_position(GTK_WINDOW(window_chat),GTK_WIN_POS_CENTER); /* 上添加垂直分栏窗口构件 */ vpaned = gtk_vpaned_new (); gtk_container_add (GTK_CONTAINER (window_chat), vpaned); gtk_widget_show (vpaned); gtk_paned_set_position(GTK_PANED(vpaned), 260); //设置滚轮 Send_scrolled_win = gtk_scrolled_window_new(NULL,NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(Send_scrolled_win), GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC); //gtk_scrolled_window_set_placement (GTK_SCROLLED_WINDOW(Send_scrolled_win), GTK_CORNER_BOTTOM_LEFT); Rcv_scrolled_win = gtk_scrolled_window_new(NULL,NULL); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(Rcv_scrolled_win), GTK_POLICY_AUTOMATIC,GTK_POLICY_AUTOMATIC); //gtk_scrolled_window_set_placement (GTK_SCROLLED_WINDOW(Rcv_scrolled_win), GTK_CORNER_BOTTOM_LEFT); //设置显示消息栏 Rcv_textview = gtk_text_view_new(); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(Rcv_textview),GTK_WRAP_WORD); gtk_text_view_set_justification(GTK_TEXT_VIEW(Rcv_textview),GTK_JUSTIFY_LEFT); gtk_text_view_set_editable(GTK_TEXT_VIEW(Rcv_textview),TRUE); gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(Rcv_textview),TRUE); gtk_text_view_set_pixels_above_lines(GTK_TEXT_VIEW(Rcv_textview),5); gtk_text_view_set_pixels_below_lines(GTK_TEXT_VIEW(Rcv_textview),5); gtk_text_view_set_pixels_inside_wrap(GTK_TEXT_VIEW(Rcv_textview),5); gtk_text_view_set_left_margin(GTK_TEXT_VIEW(Rcv_textview),10); gtk_text_view_set_right_margin(GTK_TEXT_VIEW(Rcv_textview),10); Rcv_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(Rcv_textview)); gtk_paned_pack1 (GTK_PANED (vpaned), Rcv_scrolled_win, FALSE, TRUE); gtk_container_add(GTK_CONTAINER(Rcv_scrolled_win),Rcv_textview); gtk_widget_show (Rcv_textview); //在分栏的下栏中添加表 table_chat = gtk_table_new (20, 20, TRUE); gtk_paned_pack2 (GTK_PANED (vpaned), table_chat, FALSE, TRUE); gtk_widget_show (table_chat); //设置输入栏 Send_textview = gtk_text_view_new(); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(Send_textview),GTK_WRAP_WORD); gtk_text_view_set_justification(GTK_TEXT_VIEW(Send_textview),GTK_JUSTIFY_LEFT); gtk_text_view_set_editable(GTK_TEXT_VIEW(Send_textview),TRUE); gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(Send_textview),TRUE); gtk_text_view_set_pixels_above_lines(GTK_TEXT_VIEW(Send_textview),5); gtk_text_view_set_pixels_below_lines(GTK_TEXT_VIEW(Send_textview),5); gtk_text_view_set_pixels_inside_wrap(GTK_TEXT_VIEW(Send_textview),5); gtk_text_view_set_left_margin(GTK_TEXT_VIEW(Send_textview),10); gtk_text_view_set_right_margin(GTK_TEXT_VIEW(Send_textview),10); Send_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(Send_textview)); gtk_table_attach_defaults (GTK_TABLE (table_chat), Send_scrolled_win, 0, 20, 3, 16); gtk_container_add(GTK_CONTAINER(Send_scrolled_win),Send_textview); gtk_widget_show (Send_textview); gtk_widget_grab_focus (Send_textview); //聊天记录 recordsbutton = gtk_button_new_with_label("聊天记录"); g_signal_connect (G_OBJECT (recordsbutton), "clicked", G_CALLBACK (show_records), NULL); gtk_table_attach_defaults (GTK_TABLE (table_chat), recordsbutton, 16, 20, 0, 3); gtk_widget_show (recordsbutton); docbutton = gtk_button_new_with_label("文件"); g_signal_connect (G_OBJECT (docbutton), "clicked", G_CALLBACK (send_data), NULL); gtk_table_attach_defaults (GTK_TABLE (table_chat), docbutton, 13, 15, 0, 3); gtk_widget_show (docbutton); //设置关闭发送按钮 closebutton = gtk_button_new_with_label("关闭"); g_signal_connect (G_OBJECT (closebutton), "clicked", G_CALLBACK (close_current_window), window_chat); gtk_table_attach_defaults (GTK_TABLE (table_chat), closebutton, 12, 16, 16, 20); gtk_widget_show (closebutton); sendbutton = gtk_button_new_with_label("发送"); g_signal_connect (G_OBJECT (sendbutton), "clicked", G_CALLBACK (send_msg), Send_textview); gtk_table_attach_defaults (GTK_TABLE (table_chat), sendbutton, 16, 20, 16, 20); gtk_widget_show (sendbutton); gtk_widget_show_all(window_chat); return 0; }
GtkWidget *create_main_view() { gint nmenu_items; gint i; LOG(LOG_DEBUG, "IN : create_main_view()"); dict_scroll = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (dict_scroll), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); create_text_buffer(); main_view = gtk_text_view_new_with_buffer(text_buffer); // You must continue to grab event. // Otherwise, event stops when the cursor is at the area with no character. g_signal_connect(G_OBJECT(main_view),"motion_notify_event", G_CALLBACK(motion_notify_event), (gpointer)NULL); g_signal_connect(G_OBJECT(main_view),"button_press_event", G_CALLBACK(button_press_event), (gpointer)NULL); g_signal_connect(G_OBJECT(main_view),"leave_notify_event", G_CALLBACK(leave_notify_event), (gpointer)NULL); gtk_text_view_set_editable(GTK_TEXT_VIEW(main_view), FALSE); gtk_text_view_set_left_margin(GTK_TEXT_VIEW(main_view), 10); gtk_text_view_set_right_margin(GTK_TEXT_VIEW(main_view), 10); gtk_text_view_set_pixels_inside_wrap(GTK_TEXT_VIEW(main_view), line_space); gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(main_view), FALSE); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(main_view), GTK_WRAP_WORD); gtk_text_view_set_border_window_size(GTK_TEXT_VIEW(main_view), GTK_TEXT_WINDOW_LEFT, 1); gtk_text_view_set_border_window_size(GTK_TEXT_VIEW(main_view), GTK_TEXT_WINDOW_RIGHT, 1); gtk_text_view_set_border_window_size(GTK_TEXT_VIEW(main_view), GTK_TEXT_WINDOW_TOP, 1); gtk_text_view_set_border_window_size(GTK_TEXT_VIEW(main_view), GTK_TEXT_WINDOW_BOTTOM, 1); if(line_space < 1) line_space = 3; gtk_text_view_set_pixels_above_lines(GTK_TEXT_VIEW(main_view), line_space); gtk_container_add (GTK_CONTAINER (dict_scroll), main_view); nmenu_items = sizeof (text_menu_items) / sizeof (text_menu_items[0]); for(i=0 ; i<nmenu_items ; i++){ text_menu_items[i].path = _(text_menu_items[i].path); } text_item_factory = gtk_item_factory_new (GTK_TYPE_MENU, "<text>", NULL); gtk_item_factory_create_items (text_item_factory, nmenu_items, text_menu_items, NULL); LOG(LOG_DEBUG, "OUT : create_main_view()"); return(dict_scroll); }
GtkWidget * fill_stream_info(proto_type type, unsigned int pid, unsigned int seq_id) { GtkWidget *vbox; GtkWidget *hbox; GtkWidget *sw; GtkWidget *treeview; GtkWidget *next_button, *apply_button, *quit_button; GtkTreeModel *stream_model; GtkWidget *frame; GtkWidget *text_view; frame = gtk_frame_new(NULL); gtk_frame_set_label_align(GTK_FRAME(frame), 0.5, 0.5); gtk_widget_set_size_request(frame, 300, 200); vbox = gtk_vbox_new(FALSE, 5); gtk_container_add(GTK_CONTAINER(frame), vbox); gtk_box_pack_start(GTK_BOX(vbox), gtk_label_new("Edit Protocol fields"), FALSE, FALSE, 0); sw = gtk_scrolled_window_new(NULL, NULL); gtk_scrolled_window_set_shadow_type(GTK_SCROLLED_WINDOW(sw), GTK_SHADOW_ETCHED_IN); gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0); /* create models */ stream_model = create_stream_model(type, pid, seq_id); /* create tree view */ treeview = gtk_tree_view_new_with_model(stream_model); gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(treeview), TRUE); gtk_tree_selection_set_mode(gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)), GTK_SELECTION_SINGLE); add_proto_values_column(GTK_TREE_VIEW(treeview), stream_model); /* Create a multiline text widget. */ text_view = gtk_text_view_new(); gtk_text_view_set_left_margin(GTK_TEXT_VIEW(text_view), 20); gtk_text_view_set_right_margin(GTK_TEXT_VIEW(text_view), 20); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW( text_view), GTK_WRAP_WORD_CHAR); gtk_text_view_set_pixels_inside_wrap(GTK_TEXT_VIEW(text_view), 0); gtk_widget_set_tooltip_text(GTK_WIDGET(text_view), "[L4 HEADER + PAYLOAD]\nInput only hex values(0123456789ABCDEF)"); /* Obtaining the buffer associated with the widget. */ l4_pl_buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(text_view)); /* Set the default buffer text. */ if (type == TYPE_UDP) { udp_reference = g_object_ref(treeview); udp_treeview = treeview; udp_sw = sw; usr_def_reference = g_object_ref(text_view); l4_text_view = text_view; l4_buffer = l4_pl_buffer; } g_object_unref(stream_model); gtk_container_add(GTK_CONTAINER(sw), treeview); /* some buttons */ hbox = gtk_hbox_new(TRUE, 4); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0); next_button = gtk_button_new_with_label("Next"); g_signal_connect(next_button, "clicked", G_CALLBACK(switch_stream_editor_page), notebook); gtk_box_pack_start(GTK_BOX(hbox), next_button, TRUE, TRUE, 0); apply_button = gtk_button_new_with_label("Apply"); g_signal_connect(apply_button, "clicked", G_CALLBACK(apply_stream_callback), NULL); gtk_box_pack_start(GTK_BOX(hbox), apply_button, TRUE, TRUE, 0); quit_button = gtk_button_new_with_label("Close"); g_signal_connect(quit_button, "clicked", G_CALLBACK(close_window_callback), G_OBJECT(stream_window)); gtk_box_pack_start(GTK_BOX(hbox), quit_button, TRUE, TRUE, 0); /* put everything into a scrolled window */ return GTK_WIDGET(frame); }
static void create_popup_window(){ GdkModifierType mask; gint pos_x, pos_y; gint pointer_x, pointer_y; gint root_x, root_y; GdkWindow *root_win = NULL; gint window_width, window_height; GtkWidget *vbox; GtkWidget *hbox; GtkWidget *eventbox; GtkWidget *image; GtkWidget *frame; GtkWidget *separator; #ifdef __WIN32__ HWND hWnd; long nStyle; #endif LOG(LOG_DEBUG, "IN : create_popup_window()"); #ifdef __WIN32__ root_x = GetSystemMetrics(SM_CXSCREEN); root_y = GetSystemMetrics(SM_CYSCREEN); #else root_win = gdk_window_foreign_new (GDK_ROOT_WINDOW ()); gdk_window_get_size(root_win, &root_x, &root_y); #endif // If there already is an window, use that position. // Move if the window is out of the screen. // gdk_window_get_position(popup->window, &pos_x, &pos_y); // gtk_widget_destroy(popup); // redraw = TRUE; window_width = popup_width; window_height = popup_height; // If there is no window, determine from the mouse position. gdk_window_get_pointer(root_win, &pointer_x, &pointer_y, &mask); pos_x = pointer_x + align_x; pos_y = pointer_y + align_y; if(pos_x + window_width > root_x){ pos_x = root_x - window_width; } if(bshow_popup_title) { if(pos_y + window_height + title_height > root_y){ pos_y = root_y - window_height - title_height; } } else { if(pos_y + window_height > root_y){ pos_y = root_y - window_height; } } popup = gtk_widget_new (GTK_TYPE_WINDOW, "type", GTK_WINDOW_TOPLEVEL, "allow-shrink", TRUE, "allow-grow", TRUE, "default-width", window_width, "default-height", window_height, NULL); gtk_window_move(GTK_WINDOW(popup), pos_x, pos_y); gtk_window_set_wmclass(GTK_WINDOW(popup), "Popup", "EBView"); g_signal_connect(G_OBJECT(popup), "delete_event", G_CALLBACK(close_popup), NULL); vbox = gtk_vbox_new(FALSE, 0); gtk_container_add (GTK_CONTAINER (popup), vbox); if(bshow_popup_title){ frame = gtk_frame_new(NULL); gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN); gtk_box_pack_start(GTK_BOX(vbox), frame, FALSE, FALSE, 0); hbox = gtk_hbox_new(FALSE, 0); gtk_container_add( GTK_CONTAINER(frame), hbox); eventbox = gtk_event_box_new(); gtk_box_pack_start(GTK_BOX(hbox), eventbox, FALSE, FALSE, 2); g_signal_connect(G_OBJECT(eventbox),"button_press_event", G_CALLBACK(title_click_event), (gpointer)"p"); image_pushpin = create_image(IMAGE_PUSH_OFF); gtk_container_add( GTK_CONTAINER(eventbox), image_pushpin); separator = gtk_vseparator_new(); gtk_box_pack_start(GTK_BOX(hbox), separator, FALSE, FALSE, 0); eventbox = gtk_event_box_new(); gtk_box_pack_start(GTK_BOX(hbox), eventbox, FALSE, FALSE, 2); g_signal_connect(G_OBJECT(eventbox),"button_press_event", G_CALLBACK(title_click_event), (gpointer)"<"); image = create_image(IMAGE_SMALL_LEFT); gtk_container_add( GTK_CONTAINER(eventbox), image); separator = gtk_vseparator_new(); gtk_box_pack_start(GTK_BOX(hbox), separator, FALSE, FALSE, 0); eventbox = gtk_event_box_new(); gtk_box_pack_start(GTK_BOX(hbox), eventbox, TRUE, TRUE, 2); g_signal_connect(G_OBJECT(eventbox),"button_press_event", G_CALLBACK(title_click_event), (gpointer)"t"); g_signal_connect(G_OBJECT(eventbox),"button_release_event", G_CALLBACK(title_release_event), (gpointer)NULL); g_signal_connect(G_OBJECT(eventbox),"motion_notify_event", G_CALLBACK(title_motion_event), (gpointer)NULL); title_label = gtk_label_new("x of x"); gtk_container_add( GTK_CONTAINER(eventbox), title_label); separator = gtk_vseparator_new(); gtk_box_pack_start(GTK_BOX(hbox), separator, FALSE, FALSE, 0); eventbox = gtk_event_box_new(); gtk_box_pack_end(GTK_BOX(hbox), eventbox, FALSE, FALSE, 2); g_signal_connect(G_OBJECT(eventbox),"button_press_event", G_CALLBACK(title_click_event), (gpointer)"X"); image = create_image(IMAGE_SMALL_CLOSE); gtk_container_add( GTK_CONTAINER(eventbox), image); separator = gtk_vseparator_new(); gtk_box_pack_end(GTK_BOX(hbox), separator, FALSE, FALSE, 0); eventbox = gtk_event_box_new(); gtk_box_pack_end(GTK_BOX(hbox), eventbox, FALSE, FALSE, 2); g_signal_connect(G_OBJECT(eventbox),"button_press_event", G_CALLBACK(title_click_event), (gpointer)">"); image = create_image(IMAGE_SMALL_RIGHT); gtk_container_add( GTK_CONTAINER(eventbox), image); } frame = gtk_frame_new(NULL); gtk_frame_set_shadow_type(GTK_FRAME(frame), GTK_SHADOW_ETCHED_IN); gtk_box_pack_start(GTK_BOX(vbox), frame, TRUE, TRUE, 0); popup_scroll = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (popup_scroll), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_container_add(GTK_CONTAINER(frame), popup_scroll); popup_view = gtk_text_view_new_with_buffer(text_buffer); gtk_text_view_set_editable(GTK_TEXT_VIEW(popup_view), FALSE); gtk_text_view_set_left_margin(GTK_TEXT_VIEW(popup_view), 5); gtk_text_view_set_right_margin(GTK_TEXT_VIEW(popup_view), 5); gtk_text_view_set_pixels_above_lines(GTK_TEXT_VIEW(popup_view), 3); gtk_text_view_set_pixels_inside_wrap(GTK_TEXT_VIEW(popup_view), 3); gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(popup_view), FALSE); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(popup_view), GTK_WRAP_WORD); g_signal_connect(G_OBJECT(popup_view),"motion_notify_event", G_CALLBACK(motion_notify_event), (gpointer)NULL); g_signal_connect(G_OBJECT(popup_view),"button_press_event", G_CALLBACK(popup_button_press_event), (gpointer)NULL); gtk_container_add (GTK_CONTAINER (popup_scroll), popup_view); #ifndef __WIN32__ gtk_widget_realize(popup); gdk_window_set_decorations(popup->window, 0); #endif gtk_widget_show_all(popup); #ifdef __WIN32__ hWnd = GDK_WINDOW_HWND(popup->window); nStyle = GetWindowLong(hWnd, GWL_STYLE ); nStyle &= ~WS_CAPTION; SetWindowLong(hWnd, GWL_STYLE, nStyle ); SetWindowPos(hWnd, HWND_TOPMOST, pos_x, pos_y, window_width, window_height, SWP_FRAMECHANGED); #endif bbutton_down = FALSE; bpushpin_down = FALSE; LOG(LOG_DEBUG, "OUT : create_popup_window()"); }
void dump_text(){ GtkWidget *button; GtkWidget *hbox; GtkWidget *label; GtkWidget *text_scroll; gchar buff[16]; LOG(LOG_DEBUG, "IN : dump_text()"); if(text_dlg == NULL){ text_dlg = gtk_dialog_new(); gtk_window_set_title (GTK_WINDOW (text_dlg), "Text dump"); g_signal_connect(G_OBJECT (text_dlg), "delete_event", G_CALLBACK(text_close), NULL); button = gtk_button_new_with_label(_("Close")); GTK_WIDGET_SET_FLAGS(button, GTK_CAN_DEFAULT); gtk_box_pack_start(GTK_BOX (GTK_DIALOG (text_dlg)->action_area), button, TRUE, TRUE, 0); g_signal_connect(G_OBJECT (button), "clicked", G_CALLBACK(text_close), (gpointer)text_dlg); hbox = gtk_hbox_new(FALSE,5); gtk_box_pack_start (GTK_BOX(GTK_DIALOG(text_dlg)->vbox) , hbox, FALSE, FALSE, 0); label = gtk_label_new(_("page")); gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 0); entry_text_page = gtk_entry_new(); gtk_widget_set_size_request(entry_text_page,100,20); gtk_box_pack_start (GTK_BOX(hbox), entry_text_page, FALSE, FALSE, 0); g_signal_connect(G_OBJECT(entry_text_page), "activate", G_CALLBACK(text_dump_page), (gpointer)NULL); label = gtk_label_new(_("offset")); gtk_box_pack_start (GTK_BOX(hbox), label, FALSE, FALSE, 0); entry_text_offset = gtk_entry_new(); gtk_widget_set_size_request(entry_text_offset,100,20); gtk_box_pack_start (GTK_BOX(hbox), entry_text_offset, FALSE, FALSE, 0); g_signal_connect(G_OBJECT(entry_text_offset), "activate", G_CALLBACK(text_dump_page), (gpointer)NULL); hbox = gtk_hbox_new(FALSE,5); gtk_box_pack_start (GTK_BOX(GTK_DIALOG(text_dlg)->vbox) , hbox, FALSE, FALSE, 0); text_scroll = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (text_scroll), GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC); gtk_widget_set_size_request(text_scroll, 600, 400); gtk_box_pack_start(GTK_BOX(hbox), text_scroll,FALSE, FALSE, 0); text_buffer = gtk_text_buffer_new (NULL); text_view = gtk_text_view_new_with_buffer(text_buffer); gtk_text_view_set_editable(GTK_TEXT_VIEW(text_view), FALSE); gtk_text_view_set_left_margin(GTK_TEXT_VIEW(text_view), 10); gtk_text_view_set_right_margin(GTK_TEXT_VIEW(text_view), 10); gtk_text_view_set_pixels_above_lines(GTK_TEXT_VIEW(text_view), 3); gtk_text_view_set_pixels_inside_wrap(GTK_TEXT_VIEW(text_view), 3); gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(text_view), FALSE); gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(text_view), GTK_WRAP_WORD); gtk_widget_set_size_request(text_view, 500, 400); gtk_container_add (GTK_CONTAINER (text_scroll), text_view); gtk_widget_show_all(text_dlg); } if((current_result != NULL) && (current_result->type == RESULT_TYPE_EB)){ sprintf(buff, "%08x",current_result->data.eb.pos_text.page); gtk_entry_set_text(GTK_ENTRY(entry_text_page), buff); sprintf(buff, "%08x",current_result->data.eb.pos_text.offset); gtk_entry_set_text(GTK_ENTRY(entry_text_offset), buff); text_dump_page(NULL, NULL); } LOG(LOG_DEBUG, "OUT : dump_text()"); }