|
|
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.