|
|
1.1 ! root 1: #include <sys/types.h> ! 2: #include <sys/stat.h> ! 3: #include <unistd.h> ! 4: #include <string.h> ! 5: #include <stdio.h> ! 6: ! 7: #include <gdk/gdkkeysyms.h> ! 8: #include <gtk/gtk.h> ! 9: ! 10: #include "callbacks.h" ! 11: #include "interface.h" ! 12: #include "support.h" ! 13: ! 14: #define GLADE_HOOKUP_OBJECT(component,widget,name) \ ! 15: g_object_set_data_full (G_OBJECT (component), name, \ ! 16: gtk_widget_ref (widget), (GDestroyNotify) gtk_widget_unref) ! 17: ! 18: #define GLADE_HOOKUP_OBJECT_NO_REF(component,widget,name) \ ! 19: g_object_set_data (G_OBJECT (component), name, widget) ! 20: ! 21: GtkWidget *MessageLabel; ! 22: ! 23: GtkWidget* ! 24: create_MainWindow (void) ! 25: { ! 26: GtkWidget *MainWindow; ! 27: GtkWidget *SplitPane; ! 28: GtkWidget *RemoteText; ! 29: GtkWidget *LocalText; ! 30: GtkTooltips *tooltips; ! 31: ! 32: tooltips = gtk_tooltips_new (); ! 33: ! 34: MainWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL); ! 35: gtk_widget_set_size_request (MainWindow, 400, 300); ! 36: gtk_window_set_title (GTK_WINDOW (MainWindow), "Synchronet Sysop Chat"); ! 37: gtk_window_set_icon_name (GTK_WINDOW (MainWindow), "stock_help-chat"); ! 38: gtk_window_set_type_hint (GTK_WINDOW (MainWindow), GDK_WINDOW_TYPE_HINT_UTILITY); ! 39: ! 40: SplitPane = gtk_vpaned_new (); ! 41: gtk_widget_show (SplitPane); ! 42: gtk_container_add (GTK_CONTAINER (MainWindow), SplitPane); ! 43: gtk_paned_set_position (GTK_PANED (SplitPane), 148); ! 44: ! 45: RemoteText = gtk_text_view_new (); ! 46: gtk_widget_show (RemoteText); ! 47: gtk_paned_pack1 (GTK_PANED (SplitPane), RemoteText, FALSE, TRUE); ! 48: GTK_WIDGET_UNSET_FLAGS (RemoteText, GTK_CAN_FOCUS); ! 49: gtk_tooltips_set_tip (tooltips, RemoteText, "Remote Text Window", NULL); ! 50: gtk_text_view_set_editable (GTK_TEXT_VIEW (RemoteText), FALSE); ! 51: gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (RemoteText), GTK_WRAP_WORD); ! 52: ! 53: LocalText = gtk_text_view_new (); ! 54: gtk_widget_show (LocalText); ! 55: gtk_paned_pack2 (GTK_PANED (SplitPane), LocalText, TRUE, TRUE); ! 56: gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (LocalText), GTK_WRAP_WORD); ! 57: gtk_text_view_set_editable (GTK_TEXT_VIEW (LocalText), FALSE); ! 58: ! 59: g_signal_connect ((gpointer) MainWindow, "destroy", ! 60: G_CALLBACK (on_MainWindow_destroy), ! 61: NULL); ! 62: g_signal_connect ((gpointer) LocalText, "key_press_event", ! 63: G_CALLBACK (on_LocalText_key_press_event), ! 64: NULL); ! 65: ! 66: /* Store pointers to all widgets, for use by lookup_widget(). */ ! 67: GLADE_HOOKUP_OBJECT_NO_REF (MainWindow, MainWindow, "MainWindow"); ! 68: GLADE_HOOKUP_OBJECT (MainWindow, SplitPane, "SplitPane"); ! 69: GLADE_HOOKUP_OBJECT (MainWindow, RemoteText, "RemoteText"); ! 70: GLADE_HOOKUP_OBJECT (MainWindow, LocalText, "LocalText"); ! 71: GLADE_HOOKUP_OBJECT_NO_REF (MainWindow, tooltips, "tooltips"); ! 72: ! 73: gtk_widget_grab_focus (LocalText); ! 74: ! 75: gtk_timeout_add(50, get_from_remote, RemoteText); ! 76: ! 77: return MainWindow; ! 78: } ! 79: ! 80: GtkWidget* ! 81: create_WaitWindow (void) ! 82: { ! 83: GtkWidget *WaitWindow; ! 84: GtkWidget *fixed1; ! 85: GtkWidget *CancelButton; ! 86: GtkWidget *alignment1; ! 87: GtkWidget *hbox1; ! 88: GtkWidget *image1; ! 89: GtkWidget *label2; ! 90: ! 91: WaitWindow = gtk_window_new (GTK_WINDOW_TOPLEVEL); ! 92: gtk_window_set_title (GTK_WINDOW (WaitWindow), "Waiting for user"); ! 93: ! 94: fixed1 = gtk_fixed_new (); ! 95: gtk_widget_show (fixed1); ! 96: gtk_container_add (GTK_CONTAINER (WaitWindow), fixed1); ! 97: gtk_widget_set_size_request (fixed1, 400, 40); ! 98: ! 99: MessageLabel = gtk_label_new ("Waiting for user to connect."); ! 100: gtk_widget_show (MessageLabel); ! 101: gtk_fixed_put (GTK_FIXED (fixed1), MessageLabel, 0, 0); ! 102: gtk_widget_set_size_request (MessageLabel, 400, 16); ! 103: ! 104: CancelButton = gtk_button_new (); ! 105: gtk_widget_show (CancelButton); ! 106: gtk_fixed_put (GTK_FIXED (fixed1), CancelButton, 160, 16); ! 107: gtk_widget_set_size_request (CancelButton, 88, 24); ! 108: ! 109: alignment1 = gtk_alignment_new (0.5, 0.5, 0, 0); ! 110: gtk_widget_show (alignment1); ! 111: gtk_container_add (GTK_CONTAINER (CancelButton), alignment1); ! 112: ! 113: hbox1 = gtk_hbox_new (FALSE, 2); ! 114: gtk_widget_show (hbox1); ! 115: gtk_container_add (GTK_CONTAINER (alignment1), hbox1); ! 116: ! 117: image1 = gtk_image_new_from_stock ("gtk-cancel", GTK_ICON_SIZE_BUTTON); ! 118: gtk_widget_show (image1); ! 119: gtk_box_pack_start (GTK_BOX (hbox1), image1, FALSE, FALSE, 0); ! 120: ! 121: label2 = gtk_label_new_with_mnemonic ("Cancel"); ! 122: gtk_widget_show (label2); ! 123: gtk_box_pack_start (GTK_BOX (hbox1), label2, FALSE, FALSE, 0); ! 124: ! 125: g_signal_connect ((gpointer) CancelButton, "clicked", ! 126: G_CALLBACK (on_CancelButton_clicked), ! 127: NULL); ! 128: ! 129: /* Store pointers to all widgets, for use by lookup_widget(). */ ! 130: GLADE_HOOKUP_OBJECT_NO_REF (WaitWindow, WaitWindow, "WaitWindow"); ! 131: GLADE_HOOKUP_OBJECT (WaitWindow, fixed1, "fixed1"); ! 132: GLADE_HOOKUP_OBJECT (WaitWindow, MessageLabel, "MessageLabel"); ! 133: GLADE_HOOKUP_OBJECT (WaitWindow, CancelButton, "CancelButton"); ! 134: GLADE_HOOKUP_OBJECT (WaitWindow, alignment1, "alignment1"); ! 135: GLADE_HOOKUP_OBJECT (WaitWindow, hbox1, "hbox1"); ! 136: GLADE_HOOKUP_OBJECT (WaitWindow, image1, "image1"); ! 137: GLADE_HOOKUP_OBJECT (WaitWindow, label2, "label2"); ! 138: ! 139: gtk_timeout_add(50, connect_wait, WaitWindow); ! 140: return WaitWindow; ! 141: } ! 142:
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.