~phcteam/clinica-project/master

« back to all changes in this revision

Viewing changes to libclinica/Utils.vala

  • Committer: Leonardo Robol
  • Date: 2018-07-07 11:19:37 UTC
  • Revision ID: leo@robol.it-20180707111937-2l2dzh77ygvno2dh
Use new Gdk API to access screen size. 

Show diffs side-by-side

added added

removed removed

Lines of Context:
19
19
 */
20
20
 
21
21
using Gtk;
 
22
using Gdk;
22
23
 
23
24
namespace Clinica.Utils {
24
25
 
38
39
        }
39
40
        return string.joinv(" ", new_pieces);
40
41
        }
41
 
        
42
 
        /* 
43
 
         * @brief Set width and height compatible to the screen 
 
42
 
 
43
        /*
 
44
         * @brief Set width and height compatible to the screen
44
45
         */
45
46
        public static void set_widget_size (Widget widget, int width, int height) {
46
 
                Gdk.Screen screen = Gdk.Screen.get_default ();
47
 
                if (width > screen.get_width ()) {
48
 
                        width = screen.get_width () - 100;
 
47
                Gdk.Display display = Gdk.Display.get_default();
 
48
                Gdk.Monitor monitor = display.get_primary_monitor();
 
49
                Gdk.Rectangle geometry = monitor.get_geometry();
 
50
                if (width > geometry.width) {
 
51
                        width = geometry.width - 100;
49
52
                }
50
 
                if (height > screen.get_height ()) {
51
 
                        height = screen.get_height () - 100;
 
53
                if (height > geometry.height) {
 
54
                        height = geometry.height - 100;
52
55
                }
53
56
                widget.set_size_request (width, height);
54
57
        }
55
 
        
 
58
 
56
59
        /**
57
60
         * @brief Set the alert state of a widget.
58
61
         *
67
70
        }
68
71
        else
69
72
            alert_color.parse ("#000000");
70
 
            
 
73
 
71
74
        entry.override_color (Gtk.StateFlags.NORMAL, alert_color);
72
75
        }
73
 
        
74
 
        
 
76
 
 
77
 
75
78
    /**
76
79
     * @brief Show error message to the user
77
80
     */
78
81
    public static void show_error_message (GLib.Object? source, string message) {
79
 
                
80
 
                /* Print the error message to stdout */                 
 
82
 
 
83
                /* Print the error message to stdout */
81
84
                print(_("\033[31;1mERROR\033[0m => ") + message + "\n");
82
 
        
83
 
        var md = new MessageDialog (null, DialogFlags.MODAL, 
 
85
 
 
86
        var md = new MessageDialog (null, DialogFlags.MODAL,
84
87
                        MessageType.ERROR, ButtonsType.OK,
85
88
                        "%s", _("Clinica encountered an error"));
86
89
        md.set_title (_("Clinica encountered an error"));
88
91
        md.run ();
89
92
        md.destroy ();
90
93
    }
91
 
    
 
94
 
92
95
    /**
93
96
     * @brief Check patient's birthday
94
97
     */
95
98
    public bool check_date (int day, int month, int year) {
96
 
                
 
99
 
97
100
            int[] thirtyone = {1, 3, 5, 7, 8, 10, 12}; // months of 31 day
98
 
                        
 
101
 
99
102
            if ( ((day == 31) && (month in thirtyone)) || ((day <= 30) && (month != 2)) || (day <= 28) )
100
 
                return true; 
 
103
                return true;
101
104
            else {
102
105
                if ( (day == 29) && (month == 2) ) {
103
106
                        // check if year is a leap year
104
 
                        if ( ((year % 100 != 0) && (year % 4 == 0)) || (year % 400 == 0) ) 
105
 
                                return true;                    
 
107
                        if ( ((year % 100 != 0) && (year % 4 == 0)) || (year % 400 == 0) )
 
108
                                return true;
106
109
                }
107
110
                return false;
108
111
            }
109
112
    }
110
 
    
 
113
 
111
114
    public Gdk.Pixbuf pixbuf_from_svg_resource (string resource, int width, int height) {
112
115
        try {
113
116
            var stream = GLib.resources_open_stream (resource, ResourceLookupFlags.NONE);