* l3afpad-0.8.18.1.5

This commit is contained in:
Wen-Yen Chuang
2011-12-12 21:46:28 +08:00
parent a7614a0fc8
commit 56f41e9cd1
112 changed files with 7488 additions and 606 deletions

View File

@@ -212,16 +212,14 @@ void on_edit_select_all(void)
static void activate_quick_find(void)
{
GtkItemFactory *ifactory;
static gboolean flag = FALSE;
if (!flag) {
ifactory = gtk_item_factory_from_widget(pub->mw->menubar);
gtk_widget_set_sensitive(
gtk_item_factory_get_widget(ifactory, "/M/Search/FindNext"),
gtk_item_factory_get_widget(pub->mw->menubar, "/M/Search/FindNext"),
TRUE);
gtk_widget_set_sensitive(
gtk_item_factory_get_widget(ifactory, "/M/Search/FindPrevious"),
gtk_item_factory_get_widget(pub->mw->menubar, "/M/Search/FindPrevious"),
TRUE);
flag = TRUE;
}
@@ -261,24 +259,20 @@ void on_option_font(void)
void on_option_word_wrap(void)
{
GtkItemFactory *ifactory;
gboolean state;
ifactory = gtk_item_factory_from_widget(pub->mw->menubar);
state = gtk_check_menu_item_get_active(
GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(ifactory, "/M/Options/WordWrap")));
GTK_TOGGLE_ACTION(gtk_item_factory_get_item(pub->mw->menubar, "/M/Options/WordWrap")));
gtk_text_view_set_wrap_mode(GTK_TEXT_VIEW(pub->mw->view),
state ? GTK_WRAP_WORD : GTK_WRAP_NONE);
}
void on_option_line_numbers(void)
{
GtkItemFactory *ifactory;
gboolean state;
ifactory = gtk_item_factory_from_widget(pub->mw->menubar);
state = gtk_check_menu_item_get_active(
GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(ifactory, "/M/Options/LineNumbers")));
GTK_TOGGLE_ACTION(gtk_item_factory_get_item(pub->mw->menubar, "/M/Options/LineNumbers")));
show_line_numbers(pub->mw->view, state);
}
@@ -292,18 +286,16 @@ void on_option_always_on_top(void)
void on_option_auto_indent(void)
{
GtkItemFactory *ifactory;
gboolean state;
ifactory = gtk_item_factory_from_widget(pub->mw->menubar);
state = gtk_check_menu_item_get_active(
GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(ifactory, "/M/Options/AutoIndent")));
GTK_TOGGLE_ACTION(gtk_item_factory_get_item(pub->mw->menubar, "/M/Options/AutoIndent")));
indent_set_state(state);
}
void on_help_about(void)
{
const gchar *copyright = "Copyright \xc2\xa9 2004-2010 Tarot Osuji\nCopyright \xc2\xa9 2011 Wen-Yen Chuang";
const gchar *copyright = "Copyright \xc2\xa9 2004-2010 Tarot Osuji\nCopyright \xc2\xa9 2011 Wen-Yen Chuang\nCopyright \xc2\xa9 2011 Jack Gandy";
const gchar *comments = _("GTK+ based simple text editor");
const gchar *authors[] = {
"Tarot Osuji <tarot@sdf.lonestar.org>",
@@ -317,6 +309,7 @@ void on_help_about(void)
const gchar *artists[] = {
"Lapo Calamandrei <calamandrei@gmail.com>",
"Jack Gandy <scionicspectre@gmail.com>",
NULL
};
gtk_show_about_dialog(GTK_WINDOW(pub->mw->window),

View File

@@ -56,7 +56,7 @@ static void cb_key_press_event(GtkWidget *view, GdkEventKey *event)
case GDK_s:
case GDK_S:
if (GTK_WIDGET_IS_SENSITIVE(gtk_item_factory_get_widget(
gtk_item_factory_from_widget(pub->mw->menubar), "/M/File/Save")
pub->mw->menubar, "/M/File/Save")
))
on_file_save();
break;
@@ -106,7 +106,7 @@ static void emacs_key_prefix(void)
{
gulong id;
gtk_widget_set_sensitive(pub->mw->menubar, FALSE);
gtk_widget_set_sensitive(GTK_WIDGET(pub->mw->menubar), FALSE);
// gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(pub->mw->view), FALSE);
gtk_text_view_set_editable(GTK_TEXT_VIEW(pub->mw->view), FALSE);
/* waiting for release C-x */
@@ -123,10 +123,10 @@ static void emacs_key_prefix(void)
gtk_text_view_set_editable(GTK_TEXT_VIEW(pub->mw->view), TRUE);
// gtk_text_view_set_cursor_visible(GTK_TEXT_VIEW(pub->mw->view), TRUE);
gtk_widget_set_sensitive(pub->mw->menubar, TRUE);
gtk_widget_set_sensitive(GTK_WIDGET(pub->mw->menubar), TRUE);
}
gboolean check_emacs_key_theme(GtkWindow *window, GtkItemFactory *ifactory)
gboolean check_emacs_key_theme(GtkWindow *window, GtkUIManager *ifactory)
{
GtkAccelGroup *accel_group;
GSList *groups;

View File

@@ -60,4 +60,3 @@ void change_text_font_by_selector(GtkWidget *widget)
g_free(fontname);
g_free(current_fontname);
}

View File

@@ -221,4 +221,3 @@ void indent_multi_line_unindent(GtkTextBuffer *buffer)
gtk_text_buffer_move_mark_by_name(buffer, "insert", &end_iter);
}
}

View File

@@ -57,11 +57,7 @@
#endif
#include <gdk/gdkkeysyms-compat.h>
#undef GTK_CHECK_MENU_ITEM
#define GTK_CHECK_MENU_ITEM
#define GtkItemFactory GtkUIManager
#define gtk_check_menu_item_get_active gtk_toggle_action_get_active
#define gtk_item_factory_from_widget (GtkUIManager*)
#define gtk_item_factory_get_item(x,y) GTK_TOGGLE_ACTION(gtk_ui_manager_get_action(x,y))
#define gtk_item_factory_get_widget gtk_ui_manager_get_widget
#define GTK_OPTION_MENU GTK_COMBO_BOX
@@ -96,6 +92,15 @@
#define gtk_font_selection_dialog_get_font_name gtk_font_chooser_get_font
#define gtk_font_selection_dialog_set_font_name gtk_font_chooser_set_font
#endif
#if GTK_CHECK_VERSION(3,3,2)
#undef GTK_TABLE
#define GTK_TABLE GTK_GRID
#define gtk_table_attach_defaults(u,v,w,x,y,z) gtk_grid_attach(u,v,w,y,1,1)
#define gtk_table_new(x, y, z) gtk_grid_new()
#define gtk_table_set_col_spacing(x,y,z) gtk_grid_set_column_spacing(x,z)
#define gtk_table_set_col_spacings gtk_grid_set_column_spacing
#define gtk_table_set_row_spacings gtk_grid_set_row_spacing
#endif
typedef struct {
FileInfo *fi;

View File

@@ -55,9 +55,6 @@ get_lines (GtkTextView *text_view,
{
GtkTextIter iter;
gint count;
#if 0
gint size;
#endif
gint last_line_num;
g_array_set_size (buffer_coords, 0);
@@ -70,9 +67,6 @@ get_lines (GtkTextView *text_view,
* Stop when we pass y2
*/
count = 0;
#if 0
size = 0;
#endif
while (!gtk_text_iter_is_end (&iter))
{
@@ -115,7 +109,6 @@ static gint
line_numbers_expose (GtkWidget *widget, cairo_t *event)
{
GtkTextView *text_view;
// GtkStyle *style;
PangoLayout *layout;
PangoAttrList *alist;
PangoAttribute *attr;
@@ -126,36 +119,16 @@ line_numbers_expose (GtkWidget *widget, cairo_t *event)
gint layout_width;
gint justify_width = 0;
gint i;
// gchar *str;
gchar str [8]; /* we don't expect more than ten million lines */
#if 0
cairo_t *gc;
gint height;
#endif
if (line_number_visible){{{{{ // omit calculation
if (line_number_visible) {
text_view = GTK_TEXT_VIEW (widget);
/* See if this expose is on the line numbers window */
/* left_win = gtk_text_view_get_window (text_view,
GTK_TEXT_WINDOW_LEFT);
right_win = gtk_text_view_get_window (text_view,
GTK_TEXT_WINDOW_RIGHT);
if (event->window == left_win)
{
type = GTK_TEXT_WINDOW_LEFT;
target = event->window;
}
else if (event->window == right_win)
{
type = GTK_TEXT_WINDOW_RIGHT;
target = right_win;
}
else
return FALSE;
*/
#if 0
GdkWindow *win;
win = gtk_text_view_get_window (text_view,
@@ -163,9 +136,6 @@ line_numbers_expose (GtkWidget *widget, cairo_t *event)
if (event->window != win)
return FALSE;
// style = gtk_style_copy (widget->style);
// style = gtk_style_copy (gtk_widget_get_default_style());
y1 = event->area.y;
y2 = y1 + event->area.height;
#endif
@@ -197,8 +167,7 @@ line_numbers_expose (GtkWidget *widget, cairo_t *event)
/* a zero-lined document should display a "1"; we don't need to worry about
scrolling effects of the text widget in this special case */
if (count == 0)
{
if (count == 0) {
gint y = 0;
gint n = 0;
count = 1;
@@ -212,11 +181,9 @@ DV({g_print("Painting line numbers %d - %d\n",
layout = gtk_widget_create_pango_layout (widget, "");
// str = g_strdup_printf ("%d", gtk_text_buffer_get_line_count(text_view->buffer));
g_snprintf (str, sizeof (str),
"%d", MAX (99, gtk_text_buffer_get_line_count(gtk_text_view_get_buffer(text_view))));
pango_layout_set_text (layout, str, -1);
// g_free (str);
pango_layout_get_pixel_size (layout, &layout_width, NULL);
@@ -225,10 +192,8 @@ DV({g_print("Painting line numbers %d - %d\n",
gtk_text_view_set_border_window_size (text_view,
GTK_TEXT_WINDOW_LEFT, layout_width + margin + submargin);
else {
// if ((gtk_text_view_get_border_window_size (text_view, GTK_TEXT_WINDOW_LEFT) - 5) > layout_width) {
gtk_text_view_set_border_window_size (text_view,
GTK_TEXT_WINDOW_LEFT, min_number_window_width + margin + submargin);
// }
gtk_text_view_set_border_window_size (text_view,
GTK_TEXT_WINDOW_LEFT, min_number_window_width + margin + submargin);
justify_width = min_number_window_width - layout_width;
}
@@ -255,8 +220,7 @@ DV({g_print("Painting line numbers %d - %d\n",
/* Draw fully internationalized numbers! */
i = 0;
while (i < count)
{
while (i < count) {
gint pos;
gtk_text_view_buffer_to_window_coords (text_view,
@@ -265,8 +229,6 @@ DV({g_print("Painting line numbers %d - %d\n",
g_array_index (pixels, gint, i),
NULL,
&pos);
// str = g_strdup_printf ("%d", g_array_index (numbers, gint, i) + 1);
g_snprintf (str, sizeof (str),
"%d", g_array_index (numbers, gint, i) + 1);
@@ -277,20 +239,13 @@ DV({g_print("Painting line numbers %d - %d\n",
layout_width + justify_width + margin / 2 + 1,
pos,
layout);
// g_free (str);
++i;
}
g_array_free (pixels, TRUE);
g_array_free (numbers, TRUE);
g_object_unref (G_OBJECT (layout));
// g_object_ref (G_OBJECT (style));
/* don't stop emission, need to draw children */
}}}}}
}
#if 0
gc = gdk_gc_new(event->window);
@@ -334,35 +289,3 @@ void linenum_init(GtkWidget *text_view)
NULL);
show_line_numbers(text_view, FALSE);
}
/*
static void show_line_numbers(GtkWidget *text_view, gboolean visible)
{
gtk_text_view_set_border_window_size(
GTK_TEXT_VIEW(text_view),
GTK_TEXT_WINDOW_LEFT,
submargin);
if (visible) {
min_number_window_width = calculate_min_number_window_width(text_view);
// gtk_text_view_set_border_window_size(
// GTK_TEXT_VIEW(text_view),
// GTK_TEXT_WINDOW_LEFT,
// min_number_window_width + margin + submargin);
// submargin);
g_signal_connect(
G_OBJECT(text_view),
"draw",
G_CALLBACK(line_numbers_expose),
NULL);
} else {
// gtk_text_view_set_border_window_size(
// GTK_TEXT_VIEW(text_view),
// GTK_TEXT_WINDOW_LEFT,
// 0);
// submargin);
g_signal_handlers_disconnect_by_func(
G_OBJECT(text_view),
G_CALLBACK(line_numbers_expose),
NULL);
}
}
*/

View File

@@ -72,22 +72,20 @@ void save_config_file(void)
{
FILE *fp;
gchar *path;
GtkItemFactory *ifactory;
gint width, height;
gchar *fontname;
gboolean wordwrap, linenumbers, autoindent;
gtk_window_get_size(GTK_WINDOW(pub->mw->window), &width, &height);
fontname = pango_font_description_to_string(gtk_style_context_get_font(gtk_widget_get_style_context(pub->mw->view), 0));
ifactory = gtk_item_factory_from_widget(pub->mw->menubar);
wordwrap = gtk_check_menu_item_get_active(
GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(ifactory,
GTK_TOGGLE_ACTION(gtk_item_factory_get_item(pub->mw->menubar,
"/M/Options/WordWrap")));
linenumbers = gtk_check_menu_item_get_active(
GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(ifactory,
GTK_TOGGLE_ACTION(gtk_item_factory_get_item(pub->mw->menubar,
"/M/Options/LineNumbers")));
autoindent = gtk_check_menu_item_get_active(
GTK_CHECK_MENU_ITEM(gtk_item_factory_get_item(ifactory,
GTK_TOGGLE_ACTION(gtk_item_factory_get_item(pub->mw->menubar,
"/M/Options/AutoIndent")));
path = g_build_filename(g_get_user_config_dir(), PACKAGE, NULL);
@@ -187,7 +185,6 @@ static void parse_args(gint argc, gchar **argv, FileInfo *fi)
gint main(gint argc, gchar **argv)
{
Conf *conf;
GtkItemFactory *ifactory;
gchar *stdin_data = NULL;
bindtextdomain(PACKAGE, LOCALEDIR);
@@ -226,16 +223,15 @@ gint main(gint argc, gchar **argv)
GTK_WINDOW(pub->mw->window), conf->width, conf->height);
set_text_font_by_name(pub->mw->view, conf->fontname);
ifactory = gtk_item_factory_from_widget(pub->mw->menubar);
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(
(GtkCheckMenuItem*)gtk_item_factory_get_widget(ifactory, "/M/Options/WordWrap")),
gtk_item_factory_get_widget(pub->mw->menubar, "/M/Options/WordWrap")),
conf->wordwrap);
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(
(GtkCheckMenuItem*)gtk_item_factory_get_widget(ifactory, "/M/Options/LineNumbers")),
gtk_item_factory_get_widget(pub->mw->menubar, "/M/Options/LineNumbers")),
conf->linenumbers);
indent_refresh_tab_width(pub->mw->view);
gtk_check_menu_item_set_active(GTK_CHECK_MENU_ITEM(
(GtkCheckMenuItem*)gtk_item_factory_get_widget(ifactory, "/M/Options/AutoIndent")),
gtk_item_factory_get_widget(pub->mw->menubar, "/M/Options/AutoIndent")),
conf->autoindent);
gtk_widget_show_all(pub->mw->window);
@@ -243,13 +239,13 @@ gint main(gint argc, gchar **argv)
g_free(conf);
#if ENABLE_EMACS
check_emacs_key_theme(GTK_WINDOW(pub->mw->window), ifactory);
check_emacs_key_theme(GTK_WINDOW(pub->mw->window), pub->mw->menubar);
#endif
hlight_init(pub->mw->buffer);
undo_init(pub->mw->view,
gtk_item_factory_get_widget(ifactory, "/M/Edit/Undo"),
gtk_item_factory_get_widget(ifactory, "/M/Edit/Redo"));
gtk_item_factory_get_widget(pub->mw->menubar, "/M/Edit/Undo"),
gtk_item_factory_get_widget(pub->mw->menubar, "/M/Edit/Redo"));
// hlight_init(pub->mw->buffer);
dnd_init(pub->mw->view);

View File

@@ -121,11 +121,7 @@ static const gchar *ui_info =
static gchar *menu_translate(const gchar *path, gpointer data)
{
gchar *str;
str = (gchar *)_(path);
return str;
return _(path);
}
void menu_sensitivity_from_modified_flag(gboolean is_text_modified)
@@ -149,9 +145,9 @@ void menu_sensitivity_from_clipboard(void)
gtk_clipboard_get(GDK_SELECTION_CLIPBOARD)));
}
GtkWidget *create_menu_bar(GtkWidget *window)
GtkUIManager *create_menu_bar(GtkWidget *window)
{
GtkItemFactory *ifactory;
GtkUIManager *ifactory;
#if 0
gboolean flag_emacs = FALSE;
@@ -212,5 +208,5 @@ GtkWidget *create_menu_bar(GtkWidget *window)
menu_item_delete = gtk_item_factory_get_widget(ifactory, "/M/Edit/Delete");
menu_sensitivity_from_selection_bound(FALSE);
return (GtkWidget*)ifactory;
return ifactory;
}

View File

@@ -24,6 +24,6 @@ void menu_sensitivity_from_modified_flag(gboolean is_text_modified);
void menu_sensitivity_from_selection_bound(gboolean is_bound_exist);
//void menu_sensitivity_from_clipboard(gboolean is_clipboard_exist);
void menu_sensitivity_from_clipboard(void);
GtkWidget *create_menu_bar(GtkWidget *window);
GtkUIManager *create_menu_bar(GtkWidget *window);
#endif /* _MENU_H */

View File

@@ -405,7 +405,7 @@ void run_dialog_jump_to(GtkWidget *textview)
gtk_container_set_border_width (GTK_CONTAINER(table), 8);
gtk_box_pack_start(GTK_BOX(gtk_dialog_get_content_area(GTK_DIALOG(dialog))), table, FALSE, FALSE, 0);
label = gtk_label_new_with_mnemonic(_("_Line number:"));
spinner_adj = (GtkAdjustment *) gtk_adjustment_new(num, 1, max_num, 1, 1, 0);
spinner_adj = gtk_adjustment_new(num, 1, max_num, 1, 1, 0);
spinner = gtk_spin_button_new(spinner_adj, 1, 0);
gtk_entry_set_width_chars(GTK_ENTRY(spinner), 8);
gtk_label_set_mnemonic_widget(GTK_LABEL(label), spinner);

View File

@@ -26,34 +26,28 @@ static void cb_scroll_event(GtkAdjustment *adj, GtkWidget *view)
*/
MainWin *create_main_window(void)
{
GtkWidget *window;
GtkWidget *vbox;
GtkWidget *menubar;
GtkWidget *sw;
GtkWidget *view;
// gint size;
// GtkAdjustment *hadj, *vadj;
MainWin *mw = g_malloc(sizeof(MainWin));
window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
// gtk_window_set_title(GTK_WINDOW(window), PACKAGE_NAME);
gtk_widget_set_name(window, PACKAGE_NAME);
mw->window = gtk_window_new(GTK_WINDOW_TOPLEVEL);
gtk_widget_set_name(mw->window, PACKAGE_NAME);
gtk_window_set_icon_from_file(GTK_WINDOW(window), ICONDIR"/l3afpad.png", NULL);
gtk_window_set_icon_from_file(GTK_WINDOW(mw->window), ICONDIR"/l3afpad.png", NULL);
gtk_window_set_default_icon_name(PACKAGE);
g_signal_connect(G_OBJECT(window), "delete-event",
g_signal_connect(G_OBJECT(mw->window), "delete-event",
G_CALLBACK(on_file_quit), NULL);
g_signal_connect_after(G_OBJECT(window), "delete-event",
g_signal_connect_after(G_OBJECT(mw->window), "delete-event",
G_CALLBACK(gtk_widget_hide_on_delete), NULL);
vbox = gtk_vbox_new(FALSE, 0);
gtk_orientable_set_orientation(GTK_ORIENTABLE(vbox), GTK_ORIENTATION_VERTICAL);
gtk_container_add(GTK_CONTAINER(window), vbox);
gtk_container_add(GTK_CONTAINER(mw->window), vbox);
menubar = create_menu_bar(window);
gtk_box_pack_start(GTK_BOX(vbox), gtk_item_factory_get_widget(GTK_UI_MANAGER(menubar), "/M"), FALSE, FALSE, 0);
mw->menubar = create_menu_bar(mw->window);
gtk_box_pack_start(GTK_BOX(vbox), gtk_item_factory_get_widget(mw->menubar, "/M"), FALSE, FALSE, 0);
sw = gtk_scrolled_window_new(NULL, NULL);
gtk_widget_set_hexpand (sw, TRUE);
@@ -64,20 +58,9 @@ MainWin *create_main_window(void)
GTK_SHADOW_IN);
gtk_box_pack_start(GTK_BOX(vbox), sw, TRUE, TRUE, 0);
view = create_text_view();
gtk_container_add(GTK_CONTAINER(sw), view);
/*
hadj = gtk_scrolled_window_get_hadjustment(GTK_SCROLLED_WINDOW(sw));
vadj = gtk_scrolled_window_get_vadjustment(GTK_SCROLLED_WINDOW(sw));
g_signal_connect_after(G_OBJECT(hadj), "value-changed",
G_CALLBACK(cb_scroll_event), view);
g_signal_connect_after(G_OBJECT(vadj), "value-changed",
G_CALLBACK(cb_scroll_event), view);
*/
mw->window = window;
mw->menubar = menubar;
mw->view = view;
mw->buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(view));
mw->view = create_text_view();
gtk_container_add(GTK_CONTAINER(sw), mw->view);
mw->buffer = gtk_text_view_get_buffer(GTK_TEXT_VIEW(mw->view));
return mw;
}
@@ -90,4 +73,3 @@ void set_main_window_title(void)
gtk_window_set_title(GTK_WINDOW(pub->mw->window), title);
g_free(title);
}

View File

@@ -22,7 +22,7 @@
typedef struct {
GtkWidget *window;
GtkWidget *menubar;
GtkUIManager *menubar;
GtkWidget *view;
GtkTextBuffer *buffer;
} MainWin;