From: <kr_...@us...> - 2003-03-30 18:49:11
|
Update of /cvsroot/htoolkit/port/src/cbits/GTK In directory sc8-pr-cvs1:/tmp/cvs-serv19641/port/src/cbits/GTK Modified Files: Frame.c Util.c Window.c Log Message: The process related features are extracted into newly created module "Process". Added new process attribute "title" instead of title as parameter. Index: Frame.c =================================================================== RCS file: /cvsroot/htoolkit/port/src/cbits/GTK/Frame.c,v retrieving revision 1.3 retrieving revision 1.4 diff -C2 -d -r1.3 -r1.4 *** Frame.c 29 Mar 2003 08:12:18 -0000 1.3 --- Frame.c 30 Mar 2003 18:49:07 -0000 1.4 *************** *** 5,8 **** --- 5,9 ---- #include <gdk/gdkkeysyms.h> + char *gAppName = NULL; GtkWidget *gFrameWidget = NULL; GtkWidget *gClientWidget = NULL; *************** *** 50,53 **** --- 51,63 ---- } + static void frame_destroy_handler(GtkWidget *widget, GdkEvent *event, gpointer user_data) + { + handleProcessDestroy(); + if (gDocumentInterface == 1) + free(gWindowName); + } + + + BOOL gInKey = FALSE; int gCurChar = 0; *************** *** 189,192 **** --- 199,205 ---- GTK_SIGNAL_FUNC(frame_delete_handler), NULL); + gtk_signal_connect (GTK_OBJECT(gFrameWidget), "destroy", + GTK_SIGNAL_FUNC(frame_destroy_handler), + NULL); gtk_signal_connect (GTK_OBJECT(gFrameWidget), "key-press-event", GTK_SIGNAL_FUNC(frame_key_press_handler), *************** *** 274,281 **** /* Create the window. */ gFrameWidget = gtk_window_new (GTK_WINDOW_TOPLEVEL); - gtk_window_set_title(GTK_WINDOW(gFrameWidget), gAppName); gtk_signal_connect (GTK_OBJECT(gFrameWidget), "delete-event", GTK_SIGNAL_FUNC(frame_delete_handler), NULL); gtk_signal_connect (GTK_OBJECT(gFrameWidget), "key-press-event", GTK_SIGNAL_FUNC(frame_key_press_handler), --- 287,296 ---- /* Create the window. */ gFrameWidget = gtk_window_new (GTK_WINDOW_TOPLEVEL); gtk_signal_connect (GTK_OBJECT(gFrameWidget), "delete-event", GTK_SIGNAL_FUNC(frame_delete_handler), NULL); + gtk_signal_connect (GTK_OBJECT(gFrameWidget), "destroy", + GTK_SIGNAL_FUNC(frame_destroy_handler), + NULL); gtk_signal_connect (GTK_OBJECT(gFrameWidget), "key-press-event", GTK_SIGNAL_FUNC(frame_key_press_handler), *************** *** 296,298 **** --- 311,324 ---- gtk_widget_show_all(gFrameWidget); + } + + char *osGetProcessTitle() + { + return gAppName; + } + + void osSetProcessTitle(char *szAppName) + { + gAppName = strdup(szAppName); + updateFrameTitle(); } Index: Util.c =================================================================== RCS file: /cvsroot/htoolkit/port/src/cbits/GTK/Util.c,v retrieving revision 1.10 retrieving revision 1.11 diff -C2 -d -r1.10 -r1.11 *** Util.c 29 Mar 2003 08:12:18 -0000 1.10 --- Util.c 30 Mar 2003 18:49:07 -0000 1.11 *************** *** 7,11 **** BOOL bInitialized = FALSE; int gDocumentInterface; - char *gAppName; void *rmalloc (unsigned long bytes) --- 7,10 ---- *************** *** 27,31 **** } ! void osInit(char *AppName, int DocumentInterface) { if (!bInitialized) --- 26,30 ---- } ! void osInit(int DocumentInterface) { if (!bInitialized) *************** *** 40,44 **** bInitialized = TRUE; - gAppName = strdup(AppName); gDocumentInterface = DocumentInterface; --- 39,42 ---- *************** *** 54,58 **** gtk_main(); handleProcessDestroy(); - free(gAppName); } --- 52,55 ---- *************** *** 110,111 **** --- 107,144 ---- return s; }; + + void updateFrameTitle() + { + char *title; + + if (gAppName && *gAppName) + { + if (gDocumentInterface == 2) + { + GtkWidget *label; + + label = gtk_notebook_get_tab_label(GTK_NOTEBOOK(gClientWidget),gtk_notebook_get_nth_page(GTK_NOTEBOOK(gClientWidget),gtk_notebook_get_current_page(GTK_NOTEBOOK(gClientWidget)))); + gWindowName = gtk_label_get_text(GTK_LABEL(label)); + } + + if (gWindowName && *gWindowName) + { + title = rmalloc(strlen(gAppName)+strlen(gWindowName)+6); + + if (title) + { + strcpy(title, gAppName); + strcat(title, " - ["); + strcat(title, gWindowName); + strcat(title, "]"); + gtk_window_set_title(GTK_WINDOW(gFrameWidget), title); + } + + rfree(title); + } + else + gtk_window_set_title(GTK_WINDOW(gFrameWidget), gAppName); + } + else + gtk_window_set_title(GTK_WINDOW(gFrameWidget), gWindowName); + } Index: Window.c =================================================================== RCS file: /cvsroot/htoolkit/port/src/cbits/GTK/Window.c,v retrieving revision 1.11 retrieving revision 1.12 diff -C2 -d -r1.11 -r1.12 *** Window.c 29 Mar 2003 08:12:18 -0000 1.11 --- Window.c 30 Mar 2003 18:49:07 -0000 1.12 *************** *** 4,7 **** --- 4,8 ---- #include <gdk/gdkkeysyms.h> + char *gWindowName = NULL; static void getWindowClipRect(GtkWidget *window, GdkRegion *region) *************** *** 290,294 **** if (gDocumentInterface == 2) ! gtk_notebook_append_page(GTK_NOTEBOOK(gClientWidget),sw,gtk_label_new(gAppName)); else { --- 291,295 ---- if (gDocumentInterface == 2) ! gtk_notebook_append_page(GTK_NOTEBOOK(gClientWidget),sw,gtk_label_new("")); else { *************** *** 355,360 **** char *osGetWindowTitle(WindowHandle window) { - char *title; - if (gDocumentInterface == 2) { --- 356,359 ---- *************** *** 362,373 **** label = gtk_notebook_get_tab_label(GTK_NOTEBOOK(gClientWidget),window); ! title = gtk_label_get_text(GTK_LABEL(label)); ! } ! else ! { ! title = GTK_WINDOW(gFrameWidget)->title; } ! ! return strdup(title); }; --- 361,368 ---- label = gtk_notebook_get_tab_label(GTK_NOTEBOOK(gClientWidget),window); ! gWindowName = gtk_label_get_text(GTK_LABEL(label)); } ! ! return strdup(gWindowName); }; *************** *** 385,389 **** else { ! gtk_window_set_title(GTK_WINDOW(gFrameWidget), title); } }; --- 380,385 ---- else { ! gWindowName = strdup(title); ! updateFrameTitle(); } }; |