mirror of https://github.com/GNOME/gimp.git
cleanup.
2001-08-07 Michael Natterer <mitch@gimp.org> * libgimpwidgets/gimpbutton.[ch]: cleanup. * app/Makefile.am * app/errorconsole.[ch]: removed... * app/gui/Makefile.am * app/gui/error-console-dialog.[ch]: ...added here. Lots of cleanup, create a vbox instead of a dialog. * app/gui/dialogs-constructors.c * app/gui/dialogs.c: added a dockable for the error console. * app/errors.c * app/gui/gui.c * app/gui/menus.c: changed accordingly. * app/widgets/gimpcontainerview.c: conntect "extended_clicked" to the "extended_clicked" callback, not "clicked". * app/widgets/gimplayerlistview.c: set the layer option box' spacing in "style_set". * app/widgets/gimplistitem.c: argh. * themes/Default/gtkrc: changed the default theme to set a smaller font only for the dockable because that's where saving screen estate really makes sense. May need some further tweaking.
This commit is contained in:
parent
028f5e2d0c
commit
1c9069c4ca
30
ChangeLog
30
ChangeLog
|
@ -1,3 +1,33 @@
|
|||
2001-08-07 Michael Natterer <mitch@gimp.org>
|
||||
|
||||
* libgimpwidgets/gimpbutton.[ch]: cleanup.
|
||||
|
||||
* app/Makefile.am
|
||||
* app/errorconsole.[ch]: removed...
|
||||
|
||||
* app/gui/Makefile.am
|
||||
* app/gui/error-console-dialog.[ch]: ...added here. Lots of cleanup,
|
||||
create a vbox instead of a dialog.
|
||||
|
||||
* app/gui/dialogs-constructors.c
|
||||
* app/gui/dialogs.c: added a dockable for the error console.
|
||||
|
||||
* app/errors.c
|
||||
* app/gui/gui.c
|
||||
* app/gui/menus.c: changed accordingly.
|
||||
|
||||
* app/widgets/gimpcontainerview.c: conntect "extended_clicked" to
|
||||
the "extended_clicked" callback, not "clicked".
|
||||
|
||||
* app/widgets/gimplayerlistview.c: set the layer option box'
|
||||
spacing in "style_set".
|
||||
|
||||
* app/widgets/gimplistitem.c: argh.
|
||||
|
||||
* themes/Default/gtkrc: changed the default theme to set a smaller
|
||||
font only for the dockable because that's where saving screen
|
||||
estate really makes sense. May need some further tweaking.
|
||||
|
||||
2001-08-06 Daniel Egger <egger@suse.de>
|
||||
|
||||
* autogen.sh: Fix error message to reflect that one needs
|
||||
|
|
|
@ -16,8 +16,6 @@ gimp_SOURCES = @STRIP_BEGIN@ \
|
|||
devices.h \
|
||||
docindex.c \
|
||||
docindex.h \
|
||||
errorconsole.c \
|
||||
errorconsole.h \
|
||||
gimpprogress.c \
|
||||
gimpprogress.h \
|
||||
nav_window.c \
|
||||
|
|
|
@ -57,11 +57,8 @@
|
|||
#include "color-area.h"
|
||||
#include "colormap-dialog.h"
|
||||
#include "dialogs.h"
|
||||
#include "devices.h"
|
||||
#include "dialogs-constructors.h"
|
||||
#include "docindex.h"
|
||||
#include "errorconsole.h"
|
||||
#include "gdisplay.h"
|
||||
#include "error-console-dialog.h"
|
||||
#include "gradient-editor.h"
|
||||
#include "gradient-select.h"
|
||||
#include "gradients-commands.h"
|
||||
|
@ -79,6 +76,8 @@
|
|||
#include "toolbox.h"
|
||||
|
||||
#include "app_procs.h"
|
||||
#include "devices.h"
|
||||
#include "docindex.h"
|
||||
#include "gdisplay.h"
|
||||
#include "gimprc.h"
|
||||
#include "module_db.h"
|
||||
|
@ -207,13 +206,6 @@ dialogs_palette_select_get (GimpDialogFactory *factory,
|
|||
return palette_dialog_create ();
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
dialogs_error_console_get (GimpDialogFactory *factory,
|
||||
GimpContext *context)
|
||||
{
|
||||
return error_console_create ();
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
dialogs_document_index_get (GimpDialogFactory *factory,
|
||||
GimpContext *context)
|
||||
|
@ -705,9 +697,9 @@ dialogs_path_list_view_new (GimpDialogFactory *factory,
|
|||
|
||||
view = paths_dialog_create ();
|
||||
|
||||
g_signal_connect (G_OBJECT (view), "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed),
|
||||
&view);
|
||||
g_object_weak_ref (G_OBJECT (view),
|
||||
(GDestroyNotify) gtk_widget_destroyed,
|
||||
&view);
|
||||
|
||||
dockable = dialogs_dockable_new (view,
|
||||
"Path List", "Paths",
|
||||
|
@ -746,6 +738,34 @@ dialogs_indexed_palette_new (GimpDialogFactory *factory,
|
|||
}
|
||||
|
||||
|
||||
/* misc dockables */
|
||||
|
||||
GtkWidget *
|
||||
dialogs_error_console_get (GimpDialogFactory *factory,
|
||||
GimpContext *context)
|
||||
{
|
||||
static GtkWidget *view = NULL;
|
||||
|
||||
GtkWidget *dockable;
|
||||
|
||||
if (view)
|
||||
return NULL;
|
||||
|
||||
view = error_console_create ();
|
||||
|
||||
g_object_weak_ref (G_OBJECT (view),
|
||||
(GDestroyNotify) gtk_widget_destroyed,
|
||||
&view);
|
||||
|
||||
dockable = dialogs_dockable_new (view,
|
||||
"Error Console", "Errors",
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
return dockable;
|
||||
}
|
||||
|
||||
|
||||
/* editor dialogs */
|
||||
|
||||
void
|
||||
|
|
|
@ -45,7 +45,6 @@ static const GimpDialogFactoryEntry toplevel_entries[] =
|
|||
{ "gimp:pattern-select-dialog", dialogs_pattern_select_get, TRUE, TRUE, FALSE, TRUE },
|
||||
{ "gimp:gradient-select-dialog", dialogs_gradient_select_get, TRUE, TRUE, FALSE, TRUE },
|
||||
{ "gimp:palette-select-dialog", dialogs_palette_select_get, TRUE, TRUE, FALSE, TRUE },
|
||||
{ "gimp:error-console-dialog", dialogs_error_console_get, TRUE, TRUE, TRUE, TRUE },
|
||||
{ "gimp:document-index-dialog", dialogs_document_index_get, TRUE, TRUE, TRUE, TRUE },
|
||||
{ "gimp:preferences-dialog", dialogs_preferences_get, TRUE, FALSE, FALSE, TRUE },
|
||||
{ "gimp:input-devices-dialog", dialogs_input_devices_get, TRUE, FALSE, FALSE, TRUE },
|
||||
|
@ -83,7 +82,9 @@ static const GimpDialogFactoryEntry dock_entries[] =
|
|||
{ "gimp:layer-list", dialogs_layer_list_view_new, FALSE, FALSE, FALSE, TRUE },
|
||||
{ "gimp:channel-list", dialogs_channel_list_view_new, FALSE, FALSE, FALSE, TRUE },
|
||||
{ "gimp:path-list", dialogs_path_list_view_new, TRUE, FALSE, FALSE, TRUE },
|
||||
{ "gimp:indexed-palette", dialogs_indexed_palette_new, FALSE, FALSE, FALSE, TRUE }
|
||||
{ "gimp:indexed-palette", dialogs_indexed_palette_new, FALSE, FALSE, FALSE, TRUE },
|
||||
|
||||
{ "gimp:error-console", dialogs_error_console_get, TRUE, FALSE, FALSE, TRUE }
|
||||
};
|
||||
static const gint n_dock_entries = (sizeof (dock_entries) /
|
||||
sizeof (dock_entries[0]));
|
||||
|
|
|
@ -28,12 +28,15 @@
|
|||
|
||||
#include <gtk/gtk.h>
|
||||
|
||||
#include "core/core-types.h"
|
||||
#include "widgets/widgets-types.h"
|
||||
|
||||
#include "widgets/gimpdialogfactory.h"
|
||||
#include "widgets/gimpwidgets-utils.h"
|
||||
|
||||
#include "gui/dialogs.h"
|
||||
#include "gui/error-console-dialog.h"
|
||||
|
||||
#include "appenv.h"
|
||||
#include "errorconsole.h"
|
||||
#include "errors.h"
|
||||
|
||||
#ifdef G_OS_WIN32
|
||||
|
@ -56,6 +59,8 @@ gimp_message_log_func (const gchar *log_domain,
|
|||
break;
|
||||
|
||||
case ERROR_CONSOLE:
|
||||
gimp_dialog_factory_dialog_raise (global_dock_factory,
|
||||
"gimp:error-console");
|
||||
error_console_add ((gchar *) message);
|
||||
break;
|
||||
|
||||
|
|
|
@ -36,6 +36,8 @@ libappgui_a_SOURCES = @STRIP_BEGIN@ \
|
|||
dialogs-constructors.h \
|
||||
edit-commands.c \
|
||||
edit-commands.h \
|
||||
error-console-dialog.c \
|
||||
error-console-dialog.h \
|
||||
file-commands.c \
|
||||
file-commands.h \
|
||||
file-dialog-utils.c \
|
||||
|
|
|
@ -57,11 +57,8 @@
|
|||
#include "color-area.h"
|
||||
#include "colormap-dialog.h"
|
||||
#include "dialogs.h"
|
||||
#include "devices.h"
|
||||
#include "dialogs-constructors.h"
|
||||
#include "docindex.h"
|
||||
#include "errorconsole.h"
|
||||
#include "gdisplay.h"
|
||||
#include "error-console-dialog.h"
|
||||
#include "gradient-editor.h"
|
||||
#include "gradient-select.h"
|
||||
#include "gradients-commands.h"
|
||||
|
@ -79,6 +76,8 @@
|
|||
#include "toolbox.h"
|
||||
|
||||
#include "app_procs.h"
|
||||
#include "devices.h"
|
||||
#include "docindex.h"
|
||||
#include "gdisplay.h"
|
||||
#include "gimprc.h"
|
||||
#include "module_db.h"
|
||||
|
@ -207,13 +206,6 @@ dialogs_palette_select_get (GimpDialogFactory *factory,
|
|||
return palette_dialog_create ();
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
dialogs_error_console_get (GimpDialogFactory *factory,
|
||||
GimpContext *context)
|
||||
{
|
||||
return error_console_create ();
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
dialogs_document_index_get (GimpDialogFactory *factory,
|
||||
GimpContext *context)
|
||||
|
@ -705,9 +697,9 @@ dialogs_path_list_view_new (GimpDialogFactory *factory,
|
|||
|
||||
view = paths_dialog_create ();
|
||||
|
||||
g_signal_connect (G_OBJECT (view), "destroy",
|
||||
G_CALLBACK (gtk_widget_destroyed),
|
||||
&view);
|
||||
g_object_weak_ref (G_OBJECT (view),
|
||||
(GDestroyNotify) gtk_widget_destroyed,
|
||||
&view);
|
||||
|
||||
dockable = dialogs_dockable_new (view,
|
||||
"Path List", "Paths",
|
||||
|
@ -746,6 +738,34 @@ dialogs_indexed_palette_new (GimpDialogFactory *factory,
|
|||
}
|
||||
|
||||
|
||||
/* misc dockables */
|
||||
|
||||
GtkWidget *
|
||||
dialogs_error_console_get (GimpDialogFactory *factory,
|
||||
GimpContext *context)
|
||||
{
|
||||
static GtkWidget *view = NULL;
|
||||
|
||||
GtkWidget *dockable;
|
||||
|
||||
if (view)
|
||||
return NULL;
|
||||
|
||||
view = error_console_create ();
|
||||
|
||||
g_object_weak_ref (G_OBJECT (view),
|
||||
(GDestroyNotify) gtk_widget_destroyed,
|
||||
&view);
|
||||
|
||||
dockable = dialogs_dockable_new (view,
|
||||
"Error Console", "Errors",
|
||||
NULL,
|
||||
NULL);
|
||||
|
||||
return dockable;
|
||||
}
|
||||
|
||||
|
||||
/* editor dialogs */
|
||||
|
||||
void
|
||||
|
|
|
@ -45,7 +45,6 @@ static const GimpDialogFactoryEntry toplevel_entries[] =
|
|||
{ "gimp:pattern-select-dialog", dialogs_pattern_select_get, TRUE, TRUE, FALSE, TRUE },
|
||||
{ "gimp:gradient-select-dialog", dialogs_gradient_select_get, TRUE, TRUE, FALSE, TRUE },
|
||||
{ "gimp:palette-select-dialog", dialogs_palette_select_get, TRUE, TRUE, FALSE, TRUE },
|
||||
{ "gimp:error-console-dialog", dialogs_error_console_get, TRUE, TRUE, TRUE, TRUE },
|
||||
{ "gimp:document-index-dialog", dialogs_document_index_get, TRUE, TRUE, TRUE, TRUE },
|
||||
{ "gimp:preferences-dialog", dialogs_preferences_get, TRUE, FALSE, FALSE, TRUE },
|
||||
{ "gimp:input-devices-dialog", dialogs_input_devices_get, TRUE, FALSE, FALSE, TRUE },
|
||||
|
@ -83,7 +82,9 @@ static const GimpDialogFactoryEntry dock_entries[] =
|
|||
{ "gimp:layer-list", dialogs_layer_list_view_new, FALSE, FALSE, FALSE, TRUE },
|
||||
{ "gimp:channel-list", dialogs_channel_list_view_new, FALSE, FALSE, FALSE, TRUE },
|
||||
{ "gimp:path-list", dialogs_path_list_view_new, TRUE, FALSE, FALSE, TRUE },
|
||||
{ "gimp:indexed-palette", dialogs_indexed_palette_new, FALSE, FALSE, FALSE, TRUE }
|
||||
{ "gimp:indexed-palette", dialogs_indexed_palette_new, FALSE, FALSE, FALSE, TRUE },
|
||||
|
||||
{ "gimp:error-console", dialogs_error_console_get, TRUE, FALSE, FALSE, TRUE }
|
||||
};
|
||||
static const gint n_dock_entries = (sizeof (dock_entries) /
|
||||
sizeof (dock_entries[0]));
|
||||
|
|
|
@ -58,57 +58,313 @@
|
|||
#include "libgimp/gimpintl.h"
|
||||
|
||||
|
||||
enum
|
||||
typedef enum
|
||||
{
|
||||
ERRORS_ALL,
|
||||
ERRORS_SELECTION
|
||||
};
|
||||
} ErrorScope;
|
||||
|
||||
|
||||
static GtkWidget *error_console = NULL;
|
||||
static GtkWidget *text_view = NULL;
|
||||
static GtkTextBuffer *text_buffer = NULL;
|
||||
/* local function prototypes */
|
||||
|
||||
static void error_console_destroy_callback (gpointer data);
|
||||
static gboolean text_clicked_callback (GtkWidget *widget,
|
||||
GdkEventButton *event,
|
||||
GtkMenu *menu);
|
||||
static void error_console_clear_callback (GtkWidget *widget,
|
||||
GtkTextBuffer *buffer);
|
||||
static void error_console_write_all_callback (GtkWidget *widget,
|
||||
GtkTextBuffer *buffer);
|
||||
static void error_console_write_selection_callback (GtkWidget *widget,
|
||||
GtkTextBuffer *buffer);
|
||||
|
||||
static void error_console_create_file_dialog (GtkTextBuffer *buffer,
|
||||
ErrorScope textscope);
|
||||
static void error_console_file_ok_callback (GtkWidget *widget,
|
||||
gpointer data);
|
||||
static gboolean error_console_write_file (GtkTextBuffer *text_buffer,
|
||||
const gchar *path,
|
||||
ErrorScope textscope);
|
||||
|
||||
|
||||
/* private variables */
|
||||
|
||||
static GtkWidget *error_console = NULL;
|
||||
|
||||
|
||||
/* public functions */
|
||||
|
||||
GtkWidget *
|
||||
error_console_create (void)
|
||||
{
|
||||
GtkTextBuffer *text_buffer;
|
||||
GtkWidget *text_view;
|
||||
GtkWidget *scrolled_window;
|
||||
GtkWidget *menu;
|
||||
GtkWidget *menuitem;
|
||||
|
||||
if (error_console)
|
||||
return error_console;
|
||||
|
||||
text_buffer = gtk_text_buffer_new (NULL);
|
||||
|
||||
error_console = gtk_vbox_new (FALSE, 0);
|
||||
|
||||
g_object_set_data (G_OBJECT (error_console), "text-buffer", text_buffer);
|
||||
|
||||
g_object_weak_ref (G_OBJECT (error_console), error_console_destroy_callback,
|
||||
NULL);
|
||||
|
||||
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
|
||||
GTK_POLICY_AUTOMATIC,
|
||||
GTK_POLICY_AUTOMATIC);
|
||||
gtk_container_add (GTK_CONTAINER (error_console), scrolled_window);
|
||||
gtk_widget_show (scrolled_window);
|
||||
|
||||
menu = gtk_menu_new ();
|
||||
|
||||
menuitem = gtk_menu_item_new_with_label (_("Clear Console"));
|
||||
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
|
||||
gtk_widget_show (menuitem);
|
||||
|
||||
g_signal_connect (G_OBJECT (menuitem), "activate",
|
||||
G_CALLBACK (error_console_clear_callback),
|
||||
text_buffer);
|
||||
|
||||
menuitem = gtk_menu_item_new ();
|
||||
gtk_widget_set_sensitive (menuitem, FALSE);
|
||||
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
|
||||
gtk_widget_show (menuitem);
|
||||
|
||||
menuitem = gtk_menu_item_new_with_label (_("Write all errors to file..."));
|
||||
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
|
||||
gtk_widget_show (menuitem);
|
||||
|
||||
menuitem = gtk_menu_item_new_with_label (_("Write all errors to file..."));
|
||||
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
|
||||
gtk_widget_show (menuitem);
|
||||
|
||||
g_signal_connect_swapped (G_OBJECT (menuitem), "activate",
|
||||
G_CALLBACK (error_console_write_all_callback),
|
||||
text_buffer);
|
||||
|
||||
menuitem = gtk_menu_item_new_with_label (_("Write selection to file..."));
|
||||
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
|
||||
gtk_widget_show (menuitem);
|
||||
|
||||
g_signal_connect_swapped (G_OBJECT (menuitem), "activate",
|
||||
G_CALLBACK (error_console_write_selection_callback),
|
||||
text_buffer);
|
||||
|
||||
/* The output text widget */
|
||||
text_view = gtk_text_view_new_with_buffer (text_buffer);
|
||||
g_object_unref (G_OBJECT (text_buffer));
|
||||
|
||||
gtk_text_view_set_editable (GTK_TEXT_VIEW (text_view), FALSE);
|
||||
gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (text_view), GTK_WRAP_WORD);
|
||||
gtk_container_add (GTK_CONTAINER (scrolled_window), text_view);
|
||||
gtk_widget_show (text_view);
|
||||
|
||||
g_signal_connect (G_OBJECT (text_view), "button_press_event",
|
||||
G_CALLBACK (text_clicked_callback),
|
||||
menu);
|
||||
|
||||
/* FIXME: interact with preferences */
|
||||
message_handler = ERROR_CONSOLE;
|
||||
|
||||
return error_console;
|
||||
}
|
||||
|
||||
void
|
||||
error_console_add (const gchar *errormsg)
|
||||
{
|
||||
if (! error_console)
|
||||
{
|
||||
g_warning ("error_console_add(): error_console widget is NULL");
|
||||
|
||||
message_handler = MESSAGE_BOX;
|
||||
g_message (errormsg);
|
||||
|
||||
return;
|
||||
}
|
||||
|
||||
if (errormsg)
|
||||
{
|
||||
GtkTextBuffer *buffer;
|
||||
GtkTextIter end;
|
||||
|
||||
buffer = g_object_get_data (G_OBJECT (error_console), "text-buffer");
|
||||
|
||||
gtk_text_buffer_get_end_iter (buffer, &end);
|
||||
gtk_text_buffer_place_cursor (buffer, &end);
|
||||
|
||||
gtk_text_buffer_insert_at_cursor (buffer, errormsg, -1);
|
||||
gtk_text_buffer_insert_at_cursor (buffer, "\n", -1);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/* private functions */
|
||||
|
||||
static void
|
||||
error_console_close_callback (GtkWidget *widget,
|
||||
gpointer data)
|
||||
error_console_destroy_callback (gpointer data)
|
||||
{
|
||||
gtk_widget_hide (error_console);
|
||||
error_console = NULL;
|
||||
|
||||
/* FIXME: interact with preferences */
|
||||
message_handler = MESSAGE_BOX;
|
||||
}
|
||||
|
||||
static void
|
||||
error_console_clear_callback (GtkWidget *widget,
|
||||
gpointer data)
|
||||
static gboolean
|
||||
text_clicked_callback (GtkWidget *widget,
|
||||
GdkEventButton *event,
|
||||
GtkMenu *menu)
|
||||
{
|
||||
switch (event->button)
|
||||
{
|
||||
case 1:
|
||||
case 2:
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
gtk_menu_popup (menu, NULL, NULL, NULL, NULL, event->button, event->time);
|
||||
|
||||
/* wheelmouse support */
|
||||
case 4:
|
||||
{
|
||||
GtkAdjustment *adj = GTK_TEXT_VIEW (widget)->vadjustment;
|
||||
gdouble new_value = adj->value - adj->page_increment / 2;
|
||||
new_value = CLAMP (new_value, adj->lower, adj->upper - adj->page_size);
|
||||
gtk_adjustment_set_value (adj, new_value);
|
||||
}
|
||||
break;
|
||||
|
||||
case 5:
|
||||
{
|
||||
GtkAdjustment *adj = GTK_TEXT_VIEW (widget)->vadjustment;
|
||||
gdouble new_value = adj->value + adj->page_increment / 2;
|
||||
new_value = CLAMP (new_value, adj->lower, adj->upper - adj->page_size);
|
||||
gtk_adjustment_set_value (adj, new_value);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
error_console_clear_callback (GtkWidget *widget,
|
||||
GtkTextBuffer *buffer)
|
||||
{
|
||||
GtkTextBuffer *buffer;
|
||||
GtkTextIter start_iter;
|
||||
GtkTextIter end_iter;
|
||||
|
||||
buffer = (GtkTextBuffer *) data;
|
||||
|
||||
gtk_text_buffer_get_start_iter (buffer, &start_iter);
|
||||
gtk_text_buffer_get_end_iter (buffer, &end_iter);
|
||||
|
||||
gtk_text_buffer_delete (buffer, &start_iter, &end_iter);
|
||||
}
|
||||
|
||||
void
|
||||
error_console_free (void)
|
||||
{
|
||||
if (error_console)
|
||||
static void
|
||||
error_console_write_all_callback (GtkWidget *widget,
|
||||
GtkTextBuffer *buffer)
|
||||
{
|
||||
error_console_create_file_dialog (buffer, ERRORS_ALL);
|
||||
}
|
||||
|
||||
static void
|
||||
error_console_write_selection_callback (GtkWidget *widget,
|
||||
GtkTextBuffer *buffer)
|
||||
{
|
||||
error_console_create_file_dialog (buffer, ERRORS_SELECTION);
|
||||
}
|
||||
|
||||
static void
|
||||
error_console_create_file_dialog (GtkTextBuffer *buffer,
|
||||
ErrorScope textscope)
|
||||
{
|
||||
GtkFileSelection *filesel;
|
||||
|
||||
if (! gtk_text_buffer_get_selection_bounds (buffer, NULL, NULL) &&
|
||||
textscope == ERRORS_SELECTION)
|
||||
{
|
||||
gtk_widget_destroy (error_console);
|
||||
error_console = NULL;
|
||||
g_message (_("Can't save, nothing selected!"));
|
||||
return;
|
||||
}
|
||||
|
||||
filesel =
|
||||
GTK_FILE_SELECTION (gtk_file_selection_new (_("Save error log to file...")));
|
||||
|
||||
g_object_set_data (G_OBJECT (filesel), "text-buffer",
|
||||
buffer);
|
||||
g_object_set_data (G_OBJECT (filesel), "text-scope",
|
||||
GINT_TO_POINTER (textscope));
|
||||
|
||||
gtk_window_set_position (GTK_WINDOW (filesel), GTK_WIN_POS_MOUSE);
|
||||
gtk_window_set_wmclass (GTK_WINDOW (filesel), "save_errors", "Gimp");
|
||||
|
||||
gtk_container_set_border_width (GTK_CONTAINER (filesel), 2);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (filesel->button_area), 2);
|
||||
|
||||
g_signal_connect_swapped (G_OBJECT (filesel->cancel_button), "clicked",
|
||||
G_CALLBACK (gtk_widget_destroy),
|
||||
filesel);
|
||||
|
||||
g_signal_connect_swapped (G_OBJECT (filesel), "delete_event",
|
||||
G_CALLBACK (gtk_widget_destroy),
|
||||
filesel);
|
||||
|
||||
g_signal_connect (G_OBJECT (filesel->ok_button), "clicked",
|
||||
G_CALLBACK (error_console_file_ok_callback),
|
||||
filesel);
|
||||
|
||||
/* Connect the "F1" help key */
|
||||
gimp_help_connect (GTK_WIDGET (filesel),
|
||||
gimp_standard_help_func,
|
||||
"dialogs/error_console.html");
|
||||
|
||||
gtk_widget_show (GTK_WIDGET (filesel));
|
||||
}
|
||||
|
||||
static void
|
||||
error_console_file_ok_callback (GtkWidget *widget,
|
||||
gpointer data)
|
||||
{
|
||||
GtkWidget *filesel;
|
||||
const gchar *filename;
|
||||
GtkTextBuffer *buffer;
|
||||
ErrorScope textscope;
|
||||
|
||||
filesel = (GtkWidget *) data;
|
||||
|
||||
filename = gtk_file_selection_get_filename (GTK_FILE_SELECTION (filesel));
|
||||
|
||||
buffer = g_object_get_data (G_OBJECT (filesel),
|
||||
"text-buffer");
|
||||
|
||||
textscope = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (filesel),
|
||||
"text-scope"));
|
||||
|
||||
if (! error_console_write_file (buffer, filename, textscope))
|
||||
{
|
||||
g_message (_("Error opening file \"%s\":\n%s"),
|
||||
filename, g_strerror (errno));
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_widget_destroy (filesel);
|
||||
}
|
||||
}
|
||||
|
||||
static gboolean
|
||||
error_console_write_file (const gchar *path,
|
||||
gint textscope)
|
||||
error_console_write_file (GtkTextBuffer *text_buffer,
|
||||
const gchar *path,
|
||||
ErrorScope textscope)
|
||||
{
|
||||
GtkTextIter start_iter;
|
||||
GtkTextIter end_iter;
|
||||
|
@ -153,231 +409,3 @@ error_console_write_file (const gchar *path,
|
|||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
static void
|
||||
error_console_file_ok_callback (GtkWidget *widget,
|
||||
gpointer data)
|
||||
{
|
||||
GtkWidget *filesel;
|
||||
const gchar *filename;
|
||||
gint textscope;
|
||||
|
||||
filesel = (GtkWidget *) data;
|
||||
filename = gtk_file_selection_get_filename (GTK_FILE_SELECTION (filesel));
|
||||
|
||||
textscope = GPOINTER_TO_INT (g_object_get_data (G_OBJECT (filesel),
|
||||
"text-scope"));
|
||||
|
||||
if (! error_console_write_file (filename, textscope))
|
||||
{
|
||||
gchar *message;
|
||||
|
||||
message = g_strdup_printf (_("Error opening file %s: %s"),
|
||||
filename, g_strerror (errno));
|
||||
|
||||
g_message (message);
|
||||
|
||||
g_free (message);
|
||||
}
|
||||
else
|
||||
{
|
||||
gtk_widget_destroy (filesel);
|
||||
}
|
||||
}
|
||||
|
||||
static void
|
||||
error_console_menu_callback (gint textscope)
|
||||
{
|
||||
GtkWidget *filesel;
|
||||
|
||||
if (! gtk_text_buffer_get_selection_bounds (text_buffer, NULL, NULL) &&
|
||||
textscope == ERRORS_SELECTION)
|
||||
{
|
||||
g_message (_("Can't save, nothing selected!"));
|
||||
return;
|
||||
}
|
||||
|
||||
filesel = gtk_file_selection_new (_("Save error log to file..."));
|
||||
gtk_window_set_position (GTK_WINDOW (filesel), GTK_WIN_POS_MOUSE);
|
||||
gtk_window_set_wmclass (GTK_WINDOW (filesel), "save_errors", "Gimp");
|
||||
|
||||
gtk_container_set_border_width (GTK_CONTAINER (filesel), 2);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (GTK_FILE_SELECTION (filesel)->button_area), 2);
|
||||
|
||||
g_signal_connect_swapped (G_OBJECT (GTK_FILE_SELECTION (filesel)->cancel_button),
|
||||
"clicked",
|
||||
G_CALLBACK (gtk_widget_destroy),
|
||||
filesel);
|
||||
|
||||
g_object_set_data (G_OBJECT (filesel), "text-scope",
|
||||
GINT_TO_POINTER (textscope));
|
||||
g_signal_connect (G_OBJECT (GTK_FILE_SELECTION (filesel)->ok_button),
|
||||
"clicked",
|
||||
G_CALLBACK (error_console_file_ok_callback),
|
||||
filesel);
|
||||
|
||||
g_signal_connect_swapped (G_OBJECT (GTK_FILE_SELECTION (filesel)->cancel_button),
|
||||
"delete_event",
|
||||
G_CALLBACK (gtk_widget_destroy),
|
||||
filesel);
|
||||
|
||||
/* Connect the "F1" help key */
|
||||
gimp_help_connect (filesel,
|
||||
gimp_standard_help_func,
|
||||
"dialogs/error_console.html");
|
||||
|
||||
gtk_widget_show (filesel);
|
||||
}
|
||||
|
||||
static gboolean
|
||||
text_clicked_callback (GtkWidget *widget,
|
||||
GdkEventButton *event,
|
||||
gpointer data)
|
||||
{
|
||||
GtkMenu *menu = (GtkMenu *) data;
|
||||
|
||||
menu = (GtkMenu *) data;
|
||||
|
||||
switch (event->button)
|
||||
{
|
||||
case 1:
|
||||
case 2:
|
||||
return FALSE;
|
||||
break;
|
||||
|
||||
case 3:
|
||||
gtk_menu_popup (menu, NULL, NULL, NULL, NULL, event->button, event->time);
|
||||
|
||||
/* wheelmouse support */
|
||||
case 4:
|
||||
{
|
||||
GtkAdjustment *adj = GTK_TEXT_VIEW (text_view)->vadjustment;
|
||||
gdouble new_value = adj->value - adj->page_increment / 2;
|
||||
new_value = CLAMP (new_value, adj->lower, adj->upper - adj->page_size);
|
||||
gtk_adjustment_set_value (adj, new_value);
|
||||
}
|
||||
break;
|
||||
|
||||
case 5:
|
||||
{
|
||||
GtkAdjustment *adj = GTK_TEXT_VIEW (text_view)->vadjustment;
|
||||
gdouble new_value = adj->value + adj->page_increment / 2;
|
||||
new_value = CLAMP (new_value, adj->lower, adj->upper - adj->page_size);
|
||||
gtk_adjustment_set_value (adj, new_value);
|
||||
}
|
||||
break;
|
||||
|
||||
default:
|
||||
break;
|
||||
}
|
||||
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
GtkWidget *
|
||||
error_console_create (void)
|
||||
{
|
||||
GtkWidget *scrolled_window;
|
||||
GtkWidget *menu;
|
||||
GtkWidget *menuitem;
|
||||
|
||||
if (error_console)
|
||||
return error_console;
|
||||
|
||||
text_buffer = gtk_text_buffer_new (NULL);
|
||||
|
||||
error_console = gimp_dialog_new (_("GIMP Error Console"), "error_console",
|
||||
gimp_standard_help_func,
|
||||
"dialogs/error_console.html",
|
||||
GTK_WIN_POS_NONE,
|
||||
TRUE, TRUE, FALSE,
|
||||
|
||||
GTK_STOCK_CLEAR, error_console_clear_callback,
|
||||
text_buffer, NULL, NULL, FALSE, FALSE,
|
||||
GTK_STOCK_CLOSE, error_console_close_callback,
|
||||
text_buffer, NULL, NULL, TRUE, TRUE,
|
||||
|
||||
NULL);
|
||||
|
||||
/* The next line should disappear when setting the size works in SM */
|
||||
gtk_widget_set_usize (error_console, 250, 300);
|
||||
|
||||
scrolled_window = gtk_scrolled_window_new (NULL, NULL);
|
||||
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (scrolled_window),
|
||||
GTK_POLICY_AUTOMATIC,
|
||||
GTK_POLICY_AUTOMATIC);
|
||||
gtk_container_set_border_width (GTK_CONTAINER (scrolled_window), 4);
|
||||
gtk_container_add (GTK_CONTAINER (GTK_DIALOG (error_console)->vbox),
|
||||
scrolled_window);
|
||||
gtk_widget_show (scrolled_window);
|
||||
|
||||
menu = gtk_menu_new ();
|
||||
|
||||
menuitem = gtk_menu_item_new_with_label (_("Write all errors to file..."));
|
||||
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
|
||||
gtk_widget_show (menuitem);
|
||||
|
||||
g_signal_connect_swapped (G_OBJECT (menuitem), "activate",
|
||||
G_CALLBACK (error_console_menu_callback),
|
||||
GINT_TO_POINTER (ERRORS_ALL));
|
||||
|
||||
menuitem = gtk_menu_item_new_with_label (_("Write selection to file..."));
|
||||
gtk_menu_shell_append (GTK_MENU_SHELL (menu), menuitem);
|
||||
gtk_widget_show (menuitem);
|
||||
|
||||
g_signal_connect_swapped (G_OBJECT (menuitem), "activate",
|
||||
G_CALLBACK (error_console_menu_callback),
|
||||
GINT_TO_POINTER (ERRORS_SELECTION));
|
||||
|
||||
/* The output text widget */
|
||||
text_view = gtk_text_view_new_with_buffer (text_buffer);
|
||||
g_object_unref (G_OBJECT (text_buffer));
|
||||
|
||||
gtk_text_view_set_editable (GTK_TEXT_VIEW (text_view), FALSE);
|
||||
gtk_text_view_set_wrap_mode (GTK_TEXT_VIEW (text_view), GTK_WRAP_WORD);
|
||||
gtk_container_add (GTK_CONTAINER (scrolled_window), text_view);
|
||||
gtk_widget_show (text_view);
|
||||
|
||||
g_signal_connect (G_OBJECT (text_view), "button_press_event",
|
||||
G_CALLBACK (text_clicked_callback),
|
||||
GTK_MENU (menu));
|
||||
|
||||
gtk_widget_show (error_console);
|
||||
|
||||
/* FIXME: interact with preferences */
|
||||
message_handler = ERROR_CONSOLE;
|
||||
|
||||
return error_console;
|
||||
}
|
||||
|
||||
void
|
||||
error_console_add (const gchar *errormsg)
|
||||
{
|
||||
if (! error_console)
|
||||
{
|
||||
error_console_create ();
|
||||
}
|
||||
else
|
||||
{
|
||||
if (! GTK_WIDGET_VISIBLE (error_console))
|
||||
{
|
||||
gtk_widget_show (error_console);
|
||||
|
||||
/* FIXME: interact with preferences */
|
||||
message_handler = ERROR_CONSOLE;
|
||||
}
|
||||
else
|
||||
gdk_window_raise (error_console->window);
|
||||
}
|
||||
|
||||
if (errormsg)
|
||||
{
|
||||
GtkTextIter end;
|
||||
|
||||
gtk_text_buffer_get_end_iter (text_buffer, &end);
|
||||
gtk_text_buffer_place_cursor (text_buffer, &end);
|
||||
|
||||
gtk_text_buffer_insert_at_cursor (text_buffer, errormsg, -1);
|
||||
gtk_text_buffer_insert_at_cursor (text_buffer, "\n", -1);
|
||||
}
|
||||
}
|
|
@ -19,14 +19,13 @@
|
|||
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
|
||||
*/
|
||||
|
||||
#ifndef __ERROR_CONSOLE_H__
|
||||
#define __ERROR_CONSOLE_H__
|
||||
#ifndef __ERROR_CONSOLE_DIALOG_H__
|
||||
#define __ERROR_CONSOLE_DIALOG_H__
|
||||
|
||||
|
||||
void error_console_add (const gchar *errormsg);
|
||||
|
||||
GtkWidget * error_console_create (void);
|
||||
void error_console_free (void);
|
||||
|
||||
|
||||
#endif /* __ERROR_CONSOLE_H__ */
|
||||
#endif /* __ERROR_CONSOLE_DIALOG_H__ */
|
|
@ -41,7 +41,6 @@
|
|||
#include "devices.h"
|
||||
#include "dialogs.h"
|
||||
#include "docindex.h"
|
||||
#include "errorconsole.h"
|
||||
#include "file-open-dialog.h"
|
||||
#include "file-save-dialog.h"
|
||||
#include "gradient-select.h"
|
||||
|
@ -354,7 +353,6 @@ gui_exit (Gimp *gimp)
|
|||
|
||||
/* handle this in the dialog factory: */
|
||||
document_index_free ();
|
||||
error_console_free ();
|
||||
tool_options_dialog_free ();
|
||||
toolbox_free ();
|
||||
|
||||
|
|
|
@ -237,8 +237,8 @@ static GimpItemFactoryEntry toolbox_entries[] =
|
|||
"gimp:document-index-dialog",
|
||||
"file/dialogs/document_index.html", NULL },
|
||||
{ { N_("/File/Dialogs/Error Console..."), NULL,
|
||||
dialogs_create_toplevel_cmd_callback, 0 },
|
||||
"gimp:error-console-dialog",
|
||||
dialogs_create_dockable_cmd_callback, 0 },
|
||||
"gimp:error-console",
|
||||
"file/dialogs/error_console.html", NULL },
|
||||
#ifdef DISPLAY_FILTERS
|
||||
{ { N_("/File/Dialogs/Display Filters..."), NULL,
|
||||
|
@ -664,7 +664,8 @@ static GimpItemFactoryEntry image_entries[] =
|
|||
NULL,
|
||||
"image/dialogs/scale_image.html", NULL },
|
||||
{ { N_("/Image/Duplicate"), "<control>D",
|
||||
image_duplicate_cmd_callback, 0 },
|
||||
image_duplicate_cmd_callback, 0,
|
||||
"<StockItem>", GIMP_STOCK_DUPLICATE },
|
||||
NULL,
|
||||
"image/duplicate.html", NULL },
|
||||
|
||||
|
@ -838,8 +839,8 @@ static GimpItemFactoryEntry image_entries[] =
|
|||
"gimp:document-index-dialog",
|
||||
"dialogs/document_index.html", NULL },
|
||||
{ { N_("/Dialogs/Error Console..."), NULL,
|
||||
dialogs_create_toplevel_cmd_callback, 0 },
|
||||
"gimp:error-console-dialog",
|
||||
dialogs_create_dockable_cmd_callback, 0 },
|
||||
"gimp:error-console",
|
||||
"dialogs/error_console.html", NULL },
|
||||
#ifdef DISPLAY_FILTERS
|
||||
{ { N_("/Dialogs/Display Filters..."), NULL,
|
||||
|
@ -1219,6 +1220,10 @@ static GimpItemFactoryEntry dialogs_entries[] =
|
|||
dialogs_add_tab_cmd_callback, 0 },
|
||||
"gimp:indexed-palette",
|
||||
NULL, NULL },
|
||||
{ { N_("/Add Tab/Error Console..."), NULL,
|
||||
dialogs_add_tab_cmd_callback, 0 },
|
||||
"gimp:error-console",
|
||||
NULL, NULL },
|
||||
|
||||
SEPARATOR ("/Add Tab/---"),
|
||||
|
||||
|
|
|
@ -237,8 +237,8 @@ static GimpItemFactoryEntry toolbox_entries[] =
|
|||
"gimp:document-index-dialog",
|
||||
"file/dialogs/document_index.html", NULL },
|
||||
{ { N_("/File/Dialogs/Error Console..."), NULL,
|
||||
dialogs_create_toplevel_cmd_callback, 0 },
|
||||
"gimp:error-console-dialog",
|
||||
dialogs_create_dockable_cmd_callback, 0 },
|
||||
"gimp:error-console",
|
||||
"file/dialogs/error_console.html", NULL },
|
||||
#ifdef DISPLAY_FILTERS
|
||||
{ { N_("/File/Dialogs/Display Filters..."), NULL,
|
||||
|
@ -664,7 +664,8 @@ static GimpItemFactoryEntry image_entries[] =
|
|||
NULL,
|
||||
"image/dialogs/scale_image.html", NULL },
|
||||
{ { N_("/Image/Duplicate"), "<control>D",
|
||||
image_duplicate_cmd_callback, 0 },
|
||||
image_duplicate_cmd_callback, 0,
|
||||
"<StockItem>", GIMP_STOCK_DUPLICATE },
|
||||
NULL,
|
||||
"image/duplicate.html", NULL },
|
||||
|
||||
|
@ -838,8 +839,8 @@ static GimpItemFactoryEntry image_entries[] =
|
|||
"gimp:document-index-dialog",
|
||||
"dialogs/document_index.html", NULL },
|
||||
{ { N_("/Dialogs/Error Console..."), NULL,
|
||||
dialogs_create_toplevel_cmd_callback, 0 },
|
||||
"gimp:error-console-dialog",
|
||||
dialogs_create_dockable_cmd_callback, 0 },
|
||||
"gimp:error-console",
|
||||
"dialogs/error_console.html", NULL },
|
||||
#ifdef DISPLAY_FILTERS
|
||||
{ { N_("/Dialogs/Display Filters..."), NULL,
|
||||
|
@ -1219,6 +1220,10 @@ static GimpItemFactoryEntry dialogs_entries[] =
|
|||
dialogs_add_tab_cmd_callback, 0 },
|
||||
"gimp:indexed-palette",
|
||||
NULL, NULL },
|
||||
{ { N_("/Add Tab/Error Console..."), NULL,
|
||||
dialogs_add_tab_cmd_callback, 0 },
|
||||
"gimp:error-console",
|
||||
NULL, NULL },
|
||||
|
||||
SEPARATOR ("/Add Tab/---"),
|
||||
|
||||
|
|
|
@ -564,7 +564,7 @@ gimp_container_view_add_button (GimpContainerView *view,
|
|||
|
||||
if (extended_callback)
|
||||
g_signal_connect (G_OBJECT (button), "extended_clicked",
|
||||
callback,
|
||||
extended_callback,
|
||||
callback_data);
|
||||
|
||||
image = gtk_image_new_from_stock (stock_id, GTK_ICON_SIZE_BUTTON);
|
||||
|
|
|
@ -237,8 +237,8 @@ static GimpItemFactoryEntry toolbox_entries[] =
|
|||
"gimp:document-index-dialog",
|
||||
"file/dialogs/document_index.html", NULL },
|
||||
{ { N_("/File/Dialogs/Error Console..."), NULL,
|
||||
dialogs_create_toplevel_cmd_callback, 0 },
|
||||
"gimp:error-console-dialog",
|
||||
dialogs_create_dockable_cmd_callback, 0 },
|
||||
"gimp:error-console",
|
||||
"file/dialogs/error_console.html", NULL },
|
||||
#ifdef DISPLAY_FILTERS
|
||||
{ { N_("/File/Dialogs/Display Filters..."), NULL,
|
||||
|
@ -664,7 +664,8 @@ static GimpItemFactoryEntry image_entries[] =
|
|||
NULL,
|
||||
"image/dialogs/scale_image.html", NULL },
|
||||
{ { N_("/Image/Duplicate"), "<control>D",
|
||||
image_duplicate_cmd_callback, 0 },
|
||||
image_duplicate_cmd_callback, 0,
|
||||
"<StockItem>", GIMP_STOCK_DUPLICATE },
|
||||
NULL,
|
||||
"image/duplicate.html", NULL },
|
||||
|
||||
|
@ -838,8 +839,8 @@ static GimpItemFactoryEntry image_entries[] =
|
|||
"gimp:document-index-dialog",
|
||||
"dialogs/document_index.html", NULL },
|
||||
{ { N_("/Dialogs/Error Console..."), NULL,
|
||||
dialogs_create_toplevel_cmd_callback, 0 },
|
||||
"gimp:error-console-dialog",
|
||||
dialogs_create_dockable_cmd_callback, 0 },
|
||||
"gimp:error-console",
|
||||
"dialogs/error_console.html", NULL },
|
||||
#ifdef DISPLAY_FILTERS
|
||||
{ { N_("/Dialogs/Display Filters..."), NULL,
|
||||
|
@ -1219,6 +1220,10 @@ static GimpItemFactoryEntry dialogs_entries[] =
|
|||
dialogs_add_tab_cmd_callback, 0 },
|
||||
"gimp:indexed-palette",
|
||||
NULL, NULL },
|
||||
{ { N_("/Add Tab/Error Console..."), NULL,
|
||||
dialogs_add_tab_cmd_callback, 0 },
|
||||
"gimp:error-console",
|
||||
NULL, NULL },
|
||||
|
||||
SEPARATOR ("/Add Tab/---"),
|
||||
|
||||
|
|
|
@ -244,8 +244,11 @@ static void
|
|||
gimp_layer_list_view_style_set (GtkWidget *widget,
|
||||
GtkStyle *prev_style)
|
||||
{
|
||||
gint content_spacing;
|
||||
gint button_spacing;
|
||||
GimpLayerListView *layer_view;
|
||||
gint content_spacing;
|
||||
gint button_spacing;
|
||||
|
||||
layer_view = GIMP_LAYER_LIST_VIEW (widget);
|
||||
|
||||
gtk_widget_style_get (widget,
|
||||
"content_spacing",
|
||||
|
@ -254,9 +257,7 @@ gimp_layer_list_view_style_set (GtkWidget *widget,
|
|||
&button_spacing,
|
||||
NULL);
|
||||
|
||||
#ifdef __GNUC__
|
||||
#warning TODO: gimp_layer_list_view_style_set()
|
||||
#endif
|
||||
gtk_box_set_spacing (GTK_BOX (layer_view->options_box), content_spacing);
|
||||
|
||||
if (GTK_WIDGET_CLASS (parent_class)->style_set)
|
||||
GTK_WIDGET_CLASS (parent_class)->style_set (widget, prev_style);
|
||||
|
@ -313,9 +314,6 @@ gimp_layer_list_view_select_item (GimpContainerView *view,
|
|||
gboolean options_sensitive = FALSE;
|
||||
gboolean anchor_sensitive = FALSE;
|
||||
gboolean raise_sensitive = FALSE;
|
||||
gboolean lower_sensitive = FALSE;
|
||||
gboolean duplicate_sensitive = FALSE;
|
||||
gboolean edit_sensitive = FALSE;
|
||||
|
||||
list_view = GIMP_LAYER_LIST_VIEW (view);
|
||||
drawable_view = GIMP_DRAWABLE_LIST_VIEW (view);
|
||||
|
@ -334,13 +332,13 @@ gimp_layer_list_view_select_item (GimpContainerView *view,
|
|||
if (gimp_layer_is_floating_sel (GIMP_LAYER (item)))
|
||||
{
|
||||
anchor_sensitive = TRUE;
|
||||
|
||||
gtk_widget_set_sensitive (drawable_view->lower_button, FALSE);
|
||||
gtk_widget_set_sensitive (drawable_view->duplicate_button, FALSE);
|
||||
gtk_widget_set_sensitive (drawable_view->edit_button, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
lower_sensitive = TRUE;
|
||||
duplicate_sensitive = TRUE;
|
||||
edit_sensitive = TRUE;
|
||||
|
||||
if (gimp_drawable_has_alpha (GIMP_DRAWABLE (item)) &&
|
||||
gimp_container_get_child_index (view->container,
|
||||
GIMP_OBJECT (item)))
|
||||
|
@ -350,12 +348,9 @@ gimp_layer_list_view_select_item (GimpContainerView *view,
|
|||
}
|
||||
}
|
||||
|
||||
gtk_widget_set_sensitive (list_view->options_box, options_sensitive);
|
||||
gtk_widget_set_sensitive (drawable_view->raise_button, raise_sensitive);
|
||||
gtk_widget_set_sensitive (drawable_view->lower_button, lower_sensitive);
|
||||
gtk_widget_set_sensitive (drawable_view->duplicate_button, duplicate_sensitive);
|
||||
gtk_widget_set_sensitive (drawable_view->edit_button, edit_sensitive);
|
||||
gtk_widget_set_sensitive (list_view->anchor_button, anchor_sensitive);
|
||||
gtk_widget_set_sensitive (list_view->options_box, options_sensitive);
|
||||
gtk_widget_set_sensitive (drawable_view->raise_button, raise_sensitive);
|
||||
gtk_widget_set_sensitive (list_view->anchor_button, anchor_sensitive);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -244,8 +244,11 @@ static void
|
|||
gimp_layer_list_view_style_set (GtkWidget *widget,
|
||||
GtkStyle *prev_style)
|
||||
{
|
||||
gint content_spacing;
|
||||
gint button_spacing;
|
||||
GimpLayerListView *layer_view;
|
||||
gint content_spacing;
|
||||
gint button_spacing;
|
||||
|
||||
layer_view = GIMP_LAYER_LIST_VIEW (widget);
|
||||
|
||||
gtk_widget_style_get (widget,
|
||||
"content_spacing",
|
||||
|
@ -254,9 +257,7 @@ gimp_layer_list_view_style_set (GtkWidget *widget,
|
|||
&button_spacing,
|
||||
NULL);
|
||||
|
||||
#ifdef __GNUC__
|
||||
#warning TODO: gimp_layer_list_view_style_set()
|
||||
#endif
|
||||
gtk_box_set_spacing (GTK_BOX (layer_view->options_box), content_spacing);
|
||||
|
||||
if (GTK_WIDGET_CLASS (parent_class)->style_set)
|
||||
GTK_WIDGET_CLASS (parent_class)->style_set (widget, prev_style);
|
||||
|
@ -313,9 +314,6 @@ gimp_layer_list_view_select_item (GimpContainerView *view,
|
|||
gboolean options_sensitive = FALSE;
|
||||
gboolean anchor_sensitive = FALSE;
|
||||
gboolean raise_sensitive = FALSE;
|
||||
gboolean lower_sensitive = FALSE;
|
||||
gboolean duplicate_sensitive = FALSE;
|
||||
gboolean edit_sensitive = FALSE;
|
||||
|
||||
list_view = GIMP_LAYER_LIST_VIEW (view);
|
||||
drawable_view = GIMP_DRAWABLE_LIST_VIEW (view);
|
||||
|
@ -334,13 +332,13 @@ gimp_layer_list_view_select_item (GimpContainerView *view,
|
|||
if (gimp_layer_is_floating_sel (GIMP_LAYER (item)))
|
||||
{
|
||||
anchor_sensitive = TRUE;
|
||||
|
||||
gtk_widget_set_sensitive (drawable_view->lower_button, FALSE);
|
||||
gtk_widget_set_sensitive (drawable_view->duplicate_button, FALSE);
|
||||
gtk_widget_set_sensitive (drawable_view->edit_button, FALSE);
|
||||
}
|
||||
else
|
||||
{
|
||||
lower_sensitive = TRUE;
|
||||
duplicate_sensitive = TRUE;
|
||||
edit_sensitive = TRUE;
|
||||
|
||||
if (gimp_drawable_has_alpha (GIMP_DRAWABLE (item)) &&
|
||||
gimp_container_get_child_index (view->container,
|
||||
GIMP_OBJECT (item)))
|
||||
|
@ -350,12 +348,9 @@ gimp_layer_list_view_select_item (GimpContainerView *view,
|
|||
}
|
||||
}
|
||||
|
||||
gtk_widget_set_sensitive (list_view->options_box, options_sensitive);
|
||||
gtk_widget_set_sensitive (drawable_view->raise_button, raise_sensitive);
|
||||
gtk_widget_set_sensitive (drawable_view->lower_button, lower_sensitive);
|
||||
gtk_widget_set_sensitive (drawable_view->duplicate_button, duplicate_sensitive);
|
||||
gtk_widget_set_sensitive (drawable_view->edit_button, edit_sensitive);
|
||||
gtk_widget_set_sensitive (list_view->anchor_button, anchor_sensitive);
|
||||
gtk_widget_set_sensitive (list_view->options_box, options_sensitive);
|
||||
gtk_widget_set_sensitive (drawable_view->raise_button, raise_sensitive);
|
||||
gtk_widget_set_sensitive (list_view->anchor_button, anchor_sensitive);
|
||||
}
|
||||
|
||||
|
||||
|
|
|
@ -545,20 +545,15 @@ gimp_list_item_button_state_changed (GtkWidget *widget,
|
|||
*/
|
||||
if (GTK_WIDGET_DRAWABLE (list_item))
|
||||
{
|
||||
GdkEventExpose event;
|
||||
GdkRectangle rect;
|
||||
|
||||
event.type = GDK_EXPOSE;
|
||||
event.send_event = TRUE;
|
||||
event.window = list_item->window;
|
||||
event.area.x = widget->allocation.x;
|
||||
event.area.y = widget->allocation.y;
|
||||
event.area.width = widget->allocation.width;
|
||||
event.area.height = widget->allocation.height;
|
||||
event.count = 0;
|
||||
rect.x = widget->allocation.x;
|
||||
rect.y = widget->allocation.y;
|
||||
rect.width = widget->allocation.width;
|
||||
rect.height = widget->allocation.height;
|
||||
|
||||
gdk_window_ref (event.window);
|
||||
gtk_widget_event (list_item, (GdkEvent*) &event);
|
||||
gdk_window_unref (event.window);
|
||||
gdk_window_invalidate_rect (list_item->window, &rect, FALSE);
|
||||
gdk_window_process_updates (list_item->window, FALSE);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -124,10 +124,10 @@ static guint preview_signals[LAST_SIGNAL] = { 0 };
|
|||
static GtkPreviewClass *parent_class = NULL;
|
||||
|
||||
|
||||
GtkType
|
||||
GType
|
||||
gimp_preview_get_type (void)
|
||||
{
|
||||
static GtkType preview_type = 0;
|
||||
static GType preview_type = 0;
|
||||
|
||||
if (! preview_type)
|
||||
{
|
||||
|
|
|
@ -124,10 +124,10 @@ static guint preview_signals[LAST_SIGNAL] = { 0 };
|
|||
static GtkPreviewClass *parent_class = NULL;
|
||||
|
||||
|
||||
GtkType
|
||||
GType
|
||||
gimp_preview_get_type (void)
|
||||
{
|
||||
static GtkType preview_type = 0;
|
||||
static GType preview_type = 0;
|
||||
|
||||
if (! preview_type)
|
||||
{
|
||||
|
|
|
@ -124,10 +124,10 @@ static guint preview_signals[LAST_SIGNAL] = { 0 };
|
|||
static GtkPreviewClass *parent_class = NULL;
|
||||
|
||||
|
||||
GtkType
|
||||
GType
|
||||
gimp_preview_get_type (void)
|
||||
{
|
||||
static GtkType preview_type = 0;
|
||||
static GType preview_type = 0;
|
||||
|
||||
if (! preview_type)
|
||||
{
|
||||
|
|
|
@ -124,10 +124,10 @@ static guint preview_signals[LAST_SIGNAL] = { 0 };
|
|||
static GtkPreviewClass *parent_class = NULL;
|
||||
|
||||
|
||||
GtkType
|
||||
GType
|
||||
gimp_preview_get_type (void)
|
||||
{
|
||||
static GtkType preview_type = 0;
|
||||
static GType preview_type = 0;
|
||||
|
||||
if (! preview_type)
|
||||
{
|
||||
|
|
|
@ -50,12 +50,12 @@ static guint button_signals[LAST_SIGNAL] = { 0 };
|
|||
static GtkButtonClass *parent_class = NULL;
|
||||
|
||||
|
||||
GtkType
|
||||
GType
|
||||
gimp_button_get_type (void)
|
||||
{
|
||||
static guint button_type = 0;
|
||||
static GType button_type = 0;
|
||||
|
||||
if (!button_type)
|
||||
if (! button_type)
|
||||
{
|
||||
GtkTypeInfo button_info =
|
||||
{
|
||||
|
@ -127,18 +127,21 @@ static gboolean
|
|||
gimp_button_button_press (GtkWidget *widget,
|
||||
GdkEventButton *bevent)
|
||||
{
|
||||
g_return_val_if_fail (widget != NULL, FALSE);
|
||||
GimpButton *button;
|
||||
|
||||
g_return_val_if_fail (GIMP_IS_BUTTON (widget), FALSE);
|
||||
g_return_val_if_fail (bevent != NULL, FALSE);
|
||||
|
||||
button = GIMP_BUTTON (widget);
|
||||
|
||||
if (bevent->type == GDK_BUTTON_PRESS && bevent->button == 1)
|
||||
{
|
||||
GimpButton *button;
|
||||
|
||||
button = GIMP_BUTTON (widget);
|
||||
|
||||
button->press_state = bevent->state;
|
||||
}
|
||||
else
|
||||
{
|
||||
button->press_state = 0;
|
||||
}
|
||||
|
||||
if (GTK_WIDGET_CLASS (parent_class)->button_press_event)
|
||||
return GTK_WIDGET_CLASS (parent_class)->button_press_event (widget, bevent);
|
||||
|
@ -146,15 +149,13 @@ gimp_button_button_press (GtkWidget *widget,
|
|||
return TRUE;
|
||||
}
|
||||
|
||||
static gint
|
||||
static gboolean
|
||||
gimp_button_button_release (GtkWidget *widget,
|
||||
GdkEventButton *bevent)
|
||||
{
|
||||
GtkButton *button;
|
||||
gboolean extended_clicked = FALSE;
|
||||
gboolean retval = TRUE;
|
||||
|
||||
g_return_val_if_fail (widget != NULL, FALSE);
|
||||
g_return_val_if_fail (GIMP_IS_BUTTON (widget), FALSE);
|
||||
g_return_val_if_fail (bevent != NULL, FALSE);
|
||||
|
||||
|
@ -180,8 +181,7 @@ gimp_button_button_release (GtkWidget *widget,
|
|||
}
|
||||
|
||||
if (GTK_WIDGET_CLASS (parent_class)->button_release_event)
|
||||
retval = GTK_WIDGET_CLASS (parent_class)->button_release_event (widget,
|
||||
bevent);
|
||||
GTK_WIDGET_CLASS (parent_class)->button_release_event (widget, bevent);
|
||||
|
||||
if (extended_clicked)
|
||||
{
|
||||
|
@ -195,5 +195,5 @@ gimp_button_button_release (GtkWidget *widget,
|
|||
gtk_widget_draw (widget, NULL);
|
||||
}
|
||||
|
||||
return retval;
|
||||
return TRUE;
|
||||
}
|
||||
|
|
|
@ -55,7 +55,9 @@ struct _GimpButtonClass
|
|||
guint modifier_state);
|
||||
};
|
||||
|
||||
GtkType gimp_button_get_type (void);
|
||||
|
||||
GType gimp_button_get_type (void);
|
||||
|
||||
GtkWidget * gimp_button_new (void);
|
||||
|
||||
|
||||
|
|
|
@ -16,24 +16,38 @@
|
|||
# include "imagerc"
|
||||
|
||||
|
||||
style "gimp-global-style"
|
||||
style "gimp-normal-font-style"
|
||||
{
|
||||
font_name = "sans 12"
|
||||
}
|
||||
|
||||
style "gimp-small-font-style"
|
||||
{
|
||||
font_name = "sans 11"
|
||||
}
|
||||
|
||||
style "gimp-tiny-font-style"
|
||||
{
|
||||
font_name = "sans 8"
|
||||
}
|
||||
|
||||
|
||||
class "GtkWidget" style "gimp-normal-font-style"
|
||||
|
||||
class "*Ruler*" style "gimp-tiny-font-style"
|
||||
|
||||
|
||||
style "gimp-dialog-style"
|
||||
{
|
||||
GtkDialog::content_area_border = 0
|
||||
GtkDialog::button_spacing = 4
|
||||
GtkDialog::action_area_border = 4
|
||||
|
||||
# GtkSpinButton::shadow_type = none
|
||||
|
||||
# when changing the font size, also change GtkRange::slider_width below
|
||||
# so the labels stay nicely aligned with the horizontzal sliders
|
||||
#
|
||||
font_name = "sans 11"
|
||||
}
|
||||
|
||||
class "GtkWidget" style "gimp-global-style"
|
||||
widget "*GtkDialog*" style "gimp-dialog-style"
|
||||
|
||||
|
||||
style "gimp-hscale-style" = "gimp-global-style"
|
||||
style "gimp-hscale-style"
|
||||
{
|
||||
GtkRange::slider_width = 11
|
||||
}
|
||||
|
@ -41,15 +55,7 @@ style "gimp-hscale-style" = "gimp-global-style"
|
|||
class "GtkHScale" style "gimp-hscale-style"
|
||||
|
||||
|
||||
style "gimp-ruler"
|
||||
{
|
||||
font_name = "sans 8"
|
||||
}
|
||||
|
||||
class "*Ruler*" style "gimp-ruler"
|
||||
|
||||
|
||||
style "gimp-dock-style"
|
||||
style "gimp-dock-style" = "gimp-small-font-style"
|
||||
{
|
||||
GimpDockable::content_border = 2
|
||||
GimpContainerView::content_spacing = 2
|
||||
|
@ -58,7 +64,7 @@ style "gimp-dock-style"
|
|||
GimpContainerEditor::button_spacing = 2
|
||||
}
|
||||
|
||||
widget "*GimpDock*" style "gimp-dock-style"
|
||||
widget "*Gimp*Dock*" style "gimp-dock-style"
|
||||
|
||||
|
||||
style "gimp-tooltips"
|
||||
|
|
Loading…
Reference in New Issue