MCPcopy Create free account
hub / github.com/HandBrake/HandBrake / preview_set_render_size

Function preview_set_render_size

gtk/src/preview.c:178–237  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

176}
177
178static void
179preview_set_render_size(signal_user_data_t *ud, int width, int height)
180{
181 GtkWidget * widget, *frame, *reset;
182 GtkWindow * window;
183 gint s_w, s_h;
184 gint factor;
185 gfloat ratio = 1.0;
186
187 window = GTK_WINDOW(ghb_builder_widget("preview_window"));
188 widget = ghb_builder_widget("preview_image");
189 frame = ghb_builder_widget("preview_image_frame");
190
191 if (ghb_dict_get_bool(ud->prefs, "reduce_hd_preview"))
192 factor = 90;
193 else
194 factor = 100;
195
196 get_display_size(ghb_builder_widget("hb_window"), &s_w, &s_h);
197
198 if (s_w > 0 && s_h > 0)
199 {
200 int orig_w = width;
201 int orig_h = height;
202
203 if (width > s_w * factor / 100)
204 {
205 width = s_w * factor / 100;
206 height = height * width / orig_w;
207 }
208 if (height > s_h * factor / 100)
209 {
210 height = s_h * factor / 100;
211 width = orig_w * height / orig_h;
212 }
213 }
214 if (height && width)
215 ratio = (gfloat) width / height;
216
217 gtk_widget_set_size_request(widget, width, height);
218 gtk_aspect_frame_set_xalign(GTK_ASPECT_FRAME(frame), 0.5);
219 gtk_aspect_frame_set_yalign(GTK_ASPECT_FRAME(frame), 0.5);
220 gtk_aspect_frame_set_ratio(GTK_ASPECT_FRAME(frame), ratio);
221 gtk_aspect_frame_set_obey_child(GTK_ASPECT_FRAME(frame), FALSE);
222
223 if (gtk_window_is_fullscreen(window))
224 {
225 reset = ghb_builder_widget("preview_reset");
226 gtk_widget_set_visible(reset, FALSE);
227 }
228 else
229 {
230 gtk_window_unmaximize(window);
231 gtk_window_set_default_size(window, width, -1);
232 }
233 gtk_widget_set_size_request(widget, -1, -1);
234
235 ud->preview->render_width = width;

Callers 3

preview_set_sizeFunction · 0.85
ghb_reset_preview_imageFunction · 0.85
preview_reset_clicked_cbFunction · 0.85

Calls 3

ghb_builder_widgetFunction · 0.85
ghb_dict_get_boolFunction · 0.85
get_display_sizeFunction · 0.85

Tested by

no test coverage detected