502
482
static SBU disks_interval_updater("disks-interval");
504
484
GtkWidget *notebook;
507
GtkWidget *main_vbox;
508
GtkWidget *vbox, *vbox2, *vbox3;
509
GtkWidget *hbox, *hbox2, *hbox3;
511
485
GtkAdjustment *adjustment;
512
486
GtkWidget *spin_button;
513
487
GtkWidget *check_button;
514
GtkWidget *tab_label;
515
488
GtkWidget *smooth_button;
520
492
if (prefs_dialog)
523
size = gtk_size_group_new (GTK_SIZE_GROUP_HORIZONTAL);
525
dialog = gtk_dialog_new_with_buttons (_("System Monitor Preferences"),
526
GTK_WINDOW (procdata->app),
527
GTK_DIALOG_DESTROY_WITH_PARENT,
528
GTK_STOCK_HELP, GTK_RESPONSE_HELP,
529
GTK_STOCK_CLOSE, GTK_RESPONSE_CLOSE,
531
/* FIXME: we should not declare the window size, but let it's */
532
/* driven by window childs. The problem is that the fields list */
533
/* have to show at least 4 items to respect HIG. I don't know */
534
/* any function to set list height by contents/items inside it. */
535
gtk_window_set_default_size (GTK_WINDOW (dialog), 400, 420);
536
gtk_container_set_border_width (GTK_CONTAINER (dialog), 5);
537
prefs_dialog = dialog;
539
main_vbox = gtk_dialog_get_content_area (GTK_DIALOG (dialog));
540
gtk_box_set_spacing (GTK_BOX (main_vbox), 2);
542
notebook = gtk_notebook_new ();
543
gtk_container_set_border_width (GTK_CONTAINER (notebook), 5);
544
gtk_box_pack_start (GTK_BOX (main_vbox), notebook, TRUE, TRUE, 0);
546
proc_box = gtk_vbox_new (FALSE, 18);
547
gtk_container_set_border_width (GTK_CONTAINER (proc_box), 12);
548
tab_label = gtk_label_new (_("Processes"));
549
gtk_widget_show (tab_label);
550
gtk_notebook_append_page (GTK_NOTEBOOK (notebook), proc_box, tab_label);
552
vbox = gtk_vbox_new (FALSE, 6);
553
gtk_box_pack_start (GTK_BOX (proc_box), vbox, FALSE, FALSE, 0);
555
tmp = g_strdup_printf ("<b>%s</b>", _("Behavior"));
556
label = gtk_label_new (NULL);
557
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
558
gtk_label_set_markup (GTK_LABEL (label), tmp);
560
gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
562
hbox = gtk_hbox_new (FALSE, 0);
563
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
565
label = gtk_label_new (" ");
566
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
568
vbox2 = gtk_vbox_new (FALSE, 6);
569
gtk_box_pack_start (GTK_BOX (hbox), vbox2, TRUE, TRUE, 0);
571
hbox2 = gtk_hbox_new (FALSE, 12);
572
gtk_box_pack_start (GTK_BOX (vbox2), hbox2, FALSE, FALSE, 0);
574
label = gtk_label_new_with_mnemonic (_("_Update interval in seconds:"));
575
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
576
gtk_box_pack_start (GTK_BOX (hbox2), label, FALSE, FALSE, 0);
578
hbox3 = gtk_hbox_new (FALSE, 6);
579
gtk_box_pack_start (GTK_BOX (hbox2), hbox3, TRUE, TRUE, 0);
495
gchar* filename = g_build_filename (GSM_DATA_DIR, "preferences.ui", NULL);
497
builder = gtk_builder_new();
498
gtk_builder_add_from_file (builder, filename, NULL);
500
prefs_dialog = GTK_WIDGET (gtk_builder_get_object (builder, "preferences_dialog"));
502
notebook = GTK_WIDGET (gtk_builder_get_object (builder, "notebook"));
504
spin_button = GTK_WIDGET (gtk_builder_get_object (builder, "processes_interval_spinner"));
581
506
update = (gfloat) procdata->config.update_interval;
582
507
adjustment = (GtkAdjustment *) gtk_adjustment_new(update / 1000.0,
589
spin_button = gtk_spin_button_new (adjustment, 1.0, 2);
590
gtk_box_pack_start (GTK_BOX (hbox3), spin_button, FALSE, FALSE, 0);
514
gtk_spin_button_set_adjustment (GTK_SPIN_BUTTON(spin_button), adjustment);
591
515
g_signal_connect (G_OBJECT (spin_button), "focus_out_event",
592
516
G_CALLBACK (SBU::callback), &interval_updater);
593
gtk_label_set_mnemonic_widget (GTK_LABEL (label), spin_button);
596
hbox2 = gtk_hbox_new(FALSE, 6);
597
gtk_box_pack_start(GTK_BOX(vbox2), hbox2, FALSE, FALSE, 0);
599
smooth_button = gtk_check_button_new_with_mnemonic(_("Enable _smooth refresh"));
518
smooth_button = GTK_WIDGET (gtk_builder_get_object (builder, "smooth_button"));
600
519
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(smooth_button),
601
520
g_settings_get_boolean(procdata->settings,
602
521
SmoothRefresh::KEY.c_str()));
603
522
g_signal_connect(G_OBJECT(smooth_button), "toggled",
604
523
G_CALLBACK(smooth_refresh_toggled), procdata);
605
gtk_box_pack_start(GTK_BOX(hbox2), smooth_button, TRUE, TRUE, 0);
609
hbox2 = gtk_hbox_new (FALSE, 6);
610
gtk_box_pack_start (GTK_BOX (vbox2), hbox2, FALSE, FALSE, 0);
612
check_button = gtk_check_button_new_with_mnemonic (_("Alert before ending or _killing processes"));
525
check_button = GTK_WIDGET (gtk_builder_get_object (builder, "check_button"));
613
526
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button),
614
527
procdata->config.show_kill_warning);
615
528
g_signal_connect (G_OBJECT (check_button), "toggled",
616
529
G_CALLBACK (show_kill_dialog_toggled), procdata);
617
gtk_box_pack_start (GTK_BOX (hbox2), check_button, TRUE, TRUE, 0);
622
hbox2 = gtk_hbox_new(FALSE, 6);
623
gtk_box_pack_start(GTK_BOX(vbox2), hbox2, FALSE, FALSE, 0);
625
GtkWidget *solaris_button = gtk_check_button_new_with_mnemonic(_("Divide CPU usage by CPU count"));
531
GtkWidget *solaris_button = GTK_WIDGET (gtk_builder_get_object (builder, "solaris_button"));
626
532
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(solaris_button),
627
533
g_settings_get_boolean(procdata->settings,
628
534
procman::settings::solaris_mode.c_str()));
629
535
g_signal_connect(G_OBJECT(solaris_button), "toggled",
630
536
G_CALLBACK(solaris_mode_toggled), procdata);
631
gtk_box_pack_start(GTK_BOX(hbox2), solaris_button, TRUE, TRUE, 0);
636
hbox2 = gtk_hbox_new (FALSE, 6);
637
gtk_box_pack_start (GTK_BOX (vbox2), hbox2, FALSE, FALSE, 0);
639
vbox = gtk_vbox_new (FALSE, 6);
640
gtk_box_pack_start (GTK_BOX (proc_box), vbox, TRUE, TRUE, 0);
642
tmp = g_strdup_printf ("<b>%s</b>", _("Information Fields"));
643
label = gtk_label_new (NULL);
644
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
645
gtk_label_set_markup (GTK_LABEL (label), tmp);
647
gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
649
hbox = gtk_hbox_new (FALSE, 0);
650
gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0);
652
label = gtk_label_new (" ");
653
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
655
vbox2 = create_field_page (procdata->tree, _("Process i_nformation shown in list:"));
656
gtk_box_pack_start (GTK_BOX (hbox), vbox2, TRUE, TRUE, 0);
658
sys_box = gtk_vbox_new (FALSE, 12);
659
gtk_container_set_border_width (GTK_CONTAINER (sys_box), 12);
660
tab_label = gtk_label_new (_("Resources"));
661
gtk_widget_show (tab_label);
662
gtk_notebook_append_page (GTK_NOTEBOOK (notebook), sys_box, tab_label);
664
vbox = gtk_vbox_new (FALSE, 6);
665
gtk_box_pack_start (GTK_BOX (sys_box), vbox, FALSE, FALSE, 0);
667
tmp = g_strdup_printf ("<b>%s</b>", _("Graphs"));
668
label = gtk_label_new (NULL);
669
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
670
gtk_label_set_markup (GTK_LABEL (label), tmp);
672
gtk_box_pack_start (GTK_BOX (vbox), label, TRUE, FALSE, 0);
674
hbox = gtk_hbox_new (FALSE, 0);
675
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
677
label = gtk_label_new (" ");
678
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
680
vbox2 = gtk_vbox_new (FALSE, 6);
681
gtk_box_pack_start (GTK_BOX (hbox), vbox2, TRUE, TRUE, 0);
683
hbox2 = gtk_hbox_new (FALSE, 12);
684
gtk_box_pack_start (GTK_BOX (vbox2), hbox2, FALSE, FALSE, 0);
686
label = gtk_label_new_with_mnemonic (_("_Update interval in seconds:"));
687
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
688
gtk_box_pack_start (GTK_BOX (hbox2), label, FALSE, FALSE, 0);
689
gtk_size_group_add_widget (size, label);
691
hbox3 = gtk_hbox_new (FALSE, 6);
692
gtk_box_pack_start (GTK_BOX (hbox2), hbox3, TRUE, TRUE, 0);
538
create_field_page (builder, procdata->tree, "processes_columns_treeview");
694
540
update = (gfloat) procdata->config.graph_update_interval;
695
541
adjustment = (GtkAdjustment *) gtk_adjustment_new(update / 1000.0, 0.25,
696
542
100.0, 0.25, 1.0, 0);
697
spin_button = gtk_spin_button_new (adjustment, 1.0, 2);
543
spin_button = GTK_WIDGET (gtk_builder_get_object (builder, "resources_interval_spinner"));
544
gtk_spin_button_set_adjustment (GTK_SPIN_BUTTON(spin_button), adjustment);
698
545
g_signal_connect (G_OBJECT (spin_button), "focus_out_event",
699
546
G_CALLBACK(SBU::callback),
700
547
&graph_interval_updater);
701
gtk_box_pack_start (GTK_BOX (hbox3), spin_button, FALSE, FALSE, 0);
702
gtk_label_set_mnemonic_widget (GTK_LABEL (label), spin_button);
705
GtkWidget *bits_button;
706
bits_button = gtk_check_button_new_with_mnemonic(_("Show network speed in bits"));
549
GtkWidget *bits_button = GTK_WIDGET (gtk_builder_get_object (builder, "bits_button"));
707
551
gtk_toggle_button_set_active(GTK_TOGGLE_BUTTON(bits_button),
708
552
g_settings_get_boolean(procdata->settings,
709
553
procman::settings::network_in_bits.c_str()));
710
554
g_signal_connect(G_OBJECT(bits_button), "toggled",
711
555
G_CALLBACK(network_in_bits_toggled), procdata);
712
gtk_box_pack_start(GTK_BOX(vbox2), bits_button, TRUE, TRUE, 0);
716
hbox2 = gtk_hbox_new (FALSE, 12);
717
gtk_box_pack_start (GTK_BOX (vbox2), hbox2, TRUE, TRUE, 0);
722
vbox = gtk_vbox_new (FALSE, 6);
723
gtk_container_set_border_width (GTK_CONTAINER (vbox), 12);
724
tab_label = gtk_label_new (_("File Systems"));
725
gtk_widget_show (tab_label);
726
gtk_notebook_append_page (GTK_NOTEBOOK (notebook), vbox, tab_label);
728
tmp = g_strdup_printf ("<b>%s</b>", _("Behavior"));
729
label = gtk_label_new (NULL);
730
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
731
gtk_label_set_markup (GTK_LABEL (label), tmp);
733
gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
735
hbox = gtk_hbox_new (FALSE, 0);
736
gtk_box_pack_start (GTK_BOX (vbox), hbox, FALSE, FALSE, 0);
738
label = gtk_label_new (" ");
739
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
741
vbox2 = gtk_vbox_new (FALSE, 6);
742
gtk_box_pack_start (GTK_BOX (hbox), vbox2, TRUE, TRUE, 0);
744
hbox2 = gtk_hbox_new (FALSE, 12);
745
gtk_box_pack_start (GTK_BOX (vbox2), hbox2, FALSE, FALSE, 0);
747
label = gtk_label_new_with_mnemonic (_("_Update interval in seconds:"));
748
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
749
gtk_box_pack_start (GTK_BOX (hbox2), label, FALSE, FALSE, 0);
751
hbox3 = gtk_hbox_new (FALSE, 6);
752
gtk_box_pack_start (GTK_BOX (hbox2), hbox3, TRUE, TRUE, 0);
754
557
update = (gfloat) procdata->config.disks_update_interval;
755
558
adjustment = (GtkAdjustment *) gtk_adjustment_new (update / 1000.0, 1.0,
756
559
100.0, 1.0, 1.0, 0);
757
spin_button = gtk_spin_button_new (adjustment, 1.0, 0);
758
gtk_box_pack_start (GTK_BOX (hbox3), spin_button, FALSE, FALSE, 0);
759
gtk_label_set_mnemonic_widget (GTK_LABEL (label), spin_button);
560
spin_button = GTK_WIDGET (gtk_builder_get_object (builder, "devices_interval_spinner"));
561
gtk_spin_button_set_adjustment (GTK_SPIN_BUTTON(spin_button), adjustment);
760
562
g_signal_connect (G_OBJECT (spin_button), "focus_out_event",
761
563
G_CALLBACK(SBU::callback),
762
564
&disks_interval_updater);
765
hbox2 = gtk_hbox_new (FALSE, 6);
766
gtk_box_pack_start (GTK_BOX (vbox2), hbox2, FALSE, FALSE, 0);
767
check_button = gtk_check_button_new_with_mnemonic (_("Show _all file systems"));
567
check_button = GTK_WIDGET (gtk_builder_get_object (builder, "all_devices_check"));
768
568
gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (check_button),
769
569
procdata->config.show_all_fs);
770
570
g_signal_connect (G_OBJECT (check_button), "toggled",
771
571
G_CALLBACK (show_all_fs_toggled), procdata);
772
gtk_box_pack_start (GTK_BOX (hbox2), check_button, FALSE, FALSE, 0);
775
vbox2 = gtk_vbox_new (FALSE, 6);
776
gtk_box_pack_start (GTK_BOX (vbox), vbox2, FALSE, FALSE, 0);
778
label = gtk_label_new (" ");
779
gtk_box_pack_start (GTK_BOX (vbox2), label, FALSE, FALSE, 0);
781
tmp = g_strdup_printf ("<b>%s</b>", _("Information Fields"));
782
label = gtk_label_new (NULL);
783
gtk_misc_set_alignment (GTK_MISC (label), 0.0, 0.5);
784
gtk_label_set_markup (GTK_LABEL (label), tmp);
786
gtk_box_pack_start (GTK_BOX (vbox), label, FALSE, FALSE, 0);
788
hbox = gtk_hbox_new (FALSE, 0);
789
gtk_box_pack_start (GTK_BOX (vbox), hbox, TRUE, TRUE, 0);
791
label = gtk_label_new (" ");
792
gtk_box_pack_start (GTK_BOX (hbox), label, FALSE, FALSE, 0);
794
vbox3 = create_field_page (procdata->disk_list, _("File system i_nformation shown in list:"));
795
gtk_box_pack_start (GTK_BOX (hbox), vbox3, TRUE, TRUE, 0);
797
gtk_widget_show_all (dialog);
798
g_signal_connect (G_OBJECT (dialog), "response",
573
create_field_page (builder, procdata->disk_list, "devices_columns_treeview");
575
gtk_widget_show_all (prefs_dialog);
576
g_signal_connect (G_OBJECT (prefs_dialog), "response",
799
577
G_CALLBACK (prefs_dialog_button_pressed), procdata);
801
579
switch (procdata->config.current_tab) {