Use the current directory when there are no documents open.
Add popup menu with Open command. Separate toolbar code from init(). git-svn-id: https://geany.svn.sourceforge.net/svnroot/geany/trunk@1972 ea778897-0a13-0410-b9d1-a72fbfd435f5
This commit is contained in:
parent
601dfd69f7
commit
b8cdb9774a
@ -9,6 +9,10 @@
|
||||
Make ui_set_statusbar() take a log argument for whether to record the
|
||||
message in the Status window.
|
||||
(Plugin API functions already do this).
|
||||
* plugins/filebrowser.c:
|
||||
Use the current directory when there are no documents open.
|
||||
Add popup menu with Open command.
|
||||
Separate toolbar code from init().
|
||||
|
||||
|
||||
2007-10-23 Nick Treleaven <nick(dot)treleaven(at)btinternet(dot)com>
|
||||
|
||||
@ -32,6 +32,7 @@
|
||||
#include "prefs.h"
|
||||
#include "document.h"
|
||||
#include "utils.h"
|
||||
#include "keybindings.h"
|
||||
#include "plugindata.h"
|
||||
|
||||
|
||||
@ -181,13 +182,15 @@ static void on_current_path()
|
||||
gchar *dir;
|
||||
gint idx = documents->get_cur_idx();
|
||||
|
||||
if (! DOC_IDX_VALID(idx))
|
||||
return;
|
||||
|
||||
if (DOC_IDX_VALID(idx))
|
||||
{
|
||||
fname = DOC_FILENAME(idx);
|
||||
fname = utils->get_locale_from_utf8(fname);
|
||||
dir = g_path_get_dirname(fname);
|
||||
g_free(fname);
|
||||
}
|
||||
else
|
||||
dir = g_strdup(".");
|
||||
|
||||
setptr(current_dir, dir);
|
||||
refresh();
|
||||
@ -268,10 +271,51 @@ static void open_selected_files()
|
||||
}
|
||||
|
||||
|
||||
static GtkWidget *create_popup_menu()
|
||||
{
|
||||
GtkWidget *item, *menu;
|
||||
|
||||
menu = gtk_menu_new();
|
||||
|
||||
item = gtk_image_menu_item_new_from_stock(GTK_STOCK_OPEN, NULL);
|
||||
gtk_widget_show(item);
|
||||
gtk_container_add(GTK_CONTAINER(menu), item);
|
||||
g_signal_connect((gpointer) item, "activate",
|
||||
G_CALLBACK(open_selected_files), NULL);
|
||||
|
||||
item = gtk_separator_menu_item_new();
|
||||
gtk_widget_show(item);
|
||||
gtk_container_add(GTK_CONTAINER(menu), item);
|
||||
|
||||
item = gtk_image_menu_item_new_with_mnemonic(_("H_ide sidebar"));
|
||||
gtk_image_menu_item_set_image(GTK_IMAGE_MENU_ITEM(item),
|
||||
gtk_image_new_from_stock("gtk-close", GTK_ICON_SIZE_MENU));
|
||||
gtk_widget_show(item);
|
||||
gtk_container_add(GTK_CONTAINER(menu), item);
|
||||
g_signal_connect_swapped((gpointer) item, "activate",
|
||||
G_CALLBACK(geany_data->keybindings->send_command),
|
||||
GINT_TO_POINTER(GEANY_KEYS_MENU_SIDEBAR));
|
||||
|
||||
return menu;
|
||||
}
|
||||
|
||||
|
||||
static gboolean on_button_press(GtkWidget *widget, GdkEventButton *event, gpointer user_data)
|
||||
{
|
||||
if (event->button == 1 && event->type == GDK_2BUTTON_PRESS)
|
||||
open_selected_files();
|
||||
else
|
||||
if (event->button == 3)
|
||||
{
|
||||
static GtkWidget *popup_menu = NULL;
|
||||
|
||||
if (popup_menu == NULL)
|
||||
popup_menu = create_popup_menu();
|
||||
|
||||
gtk_menu_popup(GTK_MENU(popup_menu), NULL, NULL, NULL, NULL,
|
||||
event->button, event->time);
|
||||
return TRUE;
|
||||
}
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
@ -346,17 +390,12 @@ static void prepare_file_view()
|
||||
}
|
||||
|
||||
|
||||
void init(GeanyData *data)
|
||||
static GtkWidget *make_toolbar()
|
||||
{
|
||||
GtkWidget *scrollwin, *wid, *vbox, *toolbar;
|
||||
GtkWidget *wid, *toolbar;
|
||||
GtkTooltips *tooltips = GTK_TOOLTIPS(support->lookup_widget(
|
||||
geany_data->app->window, "tooltips"));
|
||||
|
||||
file_view = gtk_tree_view_new();
|
||||
prepare_file_view();
|
||||
|
||||
vbox = gtk_vbox_new(FALSE, 0);
|
||||
|
||||
toolbar = gtk_toolbar_new();
|
||||
gtk_toolbar_set_icon_size(GTK_TOOLBAR(toolbar), GTK_ICON_SIZE_MENU);
|
||||
|
||||
@ -384,12 +423,25 @@ void init(GeanyData *data)
|
||||
g_signal_connect(G_OBJECT(wid), "clicked", G_CALLBACK(on_current_path), NULL);
|
||||
gtk_container_add(GTK_CONTAINER(toolbar), wid);
|
||||
|
||||
return toolbar;
|
||||
}
|
||||
|
||||
|
||||
void init(GeanyData *data)
|
||||
{
|
||||
GtkWidget *scrollwin, *toolbar, *vbox;
|
||||
|
||||
vbox = gtk_vbox_new(FALSE, 0);
|
||||
toolbar = make_toolbar();
|
||||
gtk_box_pack_start(GTK_BOX(vbox), toolbar, FALSE, FALSE, 0);
|
||||
|
||||
path_entry = gtk_entry_new();
|
||||
gtk_editable_set_editable(GTK_EDITABLE(path_entry), FALSE);
|
||||
gtk_box_pack_start(GTK_BOX(vbox), path_entry, FALSE, FALSE, 2);
|
||||
|
||||
file_view = gtk_tree_view_new();
|
||||
prepare_file_view();
|
||||
|
||||
scrollwin = gtk_scrolled_window_new(NULL, NULL);
|
||||
gtk_scrolled_window_set_policy(
|
||||
GTK_SCROLLED_WINDOW(scrollwin),
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user