commit - ae27debd60f27b29810b6fe92373bb4064c8ee0d
commit + 8aa5c43ade178e04f68a7aa1fe09de63cfb2225f
blob - e6c459b3a4eb0dbe3a9a660120d0f2ac9f248741
blob + adfcd26b87034443b83b0844479e66942ac82a18
--- src/compose.c
+++ src/compose.c
#include "codeconv.h"
#include "utils.h"
#include "gtkutils.h"
-#include "gtkshruler.h"
#include "socket.h"
#include "alertpanel.h"
#include "manage_window.h"
static void compose_notebook_size_alloc (GtkNotebook *notebook,
GtkAllocation *allocation,
GtkPaned *paned);
-static gboolean compose_edit_size_alloc (GtkEditable *widget,
- GtkAllocation *allocation,
- GtkSHRuler *shruler);
static void account_activated (GtkComboBox *optmenu,
gpointer data);
static void attach_selected (GtkTreeView *tree_view,
static void compose_toggle_autoindent_cb(GtkToggleAction *action,
gpointer data);
-static void compose_toggle_ruler_cb (GtkToggleAction *action,
- gpointer data);
static void compose_toggle_sign_cb (GtkToggleAction *action,
gpointer data);
static void compose_toggle_encrypt_cb (GtkToggleAction *action,
{"Options/Sign", NULL, N_("Si_gn"), NULL, NULL, G_CALLBACK(compose_toggle_sign_cb), FALSE }, /* Toggle */
{"Options/Encrypt", NULL, N_("_Encrypt"), NULL, NULL, G_CALLBACK(compose_toggle_encrypt_cb), FALSE }, /* Toggle */
{"Options/RemoveReferences", NULL, N_("Remo_ve references"), NULL, NULL, G_CALLBACK(compose_toggle_remove_refs_cb), FALSE }, /* Toggle */
- {"Tools/ShowRuler", NULL, N_("Show _ruler"), NULL, NULL, G_CALLBACK(compose_toggle_ruler_cb), FALSE }, /* Toggle */
};
static GtkRadioActionEntry compose_radio_rm_entries[] =
cm_menu_set_sensitive_full(compose->ui_manager, "Menu/Message/ReplaceSig", FALSE);
cm_menu_set_sensitive_full(compose->ui_manager, "Menu/Edit", FALSE);
cm_menu_set_sensitive_full(compose->ui_manager, "Menu/Options", FALSE);
- cm_menu_set_sensitive_full(compose->ui_manager, "Menu/Tools/ShowRuler", FALSE);
cm_menu_set_sensitive_full(compose->ui_manager, "Menu/Tools/Actions", FALSE);
if (compose->toolbar->sendl_btn)
GtkWidget *paned;
GtkWidget *edit_vbox;
- GtkWidget *ruler_hbox;
- GtkWidget *ruler;
GtkWidget *scrolledwin;
GtkWidget *text;
GtkTextBuffer *buffer;
/* phew. */
/* Tools menu */
- MENUITEM_ADDUI_MANAGER(compose->ui_manager, "/Menu/Tools", "ShowRuler", "Tools/ShowRuler", GTK_UI_MANAGER_MENUITEM)
MENUITEM_ADDUI_MANAGER(compose->ui_manager, "/Menu/Tools", "AddressBook", "Tools/AddressBook", GTK_UI_MANAGER_MENUITEM)
MENUITEM_ADDUI_MANAGER(compose->ui_manager, "/Menu/Tools", "Template", "Tools/Template", GTK_UI_MANAGER_MENU)
MENUITEM_ADDUI_MANAGER(compose->ui_manager, "/Menu/Tools/Template", "PlaceHolder", "Tools/Template/PlaceHolder", GTK_UI_MANAGER_MENUITEM)
gtk_box_pack_start(GTK_BOX(edit_vbox), subject_hbox, FALSE, FALSE, 0);
- /* ruler */
- ruler_hbox = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 0);
- gtk_box_pack_start(GTK_BOX(edit_vbox), ruler_hbox, FALSE, FALSE, 0);
-
- ruler = gtk_shruler_new(GTK_ORIENTATION_HORIZONTAL);
- gtk_shruler_set_range(GTK_SHRULER(ruler), 0.0, 100.0, 1.0);
- gtk_box_pack_start(GTK_BOX(ruler_hbox), ruler, TRUE, TRUE,
- BORDER_WIDTH);
-
/* text widget */
scrolledwin = gtk_scrolled_window_new(NULL, NULL);
gtk_scrolled_window_set_policy(GTK_SCROLLED_WINDOW(scrolledwin),
gtk_text_buffer_add_selection_clipboard(buffer, clipboard);
gtk_container_add(GTK_CONTAINER(scrolledwin), text);
- g_signal_connect_after(G_OBJECT(text), "size_allocate",
- G_CALLBACK(compose_edit_size_alloc),
- ruler);
g_signal_connect(G_OBJECT(buffer), "changed",
G_CALLBACK(compose_changed_cb), compose);
g_signal_connect(G_OBJECT(text), "grab_focus",
compose->notebook = notebook;
compose->edit_vbox = edit_vbox;
- compose->ruler_hbox = ruler_hbox;
- compose->ruler = ruler;
compose->scrolledwin = scrolledwin;
compose->text = text;
compose_list = g_list_append(compose_list, compose);
- if (!prefs_common.show_ruler)
- gtk_widget_hide(ruler_hbox);
-
- cm_toggle_menu_set_active_full(compose->ui_manager, "Menu/Tools/ShowRuler", prefs_common.show_ruler);
-
compose_set_out_encoding(compose);
/* Actions menu */
#if USE_ENCHANT
"Menu/Spelling",
#endif
- "Menu/Tools/ShowRuler",
"Menu/Tools/Actions",
NULL
};
if (compose->exteditor_socket)
gtk_widget_hide(compose->exteditor_socket);
gtk_widget_show(compose->scrolledwin);
- if (prefs_common.show_ruler)
- gtk_widget_show(compose->ruler_hbox);
/* Fix the focus, as it doesn't go anywhere when the
* socket is hidden or destroyed */
gtk_widget_child_focus(compose->window, GTK_DIR_TAB_BACKWARD);
if (gtk_widget_is_focus(compose->text))
gtk_widget_child_focus(compose->window, GTK_DIR_TAB_BACKWARD);
gtk_widget_hide(compose->scrolledwin);
- gtk_widget_hide(compose->ruler_hbox);
gtk_widget_show(compose->exteditor_socket);
}
} else {
prefs_common.compose_notebook_height = gtk_paned_get_position(paned);
}
-/* compose_edit_size_alloc() - called when resized. don't know whether Gtk
- * includes "non-client" (windows-izm) in calculation, so this calculation
- * may not be accurate.
- */
-static gboolean compose_edit_size_alloc(GtkEditable *widget,
- GtkAllocation *allocation,
- GtkSHRuler *shruler)
-{
- if (prefs_common.show_ruler) {
- gint char_width = 0, char_height = 0;
- gint line_width_in_chars;
-
- gtkut_get_font_size(GTK_WIDGET(widget),
- &char_width, &char_height);
- line_width_in_chars =
- (allocation->width - allocation->x) / char_width;
-
- /* got the maximum */
- gtk_shruler_set_range(GTK_SHRULER(shruler),
- 0.0, line_width_in_chars, 0);
- }
-
- return TRUE;
-}
-
typedef struct {
gchar *header;
gchar *entry;
}
}
-static void compose_toggle_ruler_cb(GtkToggleAction *action, gpointer data)
-{
- Compose *compose = (Compose *)data;
-
- if (gtk_toggle_action_get_active (GTK_TOGGLE_ACTION (action))) {
- gtk_widget_show(compose->ruler_hbox);
- prefs_common.show_ruler = TRUE;
- } else {
- gtk_widget_hide(compose->ruler_hbox);
- gtk_widget_queue_resize(compose->edit_vbox);
- prefs_common.show_ruler = FALSE;
- }
-}
-
static void compose_attach_drag_received_cb (GtkWidget *widget,
GdkDragContext *context,
gint x,
blob - 367e40fbdafcc092ee44adc9d152bb156081d216
blob + 565d444ccbf4b1374714b0be94d815509543d97d
--- src/compose.h
+++ src/compose.h
/* Textedit */
GtkWidget *edit_vbox;
- GtkWidget *ruler_hbox;
- GtkWidget *ruler;
GtkWidget *scrolledwin;
GtkWidget *text;
GtkWidget *from_name;
blob - b77e0e45ce6a726d0a93cc581d8f912875d2feae
blob + d15f62336d67bfc15c132b150edf423e80be335d
--- src/folderutils.c
+++ src/folderutils.c
#include <glib.h>
#include "utils.h"
-#include "prefs_common.h"
#include "folderutils.h"
#include "prefs_account.h"
#include "account.h"
{
if (node) {
FolderItem *sub_item = (FolderItem *) node->data;
- if (prefs_common.run_processingrules_before_mark_all)
- folderview_run_processing(sub_item);
folderutils_mark_all_read(sub_item, (gboolean) GPOINTER_TO_INT(data));
}
return(FALSE);
blob - 31b72c81a9118984569e47377f8b1e9c7451a45c
blob + 1c7af9df07afe91991da94997d3c9c20864bc675
--- src/folderview.c
+++ src/folderview.c
static void folderview_search_cb (GtkAction *action,
gpointer data);
-static void folderview_run_processing_cb(GtkAction *action,
- gpointer data);
static void folderview_startup_folder_cb(GtkAction *action,
gpointer data);
gpointer userdata);
static gboolean folderview_update_item_claws (gpointer source,
gpointer data);
-static void folderview_processing_cb(GtkAction *action, gpointer data);
static void folderview_set_sens_and_popup_menu(FolderView *folderview, gint row,
GdkEventButton *event);
static void folderview_header_set_displayed_columns_cb(GtkAction *gaction,
{"FolderViewPopup/MarkAllReadRec", NULL, N_("Mark all read recursi_vely"), NULL, NULL, G_CALLBACK(mark_all_read_recursive_cb) },
{"FolderViewPopup/MarkAllUnreadRec", NULL, N_("Mark all unread recursi_vely"), NULL, NULL, G_CALLBACK(mark_all_unread_recursive_cb) },
{"FolderViewPopup/---", NULL, "---", NULL, NULL , NULL},
- {"FolderViewPopup/RunProcessing", NULL, N_("R_un processing rules"), NULL, NULL, G_CALLBACK(folderview_run_processing_cb) },
{"FolderViewPopup/SearchFolder", NULL, N_("_Search folder..."), NULL, NULL, G_CALLBACK(folderview_search_cb) },
{"FolderViewPopup/OpenFolder", NULL, N_("Open on start-up"), NULL, NULL, G_CALLBACK(folderview_startup_folder_cb) },
{"FolderViewPopup/Properties", NULL, N_("_Properties..."), NULL, NULL, G_CALLBACK(folderview_property_cb) },
- {"FolderViewPopup/Processing", NULL, N_("Process_ing..."), NULL, NULL, G_CALLBACK(folderview_processing_cb) },
{"FolderViewPopup/EmptyTrash", NULL, N_("Empty _trash..."), NULL, NULL, G_CALLBACK(folderview_empty_trash_cb) },
{"FolderViewPopup/SendQueue", NULL, N_("Send _queue..."), NULL, NULL, G_CALLBACK(folderview_send_queue_cb) },
if (recursive)
folderutils_mark_all_read_recursive(item, TRUE);
else {
- if (prefs_common.run_processingrules_before_mark_all)
- folderview_run_processing(item);
folderutils_mark_all_read(item, TRUE);
}
} else {
folderutils_mark_all_read_recursive(item, FALSE);
else {
folderutils_mark_all_read(item, FALSE);
- if (prefs_common.run_processingrules_before_mark_all)
- folderview_run_processing(item);
}
}
if (folderview->summaryview->folder_item != item && !recursive)
if (folder && folder != item->folder) continue;
if (!folder && !FOLDER_IS_LOCAL(item->folder)) continue;
if (!item->prefs->newmailcheck) continue;
- if (item->processing_pending == TRUE) {
- debug_print("skipping %s, processing pending\n",
- item->path ? item->path : item->name);
- continue;
- }
if (item->scanning != ITEM_NOT_SCANNING) {
debug_print("skipping %s, scanning\n",
item->path ? item->path : item->name);
if (item->folder->klass->scan_required &&
(item->folder->klass->scan_required(item->folder, item) ||
item->folder->inbox == item ||
- item->opened == TRUE ||
- item->processing_pending == TRUE)) {
+ item->opened == TRUE )) {
if (folder_item_scan(item) < 0) {
if (folder) {
if (FOLDER_TYPE(item->folder) == F_NEWS || FOLDER_IS_LOCAL(folder)) {
MENUITEM_ADDUI_MANAGER(ui_manager, "/Popup/FolderViewPopup", "MarkAllReadRec", "FolderViewPopup/MarkAllReadRec", GTK_UI_MANAGER_MENUITEM)
MENUITEM_ADDUI_MANAGER(ui_manager, "/Popup/FolderViewPopup", "MarkAllUnreadRec", "FolderViewPopup/MarkAllUnreadRec", GTK_UI_MANAGER_MENUITEM)
MENUITEM_ADDUI_MANAGER(ui_manager, "/Popup/FolderViewPopup", "Separator1", "FolderViewPopup/---", GTK_UI_MANAGER_SEPARATOR)
- MENUITEM_ADDUI_MANAGER(ui_manager, "/Popup/FolderViewPopup", "RunProcessing", "FolderViewPopup/RunProcessing", GTK_UI_MANAGER_MENUITEM)
MENUITEM_ADDUI_MANAGER(ui_manager, "/Popup/FolderViewPopup", "SearchFolder", "FolderViewPopup/SearchFolder", GTK_UI_MANAGER_MENUITEM)
MENUITEM_ADDUI_MANAGER(ui_manager, "/Popup/FolderViewPopup", "OpenFolder", "FolderViewPopup/OpenFolder", GTK_UI_MANAGER_MENUITEM)
MENUITEM_ADDUI_MANAGER(ui_manager, "/Popup/FolderViewPopup", "Properties", "FolderViewPopup/Properties", GTK_UI_MANAGER_MENUITEM)
- MENUITEM_ADDUI_MANAGER(ui_manager, "/Popup/FolderViewPopup", "Processing", "FolderViewPopup/Processing", GTK_UI_MANAGER_MENUITEM)
if (fpopup->set_sensitivity != NULL)
fpopup->set_sensitivity(ui_manager, item);
folderview->selected == folderview->opened);
SET_SENS("FolderViewPopup/Properties", TRUE);
- SET_SENS("FolderViewPopup/RunProcessing", item->prefs->processing &&
- item->total_msgs >= 1 && !item->processing_pending);
- SET_SENS("FolderViewPopup/Processing", item->node->parent != NULL &&
- !item->no_select && !item->processing_pending);
-
if (item->node->parent != NULL) {
gchar *id = folder_item_get_identifier(item);
SET_SENS("FolderViewPopup/OpenFolder", !prefs_common.goto_folder_on_startup
prefs_common.goto_folder_on_startup = prefs_common.startup_folder? TRUE : FALSE;
}
-static void folderview_run_processing_cb(GtkAction *action, gpointer data)
-{
- FolderView *folderview = (FolderView *)data;
- FolderItem *item;
-
- if (!folderview->selected) return;
-
- item = folderview_get_selected_item(folderview);
-
- folderview_run_processing(item);
-}
-
-void folderview_run_processing(FolderItem *item)
-{
- cm_return_if_fail(item != NULL);
- cm_return_if_fail(item->folder != NULL);
- item->processing_pending = FALSE;
-}
-
static void folderview_property_cb(GtkAction *action, gpointer data)
{
FolderView *folderview = (FolderView *)data;
return g_utf8_collate(item1->name, item2->name);
}
-static void folderview_processing_cb(GtkAction *action, gpointer data)
-{
- fprintf(stderr, "delete folderview_processing_cb\n");
- return;
-}
-
void folderview_set_target_folder_color(GdkRGBA color_op)
{
GList *list;
blob - 96b2f5a6be410813c4049267a96b5b7f144fd619
blob + dc7ec56b1814f5895be45dac69f06be45b5b2c42
--- src/gtk/Makefile.am
+++ src/gtk/Makefile.am
gtkcmclist.c \
gtksctree.c \
gtkunit.c \
- gtkshruler.c \
gtkutils.c \
gtkvscrollbutton.c \
icon_legend.c \
claws-marshal.h \
gtkcmctree.h \
gtkcmclist.h \
- gtksctree.h \
- gtkshruler.h
+ gtksctree.h
AM_CPPFLAGS = \
-I$(srcdir)/../common \
blob - c1866a1a56d9cb76dc76e24c5b01b84d9e88efb1 (mode 644)
blob + /dev/null
--- src/gtk/gtkshruler.c
+++ /dev/null
-/* LIBGTK - The GTK Library
- * Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
- *
- * This library is free software: you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see
- * <http://www.gnu.org/licenses/>.
- */
-
-#include "config.h"
-#include "claws-features.h"
-
-#include <math.h>
-#include <string.h>
-
-#include <gtk/gtk.h>
-
-#include "gtkutils.h"
-#include "gtkshruler.h"
-#include "gtkunit.h"
-
-#define ROUND(x) ((int) ((x) + 0.5))
-
-/**
- * SECTION: gimpparam
- * @title: gimpparam
- * @short_description: Definitions of useful #GParamFlags.
- *
- * Definitions of useful #GParamFlags.
- **/
-
-
-/**
- * GTK_PARAM_STATIC_STRINGS:
- *
- * Since: GTK 2.4
- **/
-#define GTK_PARAM_STATIC_STRINGS (G_PARAM_STATIC_NAME | \
- G_PARAM_STATIC_NICK | \
- G_PARAM_STATIC_BLURB)
-
-/**
- * GTK_PARAM_READABLE:
- *
- * Since: GTK 2.4
- **/
-#define GTK_PARAM_READABLE (G_PARAM_READABLE | \
- GTK_PARAM_STATIC_STRINGS)
-
-/**
- * GTK_PARAM_WRITABLE:
- *
- * Since: GTK 2.4
- **/
-#define GTK_PARAM_WRITABLE (G_PARAM_WRITABLE | \
- GTK_PARAM_STATIC_STRINGS)
-
-/**
- * GTK_PARAM_READWRITE:
- *
- * Since: GTK 2.4
- **/
-#define GTK_PARAM_READWRITE (G_PARAM_READWRITE | \
- GTK_PARAM_STATIC_STRINGS)
-
-
-/**
- * SECTION: gimpruler
- * @title: GtkSHRuler
- * @short_description: A ruler widget with configurable unit and orientation.
- *
- * A ruler widget with configurable unit and orientation.
- **/
-
-
-#define DEFAULT_RULER_FONT_SCALE PANGO_SCALE_SMALL
-#define MINIMUM_INCR 5
-
-
-enum
-{
- PROP_0,
- PROP_ORIENTATION,
- PROP_UNIT,
- PROP_LOWER,
- PROP_UPPER,
- PROP_POSITION,
- PROP_MAX_SIZE
-};
-
-
-/* All distances below are in 1/72nd's of an inch. (According to
- * Adobe that's a point, but points are really 1/72.27 in.)
- */
-typedef struct
-{
- GtkOrientation orientation;
- GtkCMUnit unit;
- gdouble lower;
- gdouble upper;
- gdouble position;
- gdouble max_size;
-
- GdkWindow *input_window;
- cairo_surface_t *backing_store;
- PangoLayout *layout;
- gdouble font_scale;
-
- gint xsrc;
- gint ysrc;
-} GtkSHRulerPrivate;
-
-#define GTK_SHRULER_GET_PRIVATE(ruler) \
- gtk_shruler_get_instance_private((GtkSHRuler *) ruler)
-
-
-static const struct
-{
- const gdouble ruler_scale[16];
- const gint subdivide[3];
-} ruler_metric =
-{
- { 1, 2, 5, 10, 25, 50, 100, 250, 500, 1000, 2500, 5000, 10000, 25000, 50000, 100000 },
- { 1, 5, 10 }
-};
-
-
-static void gtk_shruler_dispose (GObject *object);
-static void gtk_shruler_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec);
-static void gtk_shruler_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec);
-
-static void gtk_shruler_realize (GtkWidget *widget);
-static void gtk_shruler_unrealize (GtkWidget *widget);
-static void gtk_shruler_map (GtkWidget *widget);
-static void gtk_shruler_unmap (GtkWidget *widget);
-static void gtk_shruler_size_allocate (GtkWidget *widget,
- GtkAllocation *allocation);
-static void gtk_shruler_get_preferred_height (GtkWidget *widget,
- gint *minimal_height,
- gint *natural_height);
-static void gtk_shruler_get_preferred_width (GtkWidget *widget,
- gint *minimal_width,
- gint *natural_width);
-static void gtk_shruler_size_request (GtkWidget *widget,
- GtkRequisition *requisition);
-static void gtk_shruler_style_set (GtkWidget *widget,
- GtkStyle *prev_style);
-static gboolean gtk_shruler_motion_notify (GtkWidget *widget,
- GdkEventMotion *event);
-static gboolean gtk_shruler_expose (GtkWidget *widget,
- cairo_t *cr);
-
-static void gtk_shruler_draw_ticks (GtkSHRuler *ruler);
-static void gtk_shruler_make_pixmap (GtkSHRuler *ruler);
-
-static PangoLayout * gtk_shruler_get_layout (GtkWidget *widget,
- const gchar *text);
-
-G_DEFINE_TYPE_WITH_CODE (GtkSHRuler, gtk_shruler, GTK_TYPE_WIDGET,
- G_ADD_PRIVATE(GtkSHRuler))
-
-#define parent_class gtk_shruler_parent_class
-
-
-static void
-gtk_shruler_class_init (GtkSHRulerClass *klass)
-{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
- GtkWidgetClass *widget_class = GTK_WIDGET_CLASS (klass);
-
- object_class->dispose = gtk_shruler_dispose;
- object_class->set_property = gtk_shruler_set_property;
- object_class->get_property = gtk_shruler_get_property;
-
- widget_class->realize = gtk_shruler_realize;
- widget_class->unrealize = gtk_shruler_unrealize;
- widget_class->map = gtk_shruler_map;
- widget_class->unmap = gtk_shruler_unmap;
- widget_class->size_allocate = gtk_shruler_size_allocate;
- widget_class->get_preferred_width = gtk_shruler_get_preferred_width;
- widget_class->get_preferred_height = gtk_shruler_get_preferred_height;
- widget_class->style_set = gtk_shruler_style_set;
- widget_class->motion_notify_event = gtk_shruler_motion_notify;
- widget_class->draw = gtk_shruler_expose;
-
- g_object_class_install_property (object_class,
- PROP_ORIENTATION,
- g_param_spec_enum ("orientation",
- "Orientation",
- "The orientation of the ruler",
- GTK_TYPE_ORIENTATION,
- GTK_ORIENTATION_HORIZONTAL,
- GTK_PARAM_READWRITE));
-
- g_object_class_install_property (object_class,
- PROP_LOWER,
- gtk_param_spec_unit ("unit",
- "Unit",
- "Unit of ruler",
- TRUE, TRUE,
- CM_UNIT_PIXEL,
- GTK_PARAM_READWRITE));
-
- g_object_class_install_property (object_class,
- PROP_LOWER,
- g_param_spec_double ("lower",
- "Lower",
- "Lower limit of ruler",
- -G_MAXDOUBLE,
- G_MAXDOUBLE,
- 0.0,
- GTK_PARAM_READWRITE));
-
- g_object_class_install_property (object_class,
- PROP_UPPER,
- g_param_spec_double ("upper",
- "Upper",
- "Upper limit of ruler",
- -G_MAXDOUBLE,
- G_MAXDOUBLE,
- 0.0,
- GTK_PARAM_READWRITE));
-
- g_object_class_install_property (object_class,
- PROP_POSITION,
- g_param_spec_double ("position",
- "Position",
- "Position of mark on the ruler",
- -G_MAXDOUBLE,
- G_MAXDOUBLE,
- 0.0,
- GTK_PARAM_READWRITE));
-
- g_object_class_install_property (object_class,
- PROP_MAX_SIZE,
- g_param_spec_double ("max-size",
- "Max Size",
- "Maximum size of the ruler",
- -G_MAXDOUBLE,
- G_MAXDOUBLE,
- 0.0,
- GTK_PARAM_READWRITE));
-
- gtk_widget_class_install_style_property (widget_class,
- g_param_spec_double ("font-scale",
- NULL, NULL,
- 0.0,
- G_MAXDOUBLE,
- DEFAULT_RULER_FONT_SCALE,
- GTK_PARAM_READABLE));
-}
-
-static void
-gtk_shruler_init (GtkSHRuler *ruler)
-{
- GtkSHRulerPrivate *priv = GTK_SHRULER_GET_PRIVATE (ruler);
-
- gtk_widget_set_has_window (GTK_WIDGET (ruler), FALSE);
-
- priv->orientation = GTK_ORIENTATION_HORIZONTAL;
- priv->unit = 0;
- priv->lower = 0;
- priv->upper = 0;
- priv->position = 0;
- priv->max_size = 0;
- priv->backing_store = NULL;
- priv->font_scale = DEFAULT_RULER_FONT_SCALE;
-}
-
-static void
-gtk_shruler_dispose (GObject *object)
-{
- G_OBJECT_CLASS (parent_class)->dispose (object);
-}
-
-static void
-gtk_shruler_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- GtkSHRuler *ruler = GTK_SHRULER (object);
- GtkSHRulerPrivate *priv = GTK_SHRULER_GET_PRIVATE (ruler);
-
- switch (prop_id)
- {
- case PROP_ORIENTATION:
- priv->orientation = g_value_get_enum (value);
- gtk_widget_queue_resize (GTK_WIDGET (ruler));
- break;
-
- case PROP_UNIT:
- gtk_shruler_set_unit (ruler, g_value_get_int (value));
- break;
-
- case PROP_LOWER:
- gtk_shruler_set_range (ruler,
- g_value_get_double (value),
- priv->upper,
- priv->max_size);
- break;
- case PROP_UPPER:
- gtk_shruler_set_range (ruler,
- priv->lower,
- g_value_get_double (value),
- priv->max_size);
- break;
-
- case PROP_POSITION:
- gtk_shruler_set_position (ruler, g_value_get_double (value));
- break;
-
- case PROP_MAX_SIZE:
- gtk_shruler_set_range (ruler,
- priv->lower,
- priv->upper,
- g_value_get_double (value));
- break;
-
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-static void
-gtk_shruler_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- GtkSHRuler *ruler = GTK_SHRULER (object);
- GtkSHRulerPrivate *priv = GTK_SHRULER_GET_PRIVATE (ruler);
-
- switch (prop_id)
- {
- case PROP_ORIENTATION:
- g_value_set_enum (value, priv->orientation);
- break;
-
- case PROP_UNIT:
- g_value_set_int (value, priv->unit);
- break;
-
- case PROP_LOWER:
- g_value_set_double (value, priv->lower);
- break;
-
- case PROP_UPPER:
- g_value_set_double (value, priv->upper);
- break;
-
- case PROP_POSITION:
- g_value_set_double (value, priv->position);
- break;
-
- case PROP_MAX_SIZE:
- g_value_set_double (value, priv->max_size);
- break;
-
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
-}
-
-/**
- * gtk_shruler_new:
- * @orientation: the ruler's orientation.
- *
- * Creates a new ruler.
- *
- * Return value: a new #GtkSHRuler widget.
- *
- * Since: GTK 2.8
- **/
-GtkWidget *
-gtk_shruler_new (GtkOrientation orientation)
-{
- return g_object_new (GTK_TYPE_SHRULER,
- "orientation", orientation,
- NULL);
-}
-
-static void
-gtk_shruler_update_position (GtkSHRuler *ruler,
- gdouble x,
- gdouble y)
-{
- GtkSHRulerPrivate *priv = GTK_SHRULER_GET_PRIVATE (ruler);
- GtkAllocation allocation;
- gdouble lower;
- gdouble upper;
-
- gtk_widget_get_allocation (GTK_WIDGET (ruler), &allocation);
- gtk_shruler_get_range (ruler, &lower, &upper, NULL);
-
- if (priv->orientation == GTK_ORIENTATION_HORIZONTAL)
- {
- gtk_shruler_set_position (ruler,
- lower +
- (upper - lower) * x / allocation.width);
- }
- else
- {
- gtk_shruler_set_position (ruler,
- lower +
- (upper - lower) * y / allocation.height);
- }
-}
-
-/**
- * gtk_shruler_set_unit:
- * @ruler: a #GtkSHRuler
- * @unit: the #GtkCMUnit to set the ruler to
- *
- * This sets the unit of the ruler.
- *
- * Since: GTK 2.8
- */
-void
-gtk_shruler_set_unit (GtkSHRuler *ruler,
- GtkCMUnit unit)
-{
- GtkSHRulerPrivate *priv;
-
- g_return_if_fail (GTK_IS_SHRULER (ruler));
-
- priv = GTK_SHRULER_GET_PRIVATE (ruler);
-
- if (priv->unit != unit)
- {
- priv->unit = unit;
- g_object_notify (G_OBJECT (ruler), "unit");
-
- gtk_widget_queue_draw (GTK_WIDGET (ruler));
- }
-}
-
-/**
- * gtk_shruler_get_unit:
- * @ruler: a #GtkSHRuler
- *
- * Return value: the unit currently used in the @ruler widget.
- *
- * Since: GTK 2.8
- **/
-GtkCMUnit
-gtk_shruler_get_unit (GtkSHRuler *ruler)
-{
- GtkSHRulerPrivate *priv;
-
- g_return_val_if_fail (GTK_IS_SHRULER (ruler), 0);
-
- priv = GTK_SHRULER_GET_PRIVATE (ruler);
-
- return priv->unit;
-}
-
-/**
- * gtk_shruler_set_position:
- * @ruler: a #GtkSHRuler
- * @position: the position to set the ruler to
- *
- * This sets the position of the ruler.
- *
- * Since: GTK 2.8
- */
-void
-gtk_shruler_set_position (GtkSHRuler *ruler,
- gdouble position)
-{
- GtkSHRulerPrivate *priv;
-
- g_return_if_fail (GTK_IS_SHRULER (ruler));
-
- priv = GTK_SHRULER_GET_PRIVATE (ruler);
-
- if (priv->position != position)
- {
- priv->position = position;
- g_object_notify (G_OBJECT (ruler), "position");
- }
-}
-
-/**
- * gtk_shruler_get_position:
- * @ruler: a #GtkSHRuler
- *
- * Return value: the current position of the @ruler widget.
- *
- * Since: GTK 2.8
- **/
-gdouble
-gtk_shruler_get_position (GtkSHRuler *ruler)
-{
- GtkSHRulerPrivate *priv;
-
- g_return_val_if_fail (GTK_IS_SHRULER (ruler), 0.0);
-
- priv = GTK_SHRULER_GET_PRIVATE (ruler);
-
- return priv->position;
-}
-
-/**
- * gtk_shruler_set_range:
- * @ruler: a #GtkSHRuler
- * @lower: the lower limit of the ruler
- * @upper: the upper limit of the ruler
- * @max_size: the maximum size of the ruler used when calculating the space to
- * leave for the text
- *
- * This sets the range of the ruler.
- *
- * Since: GTK 2.8
- */
-void
-gtk_shruler_set_range (GtkSHRuler *ruler,
- gdouble lower,
- gdouble upper,
- gdouble max_size)
-{
- GtkSHRulerPrivate *priv;
-
- g_return_if_fail (GTK_IS_SHRULER (ruler));
-
- priv = GTK_SHRULER_GET_PRIVATE (ruler);
-
- g_object_freeze_notify (G_OBJECT (ruler));
- if (priv->lower != lower)
- {
- priv->lower = lower;
- g_object_notify (G_OBJECT (ruler), "lower");
- }
- if (priv->upper != upper)
- {
- priv->upper = upper;
- g_object_notify (G_OBJECT (ruler), "upper");
- }
- if (priv->max_size != max_size)
- {
- priv->max_size = max_size;
- g_object_notify (G_OBJECT (ruler), "max-size");
- }
- g_object_thaw_notify (G_OBJECT (ruler));
-
- gtk_widget_queue_draw (GTK_WIDGET (ruler));
-}
-
-/**
- * gtk_shruler_get_range:
- * @ruler: a #GtkSHRuler
- * @lower: location to store lower limit of the ruler, or %NULL
- * @upper: location to store upper limit of the ruler, or %NULL
- * @max_size: location to store the maximum size of the ruler used when
- * calculating the space to leave for the text, or %NULL.
- *
- * Retrieves values indicating the range and current position of a #GtkSHRuler.
- * See gtk_shruler_set_range().
- *
- * Since: GTK 2.8
- **/
-void
-gtk_shruler_get_range (GtkSHRuler *ruler,
- gdouble *lower,
- gdouble *upper,
- gdouble *max_size)
-{
- GtkSHRulerPrivate *priv;
-
- g_return_if_fail (GTK_IS_SHRULER (ruler));
-
- priv = GTK_SHRULER_GET_PRIVATE (ruler);
-
- if (lower)
- *lower = priv->lower;
- if (upper)
- *upper = priv->upper;
- if (max_size)
- *max_size = priv->max_size;
-}
-
-static void
-gtk_shruler_realize (GtkWidget *widget)
-{
- GtkSHRuler *ruler = GTK_SHRULER (widget);
- GtkSHRulerPrivate *priv = GTK_SHRULER_GET_PRIVATE (ruler);
- GtkAllocation allocation;
- GdkWindowAttr attributes;
- gint attributes_mask;
-
- GTK_WIDGET_CLASS (gtk_shruler_parent_class)->realize (widget);
-
- gtk_widget_get_allocation (widget, &allocation);
-
- attributes.window_type = GDK_WINDOW_CHILD;
- attributes.x = allocation.x;
- attributes.y = allocation.y;
- attributes.width = allocation.width;
- attributes.height = allocation.height;
- attributes.wclass = GDK_INPUT_ONLY;
- attributes.event_mask = (gtk_widget_get_events (widget) |
- GDK_EXPOSURE_MASK |
- GDK_POINTER_MOTION_MASK |
- GDK_POINTER_MOTION_HINT_MASK);
-
- attributes_mask = GDK_WA_X | GDK_WA_Y;
-
- priv->input_window = gdk_window_new (gtk_widget_get_window (widget),
- &attributes, attributes_mask);
- gtk_widget_register_window (widget, priv->input_window);
-
- gtk_shruler_make_pixmap (ruler);
-}
-
-static void
-gtk_shruler_unrealize (GtkWidget *widget)
-{
- GtkSHRuler *ruler = GTK_SHRULER (widget);
- GtkSHRulerPrivate *priv = GTK_SHRULER_GET_PRIVATE (ruler);
-
- if (priv->backing_store)
- {
- cairo_surface_destroy (priv->backing_store);
- priv->backing_store = NULL;
- }
-
- if (priv->layout)
- {
- g_object_unref (priv->layout);
- priv->layout = NULL;
- }
-
- if (priv->input_window)
- {
- gtk_widget_unregister_window (widget, priv->input_window);
- gdk_window_destroy (priv->input_window);
- priv->input_window = NULL;
- }
-
- GTK_WIDGET_CLASS (gtk_shruler_parent_class)->unrealize (widget);
-}
-
-static void
-gtk_shruler_map (GtkWidget *widget)
-{
- GtkSHRulerPrivate *priv = GTK_SHRULER_GET_PRIVATE (widget);
-
- GTK_WIDGET_CLASS (parent_class)->map (widget);
-
- if (priv->input_window)
- gdk_window_show (priv->input_window);
-}
-
-static void
-gtk_shruler_unmap (GtkWidget *widget)
-{
- GtkSHRulerPrivate *priv = GTK_SHRULER_GET_PRIVATE (widget);
-
- if (priv->input_window)
- gdk_window_hide (priv->input_window);
-
- GTK_WIDGET_CLASS (parent_class)->unmap (widget);
-}
-
-static void
-gtk_shruler_size_allocate (GtkWidget *widget,
- GtkAllocation *allocation)
-{
- GtkSHRuler *ruler = GTK_SHRULER (widget);
- GtkSHRulerPrivate *priv = GTK_SHRULER_GET_PRIVATE (ruler);
-
- gtk_widget_set_allocation (widget, allocation);
-
- if (gtk_widget_get_realized (widget))
- {
- gdk_window_move_resize (priv->input_window,
- allocation->x, allocation->y,
- allocation->width, allocation->height);
-
- gtk_shruler_make_pixmap (ruler);
- }
-}
-
-static void
-gtk_shruler_get_preferred_width (GtkWidget *widget,
- gint *minimal_width,
- gint *natural_width)
-{
- GtkRequisition requisition;
-
- gtk_shruler_size_request (widget, &requisition);
-
- *minimal_width = *natural_width = requisition.width;
-}
-
-static void
-gtk_shruler_get_preferred_height (GtkWidget *widget,
- gint *minimal_height,
- gint *natural_height)
-{
- GtkRequisition requisition;
-
- gtk_shruler_size_request (widget, &requisition);
-
- *minimal_height = *natural_height = requisition.height;
-}
-
-static void
-gtk_shruler_size_request (GtkWidget *widget,
- GtkRequisition *requisition)
-{
- GtkSHRulerPrivate *priv = GTK_SHRULER_GET_PRIVATE (widget);
- GtkStyle *style = gtk_widget_get_style (widget);
- PangoLayout *layout;
- PangoRectangle ink_rect;
- gint size;
-
- layout = gtk_shruler_get_layout (widget, "0123456789");
- pango_layout_get_pixel_extents (layout, &ink_rect, NULL);
-
- size = 2 + ink_rect.height * 1.7;
-
- if (priv->orientation == GTK_ORIENTATION_HORIZONTAL)
- {
- requisition->width = style->xthickness * 2 + 1;
- requisition->height = style->ythickness * 2 + size;
- }
- else
- {
- requisition->width = style->xthickness * 2 + size;
- requisition->height = style->ythickness * 2 + 1;
- }
-}
-
-static void
-gtk_shruler_style_set (GtkWidget *widget,
- GtkStyle *prev_style)
-{
- GtkSHRulerPrivate *priv = GTK_SHRULER_GET_PRIVATE (widget);
-
- GTK_WIDGET_CLASS (gtk_shruler_parent_class)->style_set (widget, prev_style);
-
- gtk_widget_style_get (widget,
- "font-scale", &priv->font_scale,
- NULL);
-
- if (priv->layout)
- {
- g_object_unref (priv->layout);
- priv->layout = NULL;
- }
-}
-
-static gboolean
-gtk_shruler_motion_notify (GtkWidget *widget,
- GdkEventMotion *event)
-{
- GtkSHRuler *ruler = GTK_SHRULER (widget);
-
- gdk_event_request_motions (event);
-
- gtk_shruler_update_position (ruler, event->x, event->y);
-
- return FALSE;
-}
-
-static gboolean
-gtk_shruler_expose (GtkWidget *widget,
- cairo_t *cr)
-{
- if (gtk_widget_is_drawable (widget))
- {
- GtkSHRuler *ruler = GTK_SHRULER (widget);
- GtkSHRulerPrivate *priv = GTK_SHRULER_GET_PRIVATE (ruler);
- GtkAllocation allocation;
-
- gtk_shruler_draw_ticks (ruler);
-
- gtk_widget_get_allocation (widget, &allocation);
-
- cairo_set_source_surface (cr, priv->backing_store, 0, 0);
- cairo_paint (cr);
- }
-
- return FALSE;
-}
-
-static void
-gtk_shruler_draw_ticks (GtkSHRuler *ruler)
-{
- GtkWidget *widget = GTK_WIDGET (ruler);
- GtkStyle *style = gtk_widget_get_style (widget);
- GtkSHRulerPrivate *priv = GTK_SHRULER_GET_PRIVATE (ruler);
- GtkStateType state = gtk_widget_get_state (widget);
- GtkAllocation allocation;
- cairo_t *cr;
- gint i;
- gint width, height;
- gint xthickness;
- gint ythickness;
- gint length;
- gdouble lower, upper; /* Upper and lower limits, in ruler units */
- gdouble increment; /* Number of pixels per unit */
- gint scale; /* Number of units per major unit */
- gdouble start, end, cur;
- gchar unit_str[32];
- gint digit_height;
- gint digit_offset;
- gint text_size;
- gint pos;
- gdouble max_size;
- GtkCMUnit unit;
- PangoLayout *layout;
- PangoRectangle logical_rect, ink_rect;
-
- if (! gtk_widget_is_drawable (widget))
- return;
-
- gtk_widget_get_allocation (widget, &allocation);
-
- xthickness = style->xthickness;
- ythickness = style->ythickness;
-
- layout = gtk_shruler_get_layout (widget, "0123456789");
- pango_layout_get_extents (layout, &ink_rect, &logical_rect);
-
- digit_height = PANGO_PIXELS (ink_rect.height) + 2;
- digit_offset = ink_rect.y;
-
- if (priv->orientation == GTK_ORIENTATION_HORIZONTAL)
- {
- width = allocation.width;
- height = allocation.height - ythickness * 2;
- }
- else
- {
- width = allocation.height;
- height = allocation.width - ythickness * 2;
- }
-
- cr = cairo_create (priv->backing_store);
- gdk_cairo_set_source_color (cr, &style->bg[state]);
-
- cairo_paint (cr);
-
- gdk_cairo_set_source_color (cr, &style->fg[state]);
-
- gtk_shruler_get_range (ruler, &lower, &upper, &max_size);
-
- if ((upper - lower) == 0)
- goto out;
-
- increment = (gdouble) width / (upper - lower);
-
- /* determine the scale
- * use the maximum extents of the ruler to determine the largest
- * possible number to be displayed. Calculate the height in pixels
- * of this displayed text. Use this height to find a scale which
- * leaves sufficient room for drawing the ruler.
- *
- * We calculate the text size as for the vruler instead of
- * actually measuring the text width, so that the result for the
- * scale looks consistent with an accompanying vruler.
- */
- scale = ceil (max_size);
- g_snprintf (unit_str, sizeof (unit_str), "%d", scale);
- text_size = strlen (unit_str) * digit_height + 1;
-
- for (scale = 0; scale < G_N_ELEMENTS (ruler_metric.ruler_scale); scale++)
- if (ruler_metric.ruler_scale[scale] * fabs (increment) > 2 * text_size)
- break;
-
- if (scale == G_N_ELEMENTS (ruler_metric.ruler_scale))
- scale = G_N_ELEMENTS (ruler_metric.ruler_scale) - 1;
-
- unit = gtk_shruler_get_unit (ruler);
-
- /* drawing starts here */
- length = 0;
- for (i = G_N_ELEMENTS (ruler_metric.subdivide) - 1; i >= 0; i--)
- {
- gdouble subd_incr;
-
- /* hack to get proper subdivisions at full pixels */
- if (unit == CM_UNIT_PIXEL && scale == 1 && i == 1)
- subd_incr = 1.0;
- else
- subd_incr = ((gdouble) ruler_metric.ruler_scale[scale] /
- (gdouble) ruler_metric.subdivide[i]);
-
- if (subd_incr * fabs (increment) <= MINIMUM_INCR)
- continue;
-
- /* don't subdivide pixels */
- if (unit == CM_UNIT_PIXEL && subd_incr < 1.0)
- continue;
-
- if (lower < upper)
- {
- start = floor (lower / subd_incr) * subd_incr;
- end = ceil (upper / subd_incr) * subd_incr;
- }
- else
- {
- start = floor (upper / subd_incr) * subd_incr;
- end = ceil (lower / subd_incr) * subd_incr;
- }
-
- for (cur = start; cur <= end; cur += subd_incr)
- {
- if (((int)cur) % 10 == 0)
- length = height * 2 / 3;
- else if (((int)cur) % 5 == 0)
- length = height / 3;
- else
- length = height / 4;
-
- pos = ROUND ((cur - lower) * increment);
-
- if (priv->orientation == GTK_ORIENTATION_HORIZONTAL)
- {
- cairo_rectangle (cr,
- pos, height + ythickness - length,
- 1, length);
- }
- else
- {
- cairo_rectangle (cr,
- height + xthickness - length, pos,
- length, 1);
- }
-
- /* draw label */
- if (i == 0 && ((int)cur) % 10 == 0)
- {
- g_snprintf (unit_str, sizeof (unit_str), "%d", (int) cur);
-
- if (priv->orientation == GTK_ORIENTATION_HORIZONTAL)
- {
- pango_layout_set_text (layout, unit_str, -1);
- pango_layout_get_extents (layout, &logical_rect, NULL);
-
- cairo_move_to (cr,
- pos + 2,
- ythickness + PANGO_PIXELS (logical_rect.y - digit_offset));
- pango_cairo_show_layout (cr, layout);
- }
- else
- {
- gint j;
-
- for (j = 0; j < (int) strlen (unit_str); j++)
- {
- pango_layout_set_text (layout, unit_str + j, 1);
- pango_layout_get_extents (layout, NULL, &logical_rect);
-
- cairo_move_to (cr,
- xthickness + 1,
- pos + digit_height * j + 2 + PANGO_PIXELS (logical_rect.y - digit_offset));
- pango_cairo_show_layout (cr, layout);
- }
- }
- }
- }
- }
-
- cairo_fill (cr);
-out:
- cairo_destroy (cr);
-}
-
-static void
-gtk_shruler_make_pixmap (GtkSHRuler *ruler)
-{
- GtkWidget *widget = GTK_WIDGET (ruler);
- GtkSHRulerPrivate *priv = GTK_SHRULER_GET_PRIVATE (ruler);
- GtkAllocation allocation;
-
- gtk_widget_get_allocation (widget, &allocation);
-
- if (priv->backing_store)
- cairo_surface_destroy (priv->backing_store);
-
- priv->backing_store =
- gdk_window_create_similar_surface (gtk_widget_get_window (widget),
- CAIRO_CONTENT_COLOR,
- allocation.width,
- allocation.height);
-}
-
-
-static PangoLayout *
-gtk_shruler_create_layout (GtkWidget *widget,
- const gchar *text)
-{
- GtkSHRulerPrivate *priv = GTK_SHRULER_GET_PRIVATE (widget);
- PangoLayout *layout;
- PangoAttrList *attrs;
- PangoAttribute *attr;
-
- layout = gtk_widget_create_pango_layout (widget, text);
-
- attrs = pango_attr_list_new ();
-
- attr = pango_attr_scale_new (priv->font_scale);
- attr->start_index = 0;
- attr->end_index = -1;
- pango_attr_list_insert (attrs, attr);
-
- pango_layout_set_attributes (layout, attrs);
- pango_attr_list_unref (attrs);
-
- return layout;
-}
-
-static PangoLayout *
-gtk_shruler_get_layout (GtkWidget *widget,
- const gchar *text)
-{
- GtkSHRulerPrivate *priv = GTK_SHRULER_GET_PRIVATE (widget);
-
- if (priv->layout)
- {
- pango_layout_set_text (priv->layout, text, -1);
- return priv->layout;
- }
-
- priv->layout = gtk_shruler_create_layout (widget, text);
-
- return priv->layout;
-}
blob - 59c1cd7fdacc1228654c9070f924cf8553328af1 (mode 644)
blob + /dev/null
--- src/gtk/gtkshruler.h
+++ /dev/null
-/* LIBGTK - The GTK Library
- * Copyright (C) 1995-1997 Peter Mattis and Spencer Kimball
- *
- * This library is free software: you can redistribute it and/or
- * modify it under the terms of the GNU Lesser General Public
- * License as published by the Free Software Foundation; either
- * version 3 of the License, or (at your option) any later version.
- *
- * This library is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * Lesser General Public License for more details.
- *
- * You should have received a copy of the GNU Lesser General Public
- * License along with this library. If not, see
- * <http://www.gnu.org/licenses/>.
- */
-
-#ifndef __GTK_SHRULER_H__
-#define __GTK_SHRULER_H__
-
-#include "gtkunit.h"
-
-G_BEGIN_DECLS
-
-#define GTK_TYPE_SHRULER (gtk_shruler_get_type ())
-#define GTK_SHRULER(obj) (G_TYPE_CHECK_INSTANCE_CAST ((obj), GTK_TYPE_SHRULER, GtkSHRuler))
-#define GTK_SHRULER_CLASS(klass) (G_TYPE_CHECK_CLASS_CAST ((klass), GTK_TYPE_SHRULER, GtkSHRulerClass))
-#define GTK_IS_SHRULER(obj) (G_TYPE_CHECK_INSTANCE_TYPE ((obj), GTK_TYPE_SHRULER))
-#define GTK_IS_SHRULER_CLASS(klass) (G_TYPE_CHECK_CLASS_TYPE ((klass), GTK_TYPE_SHRULER))
-#define GTK_SHRULER_GET_CLASS(obj) (G_TYPE_INSTANCE_GET_CLASS ((obj), GTK_TYPE_SHRULER, GtkSHRulerClass))
-
-typedef struct _GtkSHRuler GtkSHRuler;
-typedef struct _GtkSHRulerClass GtkSHRulerClass;
-
-struct _GtkSHRuler
-{
- GtkWidget parent_instance;
-};
-
-struct _GtkSHRulerClass
-{
- GtkWidgetClass parent_class;
-
- /* Padding for future expansion */
- void (*_gtk_reserved1) (void);
- void (*_gtk_reserved2) (void);
- void (*_gtk_reserved3) (void);
- void (*_gtk_reserved4) (void);
-};
-
-
-GType gtk_shruler_get_type (void) G_GNUC_CONST;
-
-GtkWidget * gtk_shruler_new (GtkOrientation orientation);
-
-void gtk_shruler_add_track_widget (GtkSHRuler *ruler,
- GtkWidget *widget);
-void gtk_shruler_remove_track_widget (GtkSHRuler *ruler,
- GtkWidget *widget);
-
-void gtk_shruler_set_unit (GtkSHRuler *ruler,
- GtkCMUnit unit);
-GtkCMUnit gtk_shruler_get_unit (GtkSHRuler *ruler);
-void gtk_shruler_set_position (GtkSHRuler *ruler,
- gdouble position);
-gdouble gtk_shruler_get_position (GtkSHRuler *ruler);
-void gtk_shruler_set_range (GtkSHRuler *ruler,
- gdouble lower,
- gdouble upper,
- gdouble max_size);
-void gtk_shruler_get_range (GtkSHRuler *ruler,
- gdouble *lower,
- gdouble *upper,
- gdouble *max_size);
-
-G_END_DECLS
-
-#endif /* __GTK_SHRULER_H__ */
blob - b4bed8b705904eee200464e6bcbe380a503ec9ba
blob + 838f338d8ae42c661b5142bf37064fac6932c22b
--- src/prefs_common.c
+++ src/prefs_common.c
{"default_reply_list", "TRUE", &prefs_common.default_reply_list, P_BOOL,
NULL, NULL, NULL},
- {"show_ruler", "TRUE", &prefs_common.show_ruler, P_BOOL,
- NULL, NULL, NULL},
-
{"reply_quote_format", N_("On %d\\n%f wrote:\\n\\n%q\\n%X"),
&prefs_common.quotefmt, P_STRING, NULL, NULL, NULL},
&prefs_common.pixmap_theme_path, P_STRING,
NULL, NULL, NULL},
- {"run_processingrules_before_mark_all", "FALSE", &prefs_common.run_processingrules_before_mark_all, P_BOOL,
- NULL, NULL, NULL},
{"ask_mark_all_read", "TRUE", &prefs_common.ask_mark_all_read, P_BOOL,
NULL, NULL, NULL},
- {"ask_apply_per_account_filtering_rules", "TRUE", &prefs_common.ask_apply_per_account_filtering_rules, P_BOOL,
- NULL, NULL, NULL},
- {"apply_per_account_filtering_rules", "0", &prefs_common.apply_per_account_filtering_rules, P_ENUM,
- NULL, NULL, NULL},
-
/* Addressbook */
{"addressbook_use_editaddress_dialog", "TRUE", &prefs_common.addressbook_use_editaddress_dialog,
P_BOOL, NULL, NULL, NULL},
blob - a6afab69f71de9ec6ae35e413bfe840b52b3cc48
blob + 5f032280fc2458ddbc8bdcf7ebae7ac079afb717
--- src/prefs_common.h
+++ src/prefs_common.h
gboolean default_reply_list;
gboolean forward_account_autosel;
gboolean reedit_account_autosel;
- gboolean show_ruler;
gboolean autosave;
gint autosave_length;
gboolean autosave_encrypted;
int hover_timeout; /* msecs mouse hover timeout */
gboolean ask_mark_all_read;
- gboolean run_processingrules_before_mark_all;
- gboolean ask_apply_per_account_filtering_rules;
- gint apply_per_account_filtering_rules;
/* Other */
gchar *uri_cmd;
blob - 35924188cbcde96cd130c2ba066fce01e81dc9a1
blob + bc3f83ad3e6a3509be7033de8935875b58ca3c4c
--- src/prefs_other.c
+++ src/prefs_other.c
GtkWidget *checkbtn_warnqueued;
GtkWidget *spinbtn_iotimeout;
GtkWidget *checkbtn_gtk_enable_accels;
- GtkWidget *checkbtn_askonfilter;
GtkWidget *checkbtn_real_time_sync;
GtkWidget *entry_attach_save_chmod;
GtkWidget *checkbtn_transhdr;
GtkWidget *vbox2;
GtkWidget *checkbtn_transhdr;
GtkWidget *checkbtn_askonclean;
- GtkWidget *checkbtn_askonfilter;
GtkWidget *checkbtn_real_time_sync;
GtkWidget *label_attach_save_chmod;
GtkWidget *entry_attach_save_chmod;
"will be translated into your language"));
PACK_CHECK_BUTTON (vbox2, checkbtn_askonclean,
_("Ask before emptying trash"));
- PACK_CHECK_BUTTON (vbox2, checkbtn_askonfilter,
- _("Ask about account specific filtering rules when "
- "filtering manually"));
PACK_CHECK_BUTTON (vbox2, checkbtn_real_time_sync,
_("Synchronise offline folders as soon as possible"));
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_transhdr),
prefs_common.trans_hdr);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_askonfilter),
- prefs_common.ask_apply_per_account_filtering_rules);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_real_time_sync),
prefs_common.real_time_sync);
prefs_other->spinbtn_iotimeout = spinbtn_iotimeout;
prefs_other->checkbtn_transhdr = checkbtn_transhdr;
prefs_other->checkbtn_gtk_enable_accels = checkbtn_gtk_enable_accels;
- prefs_other->checkbtn_askonfilter = checkbtn_askonfilter;
prefs_other->checkbtn_real_time_sync = checkbtn_real_time_sync;
prefs_other->entry_attach_save_chmod = entry_attach_save_chmod;
prefs_other->page.widget = vbox1;
#endif
prefs_common.trans_hdr = gtk_toggle_button_get_active(
GTK_TOGGLE_BUTTON(page->checkbtn_transhdr));
- prefs_common.ask_apply_per_account_filtering_rules =
- gtk_toggle_button_get_active(
- GTK_TOGGLE_BUTTON(page->checkbtn_askonfilter));
prefs_common.real_time_sync =
gtk_toggle_button_get_active(
GTK_TOGGLE_BUTTON(page->checkbtn_real_time_sync));
blob - 7c07ecb206d3d15b02c77bf0c466ac8310985717
blob + b98c2f093cb9f5015f86f7af94e963ce15bf4ac6
--- src/prefs_summaries.c
+++ src/prefs_summaries.c
GtkWidget *spinbtn_mark_as_read_delay;
GtkWidget *checkbtn_immedexec;
GtkWidget *checkbtn_ask_mark_all_read;
- GtkWidget *checkbtn_run_processingrules_mark_all_read;
GtkWidget *optmenu_sort_key;
GtkWidget *optmenu_sort_type;
GtkWidget *optmenu_summaryfromshow;
GtkAdjustment *spinbtn_mark_as_read_delay_adj;
GtkWidget *checkbtn_immedexec;
GtkWidget *checkbtn_ask_mark_all_read;
- GtkWidget *checkbtn_run_processingrules_mark_all_read;
GtkWidget *label, *label_fill;
GtkListStore *menu;
GtkTreeIter iter;
g_signal_connect(G_OBJECT(startup_folder_select), "clicked",
G_CALLBACK(foldersel_cb), startup_folder_entry);
- PACK_CHECK_BUTTON
- (vbox1, checkbtn_run_processingrules_mark_all_read,
- _("Run processing rules before marking all messages in a folder as read or unread"));
-
hbox1 = gtk_box_new(GTK_ORIENTATION_HORIZONTAL, 8);
gtk_widget_show (hbox1);
gtk_box_pack_start(GTK_BOX (vbox1), hbox1, FALSE, FALSE, 0);
prefs_summaries->spinbtn_mark_as_read_delay = spinbtn_mark_as_read_delay;
prefs_summaries->checkbtn_immedexec = checkbtn_immedexec;
prefs_summaries->checkbtn_ask_mark_all_read = checkbtn_ask_mark_all_read;
- prefs_summaries->checkbtn_run_processingrules_mark_all_read = checkbtn_run_processingrules_mark_all_read;
prefs_summaries->optmenu_sort_key = optmenu_sort_key;
prefs_summaries->optmenu_sort_type = optmenu_sort_type;
prefs_summaries->optmenu_nextunreadmsgdialog = optmenu_nextunreadmsgdialog;
prefs_common.immediate_exec);
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_ask_mark_all_read),
prefs_common.ask_mark_all_read);
- gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(checkbtn_run_processingrules_mark_all_read),
- prefs_common.run_processingrules_before_mark_all);
combobox_select_by_data(GTK_COMBO_BOX(optmenu_sort_key),
prefs_common.default_sort_key);
GTK_TOGGLE_BUTTON(page->checkbtn_immedexec));
prefs_common.ask_mark_all_read = gtk_toggle_button_get_active(
GTK_TOGGLE_BUTTON(page->checkbtn_ask_mark_all_read));
- prefs_common.run_processingrules_before_mark_all = gtk_toggle_button_get_active(
- GTK_TOGGLE_BUTTON(page->checkbtn_run_processingrules_mark_all_read));
prefs_common.mark_as_read_delay = gtk_spin_button_get_value_as_int(
GTK_SPIN_BUTTON(page->spinbtn_mark_as_read_delay));
prefs_common.summary_col_lock = gtk_toggle_button_get_active(