ayttm-commits
[Top][All Lists]
Advanced

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

[Ayttm-commits] CVS: ayttm/src browser.c,1.15,1.16 log_window.c,1.17,1.1


From: Colin Leroy <address@hidden>
Subject: [Ayttm-commits] CVS: ayttm/src browser.c,1.15,1.16 log_window.c,1.17,1.18 log_window.h,1.5,1.6 smileys.c,1.17,1.18 util.c,1.50,1.51
Date: Tue, 04 Mar 2003 10:12:30 -0500

Update of /cvsroot/ayttm/ayttm/src
In directory subversions:/tmp/cvs-serv2240/src

Modified Files:
        browser.c log_window.c log_window.h smileys.c util.c 
Log Message:
Add log:///file "protocol", which open a log_window with the
corresponding file (will soon be useful)


Index: browser.c
===================================================================
RCS file: /cvsroot/ayttm/ayttm/src/browser.c,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -r1.15 -r1.16
--- browser.c   29 Jan 2003 19:19:22 -0000      1.15
+++ browser.c   4 Mar 2003 15:12:27 -0000       1.16
@@ -53,7 +53,9 @@
 
 
 #ifndef _WIN32
-               
+       
+#include "log_window.h"
+       
 void open_url(void *w, char *url) {
        char *browser = NULL;
        char command[1281];
@@ -61,6 +63,15 @@
        char esc_url[1024];
        int i=0,j=1;
        
+       if (!strncmp("log://", url, 6)) {
+               /*internal handling*/
+               log_window *lw = NULL;
+               lw = eb_log_window_new(NULL);
+               lw->filename = strdup(url+6);
+               eb_log_load_information(lw);
+               return;
+       }
+
        esc_url[0]='"'; j=1;
        if (url[0]=='\'' || url[0]=='"')
                i++;
@@ -116,8 +127,19 @@
 #else
 
 void open_url(GdkWindow *w, char *url) {
+
        if (!w)
                return;
+
+       if (!strncmp("log://", url, 6)) {
+               /*internal handling*/
+               log_window *lw = NULL;
+               lw = eb_log_window_new(NULL);
+               lw->filename = strdup(url+6);
+               eb_log_load_information(lw);
+               return;
+       }
+
        ShellExecute(GDK_DRAWABLE_XID(w),"open",url,NULL,"C:\\",0);
 }
 

Index: log_window.c
===================================================================
RCS file: /cvsroot/ayttm/ayttm/src/log_window.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- log_window.c        29 Jan 2003 19:19:22 -0000      1.17
+++ log_window.c        4 Mar 2003 15:12:27 -0000       1.18
@@ -43,6 +43,8 @@
 
 #include "pixmaps/cancel.xpm"
 
+static void eb_log_show(log_window *lw);
+
 int current_row=-1, last_pos=-1;
 /* module private functions */
 static void free_string_list(gpointer data, gpointer user_data)
@@ -103,7 +105,7 @@
 
 }
 
-static void load_log_information(log_window* lw)
+void eb_log_load_information(log_window* lw)
 {
   gchar name_buffer[NAME_MAX];
   gchar read_buffer[4096];
@@ -117,8 +119,13 @@
   
   gtk_clist_freeze(GTK_CLIST(lw->date_list)); /* freeze, thaw?  So corny. */
 
-  make_safe_filename(name_buffer, lw->remote->nick, lw->remote->group->name);
-       
+  if (lw->remote)
+         make_safe_filename(name_buffer, lw->remote->nick, 
lw->remote->group->name);
+  else if (lw->filename)
+         strcpy(name_buffer, lw->filename);
+  else
+         return;
+                               
   if ( (fp = fopen(name_buffer, "r")) != NULL) {
     gl = g_slist_alloc();
 
@@ -184,6 +191,8 @@
   lw->entries = gl;
 
   gtk_clist_thaw(GTK_CLIST(lw->date_list));
+
+  eb_log_show(lw);  
 }
 
 
@@ -194,7 +203,12 @@
   
   g_slist_foreach(lw->entries, (GFunc)free_gs_list, NULL);
 
-  lw->remote->logwindow = NULL;
+  if (lw->remote)
+         lw->remote->logwindow = NULL;
+  
+  if (lw->filename)
+         free(lw->filename);
+  
   lw->window = NULL;
   g_free(lw);
 }
@@ -339,11 +353,18 @@
   GtkWidget* search_label;
   GtkWidget* search_entry;
   lw->remote = rc;
-  rc->logwindow = lw;
+  lw->filename = NULL;
+  
+  if (rc)
+         rc->logwindow = lw;
   lw->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
   gtk_window_set_position(GTK_WINDOW(lw->window), GTK_WIN_POS_MOUSE);
   /* show who the conversation is with */
-  sprintf(buffer, _("Past conversations with %s"), rc->nick);
+  if (rc)
+         sprintf(buffer, _("Past conversations with %s"), rc->nick);
+  else 
+         sprintf(buffer, _("Past conversation"));
+  
   gtk_window_set_title(GTK_WINDOW(lw->window), buffer);
   gtk_container_set_border_width(GTK_CONTAINER(lw->window), 5);
   
@@ -414,21 +435,26 @@
   gtk_signal_connect(GTK_OBJECT(lw->date_list), "select-row", 
                     GTK_SIGNAL_FUNC(select_date_callback), lw);
 
-  load_log_information(lw);  
+  gtk_widget_show(GTK_WIDGET(hbox));  
+  gtk_widget_show(GTK_WIDGET(vbox));
+
+  if (rc)
+         eb_log_load_information(lw);  
 
+  return lw;
+}
+
+static void eb_log_show(log_window *lw) {
+       
   /* show everything... can you get arrested for baring it all? */
   gtk_widget_show(GTK_WIDGET(lw->date_list));
   gtk_widget_show(GTK_WIDGET(lw->html_display));
   gtk_widget_show(GTK_WIDGET(lw->date_scroller));
   gtk_widget_show(GTK_WIDGET(lw->date_html_hbox));
-  gtk_widget_show(GTK_WIDGET(hbox));  
-  gtk_widget_show(GTK_WIDGET(vbox));
 
   gtk_widget_show(GTK_WIDGET(lw->window));
 
   gtk_clist_select_row(GTK_CLIST(lw->date_list), 0, 0);
-
-  return lw;
 }
 
 void log_parse_and_add(char *buff, void *text) 

Index: log_window.h
===================================================================
RCS file: /cvsroot/ayttm/ayttm/src/log_window.h,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -r1.5 -r1.6
--- log_window.h        29 Jan 2003 19:19:22 -0000      1.5
+++ log_window.h        4 Mar 2003 15:12:27 -0000       1.6
@@ -44,10 +44,13 @@
 
   GtkWidget* close_button;
   struct contact* remote;
+  char *filename;
   GSList* entries;   /* list of gslists */
 } log_window;
 
 //log_window* eb_log_window_new(struct _chat_window* cw);
 log_window* eb_log_window_new(struct contact* rc);
 void log_parse_and_add(char *buff, void *text);
+void eb_log_load_information(log_window* lw);
+
 #endif

Index: smileys.c
===================================================================
RCS file: /cvsroot/ayttm/ayttm/src/smileys.c,v
retrieving revision 1.17
retrieving revision 1.18
diff -u -r1.17 -r1.18
--- smileys.c   7 Feb 2003 09:00:17 -0000       1.17
+++ smileys.c   4 Mar 2003 15:12:27 -0000       1.18
@@ -85,6 +85,7 @@
        "https://";,
        "ftp://";,
        "mailto:/";,
+       "log://",
        NULL
 };
 

Index: util.c
===================================================================
RCS file: /cvsroot/ayttm/ayttm/src/util.c,v
retrieving revision 1.50
retrieving revision 1.51
diff -u -r1.50 -r1.51
--- util.c      4 Mar 2003 14:17:24 -0000       1.50
+++ util.c      4 Mar 2003 15:12:27 -0000       1.51
@@ -249,6 +249,8 @@
        
        if(!strncasecmp( token, "ftp://";, 6))
                return TOKEN_FTP;
+       if(!strncasecmp( token, "log://", 6))
+               return TOKEN_CUSTOM;
        if(!strncasecmp( token, "mailto:";, 7))
                return TOKEN_EMAIL;
        if(!strncasecmp( token, "www.", 4) && is_valid_domain(token))





reply via email to

[Prev in Thread] Current Thread [Next in Thread]