1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
|
/**
* \brief Find dialog
*
* Authors:
* Bryce W. Harrington <bryce@bryceharrington.org>
*
* Copyright (C) 2004, 2005 Authors
*
* Released under GNU GPL. Read the file 'COPYING' for more information.
*/
#ifndef INKSCAPE_UI_DIALOG_FIND_H
#define INKSCAPE_UI_DIALOG_FIND_H
#include <glibmm/i18n.h>
#include "ui/widget/panel.h"
#include "ui/widget/button.h"
#include "ui/widget/entry.h"
#include <gtkmm/separator.h>
#include "message-stack.h"
#include "helper/window.h"
#include "macros.h"
#include "inkscape.h"
#include "document.h"
#include "desktop.h"
#include "selection.h"
#include "desktop-handles.h"
#include "dialogs/dialog-events.h"
#include "prefs-utils.h"
#include "verbs.h"
#include "interface.h"
#include "sp-text.h"
#include "sp-flowtext.h"
#include "text-editing.h"
#include "sp-tspan.h"
#include "selection-chemistry.h"
#include "sp-defs.h"
#include "sp-rect.h"
#include "sp-ellipse.h"
#include "sp-star.h"
#include "sp-spiral.h"
#include "sp-path.h"
#include "sp-line.h"
#include "sp-polyline.h"
#include "sp-item-group.h"
#include "sp-use.h"
#include "sp-image.h"
#include "sp-offset.h"
#include <xml/repr.h>
using namespace Inkscape::UI::Widget;
namespace Inkscape {
namespace UI {
namespace Dialog {
class Find : public UI::Widget::Panel {
public:
Find();
virtual ~Find();
static Find &getInstance() { return *new Find(); }
protected:
// Widgets:
Entry _entry_text;
Entry _entry_id;
Entry _entry_style;
Entry _entry_attribute;
CheckButton _check_search_selection;
CheckButton _check_search_layer;
CheckButton _check_include_hidden;
CheckButton _check_include_locked;
// Type checkbutton widgets...
CheckButton _check_all;
CheckButton _check_all_shapes;
CheckButton _check_rects;
CheckButton _check_ellipses;
CheckButton _check_stars;
CheckButton _check_spirals;
CheckButton _check_paths;
CheckButton _check_texts;
CheckButton _check_groups;
CheckButton _check_clones;
CheckButton _check_images;
CheckButton _check_offsets;
// Button-click handlers
void onClear();
void onFind();
void onToggleAlltypes();
void onToggleShapes();
// onFind helper functions
bool item_id_match (SPItem *item, const gchar *id, bool exact);
bool item_text_match (SPItem *item, const gchar *text, bool exact);
bool item_style_match (SPItem *item, const gchar *text, bool exact);
bool item_attr_match (SPItem *item, const gchar *name, bool exact);
GSList * filter_fields (GSList *l, bool exact);
bool item_type_match (SPItem *item);
GSList * filter_types (GSList *l);
GSList * filter_list (GSList *l, bool exact);
GSList * all_items (SPObject *r, GSList *l, bool hidden, bool locked);
GSList * all_selection_items (Inkscape::Selection *s, GSList *l, SPObject *ancestor, bool hidden, bool locked);
void squeeze_window();
private:
Find(Find const &d);
Find& operator=(Find const &d);
Button _button_clear;
Button _button_find;
};
} // namespace Dialog
} // namespace UI
} // namespace Inkscape
#endif // INKSCAPE_UI_DIALOG_FIND_H
/*
Local Variables:
mode:c++
c-file-style:"stroustrup"
c-file-offsets:((innamespace . 0)(inline-open . 0)(case-label . +))
indent-tabs-mode:nil
fill-column:99
End:
*/
// vim: filetype=cpp:expandtab:shiftwidth=4:tabstop=8:softtabstop=4:encoding=utf-8:textwidth=99 :
|