changeset 340:0d9cfc3579a5

[gaim-migrate @ 350] More changes to the applet. Now, you can have it remember the position and not have it near the applet, or not remember the position and not near the applet, or near the applet. Also, if you want it near the applet, the login box will appear near the applet. committer: Tailor Script <tailor@pidgin.im>
author Eric Warmenhoven <eric@warmenhoven.org>
date Tue, 06 Jun 2000 21:33:20 +0000
parents 4c500ceeeb0f
children df984d56efb4
files src/buddy.c src/gaim.h src/gaimrc.c src/gnome_applet_mgr.c src/prefs.c
diffstat 5 files changed, 22 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/src/buddy.c	Tue Jun 06 10:21:24 2000 +0000
+++ b/src/buddy.c	Tue Jun 06 21:33:20 2000 +0000
@@ -287,8 +287,10 @@
 }
 
 void gnome_buddy_set_pos( gint x, gint y ){
-        if (general_options & OPT_GEN_SAVED_WINDOWS)
+	if (general_options & OPT_GEN_NEAR_APPLET)
 		gtk_widget_set_uposition ( blist, x, y );
+	else if (general_options & OPT_GEN_SAVED_WINDOWS)
+		gtk_widget_set_uposition(blist, blist_pos.x - blist_pos.xoff, blist_pos.y - blist_pos.yoff);
 }
 
 GtkRequisition gnome_buddy_get_dimentions(){
--- a/src/gaim.h	Tue Jun 06 10:21:24 2000 +0000
+++ b/src/gaim.h	Tue Jun 06 21:33:20 2000 +0000
@@ -348,7 +348,7 @@
 #define TYPE_SIGNOFF   4
 #define TYPE_KEEPALIVE 5
 
-#define REVISION "gaim:$Revision: 348 $"
+#define REVISION "gaim:$Revision: 350 $"
 #define FLAPON "FLAPON\r\n\r\n"
 
 #define ROAST "Tic/Toc"
@@ -424,7 +424,7 @@
 #define OPT_GEN_BROWSER_POPUP    0x00000800
 #define OPT_GEN_SAVED_WINDOWS    0x00001000
 #define OPT_GEN_DISCARD_WHEN_AWAY 0x00002000
-#define OPT_GEN_CHECK_VERSIONS	0x00004000
+#define OPT_GEN_NEAR_APPLET	0x00004000
 #define OPT_GEN_CHECK_SPELLING	0x00008000
 
 extern int display_options;
--- a/src/gaimrc.c	Tue Jun 06 10:21:24 2000 +0000
+++ b/src/gaimrc.c	Tue Jun 06 21:33:20 2000 +0000
@@ -529,7 +529,8 @@
                 OPT_GEN_ENTER_SENDS |
                 OPT_GEN_SAVED_WINDOWS |
                 OPT_GEN_REMEMBER_PASS |
-		OPT_GEN_REGISTERED; 
+		OPT_GEN_REGISTERED |
+		OPT_GEN_NEAR_APPLET; 
         display_options =
                 OPT_DISP_SHOW_IDLETIME |
                 OPT_DISP_SHOW_TIME |
--- a/src/gnome_applet_mgr.c	Tue Jun 06 10:21:24 2000 +0000
+++ b/src/gnome_applet_mgr.c	Tue Jun 06 21:33:20 2000 +0000
@@ -63,6 +63,8 @@
 GdkPixmap *icon_away_pm=NULL;
 GdkPixmap *icon_away_bm=NULL;
 
+static GtkAllocation get_applet_pos(gboolean);
+
 /***************************************************************
 **
 ** function load_applet_icon
@@ -227,10 +229,13 @@
 ** description - I guess it shows the login dialog
 **
 ****************************************************************/
-
+extern GtkWidget *mainwindow;
 void applet_show_login(AppletWidget *widget, gpointer data) {
-	/* FIXME : this is so pointless */
         show_login();
+	if (general_options & OPT_GEN_NEAR_APPLET) {
+		GtkAllocation a = get_applet_pos(FALSE);
+		gtk_widget_set_uposition(mainwindow, a.x, a.y);
+	}
 }
 
 void insert_applet_away() {
@@ -349,14 +354,17 @@
 **				of the Gnome panel.
 **
 ****************************************************************/ 
-GtkAllocation get_applet_pos(){
+GtkAllocation get_applet_pos(gboolean for_blist) {
     gint x,y,pad;
     GtkRequisition buddy_req, applet_req;
     GtkAllocation result;
     GNOME_Panel_OrientType orient = applet_widget_get_panel_orient( APPLET_WIDGET(applet) );
     pad = 5;
     gdk_window_get_position(gtk_widget_get_parent_window(appletframe), &x, &y);
-    buddy_req = gnome_buddy_get_dimentions();
+    if (for_blist)
+	    buddy_req = gnome_buddy_get_dimentions();
+    else
+	    buddy_req = mainwindow->requisition;
     applet_req = appletframe->requisition;
    switch( orient ){
    	case ORIENT_UP:
@@ -397,7 +405,7 @@
 void createOnlinePopup(){
     GtkAllocation al;
     make_buddy();
-    al  = get_applet_pos();  
+    al  = get_applet_pos(TRUE);  
     gnome_buddy_set_pos(  al.x, al.y );
 }
 
--- a/src/prefs.c	Tue Jun 06 10:21:24 2000 +0000
+++ b/src/prefs.c	Tue Jun 06 21:33:20 2000 +0000
@@ -310,7 +310,6 @@
 	GtkWidget *fontbox;
 	GtkWidget *fontframe;
 	GtkWidget *appbox;
-	GtkWidget *appletbox;
 	GtkWidget *away_topbox;
 	GtkWidget *away_botbox;
 	GtkWidget *add_away;
@@ -329,6 +328,7 @@
 #endif
 #ifdef USE_APPLET
 	GtkWidget *applet_page;
+	GtkWidget *appletbox;
 #endif
         GtkWidget *label;
         GtkWidget *browseropt;
@@ -438,6 +438,7 @@
 
 	gaim_button("Automatically Show Buddy List", &general_options, OPT_GEN_APP_BUDDY_SHOW, appletbox);
 	gaim_button("Sounds go through GNOME", &sound_options, OPT_SOUND_THROUGH_GNOME, appletbox);
+	gaim_button("Buddy list displays near the applet", &general_options, OPT_GEN_NEAR_APPLET, appletbox);
 
 	gtk_widget_show(appletbox);
 	gtk_widget_show(applet_page);