1 /* -*- Mode: C ; c-basic-offset: 2 -*- */
2 /*****************************************************************************
4 * $Id: search.c,v 1.1 2004/08/31 22:40:15 nedko Exp $
12 *****************************************************************************/
34 GtkWidget
*pSearchWindow
;
36 GtkWidget
*pTableMain
;
37 GtkWidget
*pTableSearchParameters
;
38 GtkWidget
*pScrolledWindow
;
40 GtkCellRenderer
* pRendererText
;
41 GtkCellRenderer
* pRendererPixbuf
;
42 GtkTreeViewColumn
* pColumn
;
43 GtkTreeStore
*pTreeStore
;
45 pSearchWindow
= gtk_window_new(GTK_WINDOW_TOPLEVEL
);
47 gtk_window_set_role(GTK_WINDOW(pSearchWindow
), "search");
49 gtk_window_set_title(GTK_WINDOW(pSearchWindow
),
52 pTableMain
= gtk_table_new(2, 1, FALSE
);
54 pFrame
= gtk_frame_new(NULL
);
56 gtk_table_attach(GTK_TABLE(pTableMain
), pFrame
, 0, 1, 0, 1,
62 pTableSearchParameters
= gtk_table_new(
65 FALSE
); /* homogeneous */
68 GTK_CONTAINER(pFrame
),
69 pTableSearchParameters
);
71 gtk_container_set_border_width(
72 GTK_CONTAINER(pTableSearchParameters
),
75 gtk_table_set_row_spacings(GTK_TABLE(pTableSearchParameters
), 5);
76 gtk_table_set_col_spacings(GTK_TABLE(pTableSearchParameters
), 5);
78 pChild
= gtk_label_new("Filename");
80 GTK_TABLE(pTableSearchParameters
),
89 pChild
= gtk_entry_new();
90 gtk_table_attach_defaults(
91 GTK_TABLE(pTableSearchParameters
),
96 pChild
= gtk_label_new("Path");
98 GTK_TABLE(pTableSearchParameters
),
107 pChild
= gtk_entry_new();
108 gtk_table_attach_defaults(
109 GTK_TABLE(pTableSearchParameters
),
114 pChild
= gtk_label_new("Min size");
116 GTK_TABLE(pTableSearchParameters
),
125 pChild
= gtk_entry_new();
126 gtk_table_attach_defaults(
127 GTK_TABLE(pTableSearchParameters
),
132 pChild
= gtk_label_new("Max size");
134 GTK_TABLE(pTableSearchParameters
),
143 pChild
= gtk_entry_new();
144 gtk_table_attach_defaults(
145 GTK_TABLE(pTableSearchParameters
),
150 pChild
= gtk_button_new_from_stock(GTK_STOCK_FIND
);
152 GTK_TABLE(pTableSearchParameters
),
161 /* Tree view creation */
162 pChild
= gtk_tree_view_new();
163 gtk_tree_view_set_headers_visible(GTK_TREE_VIEW(pChild
), TRUE
);
164 gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(pChild
), TRUE
);
166 pRendererText
= gtk_cell_renderer_text_new();
167 pRendererPixbuf
= gtk_cell_renderer_pixbuf_new();
169 /* --- Column #1 --- */
171 pColumn
= gtk_tree_view_column_new();
172 gtk_tree_view_column_set_title(pColumn
, "Name");
174 gtk_tree_view_column_pack_start(pColumn
, pRendererPixbuf
, FALSE
);
175 gtk_tree_view_column_set_attributes(pColumn
, pRendererPixbuf
,
179 gtk_tree_view_column_pack_start(pColumn
, pRendererText
, TRUE
);
180 gtk_tree_view_column_set_attributes(pColumn
,
185 gtk_tree_view_append_column(
186 GTK_TREE_VIEW(pChild
),
189 /* --- Column #2 --- */
191 pColumn
= gtk_tree_view_column_new_with_attributes(
197 gtk_tree_view_append_column(
198 GTK_TREE_VIEW(pChild
),
201 /* --- Column #3 --- */
203 pColumn
= gtk_tree_view_column_new_with_attributes(
209 gtk_tree_view_append_column(
210 GTK_TREE_VIEW(pChild
),
213 /* --- Column #4 --- */
215 pColumn
= gtk_tree_view_column_new_with_attributes(
221 gtk_tree_view_append_column(
222 GTK_TREE_VIEW(pChild
),
225 /* --- Column #5 --- */
227 pColumn
= gtk_tree_view_column_new();
229 gtk_tree_view_column_set_title(
233 gtk_tree_view_column_pack_start(
238 gtk_tree_view_column_set_attributes(
245 gtk_tree_view_column_pack_end(
250 gtk_tree_view_column_set_attributes(
253 "text", COL_MEDIANAME
,
256 gtk_tree_view_append_column(
257 GTK_TREE_VIEW(pChild
),
260 /* Create the store */
261 pTreeStore
= gtk_tree_store_new(
263 GDK_TYPE_PIXBUF
, /* COL_ICON */
264 G_TYPE_STRING
, /* COL_NAME */
265 G_TYPE_STRING
, /* COL_PATH */
266 G_TYPE_STRING
, /* COL_SIZE */
267 G_TYPE_STRING
, /* COL_TIME */
268 G_TYPE_UINT
, /* COL_MEDIAID */
269 GDK_TYPE_PIXBUF
, /* COL_MEDIAICON */
270 G_TYPE_STRING
); /* COL_MEDIANAME */
272 /* Create a new scrolled window, with scrollbars only if needed */
274 pScrolledWindow
= gtk_scrolled_window_new(NULL
, NULL
);
276 gtk_scrolled_window_set_policy(
277 GTK_SCROLLED_WINDOW(pScrolledWindow
),
278 GTK_POLICY_AUTOMATIC
,
279 GTK_POLICY_AUTOMATIC
);
282 GTK_CONTAINER(pScrolledWindow
),
285 gtk_table_attach(GTK_TABLE(pTableMain
), pScrolledWindow
, 0, 1, 1, 2,
292 gtk_tree_view_set_model(GTK_TREE_VIEW(pChild
), GTK_TREE_MODEL(pTreeStore
));
294 /* Add main table to top window */
295 gtk_container_add(GTK_CONTAINER(pSearchWindow
), pTableMain
);
297 gtk_window_set_default_size(GTK_WINDOW(pSearchWindow
), 600, 400);
299 gtk_widget_show_all(pSearchWindow
);
302 /*****************************************************************************
306 * !!! WARNING !!! Following lines are automatically updated by the CVS system.
309 * Revision 1.1 2004/08/31 22:40:15 nedko
310 * Partitally implemented search feature.
312 *****************************************************************************/