aboutsummaryrefslogtreecommitdiff
path: root/src/textadept.c
diff options
context:
space:
mode:
authormitchell <70453897+667e-11@users.noreply.github.com>2010-03-10 02:55:33 -0500
committermitchell <70453897+667e-11@users.noreply.github.com>2010-03-10 02:55:33 -0500
commit69aa7111af192403ee612be1aaa87555beabe145 (patch)
tree9501f45bc24d535084da5dddce2087073b90edae /src/textadept.c
parent9ccdc7a172c6a60ce948e4c5093603f02b530750 (diff)
downloadtextadept-69aa7111af192403ee612be1aaa87555beabe145.tar.gz
textadept-69aa7111af192403ee612be1aaa87555beabe145.zip
Removed side pane.
Diffstat (limited to 'src/textadept.c')
-rw-r--r--src/textadept.c231
1 files changed, 1 insertions, 230 deletions
diff --git a/src/textadept.c b/src/textadept.c
index fa94a469..afa3b9c6 100644
--- a/src/textadept.c
+++ b/src/textadept.c
@@ -30,27 +30,6 @@ static OSErr w_ae_open(const AppleEvent *, AppleEvent *, long);
static OSErr w_ae_quit(const AppleEvent *, AppleEvent *, long);
#endif
-// Project Manager
-GtkWidget *pm_view, *pm_entry, *pm_container;
-GtkWidget *pm_create_ui();
-GtkTreeStore *pm_store;
-
-static int pm_search_equal_func(GtkTreeModel *, int, const char *,
- GtkTreeIter *, gpointer);
-static int pm_sort_iter_compare_func(GtkTreeModel *, GtkTreeIter *,
- GtkTreeIter *, gpointer);
-static void pm_entry_activated(GtkWidget *, gpointer);
-static void pm_entry_changed(GtkComboBoxEntry *, gpointer);
-static gbool pm_keypress(GtkWidget *, GdkEventKey *, gpointer);
-static void pm_row_expanded(GtkTreeView *, GtkTreeIter *, GtkTreePath *,
- gpointer);
-static void pm_row_collapsed(GtkTreeView *, GtkTreeIter *, GtkTreePath *,
- gpointer);
-static void pm_row_activated(GtkTreeView *, GtkTreePath *,
- GtkTreeViewColumn *, gpointer);
-static gbool pm_buttonpress(GtkTreeView *, GdkEventButton *, gpointer);
-static gbool pm_popup_menu(GtkWidget *, gpointer);
-
// Find/Replace
GtkWidget *findbox, *find_entry, *replace_entry, *fnext_button, *fprev_button,
*r_button, *ra_button, *match_case_opt, *whole_word_opt, *lua_opt,
@@ -163,14 +142,8 @@ void create_ui() {
menubar = gtk_menu_bar_new();
gtk_box_pack_start(GTK_BOX(vbox), menubar, FALSE, FALSE, 0);
- GtkWidget *pane = gtk_hpaned_new();
- gtk_box_pack_start(GTK_BOX(vbox), pane, TRUE, TRUE, 0);
-
- GtkWidget *pm = pm_create_ui();
- gtk_paned_add1(GTK_PANED(pane), pm);
-
GtkWidget *hbox = gtk_hbox_new(FALSE, 0);
- gtk_paned_add2(GTK_PANED(pane), hbox);
+ gtk_box_pack_start(GTK_BOX(vbox), hbox, TRUE, TRUE, 0);
GtkWidget *editor = new_scintilla_window(0);
gtk_box_pack_start(GTK_BOX(hbox), editor, TRUE, TRUE, 0);
@@ -551,208 +524,6 @@ static OSErr w_ae_quit(const AppleEvent *event, AppleEvent *reply, long ref) {
}
#endif
-// Project Manager
-
-/**
- * Creates the Project Manager pane.
- * It consists of an entry box and a treeview called 'textadept-pm-entry' and
- * 'textadept-pm-view' respectively for styling via gtkrc. The treeview model
- * consists of a gdk-pixbuf for icons and markup text.
- */
-GtkWidget *pm_create_ui() {
- pm_container = gtk_vbox_new(FALSE, 1);
-
- GtkWidget *pm_combo = gtk_combo_box_entry_new_text();
- gtk_combo_box_set_focus_on_click(GTK_COMBO_BOX(pm_combo), FALSE);
- pm_entry = gtk_bin_get_child(GTK_BIN(pm_combo));
- gtk_widget_set_name(pm_entry, "textadept-pm-entry");
- gtk_box_pack_start(GTK_BOX(pm_container), pm_combo, FALSE, FALSE, 0);
-
- pm_store = gtk_tree_store_new(3, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
- GtkTreeSortable *sortable = GTK_TREE_SORTABLE(pm_store);
- gtk_tree_sortable_set_sort_column_id(sortable, 1, GTK_SORT_ASCENDING);
- gtk_tree_sortable_set_sort_func(sortable, 1, pm_sort_iter_compare_func,
- GINT_TO_POINTER(1), NULL);
-
- pm_view = gtk_tree_view_new_with_model(GTK_TREE_MODEL(pm_store));
- g_object_unref(pm_store);
- gtk_widget_set_name(pm_view, "textadept-pm-view");
- gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(pm_view), FALSE);
- gtk_tree_view_set_enable_search(GTK_TREE_VIEW(pm_view), TRUE);
- gtk_tree_view_set_search_column(GTK_TREE_VIEW(pm_view), 2);
- gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(pm_view),
- pm_search_equal_func, NULL, NULL);
-
- GtkTreeViewColumn *column = gtk_tree_view_column_new();
- GtkCellRenderer *renderer;
- renderer = gtk_cell_renderer_pixbuf_new(); // pixbuf
- gtk_tree_view_column_pack_start(column, renderer, FALSE);
- gtk_tree_view_column_set_attributes(column, renderer, "stock-id", 0, NULL);
- renderer = gtk_cell_renderer_text_new(); // markup text
- gtk_tree_view_column_pack_start(column, renderer, TRUE);
- gtk_tree_view_column_set_attributes(column, renderer, "markup", 2, NULL);
- gtk_tree_view_append_column(GTK_TREE_VIEW(pm_view), column);
-
- GtkWidget *scrolled = gtk_scrolled_window_new(NULL, NULL);
- gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolled),
- GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
- gtk_container_add(GTK_CONTAINER(scrolled), pm_view);
- gtk_box_pack_start(GTK_BOX(pm_container), scrolled, TRUE, TRUE, 0);
-
- signal(pm_entry, "activate", pm_entry_activated);
- signal(pm_combo, "changed", pm_entry_changed);
- signal(pm_entry, "key-press-event", pm_keypress);
- signal(pm_view, "key-press-event", pm_keypress);
- signal(pm_view, "row-expanded", pm_row_expanded);
- signal(pm_view, "row-collapsed", pm_row_collapsed);
- signal(pm_view, "row-activated", pm_row_activated);
- signal(pm_view, "button-press-event", pm_buttonpress);
- signal(pm_view, "popup-menu", pm_popup_menu);
-
- return pm_container;
-}
-
-/**
- * Toggles the focus between the Project Manager and the current Scintilla
- * window.
- */
-void pm_toggle_focus() {
- gtk_widget_grab_focus(
- GTK_WIDGET_HAS_FOCUS(focused_editor) ? pm_entry : focused_editor);
-}
-
-/**
- * When searching the Project Manager treeview, matches are tree items that
- * contain the search text as a substring.
- * @param model The GtkTreeModel for the treeview.
- * @param col The column number to use for comparing search text to.
- * @param key The search text.
- * @param iter The GtkTreeIter for each tree node being compared.
- */
-static int pm_search_equal_func(GtkTreeModel *model, int col, const char *key,
- GtkTreeIter *iter, gpointer udata) {
- const char *text;
- gtk_tree_model_get(model, iter, col, &text, -1);
- return strstr(text, key) == NULL; // FALSE is really a match like strcmp
-}
-
-/**
- * Sorts the Project Manager treeview case sensitively.
- * @param model The GtkTreeModel for the treeview.
- * @param a The GtkTreeIter for one tree node being compared.
- * @param b The GtkTreeIter for the other tree node being compared.
- */
-static int pm_sort_iter_compare_func(GtkTreeModel *model, GtkTreeIter *a,
- GtkTreeIter *b, gpointer udata) {
- char *a_text, *b_text, *p;
- gtk_tree_model_get(model, a, 1, &a_text, -1);
- gtk_tree_model_get(model, b, 1, &b_text, -1);
- if (a_text) for (p = a_text; *p != '\0'; p++) *p = g_ascii_tolower(*p);
- if (b_text) for (p = b_text; *p != '\0'; p++) *p = g_ascii_tolower(*p);
- int retval = g_strcmp0(a_text, b_text);
- g_free(a_text);
- g_free(b_text);
- return retval;
-}
-
-// Signals
-
-/**
- * Signal for the activation of the Project Manager entry.
- * Requests contents for the Project Manager.
- */
-static void pm_entry_activated(GtkWidget *entry, gpointer udata) {
- l_handle_event("pm_contents_request", LUA_TTABLE,
- l_pm_pathtableref(pm_store, NULL), LUA_TNIL, 0, -1);
-}
-
-/**
- * Signal for a change of the text in the Project Manager entry.
- * Requests contents for the Project Manager.
- */
-static void pm_entry_changed(GtkComboBoxEntry *entry, gpointer udata) {
- l_handle_event("pm_contents_request", LUA_TTABLE,
- l_pm_pathtableref(pm_store, NULL), LUA_TNIL, 0, -1);
-}
-
-/**
- * Signal for a Project Manager keypress.
- * Currently handled keypresses:
- * - Escape - Refocuses the Scintilla view.
- */
-static gbool pm_keypress(GtkWidget *pm, GdkEventKey *event, gpointer udata) {
- if (event->keyval == 0xff1b) {
- gtk_widget_grab_focus(focused_editor);
- return TRUE;
- } else return FALSE;
-}
-
-/**
- * Signal for a Project Manager parent expansion.
- * Requests contents for a Project Manager parent node being opened.
- * Since a parent is given a dummy child by default in order to indicate that
- * it is a parent, that dummy child is removed.
- */
-static void pm_row_expanded(GtkTreeView *view, GtkTreeIter *iter,
- GtkTreePath *path, gpointer udata) {
- char *path_str = gtk_tree_path_to_string(path);
- l_handle_event("pm_contents_request", LUA_TTABLE,
- l_pm_pathtableref(pm_store, path), LUA_TSTRING, path_str, -1);
- g_free(path_str);
-}
-
-/**
- * Signal for a Project Manager parent collapse.
- * Removes all Project Manager children from a parent node being closed.
- * Re-adds a dummy child to indicate this parent is still a parent. It will be
- * removed when the parent is re-opened.
- */
-static void pm_row_collapsed(GtkTreeView *view, GtkTreeIter *iter,
- GtkTreePath *path, gpointer udata) {
- GtkTreeIter child;
- gtk_tree_model_iter_nth_child(GTK_TREE_MODEL(pm_store), &child, iter, 0);
- while (gtk_tree_model_iter_has_child(GTK_TREE_MODEL(pm_store), iter))
- gtk_tree_store_remove(pm_store, &child);
- gtk_tree_store_append(pm_store, &child, iter);
- gtk_tree_store_set(pm_store, &child, 1, "\0dummy", -1);
-}
-
-/**
- * Signal for the activation of a Project Manager node.
- * Performs the appropriate action on a selected Project Manager node.
- * If the node is a collapsed parent, it is expanded; otherwise the parent is
- * collapsed. If the node is not a parent at all, a Lua action is performed.
- */
-static void pm_row_activated(GtkTreeView *view, GtkTreePath *path,
- GtkTreeViewColumn *column, gpointer udata) {
- if (!gtk_tree_view_expand_row(view, path, FALSE))
- if (!gtk_tree_view_collapse_row(view, path))
- l_handle_event("pm_item_selected", LUA_TTABLE,
- l_pm_pathtableref(pm_store, path), -1);
-}
-
-/**
- * Signal for a Project Manager mouse click.
- * If it is a right-click, popup a context menu for the selected item.
- * @see l_pm_popup_context_menu
- */
-static gbool pm_buttonpress(GtkTreeView *view, GdkEventButton *event,
- gpointer udata) {
- if (event->type != GDK_BUTTON_PRESS || event->button != 3) return FALSE;
- l_pm_popup_context_menu(event);
- return TRUE;
-}
-
-/**
- * Signal for popping up a Project Manager context menu.
- * Typically Shift+F10 activates this event.
- * @see l_pm_popup_context_menu
- */
-static gbool pm_popup_menu(GtkWidget *view, gpointer udata) {
- l_pm_popup_context_menu(NULL);
- return TRUE;
-}
-
// Find/Replace
#define attach(w, x1, x2, y1, y2, xo, yo, xp, yp) \