diff --git a/control-center/ChangeLog b/control-center/ChangeLog index 156df632d..256449784 100644 --- a/control-center/ChangeLog +++ b/control-center/ChangeLog @@ -1,3 +1,17 @@ +2001-07-18 Richard Hestilow + + * capplet-dir.c (capplet_new): Remove annoying debugging output. + + * capplet-dir-view-html.c: Rewritten to use jimmac's new interface. + + * bcg_top.png, title.png, blank.png, active.png: Added. + + * Makefile.am (splash_DATA): Add new pixmap files. + + * gnomecc.glade: Remove ugly toolbar. + + * capplet-dir-view.[ch]: Remove toolbar-related code. + 2001-07-18 Chema Celorio * capplet-dir.c (get_root_capplet_dir): if the directory is not found, warn diff --git a/control-center/Makefile.am b/control-center/Makefile.am index 200839bd0..30cfb74af 100644 --- a/control-center/Makefile.am +++ b/control-center/Makefile.am @@ -3,13 +3,10 @@ appicon_DATA = control-center.png splashdir = $(datadir)/pixmaps/gnomecc splash_DATA = \ - ccsplash.png \ - bgtop.png \ - bg.png \ - empty.png \ - foot.png \ - left_top.png \ - left.png + bcg_top.png \ + title.png \ + blank.png \ + active.png sysdir = $(datadir)/gnome/apps/Settings sys_in_files = gnomecc.desktop.in diff --git a/control-center/capplet-dir-view-html.c b/control-center/capplet-dir-view-html.c index 7dff7579c..f4cf3d738 100644 --- a/control-center/capplet-dir-view-html.c +++ b/control-center/capplet-dir-view-html.c @@ -33,7 +33,9 @@ typedef struct { GtkHTML *top; + GtkHTML *sidebar; GtkHTML *main; + CappletDir *root_dir; } HtmlViewData; static void @@ -121,6 +123,11 @@ write_parent_html (CappletDir *dir, GtkHTML *html, GtkHTMLStream *stream) g_free (s); } +static gboolean save_cb (gpointer engine, gchar *data, guint len, gpointer user_data) +{ + fprintf (user_data, data); +} + static void header_populate (CappletDirView *view) { @@ -131,26 +138,116 @@ header_populate (CappletDirView *view) data = view->view_data; stream = gtk_html_begin (data->top); -#warning this should probably be loaded from a file yo - s = -"\n" -"\n" -"\n" -"\n" -"\"\"\n" -"\"\"\n" -"\"Gnome\"\n" -"\"\"\n" -"Your Gnome\n" -#if 0 -"\n" -#endif -"\n" -""; - + s = g_strdup_printf ( +"" +"" +"" +"" +"" +"" +"
\"\"%s   %s
" +"", + _("GNOME Control Center:"), CAPPLET_DIR_ENTRY (view->capplet_dir)->label); gtk_html_write (data->top, stream, s, strlen (s)); + g_free (s); + gtk_html_end (data->top, stream, GTK_HTML_STREAM_OK); - gtk_widget_set_usize (GTK_WIDGET (data->top), 0, 110); +} + +static void +sidebar_populate (CappletDirView *view) +{ + GtkHTMLStream *stream; + HtmlViewData *data; + CappletDirEntry *entry; + GSList *item; + char *s; + + data = view->view_data; + stream = gtk_html_begin (data->sidebar); + + s = g_strdup_printf ( +"" +"" +"" +"" +"" +"" +"" +"", CAPPLET_DIR_ENTRY (data->root_dir)->path, CAPPLET_DIR_ENTRY (data->root_dir)->icon, CAPPLET_DIR_ENTRY (data->root_dir)->path, CAPPLET_DIR_ENTRY (data->root_dir)->label, (data->root_dir == view->capplet_dir) ? ART_DIR "/active.png" : ART_DIR "/blank.png"); + gtk_html_write (data->sidebar, stream, s, strlen (s)); + g_free (s); + + for (item = data->root_dir->entries; item; item = item->next) { + entry = CAPPLET_DIR_ENTRY (item->data); + if (entry->type != TYPE_CAPPLET_DIR) + continue; + s = g_strdup_printf ("", entry->path, entry->icon, entry->path, entry->label, (CAPPLET_DIR (entry) == view->capplet_dir) ? ART_DIR "/active.png" : ART_DIR "/blank.png"); + gtk_html_write (data->sidebar, stream, s, strlen (s)); + g_free (s); + } + + s = +"
 
\"\"%s\"\"
\"\"%s\"\"
"; + gtk_html_write (data->sidebar, stream, s, strlen (s)); +} + +/* Write a row of up to 4 items and return a pointer to the next 4 */ +static GSList* +html_write_row (GtkHTML *html, GtkHTMLStream *stream, GSList *list) +{ + CappletDirEntry *entry; + int i; + char *s; + GSList *item; + int the_max = 3; + + s = ""; + gtk_html_write (html, stream, s, strlen (s)); + + g_return_val_if_fail (list != NULL, NULL); + + i = 0; + for (item = list; item; item = item->next) { + entry = CAPPLET_DIR_ENTRY (item->data); + if (entry->type != TYPE_CAPPLET) + continue; + s = g_strdup_printf ("
\"\"
", entry->path, entry->icon); + gtk_html_write (html, stream, s, strlen (s)); + g_free (s); + + /* Control. Can't go in for-decl because it would inc in all + * cases, including the skipped directories. */ + i++; + if (!(i < the_max)) + break; + } + + s = ""; + gtk_html_write (html, stream, s, strlen (s)); + + i = 0; + for (item = list; item; item = item->next) { + entry = CAPPLET_DIR_ENTRY (item->data); + if (entry->type != TYPE_CAPPLET) + continue; + s = g_strdup_printf ("
%s
", entry->path, entry->label); + gtk_html_write (html, stream, s, strlen (s)); + g_free (s); + + i++; + if (!(i < the_max)) + { + item = item->next; + break; + } + } + + s = g_strdup_printf ("\n", the_max * 2 + 1); + gtk_html_write (html, stream, s, strlen (s)); + g_free (s); + + return item; } static void @@ -158,75 +255,33 @@ html_populate (CappletDirView *view) { HtmlViewData *data; GtkHTMLStream *stream; - CappletDirEntry *entry; GSList *item; - int i; char *s; - header_populate (view); - data = view->view_data; + + if (!data->root_dir) + data->root_dir = view->capplet_dir; + + header_populate (view); + sidebar_populate (view); + stream = gtk_html_begin (data->main); - s = -"\n" -"\n" -" \n" -" GNOME Control Center\n" -" \n" -" \n" -" \n" -#if 0 -" \n" -" \n" -" \n" -" \n" -" \n" -" \n" -"
\n" -" \n" -" %s\n" -"
\n" -#endif -" \n" -#if 0 -" \n" -" \n" -" <\tr>\n" -#endif -" \n" -"
\n" -" Select something you want to customize.\n" -"
\n" -"  \n"; - + s = +"" +"" +"" +"" +"" +""; gtk_html_write (data->main, stream, s, strlen (s)); /* write_parent_html (view->capplet_dir->entry.dir, data->main, stream); */ - for (i = 0, item = view->capplet_dir->entries; item; item = item->next, i++) { - if (!(i%2)) { - s = " \n"; - gtk_html_write (data->main, stream, s, strlen (s)); - } - - entry = CAPPLET_DIR_ENTRY (item->data); - s = g_strdup_printf ( -" \n" -" \n" -, entry->path, entry->icon, entry->path, entry->label, entry->entry->comment); - - gtk_html_write (data->main, stream, s, strlen (s)); - g_free (s); - - if (i%2 || !item->next) { - s = " \n"; - gtk_html_write (data->main, stream, s, strlen (s)); - } + for (item = view->capplet_dir->entries; item; ) + { + item = html_write_row (data->main, stream, item); } s = @@ -236,45 +291,68 @@ html_populate (CappletDirView *view) gtk_html_write (data->main, stream, s, strlen (s)); gtk_html_end (data->main, stream, GTK_HTML_STREAM_OK); +// gtk_widget_set_usize (GTK_WIDGET (data->main), html_engine_calc_min_width (data->main->engine), 0); +// g_print ("%i\n", html_engine_calc_min_width (data->main->engine)); } static GtkWidget * html_create (CappletDirView *view) { GtkWidget *vbox; + GtkWidget *hbox; HtmlViewData *data; GtkWidget *sw; data = g_new (HtmlViewData, 1); view->view_data = data; - vbox = gtk_vbox_new (FALSE, 0); + data->root_dir = NULL; + vbox = gtk_vbox_new (FALSE, 0); /* top widget */ data->top = GTK_HTML (gtk_html_new ()); - sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_NEVER, GTK_POLICY_NEVER); gtk_container_add (GTK_CONTAINER (sw), GTK_WIDGET (data->top)); + gtk_widget_set_usize (GTK_WIDGET (data->top), 0, 48); gtk_box_pack_start (GTK_BOX (vbox), sw, FALSE, FALSE, 0); + hbox = gtk_hbox_new (FALSE, 0); + gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0); + + /* sidebar */ + data->sidebar = GTK_HTML (gtk_html_new ()); + sw = gtk_scrolled_window_new (NULL, NULL); + gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), + GTK_POLICY_NEVER, + GTK_POLICY_AUTOMATIC); + gtk_container_add (GTK_CONTAINER (sw), GTK_WIDGET (data->sidebar)); + gtk_widget_set_usize (GTK_WIDGET (data->sidebar), 200, 0); + gtk_box_pack_start (GTK_BOX (hbox), sw, FALSE, FALSE, 0); + /* main widget */ data->main = GTK_HTML (gtk_html_new ()); sw = gtk_scrolled_window_new (NULL, NULL); gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (sw), GTK_POLICY_NEVER, - GTK_POLICY_AUTOMATIC); + GTK_POLICY_ALWAYS); gtk_container_add (GTK_CONTAINER (sw), GTK_WIDGET (data->main)); - gtk_box_pack_start (GTK_BOX (vbox), sw, TRUE, TRUE, 0); - + gtk_box_pack_start (GTK_BOX (hbox), sw, TRUE, TRUE, 0); + gtk_signal_connect (GTK_OBJECT (data->top), "url_requested", GTK_SIGNAL_FUNC (handle_url_cb), view); + gtk_signal_connect (GTK_OBJECT (data->sidebar), "url_requested", + GTK_SIGNAL_FUNC (handle_url_cb), view); + gtk_signal_connect (GTK_OBJECT (data->main), "url_requested", GTK_SIGNAL_FUNC (handle_url_cb), view); + gtk_signal_connect (GTK_OBJECT (data->sidebar), "link_clicked", + GTK_SIGNAL_FUNC (handle_link_cb), view); + gtk_signal_connect (GTK_OBJECT (data->main), "link_clicked", GTK_SIGNAL_FUNC (handle_link_cb), view); diff --git a/control-center/capplet-dir-view.c b/control-center/capplet-dir-view.c index 69bdb2153..b07e1e422 100644 --- a/control-center/capplet-dir-view.c +++ b/control-center/capplet-dir-view.c @@ -57,13 +57,6 @@ static gboolean authed; static void capplet_dir_view_update_authenticated (CappletDirView *view, gpointer null) { - if (authed) { - gtk_widget_hide (view->rootm_locked); - gtk_widget_show (view->rootm_unlocked); - } else { - gtk_widget_hide (view->rootm_unlocked); - gtk_widget_show (view->rootm_locked); - } } void @@ -128,20 +121,6 @@ capplet_dir_view_set_arg (GtkObject *object, GtkArg *arg, guint arg_id) gtk_widget_show (view->view); } - gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (view->list_menu), - layout == LAYOUT_ICON_LIST); - gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (view->tree_menu), - layout == LAYOUT_TREE); - gtk_check_menu_item_set_active (GTK_CHECK_MENU_ITEM (view->html_menu), - layout == LAYOUT_HTML); - - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (view->list_toggle), - layout == LAYOUT_ICON_LIST); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (view->tree_toggle), - layout == LAYOUT_TREE); - gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (view->html_toggle), - layout == LAYOUT_HTML); - view->changing_layout = FALSE; break; default: @@ -362,20 +341,6 @@ capplet_dir_view_new (void) window_list = g_list_append (window_list, view); view->app = GNOME_APP (glade_xml_get_widget (xml, "main_window")); - view->up_button = glade_xml_get_widget (xml, "back_button"); - view->parents_option = glade_xml_get_widget (xml, "parents_option"); - view->html_toggle = glade_xml_get_widget (xml, "html_toggle"); - view->list_toggle = glade_xml_get_widget (xml, "list_toggle"); - view->tree_toggle = glade_xml_get_widget (xml, "tree_toggle"); - view->html_menu = glade_xml_get_widget (xml, "html_menu"); - view->list_menu = glade_xml_get_widget (xml, "list_menu"); - view->tree_menu = glade_xml_get_widget (xml, "tree_menu"); - view->rootm_button = glade_xml_get_widget (xml, "rootm_button"); - view->rootm_locked = glade_xml_get_widget (xml, "rootm_locked"); - view->rootm_unlocked = glade_xml_get_widget (xml, "rootm_unlocked"); - - if (!gnome_preferences_get_toolbar_relief_btn ()) - gtk_button_set_relief (GTK_BUTTON (view->rootm_button), GTK_RELIEF_NONE); gtk_signal_connect (GTK_OBJECT (view->app), "destroy", GTK_SIGNAL_FUNC (destroy), view); @@ -390,14 +355,6 @@ capplet_dir_view_new (void) glade_xml_signal_connect_data (xml, "close_cb", close_cb, view); glade_xml_signal_connect_data (xml, "exit_cb", exit_cb, view); - glade_xml_signal_connect_data (xml, "html_menu_cb", html_menu_cb, view); - glade_xml_signal_connect_data (xml, "icon_menu_cb", icon_menu_cb, view); - glade_xml_signal_connect_data (xml, "tree_menu_cb", tree_menu_cb, view); - - glade_xml_signal_connect_data (xml, "html_toggle_cb", html_toggle_cb, view); - glade_xml_signal_connect_data (xml, "list_toggle_cb", list_toggle_cb, view); - glade_xml_signal_connect_data (xml, "tree_toggle_cb", tree_toggle_cb, view); - glade_xml_signal_connect_data (xml, "prefs_menu_cb", prefs_menu_cb, view); glade_xml_signal_connect_data (xml, "about_menu_cb", about_menu_cb, view); glade_xml_signal_connect_data (xml, "back_button_cb", back_button_cb, view); @@ -464,11 +421,6 @@ capplet_dir_view_load_dir (CappletDirView *view, CappletDir *dir) if (view->impl && view->impl->populate) view->impl->populate (view); - if (CAPPLET_DIR_ENTRY (dir)->dir == NULL) - gtk_widget_set_sensitive (view->up_button, FALSE); - else - gtk_widget_set_sensitive (view->up_button, TRUE); - menu = gtk_menu_new (); for (entry = CAPPLET_DIR_ENTRY (dir); entry; entry = CAPPLET_DIR_ENTRY (entry->dir), parents++) { @@ -495,9 +447,6 @@ capplet_dir_view_load_dir (CappletDirView *view, CappletDir *dir) gtk_menu_prepend (GTK_MENU (menu), menuitem); } gtk_widget_show_all (menu); - gtk_option_menu_set_menu (GTK_OPTION_MENU (view->parents_option), menu); - gtk_option_menu_set_history (GTK_OPTION_MENU (view->parents_option), parents-1); - } diff --git a/control-center/capplet-dir-view.h b/control-center/capplet-dir-view.h index 429a7d32c..923ca842d 100644 --- a/control-center/capplet-dir-view.h +++ b/control-center/capplet-dir-view.h @@ -71,21 +71,6 @@ struct _CappletDirView gboolean destroyed; CappletDirViewLayout layout; - GtkWidget *up_button; - GtkWidget *parents_option; - - GtkWidget *html_toggle; - GtkWidget *list_toggle; - GtkWidget *tree_toggle; - - GtkWidget *html_menu; - GtkWidget *list_menu; - GtkWidget *tree_menu; - - GtkWidget *rootm_button; - GtkWidget *rootm_locked; - GtkWidget *rootm_unlocked; - gboolean changing_layout; }; diff --git a/control-center/capplet-dir.c b/control-center/capplet-dir.c index 12d5c6712..744e12bc7 100644 --- a/control-center/capplet-dir.c +++ b/control-center/capplet-dir.c @@ -61,8 +61,6 @@ capplet_new (CappletDir *dir, gchar *desktop_path) g_return_val_if_fail (desktop_path != NULL, NULL); - g_print ("reading %s\n", desktop_path); - entry = g_hash_table_lookup (capplet_hash, desktop_path); if (entry) { g_print ("hash hit!!\n"); diff --git a/control-center/gnomecc.glade b/control-center/gnomecc.glade index 833a16f12..bdc24c6b0 100644 --- a/control-center/gnomecc.glade +++ b/control-center/gnomecc.glade @@ -257,7 +257,8 @@ GTK_WINDOW_TOPLEVELGTK_WIN_POS_NONEFalse - 300 + 500 + 400TrueTrueFalse @@ -346,7 +347,7 @@ False - False + Trueview_group @@ -360,7 +361,7 @@ False - False + Trueview_group @@ -374,7 +375,7 @@ True - False + Trueview_group @@ -426,245 +427,6 @@ - - GnomeDockItem - dockitem3 - GNOME_DOCK_TOP - 1 - 0 - 0 - False - True - False - False - False - GTK_SHADOW_OUT - - - GtkHBox - hbox1 - True - 0 - - - GtkHBox - hbox3 - False - 0 - - 0 - True - True - - - - GtkToolbar - toolbar4 - GTK_ORIENTATION_HORIZONTAL - GTK_TOOLBAR_ICONS - 5 - GTK_TOOLBAR_SPACE_EMPTY - GTK_RELIEF_NORMAL - True - - 0 - True - True - - - - GtkButton - rootm_button - True - - clicked - rootm_button_cb - Thu, 07 Dec 2000 22:22:55 GMT - - GTK_RELIEF_NONE - - - GtkHBox - hbox3 - False - 0 - - - GnomePixmap - rootm_locked - 24 - 24 - gnome-lockscreen.png - - 0 - True - True - - - - - GnomePixmap - rootm_unlocked - 24 - 24 - False - gnome-unlockscreen.png - - 0 - True - True - - - - - - - - GtkLabel - label3 - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - 0 - True - True - - - - - - GtkToolbar - toolbar1 - 1 - GTK_ORIENTATION_HORIZONTAL - GTK_TOOLBAR_ICONS - 8 - GTK_TOOLBAR_SPACE_EMPTY - GTK_RELIEF_NONE - True - - 0 - True - True - - - - GtkButton - Toolbar:button - back_button - - clicked - back_button_cb - Tue, 05 Dec 2000 02:56:16 GMT - - - GNOME_STOCK_PIXMAP_BACK - - - - GtkOptionMenu - parents_option - True - - 0 - - - - - GtkHBox - hbox2 - False - 0 - - 4 - True - True - GTK_PACK_END - - - - GtkLabel - label2 - - GTK_JUSTIFY_CENTER - False - 0.5 - 0.5 - 0 - 0 - - 0 - True - True - - - - - GtkToolbar - toolbar3 - GTK_ORIENTATION_HORIZONTAL - GTK_TOOLBAR_ICONS - 5 - GTK_TOOLBAR_SPACE_EMPTY - GTK_RELIEF_NORMAL - True - - 0 - False - False - - - - GtkToggleButton - Toolbar:button - html_toggle - - toggled - html_toggle_cb - Tue, 05 Dec 2000 02:56:32 GMT - - - html-view.xpm - True - - - - GtkToggleButton - Toolbar:button - list_toggle - - toggled - list_toggle_cb - Tue, 05 Dec 2000 02:56:48 GMT - - - icon-view.xpm - False - - - - GtkToggleButton - Toolbar:button - tree_toggle - - toggled - tree_toggle_cb - Tue, 05 Dec 2000 02:56:59 GMT - - - tree-view.xpm - False - - - - - - Placeholder GnomeDock:contents
\n" -" \n" -" %s
\n" -" %s\n" -"