GIT.Harvie.CZ
/
mirrors
/
Programs.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Update winsize.c
[mirrors/Programs.git]
/
c
/
vizionix
/
mkxsock.c
diff --git
a/c/vizionix/mkxsock.c
b/c/vizionix/mkxsock.c
index 74cb99bcfa5feeaa6367c9248772eb25a0e705dd..cf7075f89270475cfac585c186bd6b3b97dde6fb 100644
(file)
--- a/
c/vizionix/mkxsock.c
+++ b/
c/vizionix/mkxsock.c
@@
-3,7
+3,14
@@
#include <getopt.h>
#include <gtk/gtk.h>
#include <getopt.h>
#include <gtk/gtk.h>
-int return_true(void) { return 1; }
+#define ENV_PREFIX "XSOCK_"
+
+int return_true(GtkWidget *widget, gpointer data) { return 1; }
+
+int switch_sockets(GtkWidget *widget, gpointer data) {
+ fprintf(stderr,"SWITCH: %d\n", (int)data);
+ return 1;
+}
void print_help(char ** argv) {
printf(
void print_help(char ** argv) {
printf(
@@
-12,6
+19,7
@@
void print_help(char ** argv) {
"\t -c color\n"
"\t -w width\n"
"\t -h height\n"
"\t -c color\n"
"\t -w width\n"
"\t -h height\n"
+ //"\t -r reuse " ENV_PREFIX "* from environment\n"
"\t -? (display help)"
"\nExample: %s -c black -w 640 -h 480\n\n",
argv[0], argv[0]);
"\t -? (display help)"
"\nExample: %s -c black -w 640 -h 480\n\n",
argv[0], argv[0]);
@@
-35,6
+43,15
@@
gint main(gint argc, gchar ** argv)
case 'h':
height = atoi(optarg);
break;
case 'h':
height = atoi(optarg);
break;
+ case 'r': //Not yet
+ if(getenv(ENV_PREFIX"PID")
+ && getenv(ENV_PREFIX"WID")
+ && kill(atoi(getenv(ENV_PREFIX"PID")), 0)
+ ) {
+ puts("REUSABLE");
+ return 0;
+ }
+ break;
case '?':
print_help(argv);
return 0;
case '?':
print_help(argv);
return 0;
@@
-52,19
+69,21
@@
gint main(gint argc, gchar ** argv)
//Create window
GtkWidget *win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
//Create window
GtkWidget *win = gtk_window_new(GTK_WINDOW_TOPLEVEL);
- GtkWidget *sock = gtk_socket_new();
- g_signal_connect(sock, "plug-removed", G_CALLBACK(return_true), NULL);
+ GtkWidget *sock[1];
+ sock[0] = gtk_socket_new();
+ g_signal_connect(sock[0], "plug-added", G_CALLBACK(switch_sockets), (gpointer)23);
+ g_signal_connect(sock[0], "plug-removed", G_CALLBACK(return_true), NULL);
g_signal_connect(win, "delete-event", gtk_main_quit, NULL);
g_signal_connect(win, "delete-event", gtk_main_quit, NULL);
- gtk_widget_set_size_request(sock, width, height);
- gtk_widget_modify_bg(sock, GTK_STATE_NORMAL, &color);
- gtk_container_add(GTK_CONTAINER(win), sock);
+ gtk_widget_set_size_request(sock
[0]
, width, height);
+ gtk_widget_modify_bg(sock
[0]
, GTK_STATE_NORMAL, &color);
+ gtk_container_add(GTK_CONTAINER(win), sock
[0]
);
gtk_widget_show_all(win);
//Print id
gtk_widget_show_all(win);
//Print id
- GdkNativeWindow wid = gtk_socket_get_id(GTK_SOCKET(sock));
+ GdkNativeWindow wid = gtk_socket_get_id(GTK_SOCKET(sock
[0]
));
int pid;
if ((pid = fork())) {
int pid;
if ((pid = fork())) {
- printf(
"XSOCK_WID=%d\nXSOCK_
PID=%d\n", wid, pid);
+ printf(
ENV_PREFIX"WID=%d\n"ENV_PREFIX"
PID=%d\n", wid, pid);
return 0;
}
fclose(stdout);
return 0;
}
fclose(stdout);
This page took
0.152747 seconds
and
4
git commands to generate.