[Goodies-commits] r3575 - xfvnc/trunk/xfvnc
Brian Tarricone
kelnos at xfce.org
Fri Nov 9 09:57:42 CET 2007
Author: kelnos
Date: 2007-11-09 08:57:42 +0000 (Fri, 09 Nov 2007)
New Revision: 3575
Modified:
xfvnc/trunk/xfvnc/Makefile.am
xfvnc/trunk/xfvnc/main.c
Log:
* remove border/padding around all widgets in vnc window. 1st step to fix
problem with scrollbars at fullscreen, but it's not quite fixed yet
* embed .glade file into the binary - easier dist, harder to break
Modified: xfvnc/trunk/xfvnc/Makefile.am
===================================================================
--- xfvnc/trunk/xfvnc/Makefile.am 2007-11-09 08:55:56 UTC (rev 3574)
+++ xfvnc/trunk/xfvnc/Makefile.am 2007-11-09 08:57:42 UTC (rev 3575)
@@ -1,7 +1,8 @@
bin_PROGRAMS = xfvnc
xfvnc_SOURCES = \
- main.c
+ main.c \
+ xfvnc.glade.h
xfvnc_CFLAGS = \
-DLOCALEDIR=\"$(localedir)\" \
@@ -18,9 +19,6 @@
$(LIBGLADE_LIBS) \
$(GTK_VNC_LIBS)
-gladedir = $(datadir)/xfvnc
-glade_DATA = xfvnc.glade
-
desktopdir = $(datadir)/applications
desktop_in_files = xfvnc.desktop.in
desktop_DATA = $(desktop_in_files:.desktop.in=.desktop)
@@ -31,4 +29,18 @@
EXTRA_DIST = \
$(desktop_in_files) \
- $(glade_DATA)
+ xfvnc.glade
+
+
+if MAINTAINER_MODE
+
+BUILT_SOURCES = \
+ xfvnc.glade.h
+
+CLEANFILES += \
+ xfvnc.glade.h
+
+xfvnc.glade.h: $(srcdir)/xfvnc.glade
+ exo-csource --static --name=xfvnc_glade $< > $@
+
+endif
Modified: xfvnc/trunk/xfvnc/main.c
===================================================================
--- xfvnc/trunk/xfvnc/main.c 2007-11-09 08:55:56 UTC (rev 3574)
+++ xfvnc/trunk/xfvnc/main.c 2007-11-09 08:57:42 UTC (rev 3575)
@@ -33,6 +33,15 @@
#include <vncdisplay.h>
+#include "xfvnc.glade.h"
+
+static const gchar *rcstyle = "style \"xfvnc-nothickness\"\n" \
+ "{\n" \
+ " xthickness = 0\n" \
+ " ythickness = 0\n" \
+ "}\n" \
+ "widget \"xfvnc-nothick-window*\" style \"xfvnc-nothickness\"";
+
typedef struct
{
gchar *hostname;
@@ -59,7 +68,7 @@
gpointer user_data)
{
GladeXML *gxml = user_data;
- GtkWidget *win, *connect_win, *progress_dlg, *chk_fullscreen;
+ GtkWidget *win, /**sw,*/ *connect_win, *progress_dlg, *chk_fullscreen;
guint pulse_id;
gboolean fullscreen;
gchar *title;
@@ -84,9 +93,49 @@
if(fullscreen)
gtk_window_fullscreen(GTK_WINDOW(win));
+
+#if 0
+ /* this is super-lame */
+ while(gtk_events_pending())
+ gtk_main_iteration();
+
+ sw = gtk_bin_get_child(GTK_BIN(win));
+ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw), GTK_POLICY_NEVER,
+ GTK_POLICY_NEVER);
+ while(gtk_events_pending())
+ gtk_main_iteration();
+
+ gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(sw),
+ GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
+
+ {
+ GtkStyle *style = gtk_widget_get_style(win);
+ g_print("win thickness (%d,%d)\n", style->xthickness, style->ythickness);
+ style = gtk_widget_get_style(gtk_bin_get_child(GTK_BIN(win)));
+ g_print("sw thickness (%d,%d)\n", style->xthickness, style->ythickness);
+ style = gtk_widget_get_style(gtk_bin_get_child(GTK_BIN(gtk_bin_get_child(GTK_BIN(win)))));
+ g_print("vnc thickness (%d,%d)\n", style->xthickness, style->ythickness);
+ }
+#endif
}
static void
+vnc_disconnected(VncDisplay *vnc,
+ gpointer user_data)
+{
+ GladeXML *gxml = user_data;
+ GtkWidget *win = glade_xml_get_widget(gxml, "vnc_window");
+
+ xfce_message_dialog(GTK_WINDOW(win), _("Disconnected"),
+ GTK_STOCK_DIALOG_ERROR,
+ _("The remote VNC session was disconnected"),
+ _("The connection with the VNC server was lost. This could be due to a network problem, or a problem with the server."),
+ GTK_STOCK_QUIT, GTK_RESPONSE_ACCEPT, NULL);
+
+ gtk_main_quit();
+}
+
+static void
vnc_auth_failure(VncDisplay *vnc,
const gchar *message,
gpointer user_data)
@@ -151,6 +200,20 @@
gxml);
}
+static gboolean
+vnc_window_delete_event(GtkWidget *widget,
+ GdkEventAny *event,
+ gpointer user_data)
+{
+ GtkWidget *vnc = g_object_get_data(G_OBJECT(widget), "vnc-display");
+
+ g_signal_handlers_disconnect_by_func(G_OBJECT(vnc),
+ G_CALLBACK(vnc_disconnected),
+ user_data);
+
+ return FALSE;
+}
+
static void
connect_clicked(GtkWidget *widget,
gpointer user_data)
@@ -172,7 +235,10 @@
g_free(dnum);
win = glade_xml_get_widget(gxml, "vnc_window");
+ gtk_widget_set_name(win, "xfvnc-nothick-window");
gtk_widget_realize(win);
+ g_signal_connect(G_OBJECT(win), "delete-event",
+ G_CALLBACK(vnc_window_delete_event), gxml);
sw = glade_xml_get_widget(gxml, "vnc_window_sw");
gtk_widget_show(sw);
@@ -198,7 +264,7 @@
g_signal_connect(G_OBJECT(vnc), "vnc-initialized",
G_CALLBACK(vnc_initialized), gxml);
g_signal_connect(G_OBJECT(vnc), "vnc-disconnected",
- G_CALLBACK(gtk_main_quit), NULL);
+ G_CALLBACK(vnc_disconnected), gxml);
g_signal_connect(G_OBJECT(vnc), "vnc-auth-failure",
G_CALLBACK(vnc_auth_failure),gxml);
g_signal_connect(G_OBJECT(vnc), "vnc-desktop-resize",
@@ -358,22 +424,19 @@
char **argv)
{
GladeXML *gxml;
- gchar *glade_file;
GtkWidget *connect_window, *combo_recent, *entry_host;
xfce_textdomain(GETTEXT_PACKAGE, LOCALEDIR, "UTF-8");
gtk_init(&argc, &argv);
+ gtk_rc_parse_string(rcstyle);
- glade_file = xfce_resource_lookup(XFCE_RESOURCE_DATA,
- "xfvnc/xfvnc.glade");
- if(!glade_file)
- glade_file = g_strdup("xfvnc.glade");
- if(!glade_file || !(gxml = glade_xml_new(glade_file, NULL, NULL))) {
- g_error("Unable to load xfvnc.glade");
+ gxml = glade_xml_new_from_buffer(xfvnc_glade, xfvnc_glade_length,
+ NULL, NULL);
+ if(!gxml) {
+ g_error("Unable to parse embedded glade UI description.");
return 1;
}
- g_free(glade_file);
glade_xml_signal_autoconnect(gxml);
More information about the Goodies-commits
mailing list