19 GtkWidget *main_window;
23 delete_event(GtkWidget *widget,
24 GdkEvent *event, gpointer data) {
31 destroy(GtkWidget *widget, gpointer data) {
36 timer(gpointer data) {
47 gdk_window_process_all_updates();
54 main(
int argc,
char *argv[]) {
55 gtk_init(&argc, &argv);
57 main_window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
59 gtk_window_set_title(GTK_WINDOW(main_window),
"PStats");
63 g_signal_connect(G_OBJECT(main_window),
"delete_event",
64 G_CALLBACK(delete_event),
nullptr);
66 g_signal_connect(G_OBJECT(main_window),
"destroy",
67 G_CALLBACK(destroy),
nullptr);
69 std::ostringstream stream;
70 stream <<
"Listening on port " << pstats_port;
71 std::string str = stream.str();
72 GtkWidget *label = gtk_label_new(str.c_str());
73 gtk_container_add(GTK_CONTAINER(main_window), label);
74 gtk_widget_show(label);
79 std::ostringstream stream;
81 <<
"Unable to open port " << pstats_port
82 <<
". Try specifying a different\n" 83 <<
"port number using pstats-port in your Config file.";
84 std::string str = stream.str();
87 gtk_message_dialog_new(GTK_WINDOW(main_window),
88 GTK_DIALOG_DESTROY_WITH_PARENT,
92 gtk_dialog_run(GTK_DIALOG(dialog));
93 gtk_widget_destroy(dialog);
97 gtk_widget_show(main_window);
100 g_timeout_add(200, timer,
nullptr);
The class that owns the main loop, waiting for client connections.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
void poll()
Checks for any network activity and handles it, if appropriate, and then returns.
bool listen(int port=-1)
Establishes a port number that the manager will listen on for TCP connections.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.
PANDA 3D SOFTWARE Copyright (c) Carnegie Mellon University.