X-Git-Url: https://git.distorted.org.uk/~mdw/disorder/blobdiff_plain/2a3fe554189ec0e25f65ccb7c06b9705794d0f15..83fb99f9459f4f6a270d2b75c8dd0137d2f2ccde:/disobedience/choose.c diff --git a/disobedience/choose.c b/disobedience/choose.c index 353ed98..269a0cd 100644 --- a/disobedience/choose.c +++ b/disobedience/choose.c @@ -1,3 +1,4 @@ + /* * This file is part of DisOrder * Copyright (C) 2006-2008 Richard Kettlewell @@ -92,18 +93,6 @@ static struct { #define REPORT() ((void)0) #endif -WT(label); -WT(event_box); -WT(menu); -WT(menu_item); -WT(layout); -WT(vbox); -WT(arrow); -WT(hbox); -WT(button); -WT(image); -WT(entry); - /* Types */ struct choosenode; @@ -373,27 +362,22 @@ static void fill_root_node(struct choosenode *cn) { /** @brief Delete all the widgets owned by @p cn */ static void delete_cn_widgets(struct choosenode *cn) { if(cn->arrow) { - DW(arrow); gtk_widget_destroy(cn->arrow); cn->arrow = 0; } if(cn->label) { - DW(label); gtk_widget_destroy(cn->label); cn->label = 0; } if(cn->marker) { - DW(image); gtk_widget_destroy(cn->marker); cn->marker = 0; } if(cn->hbox) { - DW(hbox); gtk_widget_destroy(cn->hbox); cn->hbox = 0; } if(cn->container) { - DW(event_box); gtk_widget_destroy(cn->container); cn->container = 0; } @@ -866,11 +850,9 @@ static void redisplay_tree(const char *why) { files_selected = 0; files_visible = 0; /* Correct the layout and find out how much space it uses */ - MTAG_PUSH("display_tree"); searchnodes = nsearchresults ? xcalloc(nsearchresults, sizeof (struct choosenode *)) : 0; d = display_tree(root, 0, 0); - MTAG_POP(); BEGIN(gtkbits); /* We must set the total size or scrolling will not work (it wouldn't be hard @@ -919,12 +901,9 @@ static struct displaydata display_tree(struct choosenode *cn, int x, int y) { */ if(!cn->container) { BEGIN(new_widgets); - MTAG_PUSH("make_widgets_1"); /* Widgets need to be created */ - NW(hbox); cn->hbox = gtk_hbox_new(FALSE, 1); if(cn->flags & CN_EXPANDABLE) { - NW(arrow); cn->arrow = gtk_arrow_new(cn->flags & CN_EXPANDED ? GTK_ARROW_DOWN : GTK_ARROW_RIGHT, GTK_SHADOW_NONE); @@ -932,22 +911,15 @@ static struct displaydata display_tree(struct choosenode *cn, int x, int y) { } else { cn->arrow = 0; if((pb = find_image("notes.png"))) { - NW(image); cn->marker = gtk_image_new_from_pixbuf(pb); } } - MTAG_POP(); - MTAG_PUSH("make_widgets_2"); - NW(label); cn->label = gtk_label_new(cn->display); if(cn->arrow) gtk_container_add(GTK_CONTAINER(cn->hbox), cn->arrow); gtk_container_add(GTK_CONTAINER(cn->hbox), cn->label); if(cn->marker) gtk_container_add(GTK_CONTAINER(cn->hbox), cn->marker); - MTAG_POP(); - MTAG_PUSH("make_widgets_3"); - NW(event_box); cn->container = gtk_event_box_new(); gtk_container_add(GTK_CONTAINER(cn->container), cn->hbox); g_signal_connect(cn->container, "button-release-event", @@ -957,7 +929,6 @@ static struct displaydata display_tree(struct choosenode *cn, int x, int y) { g_object_ref(cn->container); /* Show everything by default */ gtk_widget_show_all(cn->container); - MTAG_POP(); END(new_widgets); } assert(cn->container); @@ -1377,48 +1348,18 @@ static gboolean sensitive_dir_select(struct choosenode attribute((unused)) *cn) return TRUE; } - - /* Main menu plumbing ------------------------------------------------------ */ /** @brief Determine whether the edit menu's properties option should be sensitive */ -static int choose_properties_sensitive(GtkWidget attribute((unused)) *w) { +static int choose_properties_sensitive(void attribute((unused)) *extra) { return !!files_selected && (disorder_eclient_state(client) & DISORDER_CONNECTED); } -/** @brief Determine whether the edit menu's select all option should be sensitive - * - * TODO not implemented, see also choose_selectall_activate() - */ -static int choose_selectall_sensitive(GtkWidget attribute((unused)) *w) { - return FALSE; -} - -/** @brief Determine whether the edit menu's select none option should be sensitive - * - * TODO not implemented, see also choose_selectnone_activate() - */ -static int choose_selectnone_sensitive(GtkWidget attribute((unused)) *w) { - return FALSE; -} - /** @brief Called when the edit menu's properties option is activated */ -static void choose_properties_activate(GtkWidget attribute((unused)) *w) { +static void choose_properties_activate(void attribute((unused)) *extra) { activate_track_properties(0, 0); } -/** @brief Called when the edit menu's select all option is activated - * - * TODO not implemented, see choose_selectall_sensitive() */ -static void choose_selectall_activate(GtkWidget attribute((unused)) *w) { -} - -/** @brief Called when the edit menu's select none option is activated - * - * TODO not implemented, see choose_selectnone_sensitive() */ -static void choose_selectnone_activate(GtkWidget attribute((unused)) *w) { -} - /** @brief Called when the choose tab is selected */ static void choose_tab_selected(void) { gtk_widget_grab_focus(searchentry); @@ -1427,12 +1368,13 @@ static void choose_tab_selected(void) { /** @brief Main menu callbacks for Choose screen */ static const struct tabtype tabtype_choose = { choose_properties_sensitive, - choose_selectall_sensitive, - choose_selectnone_sensitive, + NULL/*choose_selectall_sensitive*/, + NULL/*choose_selectnone_sensitive*/, choose_properties_activate, - choose_selectall_activate, - choose_selectnone_activate, + NULL/*choose_selectall_activate*/, + NULL/*choose_selectnone_activate*/, choose_tab_selected, + 0 }; /* Public entry points ----------------------------------------------------- */ @@ -1478,14 +1420,12 @@ GtkWidget *choose_widget(void) { */ /* Text entry box for search terms */ - NW(entry); searchentry = gtk_entry_new(); gtk_widget_set_style(searchentry, tool_style); g_signal_connect(searchentry, "changed", G_CALLBACK(searchentry_changed), 0); gtk_tooltips_set_tip(tips, searchentry, "Enter search terms here; search is automatic", ""); /* Cancel button to clear the search */ - NW(button); clearsearch = gtk_button_new_from_stock(GTK_STOCK_CANCEL); gtk_widget_set_style(clearsearch, tool_style); g_signal_connect(G_OBJECT(clearsearch), "clicked", @@ -1506,7 +1446,6 @@ GtkWidget *choose_widget(void) { gtk_widget_set_sensitive(nextsearch, 0); /* hbox packs the search tools button together on a line */ - NW(hbox); hbox = gtk_hbox_new(FALSE/*homogeneous*/, 1/*spacing*/); gtk_box_pack_start(GTK_BOX(hbox), searchentry, TRUE/*expand*/, TRUE/*fill*/, 0/*padding*/); @@ -1519,29 +1458,24 @@ GtkWidget *choose_widget(void) { /* chooselayout contains the currently visible subset of the track * namespace */ - NW(layout); chooselayout = gtk_layout_new(0, 0); gtk_widget_set_style(chooselayout, layout_style); choose_logged_in(0, 0, 0); event_register("logged-in", choose_logged_in, 0); /* Create the popup menus */ - NW(menu); track_menu = gtk_menu_new(); g_signal_connect(track_menu, "destroy", G_CALLBACK(gtk_widget_destroyed), &track_menu); for(n = 0; track_menuitems[n].name; ++n) { - NW(menu_item); track_menuitems[n].w = gtk_menu_item_new_with_label(track_menuitems[n].name); gtk_menu_attach(GTK_MENU(track_menu), track_menuitems[n].w, 0, 1, n, n + 1); } - NW(menu); dir_menu = gtk_menu_new(); g_signal_connect(dir_menu, "destroy", G_CALLBACK(gtk_widget_destroyed), &dir_menu); for(n = 0; dir_menuitems[n].name; ++n) { - NW(menu_item); dir_menuitems[n].w = gtk_menu_item_new_with_label(dir_menuitems[n].name); gtk_menu_attach(GTK_MENU(dir_menu), dir_menuitems[n].w, @@ -1552,7 +1486,6 @@ GtkWidget *choose_widget(void) { vadjust = gtk_layout_get_vadjustment(GTK_LAYOUT(chooselayout)); /* The scrollable layout and the search hbox go together in a vbox */ - NW(vbox); vbox = gtk_vbox_new(FALSE/*homogenous*/, 1/*spacing*/); gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE/*expand*/, FALSE/*fill*/, 0/*padding*/);