00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00030 #define _GNU_SOURCE
00031
00032
00033 #include <errno.h>
00034 #include <string.h>
00035 #include <sys/types.h>
00036 #include <sys/stat.h>
00037
00038 #include <gtk/gtk.h>
00039
00040
00041 #include <liberdm/display.h>
00042 #include <liberdm/erdm.h>
00043 #include <libergtk/ergtk.h>
00044 #include <liberipc/eripctoolbar.h>
00045 #include <libermanifest/ermanifest.h>
00046
00047
00048 #include "contentListerLog.h"
00049 #include "lister.h"
00050 #include "gtkSortWnd.h"
00051 #include "displayUpdate.h"
00052 #include "languages.h"
00053
00054
00055 enum
00056 {
00057 eFileNameButton = 0,
00058 eFileExtButton,
00059 eFileSizeButton,
00060 eDateButton,
00061 eTitleButton,
00062 eDescButton,
00063 eButtonUndefined
00064 };
00065
00066
00067 static const gchar *button_text_tbl[eButtonUndefined];
00068
00069 #define nAscendingButton 0 // index of ascendingButton
00070 #define nDescendingButton 1 // index of descendingButton
00071
00072
00073 static GtkSortWnd g_sort_wnd;
00074
00075
00076 static GtkWidget *create_sort_type_widget(void);
00077 static GtkWidget *create_sort_order_widget(void);
00078 static GtkWidget *create_sort_finish_widget(void);
00079
00080 static void on_sort_type_selection_update(erGtkSelectionGroup* selection, gpointer data);
00081
00082
00083
00084
00085
00086
00087
00088
00089
00090
00091
00092
00093
00094
00095
00096
00097
00098
00099
00100
00101 static GtkWidget *create_sort_type_widget(void)
00102 {
00103 int i;
00104 GtkWidget *sortTypeSelection;
00105 GtkWidget *background;
00106 GtkWidget *alignment;
00107 GtkWidget *vbox1;
00108 GtkWidget *sortLabel;
00109 GtkWidget *vbox2;
00110 GtkWidget *vbox3_1;
00111 GtkWidget *sortTypeLabel;
00112 GtkWidget *hbox1;
00113 GtkWidget *vbox3_2;
00114 GtkWidget *sortTagLabel;
00115 GtkWidget *hbox2;
00116 GtkWidget *button;
00117 GtkToggleButton *button_tbl[eButtonUndefined + 1];
00118
00119
00120 background = gtk_event_box_new();
00121 gtk_widget_set_name(background, "sort_type_background");
00122 gtk_widget_set_size_request(background, SORT_WND_SORTTYPE_BK_WIDTH, SORT_WND_SROTTYPE_BK_HEIGHT);
00123
00124 alignment = gtk_alignment_new(0.0, 0.0, 0.0, 0.0);
00125 gtk_alignment_set_padding(GTK_ALIGNMENT(alignment),
00126 SORT_WND_TOP_PADDING, SORT_WND_BOTTOM_PADDING,
00127 SORT_WND_LEFT_PADDING, SORT_WND_RIGHT_PADDING);
00128 gtk_container_add(GTK_CONTAINER(background), alignment);
00129
00130 vbox1 = gtk_vbox_new(FALSE, SORT_WND_SPACING_V * 3);
00131 gtk_container_add(GTK_CONTAINER(alignment), vbox1);
00132
00133 sortLabel = gtk_label_new("");
00134 gtk_widget_set_name(sortLabel, "sort_wnd_text_bold");
00135 gtk_misc_set_alignment(GTK_MISC(sortLabel), 0.0, 0.5);
00136 gtk_label_set_ellipsize(GTK_LABEL(sortLabel), PANGO_ELLIPSIZE_END);
00137 gtk_label_set_justify(GTK_LABEL(sortLabel), GTK_JUSTIFY_LEFT);
00138 gtk_box_pack_start(GTK_BOX(vbox1), sortLabel, FALSE, FALSE, 0);
00139
00140 vbox2 = gtk_vbox_new(FALSE, SORT_WND_SPACING_V * 3);
00141 gtk_box_pack_start(GTK_BOX(vbox1), vbox2, FALSE, FALSE, 0);
00142
00143 vbox3_1 = gtk_vbox_new(FALSE, SORT_WND_SPACING_V * 2);
00144 gtk_box_pack_start(GTK_BOX(vbox2), vbox3_1, FALSE, FALSE, 0);
00145
00146 sortTypeLabel = gtk_label_new("");
00147 gtk_widget_set_name(sortTypeLabel, "sort_wnd_text_normal");
00148 gtk_misc_set_alignment(GTK_MISC(sortTypeLabel), 0.0, 0.5);
00149 gtk_label_set_ellipsize(GTK_LABEL(sortTypeLabel), PANGO_ELLIPSIZE_END);
00150 gtk_label_set_justify(GTK_LABEL(sortTypeLabel), GTK_JUSTIFY_LEFT);
00151 gtk_box_pack_start(GTK_BOX(vbox3_1), sortTypeLabel, FALSE, FALSE, 0);
00152
00153 hbox1 = gtk_hbox_new(FALSE, SORT_WND_SPACING_H);
00154 gtk_box_pack_start(GTK_BOX(vbox3_1), hbox1, FALSE, FALSE, 0);
00155
00156 vbox3_2 = gtk_vbox_new(FALSE, SORT_WND_SPACING_V * 2);
00157 gtk_box_pack_start(GTK_BOX(vbox2), vbox3_2, FALSE, FALSE, 0);
00158
00159 sortTagLabel = gtk_label_new("");
00160 gtk_widget_set_name(sortTagLabel, "sort_wnd_text_normal");
00161 gtk_misc_set_alignment(GTK_MISC(sortTagLabel), 0.0, 0.5);
00162 gtk_label_set_ellipsize(GTK_LABEL(sortTagLabel), PANGO_ELLIPSIZE_END);
00163 gtk_label_set_justify(GTK_LABEL(sortTagLabel), GTK_JUSTIFY_LEFT);
00164 gtk_box_pack_start(GTK_BOX(vbox3_2), sortTagLabel, FALSE, FALSE, 0);
00165
00166 hbox2 = gtk_hbox_new(FALSE, SORT_WND_SPACING_H);
00167 gtk_box_pack_start(GTK_BOX(vbox3_2), hbox2, FALSE, FALSE, 0);
00168
00169 for (i = 0 ; i < eButtonUndefined ; i++)
00170 {
00171 button = ergtk_toggle_button_new_with_label("");
00172 button_tbl[i] = GTK_TOGGLE_BUTTON(button);
00173 gtk_widget_set_size_request(button, SORT_WND_BUTTON_WIDTH, SORT_WND_BUTTON_HEIGHT);
00174 switch (i)
00175 {
00176 case eFileNameButton:
00177 case eFileExtButton:
00178 case eFileSizeButton:
00179 case eDateButton:
00180 gtk_box_pack_start(GTK_BOX(hbox1), button, FALSE, FALSE, 0);
00181 break;
00182 case eTitleButton:
00183 case eDescButton:
00184 gtk_box_pack_start(GTK_BOX(hbox2), button, FALSE, FALSE, 0);
00185 break;
00186 default:
00187 break;
00188 }
00189 }
00190 button_tbl[eButtonUndefined] = NULL;
00191
00192 sortTypeSelection = ergtk_selection_group_new(button_tbl);
00193 ergtk_selection_group_set_details(ERGTK_SELECTION_GROUP(sortTypeSelection), 1, 1);
00194 gtk_container_add(GTK_CONTAINER(sortTypeSelection), background);
00195
00196
00197 gtk_widget_show_all(sortTypeSelection);
00198
00199 g_sort_wnd.sortLabel = sortLabel;
00200 g_sort_wnd.sortTypeLabel = sortTypeLabel;
00201 g_sort_wnd.sortTypeSelection = sortTypeSelection;
00202 g_sort_wnd.sortTagLabel = sortTagLabel;
00203
00204 g_signal_connect(G_OBJECT(sortTypeSelection), "selection_update", G_CALLBACK(on_sort_type_selection_update), NULL);
00205
00206
00207 return sortTypeSelection;
00208 }
00209
00210
00211
00212
00213
00214
00215
00216
00217
00218
00219
00220
00221
00222
00223
00224 static GtkWidget *create_sort_order_widget(void)
00225 {
00226 GtkWidget *sortOrderSelection;
00227 GtkWidget *background;
00228 GtkWidget *alignment;
00229 GtkWidget *vbox;
00230 GtkWidget *alignment_1;
00231 GtkWidget *sortOrderLabel;
00232 GtkWidget *hbox;
00233 GtkWidget *selLabel;
00234 GtkWidget *selSortLabel;
00235 GtkWidget *hbox_1;
00236 GtkWidget *ascendingButton;
00237 GtkWidget *descendingButton;
00238 GtkToggleButton *button_tbl[3];
00239
00240
00241 background = gtk_event_box_new();
00242 gtk_widget_set_name(background, "sort_order_background");
00243 gtk_widget_set_size_request(background, SORT_WND_SORTORDER_BK_WIDTH, SORT_WND_SORTORDER_BK_HEIGHT);
00244
00245 alignment = gtk_alignment_new(0.0, 0.0, 0.0, 0.0);
00246 gtk_alignment_set_padding(GTK_ALIGNMENT(alignment),
00247 SORT_WND_TOP_PADDING, SORT_WND_BOTTOM_PADDING,
00248 SORT_WND_LEFT_PADDING, SORT_WND_RIGHT_PADDING);
00249 gtk_container_add(GTK_CONTAINER(background), alignment);
00250
00251 vbox = gtk_vbox_new(FALSE, SORT_WND_SPACING_V * 3);
00252 gtk_container_add(GTK_CONTAINER(alignment), vbox);
00253
00254 alignment_1 = gtk_alignment_new(0.0, 0.0, 0.0, 0.0);
00255 gtk_box_pack_start(GTK_BOX(vbox), alignment_1, FALSE, FALSE, 0);
00256
00257 sortOrderLabel = gtk_label_new("");
00258 gtk_widget_set_name(sortOrderLabel, "sort_wnd_text_bold");
00259 gtk_misc_set_alignment(GTK_MISC(sortOrderLabel), 0.0, 0.5);
00260 gtk_widget_set_size_request(sortOrderLabel,
00261 SORT_WND_SORTORDER_BK_WIDTH - SORT_WND_LEFT_PADDING - SORT_WND_RIGHT_PADDING, -1);
00262 gtk_label_set_ellipsize(GTK_LABEL(sortOrderLabel), PANGO_ELLIPSIZE_END);
00263 gtk_label_set_justify(GTK_LABEL(sortOrderLabel), GTK_JUSTIFY_LEFT);
00264 gtk_container_add(GTK_CONTAINER(alignment_1), sortOrderLabel);
00265
00266 hbox = gtk_hbox_new(FALSE, SORT_WND_SPACING_H);
00267 gtk_box_pack_start(GTK_BOX(vbox), hbox, FALSE, FALSE, 0);
00268
00269 selLabel = gtk_label_new("");
00270 gtk_widget_set_name(selLabel, "sort_wnd_text_normal");
00271 gtk_misc_set_alignment(GTK_MISC(selLabel), 0.0, 0.5);
00272 gtk_widget_set_size_request(selLabel, SORT_WND_BUTTON_WIDTH - 20, -1);
00273 gtk_label_set_ellipsize(GTK_LABEL(selLabel), PANGO_ELLIPSIZE_END);
00274 gtk_label_set_justify(GTK_LABEL(selLabel), GTK_JUSTIFY_LEFT);
00275 gtk_box_pack_start(GTK_BOX(hbox), selLabel, FALSE, FALSE, 0);
00276
00277 selSortLabel = gtk_label_new("");
00278 gtk_widget_set_name(selSortLabel, "sort_wnd_text_bold");
00279 gtk_widget_set_size_request(selSortLabel, SORT_WND_BUTTON_WIDTH + 40, -1);
00280 gtk_misc_set_alignment(GTK_MISC(selSortLabel), 0.0, 0.5);
00281 gtk_label_set_ellipsize(GTK_LABEL(selSortLabel), PANGO_ELLIPSIZE_END);
00282 gtk_label_set_justify(GTK_LABEL(selSortLabel), GTK_JUSTIFY_CENTER);
00283 gtk_box_pack_start(GTK_BOX(hbox), selSortLabel, FALSE, FALSE, 0);
00284
00285 hbox_1 = gtk_hbox_new(FALSE, 0);
00286 gtk_box_pack_start(GTK_BOX(hbox), hbox_1, FALSE, FALSE, 25);
00287
00288 ascendingButton = ergtk_toggle_button_new_with_label("");
00289 gtk_widget_set_size_request(ascendingButton, ASCENDING_BTN_WIDTH, ASCENDING_BTN_HEIGHT);
00290 gtk_widget_set_name(ascendingButton, "sort_order_ascending_button");
00291 gtk_box_pack_start(GTK_BOX(hbox_1), ascendingButton, FALSE, FALSE, 0);
00292
00293 descendingButton = ergtk_toggle_button_new_with_label("");
00294 gtk_widget_set_size_request(descendingButton, ASCENDING_BTN_WIDTH, ASCENDING_BTN_HEIGHT);
00295 gtk_widget_set_name(descendingButton, "sort_order_descending_button");
00296 gtk_box_pack_start(GTK_BOX(hbox_1), descendingButton, FALSE, FALSE, 0);
00297
00298 button_tbl[0] = GTK_TOGGLE_BUTTON(ascendingButton);
00299 button_tbl[1] = GTK_TOGGLE_BUTTON(descendingButton);
00300 button_tbl[2] = NULL;
00301
00302 sortOrderSelection = ergtk_selection_group_new(button_tbl);
00303 ergtk_selection_group_set_details(ERGTK_SELECTION_GROUP(sortOrderSelection), 1, 1);
00304 gtk_container_add(GTK_CONTAINER(sortOrderSelection), background);
00305
00306
00307 gtk_widget_show_all(background);
00308
00309
00310 g_sort_wnd.sortOrderLabel = sortOrderLabel;
00311 g_sort_wnd.selLabel = selLabel;
00312 g_sort_wnd.selSortLabel = selSortLabel;
00313 g_sort_wnd.sortOrderSelection = sortOrderSelection;
00314
00315
00316 return sortOrderSelection;
00317 }
00318
00319
00320
00321
00322
00323
00324
00325 static GtkWidget *create_sort_finish_widget(void)
00326 {
00327 GtkWidget *background;
00328 GtkWidget *alignment;
00329 GtkWidget *finishLabel;
00330
00331 background = gtk_event_box_new();
00332 gtk_widget_set_name(background, "sort_finish_background");
00333 gtk_widget_set_size_request(background, SORT_WND_FINISH_BK_WIDTH, SORT_WND_FINISH_BK_HEIGHT);
00334
00335 alignment = gtk_alignment_new(0.0, 0.0, 0.0, 0.0);
00336 gtk_alignment_set_padding(GTK_ALIGNMENT(alignment),
00337 SORT_WND_TOP_PADDING, SORT_WND_BOTTOM_PADDING,
00338 SORT_WND_LEFT_PADDING, SORT_WND_RIGHT_PADDING);
00339 gtk_container_add(GTK_CONTAINER(background), alignment);
00340
00341 finishLabel = gtk_label_new("");
00342 gtk_widget_set_name(finishLabel, "sort_wnd_text_bold");
00343 gtk_misc_set_alignment(GTK_MISC(finishLabel), 0.0, 0.5);
00344 gtk_widget_set_size_request(finishLabel,
00345 (SORT_WND_FINISH_BK_WIDTH - SORT_WND_LEFT_PADDING - SORT_WND_RIGHT_PADDING),
00346 (SORT_WND_FINISH_BK_HEIGHT - SORT_WND_TOP_PADDING - SORT_WND_BOTTOM_PADDING));
00347 gtk_label_set_ellipsize(GTK_LABEL(finishLabel), PANGO_ELLIPSIZE_END);
00348 gtk_label_set_justify(GTK_LABEL(finishLabel), GTK_JUSTIFY_LEFT);
00349 gtk_container_add(GTK_CONTAINER(alignment), finishLabel);
00350
00351
00352 g_sort_wnd.finishLabel = finishLabel;
00353
00354
00355 gtk_widget_show_all(background);
00356
00357
00358 return background;
00359 }
00360
00361 static gboolean on_sort_wnd_expose(GtkWidget * widget, GdkEventExpose * event, gpointer data)
00362 {
00363 CL_LOGPRINTF("entry");
00364 display_update_request_screen_refresh(LISTER_EXPOSE_LEVEL);
00365
00366 return FALSE;
00367 }
00368
00369
00370
00371
00372
00373
00374
00375
00376
00377 GtkWidget *create_sort_wnd(GtkWidget * parent)
00378 {
00379 GtkWidget *background;
00380 GtkWidget *alignment;
00381 GtkWidget *vbox;
00382 GtkWidget *sortTypeWidget;
00383 GtkWidget *sortOrderWidget;
00384 GtkWidget *sortFinishWidget;
00385
00386
00387 background = gtk_event_box_new();
00388 gtk_widget_set_name(GTK_WIDGET(background), "sort_wnd_background");
00389 gtk_widget_set_size_request(GTK_WIDGET(background), (-1), (-1));
00390 gtk_container_add(GTK_CONTAINER(parent), background);
00391
00392 alignment = gtk_alignment_new(0.0, 0.0, 0.0, 0.0);
00393 gtk_alignment_set_padding(GTK_ALIGNMENT(alignment), 0, 0, 0, 0);
00394 gtk_container_add(GTK_CONTAINER(background), alignment);
00395
00396 vbox = gtk_vbox_new(FALSE, SORT_WND_SPACING_V);
00397 gtk_container_add(GTK_CONTAINER(alignment), vbox);
00398
00399 sortTypeWidget = create_sort_type_widget();
00400 gtk_box_pack_start(GTK_BOX(vbox), sortTypeWidget, FALSE, FALSE, 0);
00401
00402 sortOrderWidget = create_sort_order_widget();
00403 gtk_box_pack_start(GTK_BOX(vbox), sortOrderWidget, FALSE, FALSE, 0);
00404
00405 sortFinishWidget = create_sort_finish_widget();
00406 gtk_box_pack_start(GTK_BOX(vbox), sortFinishWidget, FALSE, FALSE, 0);
00407
00408
00409 g_sort_wnd.window = parent;
00410
00411
00412 gtk_widget_show_all(background);
00413
00414
00415 g_signal_connect(G_OBJECT(g_sort_wnd.window), "expose-event", G_CALLBACK(on_sort_wnd_expose), NULL);
00416
00417
00418 return background;
00419 }
00420
00421
00422 void sort_wnd_set_text(void)
00423 {
00424 int i;
00425 GtkToggleButton* button;
00426
00427
00428 for (i = 0 ; i < eButtonUndefined ; i++)
00429 {
00430 switch (i)
00431 {
00432 case eFileNameButton:
00433 button_text_tbl[i] = _("File name");
00434 break;
00435 case eFileExtButton :
00436 button_text_tbl[i] = _("File extension");
00437 break;
00438 case eFileSizeButton:
00439 button_text_tbl[i] = _("File size");
00440 break;
00441 case eDateButton:
00442 button_text_tbl[i] = _("File date");
00443 break;
00444 case eTitleButton:
00445 button_text_tbl[i] = _("Title");
00446 break;
00447 case eDescButton:
00448 button_text_tbl[i] = _("Description");
00449 break;
00450 default:
00451 button_text_tbl[i] = "?";
00452 }
00453 }
00454
00455
00456 if (g_sort_wnd.sortLabel)
00457 {
00458 gtk_label_set_text(GTK_LABEL(g_sort_wnd.sortLabel), _("Step 1: Please select a sort criteria"));
00459 }
00460 if (g_sort_wnd.sortTypeLabel)
00461 {
00462 gtk_label_set_text(GTK_LABEL(g_sort_wnd.sortTypeLabel), _("Sort content on file system attributes"));
00463 }
00464 if (g_sort_wnd.sortTypeSelection)
00465 {
00466 for (i = 0 ; i < eButtonUndefined ; i++)
00467 {
00468 button = ergtk_selection_group_get_button(ERGTK_SELECTION_GROUP(g_sort_wnd.sortTypeSelection), i);
00469 gtk_button_set_label(GTK_BUTTON(button), button_text_tbl[i]);
00470 }
00471 }
00472 if (g_sort_wnd.sortTagLabel)
00473 {
00474 gtk_label_set_text(GTK_LABEL(g_sort_wnd.sortTagLabel), _("Sort content on information tags"));
00475 }
00476
00477
00478 if (g_sort_wnd.sortOrderLabel)
00479 {
00480 gtk_label_set_text(GTK_LABEL(g_sort_wnd.sortOrderLabel), _("Step 2: Please select ascending or descending"));
00481 }
00482 if (g_sort_wnd.selLabel)
00483 {
00484 gtk_label_set_text(GTK_LABEL(g_sort_wnd.selLabel), _("Selection"));
00485 }
00486
00487
00488 if (g_sort_wnd.finishLabel)
00489 {
00490 gtk_label_set_text(GTK_LABEL(g_sort_wnd.finishLabel),
00491 _("Step 3: Please click on the 'Sort' icon to confirm your selection"));
00492 }
00493 }
00494
00495 void sort_wnd_get_sort_settings(mdsSortStruct_t * sortStruct)
00496 {
00497 g_return_if_fail(sortStruct != NULL);
00498 g_return_if_fail(g_sort_wnd.sortTypeSelection != NULL);
00499 g_return_if_fail(g_sort_wnd.sortOrderSelection != NULL);
00500
00501 gint nSelSortType;
00502 gint nSelSortOrder;
00503
00504 ergtk_selection_group_get_selected_buttons(ERGTK_SELECTION_GROUP(g_sort_wnd.sortTypeSelection), &nSelSortType, 1);
00505 ergtk_selection_group_get_selected_buttons(ERGTK_SELECTION_GROUP(g_sort_wnd.sortOrderSelection), &nSelSortOrder, 1);
00506
00507 switch (nSelSortType)
00508 {
00509 case eFileNameButton:
00510 sortStruct->ft = mdsFieldFsName;
00511 break;
00512 case eFileExtButton:
00513 sortStruct->ft = mdsFieldExtName;
00514 break;
00515 case eFileSizeButton:
00516 sortStruct->ft = mdsFieldSize;
00517 break;
00518 case eDateButton:
00519 sortStruct->ft = mdsFieldDate;
00520 break;
00521 case eTitleButton:
00522 sortStruct->ft = mdsFieldTitle;
00523 break;
00524 case eDescButton:
00525 sortStruct->ft = mdsFieldDescription;
00526 break;
00527 default:
00528 CL_WARNPRINTF("invalid nSelSortType [%d]", nSelSortType);
00529 sortStruct->ft = mdsFieldFsName;
00530 break;
00531 }
00532
00533 switch (nSelSortOrder)
00534 {
00535 case nAscendingButton:
00536 sortStruct->ascending = 1;
00537 break;
00538 case nDescendingButton:
00539 sortStruct->ascending = 0;
00540 break;
00541 default:
00542 CL_WARNPRINTF("invalid nSelSortOrder [%d]", nSelSortOrder);
00543 sortStruct->ascending = 1;
00544 break;
00545 }
00546 CL_LOGPRINTF("return: sortStruct->ft = %d, sortStruct->ascending = %d", sortStruct->ft, sortStruct->ascending);
00547 }
00548
00549 void sort_wnd_set_sort_settings(const mdsSortStruct_t * sortStruct)
00550 {
00551 g_return_if_fail(sortStruct != NULL);
00552 g_return_if_fail(g_sort_wnd.sortTypeSelection != NULL);
00553 g_return_if_fail(g_sort_wnd.selSortLabel != NULL);
00554 g_return_if_fail(g_sort_wnd.sortOrderSelection != NULL);
00555
00556 GtkToggleButton* button = NULL;
00557
00558 gint nSelSortType = eFileNameButton;
00559 gint nSelSortOrder = nAscendingButton;
00560
00561 switch (sortStruct->ft)
00562 {
00563 case mdsFieldFsName:
00564 nSelSortType = eFileNameButton;
00565 break;
00566 case mdsFieldExtName:
00567 nSelSortType = eFileExtButton;
00568 break;
00569 case mdsFieldSize:
00570 nSelSortType = eFileSizeButton;
00571 break;
00572 case mdsFieldDate:
00573 nSelSortType = eDateButton;
00574 break;
00575 case mdsFieldTitle:
00576 nSelSortType = eTitleButton;
00577 break;
00578 case mdsFieldDescription:
00579 nSelSortType = eDescButton;
00580 break;
00581 default:
00582 nSelSortType = eFileNameButton;
00583 break;
00584 }
00585 switch (sortStruct->ascending)
00586 {
00587 case 1:
00588 nSelSortOrder = nAscendingButton;
00589 break;
00590 case 0:
00591 nSelSortOrder = nDescendingButton;
00592 break;
00593 default:
00594 nSelSortOrder = nAscendingButton;
00595 break;
00596 }
00597
00598 if (g_sort_wnd.selSortLabel)
00599 {
00600 gtk_label_set_text(GTK_LABEL(g_sort_wnd.selSortLabel), _( button_text_tbl[nSelSortType] ));
00601 }
00602
00603 button = ergtk_selection_group_get_button(ERGTK_SELECTION_GROUP(g_sort_wnd.sortTypeSelection), nSelSortType);
00604 if (button)
00605 {
00606 gtk_toggle_button_set_active(button, TRUE);
00607 }
00608
00609 button = ergtk_selection_group_get_button(ERGTK_SELECTION_GROUP(g_sort_wnd.sortOrderSelection), nSelSortOrder);
00610 if (button)
00611 {
00612 gtk_toggle_button_set_active(button, TRUE);
00613 }
00614 }
00615
00616 static void on_sort_type_selection_update(erGtkSelectionGroup* item, gpointer data)
00617 {
00618 gint button_id;
00619 const gchar* label_text = "";
00620
00621 ergtk_selection_group_get_selected_buttons(item, &button_id, 1);
00622
00623 switch (button_id)
00624 {
00625 case eFileNameButton:
00626 case eFileExtButton:
00627 case eFileSizeButton:
00628 case eDateButton:
00629 case eTitleButton:
00630 case eDescButton:
00631 label_text = _( button_text_tbl[button_id] );
00632 break;
00633 default:
00634 CL_WARNPRINTF("invalid button_id [%d]", button_id);
00635 break;
00636 }
00637
00638 if (g_sort_wnd.selSortLabel)
00639 {
00640 gtk_label_set_text(GTK_LABEL(g_sort_wnd.selSortLabel), label_text);
00641 }
00642 }
00643