|
From: CORE C. L. <cor...@li...> - 2000-11-22 04:58:38
|
Core CVS committal
Author : smugg
Project : core
Module : src
Modified Files:
callbacks.h main.c menus.c panes.c
Log Message:
add a themes menu, witch displays a icon, and a theme name, also added a switch_theme witch doesnt work, could you look in to it nathan? cant get the shit to work proper, need to get to bed now =)! have fun =) hehe cya tomorrow, mail me and tell me your online times!
===================================================================
RCS file: /cvsroot/corem/core/src/callbacks.h,v
retrieving revision 1.7
retrieving revision 1.8
diff -u -3 -r1.7 -r1.8
--- callbacks.h 2000/11/21 17:59:01 1.7
+++ callbacks.h 2000/11/22 04:58:37 1.8
@@ -64,3 +64,5 @@
/* Save account */
void save_account(void);
+
+void switch_theme(gchar *theme);
===================================================================
RCS file: /cvsroot/corem/core/src/main.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -3 -r1.10 -r1.11
--- main.c 2000/11/21 23:25:47 1.10
+++ main.c 2000/11/22 04:58:37 1.11
@@ -90,8 +90,8 @@
GTK_POS_LEFT);
gtk_box_pack_start(GTK_BOX(main_vbox), mhandle, FALSE, FALSE, 0);
- create_main_toolbar();
thandle = gtk_handle_box_new();
+ create_main_toolbar();
main_menu = create_main_menu();
gtk_container_set_border_width(GTK_CONTAINER(main_menu), 0);
@@ -105,8 +105,6 @@
GTK_POS_LEFT);
gtk_box_pack_start(GTK_BOX(main_vbox), thandle, FALSE, FALSE, 0);
- gtk_container_add(GTK_CONTAINER(thandle), toolbar);
-
hpane = gtk_hpaned_new();
gtk_box_pack_start(GTK_BOX(main_vbox), hpane, TRUE, TRUE, 0);
@@ -141,15 +139,11 @@
{
DIR *dir;
gchar *tmp;
+ tmp = g_strconcat(getenv("HOME"), "/.core/themes/", config.theme, "/", NULL);
- tmp =
- g_strconcat(getenv("HOME"), "/.core/themes/", config.theme,
- NULL);
dir = opendir(tmp);
if (dir != NULL) {
- theme =
- g_strconcat(getenv("HOME"), "/.core/themes/",
- config.theme, "/", NULL);
+ theme = g_strconcat(getenv("HOME"), "/.core/themes/", config.theme, "/", NULL);
return TRUE;
}
tmp = g_strconcat(CORE_SHARE, "/themes/", config.theme, NULL);
@@ -246,8 +240,8 @@
GTK_SIGNAL_FUNC
(create_mail_window_forward), NULL);
gtk_toolbar_append_space(GTK_TOOLBAR(toolbar));
-
- return (toolbar);
+ gtk_container_add(GTK_CONTAINER(thandle), toolbar);
+ return FALSE;
}
===================================================================
RCS file: /cvsroot/corem/core/src/menus.c,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -3 -r1.4 -r1.5
--- menus.c 2000/11/14 19:38:44 1.4
+++ menus.c 2000/11/22 04:58:37 1.5
@@ -1,9 +1,14 @@
#include "message.h"
#include "core.h"
+#include "menus.h"
#include "callbacks.h"
#include "prefs.h"
+#include <dirent.h>
+#include <sys/stat.h>
+#include <sys/types.h>
ConfigData config;
+extern GtkWidget *toolbar;
/*static GtkItemFactoryEntry main_menu_items[] = {
{"/File", NULL, NULL, 0, "<Branch>"},
@@ -66,7 +71,7 @@
{
GtkWidget *menu, *file, *filemenu, *edit, *editmenu, *view,
*viewmenu, *help, *helpmenu;
- GtkWidget *quit, *accounts, *preferences, *toolbar, *toolbarmenu,
+ GtkWidget *quit, *accounts, *preferences, *themes, *themesmenu, *toolbar, *toolbarmenu,
*show, *text, *icons, *both, *about, *message_list,
*message_listmenu, *mpriority, *mread, *mattachment, *mscore,
*mfrom, *msubject, *mdate, *mserver;
@@ -115,6 +120,14 @@
viewmenu = gtk_menu_new();
gtk_menu_item_set_submenu(GTK_MENU_ITEM(view), viewmenu);
+ themes = gtk_menu_item_new_with_label("Themes");
+ gtk_menu_append(GTK_MENU(viewmenu), themes);
+
+ themesmenu = gtk_menu_new();
+ gtk_menu_item_set_submenu(GTK_MENU_ITEM(themes), themesmenu);
+
+ create_themes_menu(themesmenu);
+
toolbar = gtk_menu_item_new_with_label("Toolbar");
gtk_menu_append(GTK_MENU(viewmenu), toolbar);
@@ -263,4 +276,70 @@
gtk_menu_append(GTK_MENU(helpmenu), about);
return (menu);
+}
+
+void create_themes_menu(GtkWidget *menu)
+{
+ gint i;
+ gchar *dirs[] = {g_strconcat(getenv("HOME"), "/.core/themes", NULL),
+ g_strconcat(CORE_SHARE, "/themes", NULL)};
+
+ for (i = 0 ; i < 2 ; i++) {
+ gchar *dirname = dirs[i];
+ DIR *dir;
+ struct dirent *dent;
+ struct stat stats;
+ dir = opendir(dirname);
+ if (dir) {
+ GtkWidget *menu_item;
+ GtkWidget *label;
+ GtkWidget *hbox;
+ GdkBitmap *bitmap;
+ GdkColormap *colormap;
+ GdkPixmap *pixmap;
+ GtkWidget *icon;
+ while ((dent = readdir(dir))) {
+ gchar *temp = g_strconcat(dirname, "/", dent->d_name, NULL);
+ stat(temp, &stats);
+ if (!S_ISDIR(stats.st_mode)) {
+ g_free(temp);
+ continue;
+ }
+ if (!strcmp(dent->d_name, ".")) {
+ continue;
+ g_free(temp);
+ }
+ if (!strcmp(dent->d_name, "..")) {
+ g_free(temp);
+ continue;
+ }
+ menu_item = gtk_menu_item_new();
+ label = gtk_label_new(dent->d_name);
+ colormap = gtk_widget_get_colormap(menu_item);
+ pixmap = gdk_pixmap_colormap_create_from_xpm(NULL, colormap,
+ &bitmap, NULL,
+ g_strconcat(dirname, "/",
+ dent->d_name, "/new.xpm", NULL));
+ icon = gtk_pixmap_new(pixmap, bitmap);
+
+ hbox = gtk_hbox_new(0,8);
+ gtk_box_pack_start(GTK_BOX(hbox), icon, FALSE, FALSE, 0);
+ gtk_box_pack_start(GTK_BOX(hbox), label, FALSE, FALSE, 0);
+ gtk_container_add(GTK_CONTAINER(menu_item), hbox);
+ gtk_signal_connect(GTK_OBJECT(menu_item), "activate", GTK_SIGNAL_FUNC(switch_theme), g_strdup(dent->d_name));
+ gtk_menu_append(GTK_MENU(menu), menu_item);
+ g_free(temp);
+ }
+ }
+ }
+ return;
+}
+
+void switch_theme(gchar *theme)
+{
+ config.theme = g_strdup(theme);
+ set_theme_dir();
+ gtk_widget_destroy(toolbar);
+ create_main_toolbar();
+ return;
}
===================================================================
RCS file: /cvsroot/corem/core/src/panes.c,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -3 -r1.6 -r1.7
--- panes.c 2000/11/21 22:33:40 1.6
+++ panes.c 2000/11/22 04:58:37 1.7
@@ -172,35 +172,29 @@
if (config.ml_from == 1) {
gtk_clist_set_column_width(GTK_CLIST(mail_ctree), ifrom,
- 250);
+ 237);
gtk_clist_set_column_auto_resize(GTK_CLIST(mail_ctree),
ifrom, FALSE);
}
if (config.ml_subject == 1) {
- gtk_clist_set_column_auto_resize(GTK_CLIST(mail_ctree),
- isubject, TRUE);
+ gtk_clist_set_column_width(GTK_CLIST(mail_ctree), isubject,
+ 175);
}
if (config.ml_date == 1) {
gtk_clist_set_column_width(GTK_CLIST(mail_ctree), idate,
- 100);
- gtk_clist_set_column_auto_resize(GTK_CLIST(mail_ctree),
- idate, FALSE);
+ 150);
}
if (config.ml_server == 1) {
gtk_clist_set_column_width(GTK_CLIST(mail_ctree), iserver,
40);
- gtk_clist_set_column_auto_resize(GTK_CLIST(mail_ctree),
- iserver, FALSE);
}
if (config.ml_priority) {
gtk_clist_set_column_width(GTK_CLIST(mail_ctree),
ipriority, 40);
- gtk_clist_set_column_auto_resize(GTK_CLIST(mail_ctree),
- ipriority, FALSE);
}
if (config.ml_read == 1) {
|