empathy r850 - in trunk: libempathy-gtk src



Author: xclaesse
Date: Wed Apr  2 10:42:13 2008
New Revision: 850
URL: http://svn.gnome.org/viewvc/empathy?rev=850&view=rev

Log:
Redefine size_request and size_allocation on EmpathyChatClass


Modified:
   trunk/libempathy-gtk/empathy-chat.c
   trunk/libempathy-gtk/empathy-chat.glade
   trunk/src/empathy-chat-window.c

Modified: trunk/libempathy-gtk/empathy-chat.c
==============================================================================
--- trunk/libempathy-gtk/empathy-chat.c	(original)
+++ trunk/libempathy-gtk/empathy-chat.c	Wed Apr  2 10:42:13 2008
@@ -1267,6 +1267,46 @@
 }
 
 static void
+chat_size_request (GtkWidget      *widget,
+		   GtkRequisition *requisition)
+{
+  GtkBin *bin = GTK_BIN (widget);
+
+  requisition->width = GTK_CONTAINER (widget)->border_width * 2;
+  requisition->height = GTK_CONTAINER (widget)->border_width * 2;
+
+  if (bin->child && GTK_WIDGET_VISIBLE (bin->child))
+    {
+      GtkRequisition child_requisition;
+      
+      gtk_widget_size_request (bin->child, &child_requisition);
+
+      requisition->width += child_requisition.width;
+      requisition->height += child_requisition.height;
+    }
+}
+
+static void
+chat_size_allocate (GtkWidget     *widget,
+		    GtkAllocation *allocation)
+{
+  GtkBin *bin = GTK_BIN (widget);
+  GtkAllocation child_allocation;
+  
+  widget->allocation = *allocation;
+
+  if (bin->child && GTK_WIDGET_VISIBLE (bin->child))
+    {
+      child_allocation.x = allocation->x + GTK_CONTAINER (widget)->border_width;
+      child_allocation.y = allocation->y + GTK_CONTAINER (widget)->border_width;
+      child_allocation.width = MAX (allocation->width - GTK_CONTAINER (widget)->border_width * 2, 0);
+      child_allocation.height = MAX (allocation->height - GTK_CONTAINER (widget)->border_width * 2, 0);
+
+      gtk_widget_size_allocate (bin->child, &child_allocation);
+    }
+}
+
+static void
 chat_finalize (GObject *object)
 {
 	EmpathyChat     *chat;
@@ -1294,7 +1334,6 @@
 	g_object_unref (priv->mc);
 	g_object_unref (priv->log_manager);
 
-
 	if (priv->tp_chat) {
 		g_object_unref (priv->tp_chat);
 	}
@@ -1323,15 +1362,17 @@
 static void
 empathy_chat_class_init (EmpathyChatClass *klass)
 {
-	GObjectClass *object_class;
-
-	object_class = G_OBJECT_CLASS (klass);
+	GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
+	GObjectClass   *object_class = G_OBJECT_CLASS (klass);
 
 	object_class->finalize = chat_finalize;
 	object_class->get_property = chat_get_property;
 	object_class->set_property = chat_set_property;
 	object_class->constructed = chat_constructed;
 
+	widget_class->size_request = chat_size_request;
+	widget_class->size_allocate = chat_size_allocate;
+
 	g_object_class_install_property (object_class,
 					 PROP_TP_CHAT,
 					 g_param_spec_object ("tp-chat",
@@ -1396,7 +1437,7 @@
 empathy_chat_init (EmpathyChat *chat)
 {
 	EmpathyChatPriv *priv = GET_PRIV (chat);
-	GtkTextBuffer  *buffer;
+	GtkTextBuffer   *buffer;
 
 	chat_create_ui (chat);
 

Modified: trunk/libempathy-gtk/empathy-chat.glade
==============================================================================
--- trunk/libempathy-gtk/empathy-chat.glade	(original)
+++ trunk/libempathy-gtk/empathy-chat.glade	Wed Apr  2 10:42:13 2008
@@ -3,6 +3,7 @@
 <!--*- mode: xml -*-->
 <glade-interface>
   <widget class="GtkWindow" id="chat_window">
+    <property name="visible">True</property>
     <property name="border_width">6</property>
     <property name="title" translatable="yes">Group Chat</property>
     <property name="icon_name">system-users</property>

Modified: trunk/src/empathy-chat-window.c
==============================================================================
--- trunk/src/empathy-chat-window.c	(original)
+++ trunk/src/empathy-chat-window.c	Wed Apr  2 10:42:13 2008
@@ -1399,6 +1399,7 @@
 
 	child = GTK_WIDGET (chat);
 	label = chat_window_create_label (window, chat); 
+	gtk_widget_show (child);
 
 	g_signal_connect (chat, "notify::name",
 			  G_CALLBACK (chat_window_chat_notify_cb),
@@ -1416,7 +1417,6 @@
 	gtk_notebook_set_tab_detachable (GTK_NOTEBOOK (priv->notebook), child, TRUE);
 	gtk_notebook_set_tab_label_packing (GTK_NOTEBOOK (priv->notebook), child,
 					    TRUE, TRUE, GTK_PACK_START); 
-	gtk_widget_show (child);
 
 	empathy_debug (DEBUG_DOMAIN, 
 		      "Chat added (%d references)",



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]