2005-09-06 09:21:05 -07:00
|
|
|
/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 4; coding: utf-8 -*-
|
2005-09-09 02:40:10 -07:00
|
|
|
* kate: space-indent on; indent-width 4; replace-tabs on;
|
2005-06-22 11:20:32 -07:00
|
|
|
*
|
|
|
|
* Copyright (C) 2004-2005 by Yevgen Muntyan <muntyan@math.tamu.edu>
|
|
|
|
*
|
|
|
|
* This program is free software; you can redistribute it and/or modify
|
|
|
|
* it under the terms of the GNU General Public License as published by
|
|
|
|
* the Free Software Foundation; either version 2 of the License, or
|
|
|
|
* (at your option) any later version.
|
|
|
|
*
|
|
|
|
* See COPYING file that comes with this distribution.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifdef HAVE_CONFIG_H
|
|
|
|
#include <config.h>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#define MOOEDIT_COMPILATION
|
|
|
|
#include "mooedit/mooeditprefs.h"
|
|
|
|
#include "mooedit/mooedit-private.h"
|
2005-09-09 02:40:10 -07:00
|
|
|
#include "mooedit/mootextbuffer.h"
|
2005-06-22 11:20:32 -07:00
|
|
|
#include <string.h>
|
|
|
|
|
|
|
|
|
2005-07-29 04:51:36 -07:00
|
|
|
#define STR_STACK_SIZE 4
|
|
|
|
|
2005-06-22 11:20:32 -07:00
|
|
|
const char *moo_edit_setting (const char *setting_name)
|
|
|
|
{
|
2005-07-29 04:51:36 -07:00
|
|
|
static GString *stack[STR_STACK_SIZE];
|
|
|
|
static guint p;
|
|
|
|
|
2005-06-22 11:20:32 -07:00
|
|
|
g_return_val_if_fail (setting_name != NULL, NULL);
|
2005-07-29 04:51:36 -07:00
|
|
|
|
|
|
|
if (!stack[0])
|
|
|
|
{
|
|
|
|
for (p = 0; p < STR_STACK_SIZE; ++p)
|
|
|
|
stack[p] = g_string_new ("");
|
|
|
|
p = STR_STACK_SIZE - 1;
|
|
|
|
}
|
|
|
|
|
|
|
|
if (p == STR_STACK_SIZE - 1)
|
|
|
|
p = 0;
|
|
|
|
else
|
|
|
|
p++;
|
|
|
|
|
|
|
|
g_string_printf (stack[p], MOO_EDIT_PREFS_PREFIX "/%s", setting_name);
|
|
|
|
return stack[p]->str;
|
2005-06-22 11:20:32 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static void set_matching_bracket_styles (MooEdit *edit);
|
|
|
|
static void set_font (MooEdit *edit);
|
|
|
|
static void set_text_colors (MooEdit *edit);
|
|
|
|
static void set_highlight_current_line (MooEdit *edit);
|
|
|
|
|
|
|
|
|
2005-07-28 12:25:10 -07:00
|
|
|
#define NEW_KEY_BOOL(s,v) moo_prefs_new_key_bool (MOO_EDIT_PREFS_PREFIX "/" s, v)
|
|
|
|
#define NEW_KEY_INT(s,v) moo_prefs_new_key_int (MOO_EDIT_PREFS_PREFIX "/" s, v)
|
|
|
|
#define NEW_KEY_STRING(s,v) moo_prefs_new_key_string (MOO_EDIT_PREFS_PREFIX "/" s, v)
|
|
|
|
#define NEW_KEY_COLOR(s,v) moo_prefs_new_key_color (MOO_EDIT_PREFS_PREFIX "/" s, v)
|
2005-07-29 04:51:36 -07:00
|
|
|
#define NEW_KEY_ENUM(s,t,v) moo_prefs_new_key_enum (MOO_EDIT_PREFS_PREFIX "/" s, t, v)
|
2005-06-22 11:20:32 -07:00
|
|
|
|
|
|
|
void _moo_edit_set_default_settings (void)
|
|
|
|
{
|
|
|
|
GtkSettings *settings;
|
|
|
|
GtkStyle *style;
|
2005-07-28 12:25:10 -07:00
|
|
|
GdkColor color;
|
|
|
|
|
|
|
|
NEW_KEY_BOOL (MOO_EDIT_PREFS_SEARCH_SELECTED, FALSE);
|
|
|
|
NEW_KEY_BOOL (MOO_EDIT_PREFS_SMART_HOME_END, TRUE);
|
|
|
|
NEW_KEY_INT (MOO_EDIT_PREFS_TABS_WIDTH, 8);
|
|
|
|
NEW_KEY_BOOL (MOO_EDIT_PREFS_SPACES_NO_TABS, FALSE);
|
|
|
|
NEW_KEY_BOOL (MOO_EDIT_PREFS_AUTO_INDENT, FALSE);
|
|
|
|
NEW_KEY_BOOL (MOO_EDIT_PREFS_LIMIT_UNDO, FALSE);
|
|
|
|
NEW_KEY_INT (MOO_EDIT_PREFS_LIMIT_UNDO_NUM, 25);
|
|
|
|
NEW_KEY_BOOL (MOO_EDIT_PREFS_WRAP_ENABLE, FALSE);
|
|
|
|
NEW_KEY_BOOL (MOO_EDIT_PREFS_WRAP_DONT_SPLIT_WORDS, TRUE);
|
|
|
|
NEW_KEY_BOOL (MOO_EDIT_PREFS_SHOW_LINE_NUMBERS, FALSE);
|
|
|
|
NEW_KEY_BOOL (MOO_EDIT_PREFS_SHOW_MARGIN, FALSE);
|
|
|
|
NEW_KEY_INT (MOO_EDIT_PREFS_MARGIN, 80);
|
|
|
|
NEW_KEY_BOOL (MOO_EDIT_PREFS_CHECK_BRACKETS, TRUE);
|
|
|
|
NEW_KEY_BOOL (MOO_EDIT_PREFS_USE_DEFAULT_FONT, FALSE);
|
|
|
|
NEW_KEY_STRING (MOO_EDIT_PREFS_FONT, "Courier New 11");
|
|
|
|
NEW_KEY_BOOL (MOO_EDIT_PREFS_USE_DEFAULT_COLORS, TRUE);
|
|
|
|
NEW_KEY_BOOL (MOO_EDIT_PREFS_HIGHLIGHT_CURRENT_LINE, TRUE);
|
|
|
|
NEW_KEY_BOOL (MOO_EDIT_PREFS_USE_SYNTAX_HIGHLIGHTING, TRUE);
|
2005-07-29 04:51:36 -07:00
|
|
|
NEW_KEY_ENUM (MOO_EDIT_PREFS_ON_EXTERNAL_CHANGES,
|
|
|
|
MOO_TYPE_EDIT_ON_EXTERNAL_CHANGES,
|
|
|
|
MOO_EDIT_RELOAD_IF_SAFE);
|
2005-06-22 11:20:32 -07:00
|
|
|
|
|
|
|
settings = gtk_settings_get_default ();
|
|
|
|
style = gtk_rc_get_style_by_paths (settings, "MooEdit", "MooEdit", MOO_TYPE_EDIT);
|
|
|
|
if (!style) style = gtk_style_new ();
|
|
|
|
else g_object_ref (G_OBJECT (style));
|
|
|
|
g_return_if_fail (style != NULL);
|
|
|
|
|
2005-07-28 12:25:10 -07:00
|
|
|
NEW_KEY_COLOR (MOO_EDIT_PREFS_FOREGROUND, &(style->text[GTK_STATE_NORMAL]));
|
|
|
|
NEW_KEY_COLOR (MOO_EDIT_PREFS_BACKGROUND, &(style->base[GTK_STATE_NORMAL]));
|
|
|
|
NEW_KEY_COLOR (MOO_EDIT_PREFS_SELECTED_FOREGROUND, &(style->text[GTK_STATE_SELECTED]));
|
|
|
|
NEW_KEY_COLOR (MOO_EDIT_PREFS_SELECTED_BACKGROUND, &(style->base[GTK_STATE_SELECTED]));
|
2005-06-22 11:20:32 -07:00
|
|
|
|
2005-07-28 12:25:10 -07:00
|
|
|
gdk_color_parse ("#EEF6FF", &color);
|
|
|
|
NEW_KEY_COLOR (MOO_EDIT_PREFS_HIGHLIGHT_CURRENT_LINE_COLOR, &color);
|
|
|
|
gdk_color_parse ("#FFFF99", &color);
|
|
|
|
NEW_KEY_COLOR (MOO_EDIT_MATCHING_BRACKETS_CORRECT "/" MOO_EDIT_PREFS_BACKGROUND, &color);
|
|
|
|
gdk_color_parse ("red", &color);
|
|
|
|
NEW_KEY_COLOR (MOO_EDIT_MATCHING_BRACKETS_INCORRECT "/" MOO_EDIT_PREFS_BACKGROUND, &color);
|
2005-06-22 11:20:32 -07:00
|
|
|
|
2005-07-28 12:25:10 -07:00
|
|
|
g_object_unref (G_OBJECT (style));
|
2005-06-22 11:20:32 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
2005-07-28 12:25:10 -07:00
|
|
|
#define get_string(key) moo_prefs_get_string (MOO_EDIT_PREFS_PREFIX "/" key)
|
|
|
|
#define get_bool(key) moo_prefs_get_bool (MOO_EDIT_PREFS_PREFIX "/" key)
|
|
|
|
#define get_int(key) moo_prefs_get_int (MOO_EDIT_PREFS_PREFIX "/" key)
|
|
|
|
#define get_color(key) moo_prefs_get_color (MOO_EDIT_PREFS_PREFIX "/" key)
|
2005-07-29 04:51:36 -07:00
|
|
|
#define get_enum(key) moo_prefs_get_enum (MOO_EDIT_PREFS_PREFIX "/" key)
|
2005-06-22 11:20:32 -07:00
|
|
|
|
|
|
|
void _moo_edit_apply_settings (MooEdit *edit)
|
|
|
|
{
|
|
|
|
GtkSourceView *view = GTK_SOURCE_VIEW (edit);
|
|
|
|
GtkTextView *text_view = GTK_TEXT_VIEW (edit);
|
2005-09-06 09:21:05 -07:00
|
|
|
GtkSourceBuffer *buffer = GTK_SOURCE_BUFFER (gtk_text_view_get_buffer (GTK_TEXT_VIEW (edit)));
|
2005-06-22 11:20:32 -07:00
|
|
|
|
|
|
|
gtk_source_view_set_smart_home_end (view, get_bool (MOO_EDIT_PREFS_SMART_HOME_END));
|
|
|
|
gtk_source_view_set_auto_indent (view, get_bool (MOO_EDIT_PREFS_AUTO_INDENT));
|
|
|
|
gtk_source_view_set_insert_spaces_instead_of_tabs (view, get_bool (MOO_EDIT_PREFS_SPACES_NO_TABS));
|
|
|
|
|
|
|
|
if (get_bool (MOO_EDIT_PREFS_LIMIT_UNDO))
|
|
|
|
gtk_source_buffer_set_max_undo_levels (buffer, 0);
|
|
|
|
else
|
|
|
|
gtk_source_buffer_set_max_undo_levels (buffer, get_int (MOO_EDIT_PREFS_LIMIT_UNDO_NUM));
|
|
|
|
|
2005-07-28 12:25:10 -07:00
|
|
|
if (get_bool (MOO_EDIT_PREFS_WRAP_ENABLE))
|
|
|
|
{
|
2005-06-22 11:20:32 -07:00
|
|
|
if (get_bool (MOO_EDIT_PREFS_WRAP_DONT_SPLIT_WORDS))
|
|
|
|
gtk_text_view_set_wrap_mode (text_view, GTK_WRAP_WORD);
|
|
|
|
else
|
|
|
|
gtk_text_view_set_wrap_mode (text_view, GTK_WRAP_CHAR);
|
|
|
|
}
|
|
|
|
else
|
2005-07-28 12:25:10 -07:00
|
|
|
{
|
2005-06-22 11:20:32 -07:00
|
|
|
gtk_text_view_set_wrap_mode (text_view, GTK_WRAP_NONE);
|
2005-07-28 12:25:10 -07:00
|
|
|
}
|
2005-06-22 11:20:32 -07:00
|
|
|
|
|
|
|
gtk_source_view_set_show_line_numbers (view, get_bool (MOO_EDIT_PREFS_SHOW_LINE_NUMBERS));
|
|
|
|
gtk_source_view_set_show_margin (view, get_bool (MOO_EDIT_PREFS_SHOW_MARGIN));
|
|
|
|
gtk_source_view_set_margin (view, get_int (MOO_EDIT_PREFS_MARGIN));
|
2005-09-09 02:40:10 -07:00
|
|
|
moo_text_buffer_set_check_brackets (MOO_TEXT_BUFFER (buffer),
|
|
|
|
get_bool (MOO_EDIT_PREFS_CHECK_BRACKETS));
|
2005-06-22 11:20:32 -07:00
|
|
|
set_matching_bracket_styles (edit);
|
|
|
|
set_highlight_current_line (edit);
|
|
|
|
gtk_source_buffer_set_highlight (buffer, get_bool (MOO_EDIT_PREFS_USE_SYNTAX_HIGHLIGHTING));
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void _moo_edit_apply_style_settings (MooEdit *edit)
|
|
|
|
{
|
|
|
|
set_text_colors (edit);
|
|
|
|
set_font (edit);
|
|
|
|
gtk_source_view_set_tabs_width (GTK_SOURCE_VIEW (edit),
|
|
|
|
get_int (MOO_EDIT_PREFS_TABS_WIDTH));
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
void _moo_edit_settings_changed (const char *key,
|
2005-08-04 23:32:53 -07:00
|
|
|
G_GNUC_UNUSED const GValue *newval,
|
2005-06-22 11:20:32 -07:00
|
|
|
MooEdit *edit)
|
|
|
|
{
|
2005-09-06 09:21:05 -07:00
|
|
|
GtkSourceBuffer *buffer = GTK_SOURCE_BUFFER (gtk_text_view_get_buffer (GTK_TEXT_VIEW (edit)));
|
2005-06-22 11:20:32 -07:00
|
|
|
|
2005-07-28 12:25:10 -07:00
|
|
|
if (!strcmp (key, MOO_EDIT_PREFS_PREFIX "/" MOO_EDIT_PREFS_LIMIT_UNDO) ||
|
|
|
|
!strcmp (key, MOO_EDIT_PREFS_PREFIX "/" MOO_EDIT_PREFS_LIMIT_UNDO_NUM))
|
2005-06-22 11:20:32 -07:00
|
|
|
{
|
|
|
|
if (get_bool (MOO_EDIT_PREFS_LIMIT_UNDO))
|
|
|
|
gtk_source_buffer_set_max_undo_levels (buffer, 0);
|
|
|
|
else
|
|
|
|
gtk_source_buffer_set_max_undo_levels (buffer, get_int (MOO_EDIT_PREFS_LIMIT_UNDO_NUM));
|
|
|
|
}
|
2005-07-28 12:25:10 -07:00
|
|
|
else if (!strncmp (key, MOO_EDIT_PREFS_PREFIX "/" MOO_EDIT_MATCHING_BRACKETS_CORRECT,
|
|
|
|
strlen (MOO_EDIT_PREFS_PREFIX "/" MOO_EDIT_MATCHING_BRACKETS_CORRECT)))
|
|
|
|
{
|
2005-06-22 11:20:32 -07:00
|
|
|
set_matching_bracket_styles (edit);
|
2005-07-28 12:25:10 -07:00
|
|
|
}
|
|
|
|
else if (!strncmp (key, MOO_EDIT_PREFS_PREFIX "/" MOO_EDIT_MATCHING_BRACKETS_INCORRECT,
|
|
|
|
strlen (MOO_EDIT_PREFS_PREFIX "/" MOO_EDIT_MATCHING_BRACKETS_INCORRECT)))
|
|
|
|
{
|
2005-06-22 11:20:32 -07:00
|
|
|
set_matching_bracket_styles (edit);
|
2005-07-28 12:25:10 -07:00
|
|
|
}
|
|
|
|
else if (!strcmp (key, MOO_EDIT_PREFS_PREFIX "/" MOO_EDIT_PREFS_USE_DEFAULT_FONT) ||
|
|
|
|
!strcmp (key, MOO_EDIT_PREFS_PREFIX "/" MOO_EDIT_PREFS_FONT))
|
|
|
|
{
|
2005-06-22 11:20:32 -07:00
|
|
|
set_font (edit);
|
2005-07-28 12:25:10 -07:00
|
|
|
}
|
|
|
|
else if (!strcmp (key, MOO_EDIT_PREFS_PREFIX "/" MOO_EDIT_PREFS_USE_DEFAULT_COLORS) ||
|
|
|
|
!strcmp (key, MOO_EDIT_PREFS_PREFIX "/" MOO_EDIT_PREFS_FOREGROUND) ||
|
|
|
|
!strcmp (key, MOO_EDIT_PREFS_PREFIX "/" MOO_EDIT_PREFS_BACKGROUND) ||
|
|
|
|
!strcmp (key, MOO_EDIT_PREFS_PREFIX "/" MOO_EDIT_PREFS_SELECTED_FOREGROUND) ||
|
|
|
|
!strcmp (key, MOO_EDIT_PREFS_PREFIX "/" MOO_EDIT_PREFS_SELECTED_BACKGROUND) ||
|
|
|
|
!strcmp (key, MOO_EDIT_PREFS_PREFIX "/" MOO_EDIT_PREFS_BACKGROUND) ||
|
|
|
|
!strcmp (key, MOO_EDIT_PREFS_PREFIX "/" MOO_EDIT_PREFS_BACKGROUND))
|
|
|
|
{
|
2005-06-22 11:20:32 -07:00
|
|
|
set_text_colors (edit);
|
2005-07-28 12:25:10 -07:00
|
|
|
}
|
|
|
|
else if (!strcmp (key, MOO_EDIT_PREFS_PREFIX "/" MOO_EDIT_PREFS_HIGHLIGHT_CURRENT_LINE_COLOR) ||
|
|
|
|
!strcmp (key, MOO_EDIT_PREFS_PREFIX "/" MOO_EDIT_PREFS_HIGHLIGHT_CURRENT_LINE))
|
|
|
|
{
|
2005-06-22 11:20:32 -07:00
|
|
|
set_highlight_current_line (edit);
|
2005-07-28 12:25:10 -07:00
|
|
|
}
|
|
|
|
else if (!strcmp (key, MOO_EDIT_PREFS_PREFIX "/" MOO_EDIT_PREFS_USE_SYNTAX_HIGHLIGHTING))
|
|
|
|
{
|
2005-06-22 11:20:32 -07:00
|
|
|
gtk_source_buffer_set_highlight (buffer, get_bool (MOO_EDIT_PREFS_USE_SYNTAX_HIGHLIGHTING));
|
2005-07-28 12:25:10 -07:00
|
|
|
}
|
2005-06-22 11:20:32 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static void set_matching_bracket_styles (MooEdit *edit)
|
|
|
|
{
|
2005-09-06 09:21:05 -07:00
|
|
|
GtkSourceBuffer *buffer = GTK_SOURCE_BUFFER (gtk_text_view_get_buffer (GTK_TEXT_VIEW (edit)));
|
2005-06-22 11:20:32 -07:00
|
|
|
GtkSourceTagStyle style;
|
|
|
|
const GdkColor *color;
|
|
|
|
|
|
|
|
style.is_default = TRUE;
|
|
|
|
|
|
|
|
style.mask = 0;
|
2005-07-28 12:25:10 -07:00
|
|
|
style.bold = get_bool (MOO_EDIT_MATCHING_BRACKETS_CORRECT "/" MOO_EDIT_PREFS_BOLD);
|
|
|
|
style.italic = get_bool (MOO_EDIT_MATCHING_BRACKETS_CORRECT "/" MOO_EDIT_PREFS_ITALIC);
|
|
|
|
style.underline = get_bool (MOO_EDIT_MATCHING_BRACKETS_CORRECT "/" MOO_EDIT_PREFS_UNDERLINE);
|
|
|
|
style.strikethrough = get_bool (MOO_EDIT_MATCHING_BRACKETS_CORRECT "/" MOO_EDIT_PREFS_STRIKETHROUGH);
|
|
|
|
color = get_color (MOO_EDIT_MATCHING_BRACKETS_CORRECT "/" MOO_EDIT_PREFS_BACKGROUND);
|
2005-09-09 02:40:10 -07:00
|
|
|
|
|
|
|
if (color)
|
|
|
|
{
|
2005-06-22 11:20:32 -07:00
|
|
|
style.background = *color;
|
|
|
|
style.mask |= GTK_SOURCE_TAG_STYLE_USE_BACKGROUND;
|
|
|
|
}
|
2005-09-09 02:40:10 -07:00
|
|
|
|
2005-07-28 12:25:10 -07:00
|
|
|
color = get_color (MOO_EDIT_MATCHING_BRACKETS_CORRECT "/" MOO_EDIT_PREFS_FOREGROUND);
|
2005-09-09 02:40:10 -07:00
|
|
|
|
|
|
|
if (color)
|
|
|
|
{
|
2005-06-22 11:20:32 -07:00
|
|
|
style.foreground = *color;
|
|
|
|
style.mask |= GTK_SOURCE_TAG_STYLE_USE_FOREGROUND;
|
|
|
|
}
|
2005-09-09 02:40:10 -07:00
|
|
|
|
|
|
|
moo_text_buffer_set_bracket_match_style (MOO_TEXT_BUFFER (buffer), &style);
|
|
|
|
|
|
|
|
// style.mask = 0;
|
|
|
|
// style.bold = get_bool (MOO_EDIT_MATCHING_BRACKETS_INCORRECT "/" MOO_EDIT_PREFS_BOLD);
|
|
|
|
// style.italic = get_bool (MOO_EDIT_MATCHING_BRACKETS_INCORRECT "/" MOO_EDIT_PREFS_ITALIC);
|
|
|
|
// style.underline = get_bool (MOO_EDIT_MATCHING_BRACKETS_INCORRECT "/" MOO_EDIT_PREFS_UNDERLINE);
|
|
|
|
// style.strikethrough = get_bool (MOO_EDIT_MATCHING_BRACKETS_INCORRECT "/" MOO_EDIT_PREFS_STRIKETHROUGH);
|
|
|
|
// color = get_color (MOO_EDIT_MATCHING_BRACKETS_INCORRECT "/" MOO_EDIT_PREFS_BACKGROUND);
|
|
|
|
//
|
|
|
|
// if (color)
|
|
|
|
// {
|
|
|
|
// style.background = *color;
|
|
|
|
// style.mask |= GTK_SOURCE_TAG_STYLE_USE_BACKGROUND;
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// color = get_color (MOO_EDIT_MATCHING_BRACKETS_INCORRECT "/" MOO_EDIT_PREFS_FOREGROUND);
|
|
|
|
//
|
|
|
|
// if (color)
|
|
|
|
// {
|
|
|
|
// style.foreground = *color;
|
|
|
|
// style.mask |= GTK_SOURCE_TAG_STYLE_USE_FOREGROUND;
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
// moo_text_buffer_set_bracket_match_style (MOO_TEXT_BUFFER (buffer), &style);
|
2005-06-22 11:20:32 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static void set_font (MooEdit *edit)
|
|
|
|
{
|
|
|
|
if (get_bool (MOO_EDIT_PREFS_USE_DEFAULT_FONT))
|
2005-09-09 02:40:10 -07:00
|
|
|
moo_text_view_set_font_from_string (MOO_TEXT_VIEW (edit), NULL);
|
2005-06-22 11:20:32 -07:00
|
|
|
else
|
2005-09-09 02:40:10 -07:00
|
|
|
moo_text_view_set_font_from_string (MOO_TEXT_VIEW (edit),
|
|
|
|
get_string (MOO_EDIT_PREFS_FONT));
|
2005-06-22 11:20:32 -07:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static void set_text_colors (MooEdit *edit)
|
|
|
|
{
|
|
|
|
GtkWidget *widget = GTK_WIDGET (edit);
|
|
|
|
|
|
|
|
if (!GTK_WIDGET_REALIZED (widget)) return;
|
|
|
|
|
|
|
|
if (get_bool (MOO_EDIT_PREFS_USE_DEFAULT_COLORS)) {
|
|
|
|
gtk_widget_modify_text (widget, GTK_STATE_NORMAL, NULL);
|
|
|
|
gtk_widget_modify_base (widget, GTK_STATE_NORMAL, NULL);
|
|
|
|
gtk_widget_modify_text (widget, GTK_STATE_SELECTED, NULL);
|
|
|
|
gtk_widget_modify_base (widget, GTK_STATE_SELECTED, NULL);
|
|
|
|
}
|
|
|
|
else {
|
|
|
|
gtk_widget_modify_text (widget, GTK_STATE_NORMAL,
|
|
|
|
get_color (MOO_EDIT_PREFS_FOREGROUND));
|
|
|
|
gtk_widget_modify_base (widget, GTK_STATE_NORMAL,
|
|
|
|
get_color (MOO_EDIT_PREFS_BACKGROUND));
|
|
|
|
gtk_widget_modify_text (widget, GTK_STATE_SELECTED,
|
|
|
|
get_color (MOO_EDIT_PREFS_SELECTED_FOREGROUND));
|
|
|
|
gtk_widget_modify_base (widget, GTK_STATE_SELECTED,
|
|
|
|
get_color (MOO_EDIT_PREFS_SELECTED_BACKGROUND));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
static void set_highlight_current_line (MooEdit *edit)
|
|
|
|
{
|
|
|
|
const GdkColor *color;
|
2005-07-25 06:11:00 -07:00
|
|
|
GdkColor c;
|
2005-09-09 02:40:10 -07:00
|
|
|
MooTextView *view = MOO_TEXT_VIEW (edit);
|
2005-06-22 11:20:32 -07:00
|
|
|
|
|
|
|
color = get_color (MOO_EDIT_PREFS_HIGHLIGHT_CURRENT_LINE_COLOR);
|
2005-07-28 12:25:10 -07:00
|
|
|
|
2005-06-22 11:20:32 -07:00
|
|
|
if (!color)
|
2005-07-28 12:25:10 -07:00
|
|
|
{
|
|
|
|
gdk_color_parse ("#EEF6FF", &c);
|
|
|
|
moo_prefs_set_color (MOO_EDIT_PREFS_PREFIX "/" MOO_EDIT_PREFS_HIGHLIGHT_CURRENT_LINE_COLOR, &c);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
c = *color;
|
|
|
|
}
|
2005-06-22 11:20:32 -07:00
|
|
|
|
2005-09-09 02:40:10 -07:00
|
|
|
moo_text_view_set_highlight_current_line (view, get_bool (MOO_EDIT_PREFS_HIGHLIGHT_CURRENT_LINE));
|
|
|
|
moo_text_view_set_current_line_color (view, &c);
|
2005-06-22 11:20:32 -07:00
|
|
|
}
|